1commit a522a226545730551f7e7c2685fab27cf567746c 2Author: Lasse Collin <lasse.collin@tukaani.org> 3Date: 2025-04-03 14:34:43 +0300 4 5 Bump version and soname for 5.8.1 6 7 src/liblzma/Makefile.am | 2 +- 8 src/liblzma/api/lzma/version.h | 2 +- 9 2 files changed, 2 insertions(+), 2 deletions(-) 10 11commit 1c462c2ad86ff85766928638431029cd0b0dc995 12Author: Lasse Collin <lasse.collin@tukaani.org> 13Date: 2025-04-03 14:34:43 +0300 14 15 Add NEWS for 5.8.1 16 17 NEWS | 30 ++++++++++++++++++++++++++++++ 18 1 file changed, 30 insertions(+) 19 20commit 513cabcf7f5ce1c3ed0619e791393fc53d1dbbd0 21Author: Lasse Collin <lasse.collin@tukaani.org> 22Date: 2025-04-03 14:34:43 +0300 23 24 Tests: Call lzma_code() in smaller chunks in fuzz_common.h 25 26 This makes it easy to crash fuzz_decode_stream_mt when tested 27 against the code from 5.8.0. 28 29 Obviously this might make it harder to reach some other code path now. 30 The previous code has been in use since 2018 when fuzzing was added 31 in 106d1a663d4b ("Tests: Add a fuzz test program and a config file 32 for OSS-Fuzz."). 33 34 tests/ossfuzz/fuzz_common.h | 31 ++++++++++++++++++++++++------- 35 1 file changed, 24 insertions(+), 7 deletions(-) 36 37commit 48440e24a25911ae59e8518b67a1e0f6f1c293bf 38Author: Lasse Collin <lasse.collin@tukaani.org> 39Date: 2025-04-03 14:34:43 +0300 40 41 Tests: Add a fuzzing target for the multithreaded .xz decoder 42 43 It doesn't seem possible to trigger the CVE-2025-31115 bug with this 44 fuzzing target at the moment. It's because the code in fuzz_common.h 45 passes the whole input buffer to lzma_code() at once. 46 47 tests/ossfuzz/fuzz_decode_stream_mt.c | 47 +++++++++++++++++++++++++++++++++++ 48 1 file changed, 47 insertions(+) 49 50commit 0c80045ab82c406858d9d5bcea9f48ebc3d0a81d 51Author: Lasse Collin <lasse.collin@tukaani.org> 52Date: 2025-04-03 14:34:42 +0300 53 54 liblzma: mt dec: Fix lack of parallelization in single-shot decoding 55 56 Single-shot decoding means calling lzma_code() by giving it the whole 57 input at once and enough output buffer space to store the uncompressed 58 data, and combining this with LZMA_FINISH and no timeout 59 (lzma_mt.timeout = 0). This way the file is decoded with a single 60 lzma_code() call if possible. 61 62 The bug prevented the decoder from starting more than one worker thread 63 in single-shot mode. The issue was noticed when reviewing the code; 64 there are no bug reports. Thus maybe few have tried this mode. 65 66 Fixes: 64b6d496dc81 ("liblzma: Threaded decoder: Always wait for output if LZMA_FINISH is used.") 67 68 src/liblzma/common/stream_decoder_mt.c | 11 +++++++++-- 69 1 file changed, 9 insertions(+), 2 deletions(-) 70 71commit 8188048854e8d11071b8a50d093c74f4c030acc9 72Author: Lasse Collin <lasse.collin@tukaani.org> 73Date: 2025-04-03 14:34:42 +0300 74 75 liblzma: mt dec: Don't modify thr->in_size in the worker thread 76 77 Don't set thr->in_size = 0 when returning the thread to the stack of 78 available threads. Not only is it useless, but the main thread may 79 read the value in SEQ_BLOCK_THR_RUN. With valid inputs, it made 80 no difference if the main thread saw the original value or 0. With 81 invalid inputs (when worker thread stops early), thr->in_size was 82 no longer modified after the previous commit with the security fix 83 ("Don't free the input buffer too early"). 84 85 So while the bug appears harmless now, it's important to fix it because 86 the variable was being modified without proper locking. It's trivial 87 to fix because there is no need to change the value. Only main thread 88 needs to set the value in (in SEQ_BLOCK_THR_INIT) when starting a new 89 Block before the worker thread is activated. 90 91 Fixes: 4cce3e27f529 ("liblzma: Add threaded .xz decompressor.") 92 Reviewed-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc> 93 Thanks-to: Sam James <sam@gentoo.org> 94 95 src/liblzma/common/stream_decoder_mt.c | 6 ++++-- 96 1 file changed, 4 insertions(+), 2 deletions(-) 97 98commit d5a2ffe41bb77b918a8c96084885d4dbe4bf6480 99Author: Lasse Collin <lasse.collin@tukaani.org> 100Date: 2025-04-03 14:34:42 +0300 101 102 liblzma: mt dec: Don't free the input buffer too early (CVE-2025-31115) 103 104 The input buffer must be valid as long as the main thread is writing 105 to the worker-specific input buffer. Fix it by making the worker 106 thread not free the buffer on errors and not return the worker thread to 107 the pool. The input buffer will be freed when threads_end() is called. 108 109 With invalid input, the bug could at least result in a crash. The 110 effects include heap use after free and writing to an address based 111 on the null pointer plus an offset. 112 113 The bug has been there since the first committed version of the threaded 114 decoder and thus affects versions from 5.3.3alpha to 5.8.0. 115 116 As the commit message in 4cce3e27f529 says, I had made significant 117 changes on top of Sebastian's patch. This bug was indeed introduced 118 by my changes; it wasn't in Sebastian's version. 119 120 Thanks to Harri K. Koskinen for discovering and reporting this issue. 121 122 Fixes: 4cce3e27f529 ("liblzma: Add threaded .xz decompressor.") 123 Reported-by: Harri K. Koskinen <x64nop@nannu.org> 124 Reviewed-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc> 125 Thanks-to: Sam James <sam@gentoo.org> 126 127 src/liblzma/common/stream_decoder_mt.c | 31 ++++++++++++++++++++++--------- 128 1 file changed, 22 insertions(+), 9 deletions(-) 129 130commit c0c835964dfaeb2513a3c0bdb642105152fe9f34 131Author: Lasse Collin <lasse.collin@tukaani.org> 132Date: 2025-04-03 14:34:42 +0300 133 134 liblzma: mt dec: Simplify by removing the THR_STOP state 135 136 The main thread can directly set THR_IDLE in threads_stop() which is 137 called when errors are detected. threads_stop() won't return the stopped 138 threads to the pool or free the memory pointed by thr->in anymore, but 139 it doesn't matter because the existing workers won't be reused after 140 an error. The resources will be cleaned up when threads_end() is 141 called (reinitializing the decoder always calls threads_end()). 142 143 Reviewed-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc> 144 Thanks-to: Sam James <sam@gentoo.org> 145 146 src/liblzma/common/stream_decoder_mt.c | 75 +++++++++++++--------------------- 147 1 file changed, 29 insertions(+), 46 deletions(-) 148 149commit 831b55b971cf579ee16a854f177c36b20d3c6999 150Author: Lasse Collin <lasse.collin@tukaani.org> 151Date: 2025-04-03 14:34:42 +0300 152 153 liblzma: mt dec: Fix a comment 154 155 Reviewed-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc> 156 Thanks-to: Sam James <sam@gentoo.org> 157 158 src/liblzma/common/stream_decoder_mt.c | 2 +- 159 1 file changed, 1 insertion(+), 1 deletion(-) 160 161commit b9d168eee4fb6393b4fe207c0aeb5faee316ca1a 162Author: Lasse Collin <lasse.collin@tukaani.org> 163Date: 2025-04-03 14:34:30 +0300 164 165 liblzma: Add assertions to lzma_bufcpy() 166 167 src/liblzma/common/common.c | 6 ++++++ 168 1 file changed, 6 insertions(+) 169 170commit c8e0a4897b4d0f906966f5d4d4f662221d64f3ae 171Author: Lasse Collin <lasse.collin@tukaani.org> 172Date: 2025-04-02 16:40:22 +0300 173 174 DOS: Update Makefile to fix the build 175 176 dos/Makefile | 2 ++ 177 1 file changed, 2 insertions(+) 178 179commit 307c02ed698a69763ef1c9c0df4ff24727442118 180Author: Lasse Collin <lasse.collin@tukaani.org> 181Date: 2025-03-29 12:41:32 +0200 182 183 sysdefs.h: Avoid <stdalign.h> even with C11 compilers 184 185 Oracle Developer Studio 12.6 on Solaris 10 claims C11 support in 186 __STDC_VERSION__ and supports _Alignas. However, <stdalign.h> is missing. 187 We only need alignas, so define it to _Alignas with C11/C17 compilers. 188 If something included <stdalign.h> later, it shouldn't cause problems. 189 190 Thanks to Ihsan Dogan for reporting the issue and testing the fix. 191 192 Fixes: c0e7eaae8d6eef1e313c9d0da20ccf126ec61f38 193 194 src/common/sysdefs.h | 4 +++- 195 1 file changed, 3 insertions(+), 1 deletion(-) 196 197commit 7ce38b318339d6c01378a77585e08169ca3a604e 198Author: Lasse Collin <lasse.collin@tukaani.org> 199Date: 2025-03-29 12:32:05 +0200 200 201 Update THANKS 202 203 THANKS | 1 + 204 1 file changed, 1 insertion(+) 205 206commit 688e51bde4c987589717b2be1a1fde9576c604fc 207Author: Lasse Collin <lasse.collin@tukaani.org> 208Date: 2025-03-29 12:21:51 +0200 209 210 Translations: Update the Croatian translation 211 212 po/hr.po | 14 +++++++------- 213 1 file changed, 7 insertions(+), 7 deletions(-) 214 215commit 173fb5c68b08a8c1369550267be258132b7760c6 216Author: Lasse Collin <lasse.collin@tukaani.org> 217Date: 2025-03-25 18:23:57 +0200 218 219 doc/SHA256SUMS: Add 5.8.0 220 221 doc/SHA256SUMS | 6 ++++++ 222 1 file changed, 6 insertions(+) 223 224commit db9258e828bc2cd96e3954f1ddcc9d3530589025 225Author: Lasse Collin <lasse.collin@tukaani.org> 226Date: 2025-03-25 15:18:32 +0200 227 228 Bump version and soname for 5.8.0 229 230 Also remove the LZMA_UNSTABLE macro. 231 232 src/liblzma/Makefile.am | 2 +- 233 src/liblzma/api/lzma/bcj.h | 2 -- 234 src/liblzma/api/lzma/version.h | 6 +++--- 235 src/liblzma/common/common.h | 2 -- 236 src/liblzma/liblzma_generic.map | 2 +- 237 src/liblzma/liblzma_linux.map | 2 +- 238 6 files changed, 6 insertions(+), 10 deletions(-) 239 240commit bfb752a38f89ed03fc93d54f11c09f43fda64bc2 241Author: Lasse Collin <lasse.collin@tukaani.org> 242Date: 2025-03-25 15:18:32 +0200 243 244 Add NEWS for 5.8.0 245 246 NEWS | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 247 1 file changed, 62 insertions(+) 248 249commit 6ccbb904da851eb0c174c8dbd43e84da31739720 250Author: Lasse Collin <lasse.collin@tukaani.org> 251Date: 2025-03-25 15:18:31 +0200 252 253 Translations: Run "make -C po update-po" 254 255 POT-Creation-Date is set to match the timestamp in 5.7.2beta which 256 in the Translation Project is known as 5.8.0-pre1. The strings 257 haven't changed since 5.7.1alpha but a few comments have. 258 259 This is a very noisy commit, but this helps keeping the PO files 260 similar between the Git repository and stable release tarballs. 261 262 po/ca.po | 964 ++++++++++++++++++++++++++++++++++++++++++++--------------- 263 po/cs.po | 935 ++++++++++++++++++++++++++++++++++++++++++---------------- 264 po/da.po | 663 ++++++++++++++++++++++++++++++----------- 265 po/de.po | 7 +- 266 po/eo.po | 966 +++++++++++++++++++++++++++++++++++++++++++++--------------- 267 po/es.po | 7 +- 268 po/fi.po | 2 +- 269 po/fr.po | 916 +++++++++++++++++++++++++++++++++++++++++--------------- 270 po/hu.po | 966 +++++++++++++++++++++++++++++++++++++++++++++--------------- 271 po/ka.po | 7 +- 272 po/ko.po | 7 +- 273 po/nl.po | 7 +- 274 po/pl.po | 7 +- 275 po/pt_BR.po | 962 ++++++++++++++++++++++++++++++++++++++++++++--------------- 276 po/sr.po | 2 +- 277 po/sv.po | 7 +- 278 po/tr.po | 7 +- 279 po/uk.po | 7 +- 280 po/vi.po | 948 +++++++++++++++++++++++++++++++++++++++++++--------------- 281 po/zh_CN.po | 940 ++++++++++++++++++++++++++++++++++++++++++++-------------- 282 po/zh_TW.po | 2 +- 283 21 files changed, 6209 insertions(+), 2120 deletions(-) 284 285commit 891a5f057a6bb2dd2e3ce5e3bdd7a1f1ee03b800 286Author: Lasse Collin <lasse.collin@tukaani.org> 287Date: 2025-03-25 15:18:31 +0200 288 289 Translations: Run po4a/update-po 290 291 Also remove the trivial obsolete messages like man page dates. 292 293 This is a noisy commit, but this helps keeping the PO files similar 294 between the Git repository and stable release tarballs. 295 296 po4a/fr.po | 82 +++++++++++++++++++++++++++++++++++++------------------ 297 po4a/pt_BR.po | 88 +++++++++++++++++++++++++++++++++++++++++------------------ 298 po4a/sr.po | 79 ++++++++++++++++++++++++++++++++++------------------- 299 3 files changed, 167 insertions(+), 82 deletions(-) 300 301commit 4f52e7387012cb3510b01c937dd9b3a0c6a3ac6c 302Author: Lasse Collin <lasse.collin@tukaani.org> 303Date: 2025-03-25 15:18:31 +0200 304 305 Translations: Partially fix overtranslation in Serbian man pages 306 307 Names of environment variables and some other strings must be present 308 in the original form. The translator couldn't be reached so I'm 309 changing some of the strings myself. In the "Robot mode" section, 310 occurrences in the middle of sentences weren't changed to reduce 311 the chance of grammar breakage, but I kept the translated strings in 312 parenthesis in the headings. It's not ideal, but now people shouldn't 313 need to look at the English man page to find the English strings. 314 315 po4a/sr.po | 66 ++++++++++++++++++++++++++++++++++++++++++-------------------- 316 1 file changed, 45 insertions(+), 21 deletions(-) 317 318commit ff5d944749b99eb5ab35e2ebaf01d05a59e7169b 319Author: Lasse Collin <lasse.collin@tukaani.org> 320Date: 2025-03-25 15:18:31 +0200 321 322 liblzma: Count the extra bytes in LZMA/LZMA2 decoder memory usage 323 324 src/liblzma/lz/lz_decoder.c | 3 ++- 325 1 file changed, 2 insertions(+), 1 deletion(-) 326 327commit 943b012d09f717f7b44284c4e4976ea41264c731 328Author: Lasse Collin <lasse.collin@tukaani.org> 329Date: 2025-03-25 15:18:31 +0200 330 331 liblzma: Use SSE2 intrinsics instead of memcpy() in dict_repeat() 332 333 SSE2 is supported on every x86-64 processor. The SSE2 code is used on 334 32-bit x86 if compiler options permit unconditional use of SSE2. 335 336 dict_repeat() copies short random-sized unaligned buffers. At least 337 on glibc, FreeBSD, and Windows (MSYS2, UCRT, MSVCRT), memcpy() is 338 clearly faster than byte-by-byte copying in this use case. Compared 339 to the memcpy() version, the new SSE2 version reduces decompression 340 time by 0-5 % depending on the machine and libc. It should never be 341 slower than the memcpy() version. 342 343 However, on musl 1.2.5 on x86-64, the memcpy() version is the slowest. 344 Compared to the memcpy() version: 345 346 - The byte-by-version takes 6-7 % less time to decompress. 347 - The SSE2 version takes 16-18 % less time to decompress. 348 349 The numbers are from decompressing a Linux kernel source tarball in 350 single-threaded mode on older AMD and Intel systems. The tarball 351 compresses well, and thus dict_repeat() performance matters more 352 than with some other files. 353 354 src/liblzma/lz/lz_decoder.c | 14 ++++++-- 355 src/liblzma/lz/lz_decoder.h | 87 ++++++++++++++++++++++++++++++++++++++++----- 356 2 files changed, 90 insertions(+), 11 deletions(-) 357 358commit bc14e4c94e788d42eeab984298391fc0ca46f969 359Author: Lasse Collin <lasse.collin@tukaani.org> 360Date: 2025-03-25 15:18:31 +0200 361 362 liblzma: Add "restrict" to a few functions in lz_decoder.h 363 364 This doesn't make any difference in practice because compilers can 365 already see that writing through the dict->buf pointer cannot modify 366 the contents of *dict itself: The LZMA decoder makes a local copy of 367 the lzma_dict structure, and even if it didn't, the pointer to 368 lzma_dict in the LZMA decoder is already "restrict". 369 370 It's nice to add "restrict" anyway. uint8_t is typically unsigned char 371 which can alias anything. Without the above conditions or "restrict", 372 compilers could need to assume that writing through dict->buf might 373 modify *dict. This would matter in dict_repeat() because the loops 374 refer to dict->buf and dict->pos instead of making local copies of 375 those members for the duration of the loops. If compilers had to 376 assume that writing through dict->buf can affect *dict, then compilers 377 would need to emit code that reloads dict->buf and dict->pos after 378 every write through dict->buf. 379 380 src/liblzma/lz/lz_decoder.h | 7 ++++--- 381 1 file changed, 4 insertions(+), 3 deletions(-) 382 383commit e82ee090c567e560f51a056775a17f534d159d65 384Author: Lasse Collin <lasse.collin@tukaani.org> 385Date: 2025-03-25 15:18:30 +0200 386 387 liblzma: Define LZ_DICT_INIT_POS for initial dictionary position 388 389 It's more readable. 390 391 src/liblzma/lz/lz_decoder.c | 4 ++-- 392 src/liblzma/lz/lz_decoder.h | 9 ++++++--- 393 2 files changed, 8 insertions(+), 5 deletions(-) 394 395commit 8e7cd0091e5239334437decbe1989662d45a2f47 396Author: Lasse Collin <lasse.collin@tukaani.org> 397Date: 2025-03-25 15:18:30 +0200 398 399 Windows: Update README-Windows.txt about UCRT 400 401 windows/README-Windows.txt | 3 ++- 402 1 file changed, 2 insertions(+), 1 deletion(-) 403 404commit 2c24292d341e505e5579fccac3bce5bc71d839ef 405Author: Lasse Collin <lasse.collin@tukaani.org> 406Date: 2025-03-25 15:18:15 +0200 407 408 Update THANKS 409 410 THANKS | 1 + 411 1 file changed, 1 insertion(+) 412 413commit 48053c90898fa191a216aefca01626520a7413f4 414Author: Lasse Collin <lasse.collin@tukaani.org> 415Date: 2025-03-17 15:33:25 +0200 416 417 Translations: Update the Italian translation 418 419 po/it.po | 32 ++++++++++++++++---------------- 420 1 file changed, 16 insertions(+), 16 deletions(-) 421 422commit 8d6f06a65f50358fad13567f5dd8af41ef1d2b58 423Author: Lasse Collin <lasse.collin@tukaani.org> 424Date: 2025-03-17 15:28:56 +0200 425 426 Translations: Update the Portuguese translation 427 428 The language tag in the Translation Project is pt, not pt_PT, 429 thus I changed the "Language:" line to pt. 430 431 po/pt.po | 1045 +++++++++++++++++++++++++++++++------------------------------- 432 1 file changed, 526 insertions(+), 519 deletions(-) 433 434commit c3439b039f46fe547ad603e16dc3bd63c1ca9b0c 435Author: Lasse Collin <lasse.collin@tukaani.org> 436Date: 2025-03-14 13:02:21 +0200 437 438 Translations: Update the Italian translation 439 440 po/it.po | 1020 +++++++++++++++++++++++++++++++------------------------------- 441 1 file changed, 516 insertions(+), 504 deletions(-) 442 443commit 79b4ab8d79528dd633a84df2d29e63f5d13ccbdf 444Author: Lasse Collin <lasse.collin@tukaani.org> 445Date: 2025-03-12 20:48:39 +0200 446 447 Translations: Update the Italian man page translations 448 449 Only trivial additions but this keeps the file in sync with the TP. 450 451 po4a/it.po | 4 ++-- 452 1 file changed, 2 insertions(+), 2 deletions(-) 453 454commit 515b6fc8557825e1335012b3b1c8cf71e2c38775 455Author: Lasse Collin <lasse.collin@tukaani.org> 456Date: 2025-03-12 19:38:54 +0200 457 458 Translations: Update the Italian man page translations 459 460 po4a/it.po | 129 ++++++++++++++++++++++++++++++++++++------------------------- 461 1 file changed, 77 insertions(+), 52 deletions(-) 462 463commit 333b7c0b776295f0941269b4e6cdb1a0ba5f6218 464Author: Lasse Collin <lasse.collin@tukaani.org> 465Date: 2025-03-10 21:00:31 +0200 466 467 Translations: Update the Korean man page translations 468 469 po4a/ko.po | 139 +++++++++++++++++++++++++++++++++++-------------------------- 470 1 file changed, 80 insertions(+), 59 deletions(-) 471 472commit ae52ebd27dc0be5e1ba62fb0c45255d8563fcd88 473Author: Lasse Collin <lasse.collin@tukaani.org> 474Date: 2025-03-10 20:56:57 +0200 475 476 Translations: Update the German man page translations 477 478 po4a/de.po | 102 ++++++++++++++++++++++++++++++++++++++----------------------- 479 1 file changed, 63 insertions(+), 39 deletions(-) 480 481commit 1028e52c93d2292b44ff7bae8e721025d2f2c94d 482Author: Lasse Collin <lasse.collin@tukaani.org> 483Date: 2025-03-10 13:13:30 +0200 484 485 CMake: Fix tuklib_use_system_extensions 486 487 Revert back to a macro so that list(APPEND CMAKE_REQUIRED_DEFINITIONS) 488 will affect the calling scope. I had forgotten that while CMake 489 functions inherit the variables from the parent scope, the changes 490 to them are local unless using set(... PARENT_SCOPE). 491 492 This also means that the commit message in 5bb77d0920dc is wrong. The 493 commit itself is still fine, making it clearer that -DHAVE_SYS_PARAM_H 494 is only needed for specific check_c_source_compiles() calls. 495 496 Fixes: c1ea7bd0b60eed6ebcdf9a713ca69034f6f07179 497 498 cmake/tuklib_common.cmake | 7 +++++-- 499 1 file changed, 5 insertions(+), 2 deletions(-) 500 501commit 80e48836024ec2d7cbd557575be6da3d1f055cba 502Author: Lasse Collin <lasse.collin@tukaani.org> 503Date: 2025-03-10 11:38:55 +0200 504 505 INSTALL: Document -bmaxdata on AIX 506 507 This is based on a pull request and AIX docs. I haven't tested the 508 instructions myself. 509 510 Closes: https://github.com/tukaani-project/xz/pull/137 511 512 INSTALL | 5 +++++ 513 1 file changed, 5 insertions(+) 514 515commit ab319186b6d0454285ff4941a777ac95e580f60f 516Author: Lasse Collin <lasse.collin@tukaani.org> 517Date: 2025-03-10 11:37:19 +0200 518 519 Update THANKS 520 521 THANKS | 1 + 522 1 file changed, 1 insertion(+) 523 524commit 4434671a04436038f88ab0feaa251cc8d7abb683 525Author: Collin Funk <collin.funk1@gmail.com> 526Date: 2025-03-09 19:14:31 -0700 527 528 tuklib_physmem: Silence -Wsign-conversion on AIX 529 530 Closes: https://github.com/tukaani-project/xz/pull/168 531 532 src/common/tuklib_physmem.c | 2 +- 533 1 file changed, 1 insertion(+), 1 deletion(-) 534 535commit 18bcaa4fafc935d89ffde94301fa6427907306bf 536Author: Lasse Collin <lasse.collin@tukaani.org> 537Date: 2025-03-09 22:10:38 +0200 538 539 Translations: Update the Romanian man page translations 540 541 po4a/ro.po | 110 ++++++++++++++++++++++++++++++++++++------------------------- 542 1 file changed, 66 insertions(+), 44 deletions(-) 543 544commit 1e17b7f42fe2f9df279f44ad7043d3753cd00363 545Author: Lasse Collin <lasse.collin@tukaani.org> 546Date: 2025-03-09 21:28:15 +0200 547 548 Translations: Update the Croatian translation 549 550 po/hr.po | 19 +++++++++++-------- 551 1 file changed, 11 insertions(+), 8 deletions(-) 552 553commit ff85e6130d5940896915cdbb99aa9ece9d41240b 554Author: Lasse Collin <lasse.collin@tukaani.org> 555Date: 2025-03-09 21:23:34 +0200 556 557 Translations: Update the Romanian translation 558 559 po/ro.po | 24 +++++++++++++----------- 560 1 file changed, 13 insertions(+), 11 deletions(-) 561 562commit a5bfb33f30f77e656723d365db8b06e089d3de61 563Author: Lasse Collin <lasse.collin@tukaani.org> 564Date: 2025-03-09 21:11:34 +0200 565 566 Translations: Update the Ukrainian man page translations 567 568 po4a/uk.po | 107 ++++++++++++++++++++++++++++++++++++------------------------- 569 1 file changed, 64 insertions(+), 43 deletions(-) 570 571commit 5bb77d0920dcf949d8eb04eb19204b7b199e42df 572Author: Lasse Collin <lasse.collin@tukaani.org> 573Date: 2025-03-09 14:43:07 +0200 574 575 CMake: Use cmake_push_check_state in tuklib_cpucores and tuklib_physmem 576 577 Now the changes to CMAKE_REQUIRED_DEFINITIONS are temporary and don't 578 leak to the calling code. 579 580 cmake/tuklib_cpucores.cmake | 3 +++ 581 cmake/tuklib_physmem.cmake | 4 +++- 582 2 files changed, 6 insertions(+), 1 deletion(-) 583 584commit c1ea7bd0b60eed6ebcdf9a713ca69034f6f07179 585Author: Lasse Collin <lasse.collin@tukaani.org> 586Date: 2025-03-09 14:06:35 +0200 587 588 CMake: Revise tuklib_use_system_extensions 589 590 Define NetBSD and Darwin/macOS feature test macros. Autoconf defines 591 these too (and a few others). 592 593 Define the macros on Windows except with MSVC. The _GNU_SOURCE macro 594 makes a difference with mingw-w64. 595 596 Use a function instead of a macro. Don't take the TARGET_OR_ALL argument 597 because there's always global effect because the global variable 598 CMAKE_REQUIRED_DEFINITIONS is modified. 599 600 CMakeLists.txt | 2 +- 601 cmake/tuklib_common.cmake | 27 +++++++++++++++------------ 602 2 files changed, 16 insertions(+), 13 deletions(-) 603 604commit 4243c45a48ef8c103d77b75d9f93d48adcb631db 605Author: Lasse Collin <lasse.collin@tukaani.org> 606Date: 2025-03-08 14:54:29 +0200 607 608 doc/SHA256SUMS: Add 5.7.2beta 609 610 doc/SHA256SUMS | 3 +++ 611 1 file changed, 3 insertions(+) 612 613commit cc7f2fc1cf9f3c63cbce90ee92bfbb004f98140b 614Author: Lasse Collin <lasse.collin@tukaani.org> 615Date: 2025-03-08 14:29:57 +0200 616 617 Bump version and soname for 5.7.2beta 618 619 src/liblzma/Makefile.am | 2 +- 620 src/liblzma/api/lzma/version.h | 4 ++-- 621 src/liblzma/liblzma_generic.map | 2 +- 622 src/liblzma/liblzma_linux.map | 2 +- 623 4 files changed, 5 insertions(+), 5 deletions(-) 624 625commit 62e44b36167de27541776dcf677ed04077c9fd19 626Author: Lasse Collin <lasse.collin@tukaani.org> 627Date: 2025-03-08 14:24:38 +0200 628 629 Add NEWS for 5.7.2beta 630 631 NEWS | 35 +++++++++++++++++++++++++++++++++++ 632 1 file changed, 35 insertions(+) 633 634commit 70f1f203789433b5d7b8b22e1655abc465d659f7 635Author: Lasse Collin <lasse.collin@tukaani.org> 636Date: 2025-03-08 14:23:00 +0200 637 638 COPYING: Remove the note about old releases 639 640 COPYING | 19 ------------------- 641 1 file changed, 19 deletions(-) 642 643commit db9827dc38ff79de747a6fc7a99619e961dbc5e6 644Author: Lasse Collin <lasse.collin@tukaani.org> 645Date: 2025-03-08 14:22:28 +0200 646 647 xz: Update the man page about the environment variables again 648 649 src/xz/xz.1 | 22 +++++++++++----------- 650 1 file changed, 11 insertions(+), 11 deletions(-) 651 652commit 99c584891bd1d946561cebded2226df9b83f1efb 653Author: Lasse Collin <lasse.collin@tukaani.org> 654Date: 2025-03-06 19:26:09 +0200 655 656 liblzma: Edit spelling in a comment 657 658 It was found with codespell. 659 660 src/liblzma/api/lzma/container.h | 2 +- 661 1 file changed, 1 insertion(+), 1 deletion(-) 662 663commit 7a234c8c05a8f64efde013cd6a6d31a90b7d0d28 664Author: Lasse Collin <lasse.collin@tukaani.org> 665Date: 2025-03-06 19:14:23 +0200 666 667 xz: Update the man page about the environment variables 668 669 src/xz/xz.1 | 26 ++++++++++++++++++++++++-- 670 1 file changed, 24 insertions(+), 2 deletions(-) 671 672commit 808f05af3ef40730d40b3798666757bd866484f1 673Author: Lasse Collin <lasse.collin@tukaani.org> 674Date: 2025-03-06 17:37:39 +0200 675 676 Docs: Add a few TRANSLATORS comments to man pages 677 678 All translators know that --command-line-options must not be translated. 679 With some other strings it's not obvious when the untranslated string 680 must be preserved. These comments hopefully help. 681 682 src/scripts/xzmore.1 | 2 ++ 683 src/xz/xz.1 | 22 ++++++++++++++++++++++ 684 2 files changed, 24 insertions(+) 685 686commit 051de255f00dda331e2a6fa189a6e7fe56a7c69b 687Author: Lasse Collin <lasse.collin@tukaani.org> 688Date: 2025-03-06 16:34:32 +0200 689 690 Scripts: Mark the LZMA Utils script aliases as deprecated 691 692 The deprecated aliases are lzcmp, lzdiff, lzless, lzmore, 693 lzgrep, lzegrep, and lzfgrep. The commands that start with 694 the xz prefix have identical behavior, for example, both 695 lzgrep and xzgrep handle all supported file formats. 696 697 This doesn't affect lzma, unlzma, lzcat, lzmadec, or lzmainfo. 698 The last release of LZMA Utils was made in 2008, but the lzma 699 compatibility alias for the gzip-like tool is still in common use. 700 Deprecating it would cause unnecessary breakage. 701 702 src/scripts/xzdiff.1 | 5 ++++- 703 src/scripts/xzgrep.1 | 6 +++++- 704 src/scripts/xzless.1 | 4 +++- 705 src/scripts/xzmore.1 | 4 +++- 706 4 files changed, 15 insertions(+), 4 deletions(-) 707 708commit 4941ea454c02cf15a64d6434a0778fc2a81282fc 709Author: Lasse Collin <lasse.collin@tukaani.org> 710Date: 2025-03-02 21:13:04 +0200 711 712 Translations: Add Serbian man page translations 713 714 po4a/po4a.conf | 2 +- 715 po4a/sr.po | 3892 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 716 2 files changed, 3893 insertions(+), 1 deletion(-) 717 718commit d142d96f24daa451edaabfca8594e202932b3c0b 719Author: Lasse Collin <lasse.collin@tukaani.org> 720Date: 2025-03-02 20:42:14 +0200 721 722 Translations: Update Georgian translation 723 724 po/ka.po | 4 ++-- 725 1 file changed, 2 insertions(+), 2 deletions(-) 726 727commit 9b7e45d841195c8fd8d286e26f810df28c53dd16 728Author: Lasse Collin <lasse.collin@tukaani.org> 729Date: 2025-02-28 21:07:21 +0200 730 731 Update THANKS 732 733 THANKS | 1 + 734 1 file changed, 1 insertion(+) 735 736commit 9351592710e0df3238b09d39c545a643c50ac88f 737Author: Lasse Collin <lasse.collin@tukaani.org> 738Date: 2025-02-22 16:04:58 +0200 739 740 Update THANKS 741 742 THANKS | 1 + 743 1 file changed, 1 insertion(+) 744 745commit 9023be7831faca2f28def55e16c39e3a42e1e262 746Author: Lasse Collin <lasse.collin@tukaani.org> 747Date: 2025-02-19 16:33:52 +0200 748 749 Translations: Update the Croatian translation 750 751 po/hr.po | 6 +++--- 752 1 file changed, 3 insertions(+), 3 deletions(-) 753 754commit 2eaf242c56e8c65db83d48b018fa44aeafeb33a5 755Author: Lasse Collin <lasse.collin@tukaani.org> 756Date: 2025-02-17 21:46:15 +0200 757 758 Build: Fix out-of-tree builds when using the replacement getopt_long 759 760 Nowaways $(top_builddir)/lib/getopt.h depends on headers in 761 $(top_srcdir)/lib, so both have to be in the include path. 762 CMake-based build already did this. 763 764 Fixes: 7e884c00d0093c38339f17fb1d280eec493f42ca 765 766 src/lzmainfo/Makefile.am | 6 ++++-- 767 src/xz/Makefile.am | 6 ++++-- 768 src/xzdec/Makefile.am | 6 ++++-- 769 3 files changed, 12 insertions(+), 6 deletions(-) 770 771commit 41322b2c60cd2c67a1053cb40d27e573420185b7 772Author: Lasse Collin <lasse.collin@tukaani.org> 773Date: 2025-02-17 18:25:52 +0200 774 775 m4/getopt.m4: Remove an outdated comment 776 777 m4/getopt.m4 | 3 --- 778 1 file changed, 3 deletions(-) 779 780commit 03c23a4952bce1b50a1d213ca2d1c15acd76a489 781Author: Lasse Collin <lasse.collin@tukaani.org> 782Date: 2025-02-17 18:11:58 +0200 783 784 Build: Allow forcing the use of the replacement getopt_long 785 786 Now one can pass gl_replace_getopt=yes to configure to force the use 787 of GNU getopt_long from the lib directory. This only checks that the 788 value of gl_replace_getopt is non-empty, so one cannot force the 789 replacement to be disabled. 790 791 Closes: https://github.com/tukaani-project/xz/pull/166 792 793 m4/getopt.m4 | 5 +++-- 794 1 file changed, 3 insertions(+), 2 deletions(-) 795 796commit c23b837d15960ecc0d537f0260f389904e1e7f02 797Author: Lasse Collin <lasse.collin@tukaani.org> 798Date: 2025-02-17 18:11:42 +0200 799 800 Update THANKS 801 802 THANKS | 1 + 803 1 file changed, 1 insertion(+) 804 805commit 2672a38f1159babf9ba3cca429f644bb823a8bdd 806Author: Lasse Collin <lasse.collin@tukaani.org> 807Date: 2025-02-12 19:23:31 +0200 808 809 Update THANKS 810 811 THANKS | 2 ++ 812 1 file changed, 2 insertions(+) 813 814commit 4fdcbfaf3f222299747c6a815762a74eeb1b0b23 815Author: Lasse Collin <lasse.collin@tukaani.org> 816Date: 2025-02-11 12:13:41 +0200 817 818 Update THANKS 819 820 THANKS | 3 +++ 821 1 file changed, 3 insertions(+) 822 823commit 0d553568f1af9a35779ecac41392a6c871786930 824Author: Lasse Collin <lasse.collin@tukaani.org> 825Date: 2025-02-08 11:39:08 +0200 826 827 Translations: Update the Polish translation 828 829 po/pl.po | 802 ++++++++++++++++++++++++++++++++++++--------------------------- 830 1 file changed, 464 insertions(+), 338 deletions(-) 831 832commit 9f165076aebb3b5115d2b6520529db8fa11a6bdd 833Author: Lasse Collin <lasse.collin@tukaani.org> 834Date: 2025-02-07 19:12:03 +0200 835 836 Docs: Update TODO a little 837 838 TODO | 22 ++++------------------ 839 1 file changed, 4 insertions(+), 18 deletions(-) 840 841commit f5aa292c534f87b9dd588e667d1c65ed31e5f289 842Author: Lasse Collin <lasse.collin@tukaani.org> 843Date: 2025-02-07 18:50:56 +0200 844 845 Add researcher credits of CVE-2022-1271 and CVE-2024-47611 to THANKS 846 847 These are specific phrases that were included in the advisories and 848 NEWS. It's nice to have them in THANKS as well. 849 850 THANKS | 4 ++++ 851 1 file changed, 4 insertions(+) 852 853commit 7cf463b5add70e3fb48a10de3965c8beb6c01ad9 854Author: Lasse Collin <lasse.collin@tukaani.org> 855Date: 2025-02-07 18:43:00 +0200 856 857 Update THANKS 858 859 THANKS | 5 +++++ 860 1 file changed, 5 insertions(+) 861 862commit 6b7fe7e27b77038592e2c2e31df955059dda7d1d 863Author: Lasse Collin <lasse.collin@tukaani.org> 864Date: 2025-02-04 14:12:46 +0200 865 866 Docs: Update the "Translations" section in README 867 868 Make it clearer that translations cannot be accepted if they don't 869 come via the Translation Project. 870 871 Column headings have been handled automatically for years and now --help 872 is autowrapped too, so the related instructions can be removed. 873 874 README | 107 ++++++++++++++++++++++++----------------------------------------- 875 1 file changed, 39 insertions(+), 68 deletions(-) 876 877commit 2c7aee94936babf84b61b55420e503a0b2629ec1 878Author: Lasse Collin <lasse.collin@tukaani.org> 879Date: 2025-02-04 13:23:53 +0200 880 881 debug/translations.bash: Revise a little 882 883 Make it work for out-of-tree builds without requiring one to specify 884 the location of the xz executable. 885 886 Add xz --filters-help. 887 888 Make the output shorter by reducing the number of xz -lvv test files. 889 890 Show the value of LANGUAGE environment variable. 891 892 Show the xz.git version using git describe --abbrev=8 instead of =4. 893 894 debug/translation.bash | 24 +++++++++++------------- 895 1 file changed, 11 insertions(+), 13 deletions(-) 896 897commit c6b15e7045209002bbbf4979c48072af01c20d8d 898Author: Lasse Collin <lasse.collin@tukaani.org> 899Date: 2025-02-04 13:20:52 +0200 900 901 Build: Use "git describe --abbrev=8" in snapshot tarball names 902 903 8 is more likely to be reproducible than the old 4 without being 904 excessively long for a small repository like this. 905 906 Makefile.am | 2 +- 907 1 file changed, 1 insertion(+), 1 deletion(-) 908 909commit 0ce97987c5b27cfb6f98984e5fd7477880e0cf33 910Author: Lasse Collin <lasse.collin@tukaani.org> 911Date: 2025-02-04 19:37:17 +0200 912 913 Update THANKS 914 915 THANKS | 2 ++ 916 1 file changed, 2 insertions(+) 917 918commit 353c33355cb12e5016d49052fd1e90d15568aa37 919Author: Lasse Collin <lasse.collin@tukaani.org> 920Date: 2025-02-03 16:29:31 +0200 921 922 Translations: Update the Serbian translation 923 924 po/sr.po | 805 ++++++++++++++++++++++++++++++++++++--------------------------- 925 1 file changed, 458 insertions(+), 347 deletions(-) 926 927commit 887dc281885052bced32b3aa309506ea58a2e78e 928Author: Lasse Collin <lasse.collin@tukaani.org> 929Date: 2025-02-03 16:15:38 +0200 930 931 Translations: Update Chinese (traditional) translation 932 933 Since there are no spaces between words, the unsophisticated automatic 934 word wrapping code needs some help. Compared to the version in the 935 Translation Project, I added a few \t characters which the word 936 wrapping code interprets as zero width spaces (hopefully they are 937 placed correctly). These edits can be seen with this command: 938 939 grep -v ^# po/zh_TW.po | grep --color -F '\t' 940 941 po/zh_TW.po | 843 +++++++++++++++++++++++++++++++++--------------------------- 942 1 file changed, 471 insertions(+), 372 deletions(-) 943 944commit 0f1454cf5f460a4095f47f8f73f5a290e9777d7f 945Author: Lasse Collin <lasse.collin@tukaani.org> 946Date: 2025-02-03 16:12:44 +0200 947 948 Update THANKS 949 950 THANKS | 2 ++ 951 1 file changed, 2 insertions(+) 952 953commit 23ea031820086d302a213be005a091df763b8a7b 954Author: Lasse Collin <lasse.collin@tukaani.org> 955Date: 2025-02-02 14:15:07 +0200 956 957 Build: Update posix-shell.m4 from Gnulib 958 959 Tabs have been converted to spaces and a "serial" number has been 960 added. The previous version was from 2008/2009. There are no functional 961 changes since then but now it's clearer that the copy in XZ Utils 962 isn't outdated. 963 964 The new file was picked from the Gnulib commit 965 81a4c1e3b7692e95c0806d948cbab9148ad85ef2. A later commit adds 966 a warranty disclaimer to the license, which obviously is fine, 967 but I didn't find a SPDX license identifier for the new license, 968 so for simplicity I used the earlier commit. 969 970 m4/posix-shell.m4 | 31 ++++++++++++++++--------------- 971 1 file changed, 16 insertions(+), 15 deletions(-) 972 973commit 84c33c0384aa4604ff7956f2fae6f83ea60ba96b 974Author: Lasse Collin <lasse.collin@tukaani.org> 975Date: 2025-02-02 12:51:03 +0200 976 977 Build: Check for -fsanitize= also in $CC 978 979 People may put -fsanitize in CC instead of CFLAGS so check both. 980 Landlock sandbox isn't compatible with sanitizers so it's nice 981 to catch the incompatible options at configure time. 982 983 Don't attempt to do the same in CMakeLists.txt; the check for 984 CMAKE_C_FLAGS / CFLAGS shall be enough there. The extra flags from 985 the CC environment variable go into the undocumented internal variable 986 CMAKE_C_COMPILER_ARG1 (all flags from CC go into that same variable). 987 Peeking the internal variable merely for improved diagnostics isn't 988 worth it. 989 990 Fixes: 88588b1246d8c26ffbc138b3e5c413c5f14c3179 991 992 configure.ac | 5 +++-- 993 1 file changed, 3 insertions(+), 2 deletions(-) 994 995commit a7304ea4a7daede9789a8fe422b714e372737120 996Author: Lasse Collin <lasse.collin@tukaani.org> 997Date: 2023-09-26 19:11:20 +0300 998 999 Build: Remove the FIXME about -Werror checks 1000 1001 configure.ac | 7 ------- 1002 1 file changed, 7 deletions(-) 1003 1004commit 1780bba74075da5e7764615bd323e95e19057dee 1005Author: Lasse Collin <lasse.collin@tukaani.org> 1006Date: 2023-09-26 19:10:51 +0300 1007 1008 Build: If using a GCC compatible compiler, ensure that -Werror works 1009 1010 The check can be skipped by passing SKIP_WERROR_CHECK=yes to configure. 1011 It won't be documented anywhere else than in the error message. 1012 1013 Ways to test: 1014 1015 ./configure CC=gcc CFLAGS=-Wunused-macros 1016 ./configure CC=clang CFLAGS=-Weverything 1017 ./configure CC=clang CFLAGS=-Weverything SKIP_WERROR_CHECK=yes 1018 1019 configure.ac | 26 ++++++++++++++++++++++++++ 1020 1 file changed, 26 insertions(+) 1021 1022commit 3aca2daefbdedd7cc0fb75ddde6b714273b1cc1d 1023Author: Lasse Collin <lasse.collin@tukaani.org> 1024Date: 2025-02-02 14:30:15 +0200 1025 1026 Update THANKS 1027 1028 THANKS | 4 ++++ 1029 1 file changed, 4 insertions(+) 1030 1031commit 186ff78ab40ceb07cde139506cab42a927ca99d2 1032Author: Lasse Collin <lasse.collin@tukaani.org> 1033Date: 2025-02-01 12:49:09 +0200 1034 1035 Translations: Update Romanian translation 1036 1037 po/ro.po | 12 ++++++------ 1038 1 file changed, 6 insertions(+), 6 deletions(-) 1039 1040commit 40a8ce3e10747ca5233610cc2cb704fc303c48e4 1041Author: Lasse Collin <lasse.collin@tukaani.org> 1042Date: 2025-01-30 18:16:43 +0200 1043 1044 Translations: Update Korean man page translations 1045 1046 po4a/ko.po | 146 ++++++++++++++++++++++++------------------------------------- 1047 1 file changed, 56 insertions(+), 90 deletions(-) 1048 1049commit 1787f9bd18ea8798d64b636cdefe6d0fda9b8f72 1050Author: Lasse Collin <lasse.collin@tukaani.org> 1051Date: 2025-01-30 18:15:52 +0200 1052 1053 Translations: Add Italian man page translations 1054 1055 po4a/it.po | 3876 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1056 po4a/po4a.conf | 2 +- 1057 2 files changed, 3877 insertions(+), 1 deletion(-) 1058 1059commit 9b9182e561787a811fc0178489589f28c3e0174c 1060Author: Lasse Collin <lasse.collin@tukaani.org> 1061Date: 2025-01-29 22:18:29 +0200 1062 1063 Translations: Update the Finnish translation 1064 1065 po/fi.po | 13 +++++++------ 1066 1 file changed, 7 insertions(+), 6 deletions(-) 1067 1068commit 7d73ff7a9d8eab6270f0b1ff7d10c0aa6f5ba53f 1069Author: Lasse Collin <lasse.collin@tukaani.org> 1070Date: 2025-01-29 20:50:03 +0200 1071 1072 lzmainfo: Use tuklib_mbstr_wrap for --help text 1073 1074 Some languages have so long strings that they need to be wrapped. 1075 1076 CMakeLists.txt | 4 ++++ 1077 src/lzmainfo/Makefile.am | 2 ++ 1078 src/lzmainfo/lzmainfo.c | 36 ++++++++++++++++++++++++++---------- 1079 3 files changed, 32 insertions(+), 10 deletions(-) 1080 1081commit c56eb4707627d700695813fccdddd1483eac4f21 1082Author: Lasse Collin <lasse.collin@tukaani.org> 1083Date: 2025-01-29 20:00:06 +0200 1084 1085 Translations: Update the Croatian translation 1086 1087 po/hr.po | 926 ++++++++++++++++++++++++++++++++++++--------------------------- 1088 1 file changed, 529 insertions(+), 397 deletions(-) 1089 1090commit 69f4aec0a2442ab81f9ab66e5871a6546aefb0fc 1091Author: Lasse Collin <lasse.collin@tukaani.org> 1092Date: 2025-01-29 19:56:01 +0200 1093 1094 Translations: Update the Finnish translation 1095 1096 po/fi.po | 911 +++++++++++++++++++++++++++++++++------------------------------ 1097 1 file changed, 483 insertions(+), 428 deletions(-) 1098 1099commit d49dde33cf5f488bb38b1f57e172c4e3343fb383 1100Author: Lasse Collin <lasse.collin@tukaani.org> 1101Date: 2025-01-29 19:55:27 +0200 1102 1103 Translations: Update the German man page translations 1104 1105 po4a/de.po | 147 +++++++++++++++++++++++-------------------------------------- 1106 1 file changed, 55 insertions(+), 92 deletions(-) 1107 1108commit 23b99fc4a1f35bec5d63ffd02b14cacbdce9fe3c 1109Author: Lasse Collin <lasse.collin@tukaani.org> 1110Date: 2025-01-29 19:55:17 +0200 1111 1112 Translations: Update the German translation 1113 1114 po/de.po | 825 +++++++++++++++++++++++++++++++++++---------------------------- 1115 1 file changed, 460 insertions(+), 365 deletions(-) 1116 1117commit 7edab2bde0606b42229d9c04fe664069e38de3fb 1118Author: Lasse Collin <lasse.collin@tukaani.org> 1119Date: 2025-01-29 19:55:05 +0200 1120 1121 Translations: Update the Turkish translation 1122 1123 po/tr.po | 892 +++++++++++++++++++++++++++++++++++---------------------------- 1124 1 file changed, 490 insertions(+), 402 deletions(-) 1125 1126commit fac4d0fa5277d7a1f621707621ee9516f0bdbac5 1127Author: Lasse Collin <lasse.collin@tukaani.org> 1128Date: 2025-01-29 19:54:36 +0200 1129 1130 Translations: Add the Dutch translation 1131 1132 po/LINGUAS | 1 + 1133 po/nl.po | 1268 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1134 2 files changed, 1269 insertions(+) 1135 1136commit abe5092f24b55dde9f7f78fac1bf810bce173273 1137Author: Lasse Collin <lasse.collin@tukaani.org> 1138Date: 2025-01-29 19:53:50 +0200 1139 1140 Translations: Update the Georgian translation 1141 1142 po/ka.po | 153 +++++++++++++++++++++++++++++++++++++++++++++++---------------- 1143 1 file changed, 115 insertions(+), 38 deletions(-) 1144 1145commit b97b23c78d8100eec363c3e999c511560366d347 1146Author: Lasse Collin <lasse.collin@tukaani.org> 1147Date: 2025-01-29 19:53:21 +0200 1148 1149 Translations: Update the Spanish translation 1150 1151 po/es.po | 824 ++++++++++++++++++++++++++++++++++----------------------------- 1152 1 file changed, 450 insertions(+), 374 deletions(-) 1153 1154commit c68318cb49e0562bd22e88724ce85e76c6789a3a 1155Author: Lasse Collin <lasse.collin@tukaani.org> 1156Date: 2025-01-29 19:53:06 +0200 1157 1158 Translations: Update the Korean translation 1159 1160 po/ko.po | 785 +++++++++++++++++++++++++++++++++++++-------------------------- 1161 1 file changed, 460 insertions(+), 325 deletions(-) 1162 1163commit 153ee17f635962a474499f786ea1de1e1a2bb276 1164Author: Lasse Collin <lasse.collin@tukaani.org> 1165Date: 2025-01-29 19:52:42 +0200 1166 1167 Translations: Update the Romanian man page translations 1168 1169 po4a/ro.po | 141 +++++++++++++++++++++++-------------------------------------- 1170 1 file changed, 54 insertions(+), 87 deletions(-) 1171 1172commit 6ed308197e1f9d6c7a5cfe5aae301e75544017c4 1173Author: Lasse Collin <lasse.collin@tukaani.org> 1174Date: 2025-01-29 19:51:59 +0200 1175 1176 Translations: Update the Romanian translation 1177 1178 po/ro.po | 818 +++++++++++++++++++++++++++++++++++---------------------------- 1179 1 file changed, 461 insertions(+), 357 deletions(-) 1180 1181commit 06028803e19219f642aa9abddd3525c43594ec6c 1182Author: Lasse Collin <lasse.collin@tukaani.org> 1183Date: 2025-01-29 19:50:50 +0200 1184 1185 Translations: Update the Ukrainian man page translations 1186 1187 po4a/uk.po | 142 +++++++++++++++++++++++-------------------------------------- 1188 1 file changed, 54 insertions(+), 88 deletions(-) 1189 1190commit 8cbaf896a65a53c1d1e7e2ffc80d6ea216b1e8df 1191Author: Lasse Collin <lasse.collin@tukaani.org> 1192Date: 2025-01-29 19:50:26 +0200 1193 1194 Translations: Update the Ukrainian translation 1195 1196 po/uk.po | 813 ++++++++++++++++++++++++++++++++++++--------------------------- 1197 1 file changed, 460 insertions(+), 353 deletions(-) 1198 1199commit 81c352907b8048b97d9868947026701a49f377ef 1200Author: Lasse Collin <lasse.collin@tukaani.org> 1201Date: 2025-01-29 19:48:43 +0200 1202 1203 Translations: Update the Swedish translation 1204 1205 po/sv.po | 847 ++++++++++++++++++++++++++++++++++----------------------------- 1206 1 file changed, 462 insertions(+), 385 deletions(-) 1207 1208commit 999ce263718a52ba74245c3e2a416ab11494d1b1 1209Author: Lasse Collin <lasse.collin@tukaani.org> 1210Date: 2025-01-28 16:33:32 +0200 1211 1212 tuklib_physmem: Clean up disabled code 1213 1214 src/common/tuklib_physmem.c | 9 +-------- 1215 1 file changed, 1 insertion(+), 8 deletions(-) 1216 1217commit 4d7e7c9d94f7a5ad4931a5bbd6ed9d00173fa1ab 1218Author: Lasse Collin <lasse.collin@tukaani.org> 1219Date: 2025-01-28 16:28:18 +0200 1220 1221 Windows: Avoid an error message on broken pipe 1222 1223 Also make xz not process more input files after a broken pipe has 1224 been detected. This matches the behavior on POSIX. If all files 1225 are being written to standard output, trying with the next file is 1226 pointless when it's known that standard output won't accept more data. 1227 1228 xzdec already stopped after the first error. It does so with all 1229 errors, so it differs from xz: 1230 1231 $ xz -dc not_found_1 not_found_2 1232 xz: not_found_1: No such file or directory 1233 xz: not_found_2: No such file or directory 1234 1235 $ xzdec not_found_1 not_found_2 1236 xzdec: not_found_1: No such file or directory 1237 1238 Reported-by: Vincent Torri 1239 1240 src/xz/file_io.c | 13 +++++++++++++ 1241 src/xzdec/xzdec.c | 11 ++++++++++- 1242 2 files changed, 23 insertions(+), 1 deletion(-) 1243 1244commit 95b638480aa8203e547c709c651f421c22db1718 1245Author: Lasse Collin <lasse.collin@tukaani.org> 1246Date: 2025-01-23 19:59:17 +0200 1247 1248 doc/SHA256SUMS: Add 5.6.4 and 5.7.1alpha 1249 1250 doc/SHA256SUMS | 9 +++++++++ 1251 1 file changed, 9 insertions(+) 1252 1253commit cdae0df31e4c2dfb1e885941cd1998e5a2b6e39d 1254Author: Lasse Collin <lasse.collin@tukaani.org> 1255Date: 2025-01-23 11:50:42 +0200 1256 1257 Bump version and soname for 5.7.1alpha 1258 1259 src/liblzma/Makefile.am | 2 +- 1260 src/liblzma/api/lzma/version.h | 2 +- 1261 src/liblzma/liblzma_generic.map | 2 +- 1262 src/liblzma/liblzma_linux.map | 2 +- 1263 4 files changed, 4 insertions(+), 4 deletions(-) 1264 1265commit 4d2af2c43bae25ef4ef9cd88304471d4859aa322 1266Author: Lasse Collin <lasse.collin@tukaani.org> 1267Date: 2025-01-23 11:48:43 +0200 1268 1269 Translations: Run po4a/update-po 1270 1271 po4a/de.po | 64 +++++++++++++++++++++++++++++++++++++++++++++++++---------- 1272 po4a/fr.po | 57 +++++++++++++++++++++++++++++++++++++++++++++++----- 1273 po4a/ko.po | 64 +++++++++++++++++++++++++++++++++++++++++++++++++---------- 1274 po4a/pt_BR.po | 57 +++++++++++++++++++++++++++++++++++++++++++++++----- 1275 po4a/ro.po | 64 +++++++++++++++++++++++++++++++++++++++++++++++++---------- 1276 po4a/uk.po | 64 +++++++++++++++++++++++++++++++++++++++++++++++++---------- 1277 6 files changed, 320 insertions(+), 50 deletions(-) 1278 1279commit ff0b825505e60e21b32e33c42f551c8f34ba393f 1280Author: Lasse Collin <lasse.collin@tukaani.org> 1281Date: 2025-01-23 11:40:46 +0200 1282 1283 Add NEWS for 5.7.1alpha 1284 1285 NEWS | 107 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1286 1 file changed, 107 insertions(+) 1287 1288commit f6cd3e3bfc8d1f5a76dd55170968bf4582b95baf 1289Author: Lasse Collin <lasse.collin@tukaani.org> 1290Date: 2025-01-23 11:40:46 +0200 1291 1292 Add NEWS for 5.6.4 1293 1294 NEWS | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1295 1 file changed, 45 insertions(+) 1296 1297commit b3af3297e4d6cf0eafb48155aa97bb06c82a9228 1298Author: Lasse Collin <lasse.collin@tukaani.org> 1299Date: 2025-01-23 11:40:46 +0200 1300 1301 NEWS: The security fix in 5.6.3 is known as CVE-2024-47611 1302 1303 NEWS | 4 +++- 1304 1 file changed, 3 insertions(+), 1 deletion(-) 1305 1306commit a04b9dd0c7c74fabd8c393d2dc68a221276d6e29 1307Author: Lasse Collin <lasse.collin@tukaani.org> 1308Date: 2025-01-22 16:55:09 +0200 1309 1310 windows/build.bash: Fix error message 1311 1312 Fixes: 1ee716f74085223c8fbcae1d5a384e6bf53c0f6a 1313 1314 windows/build.bash | 2 +- 1315 1 file changed, 1 insertion(+), 1 deletion(-) 1316 1317commit 4eae859ae8ad7072eaa74aeaee79a2c3c12c55cb 1318Author: Lasse Collin <lasse.collin@tukaani.org> 1319Date: 2025-01-22 15:03:55 +0200 1320 1321 Windows: Disable MinGW-w64's stdio functions in size-optimized builds 1322 1323 This only affects builds with UCRT. With legacy MSVCRT, the replacement 1324 functions are always enabled. 1325 1326 Omitting the MinGW-w64 replacements saves over 20 KiB per executable. 1327 The downside is that --enable-small or XZ_SMALL=ON disables thousand 1328 separator support in xz messages. If someone is OK with the slower 1329 speed of slightly smaller builds, lack of thousand separators won't 1330 matter. 1331 1332 Don't override __USE_MINGW_ANSI_STDIO if it is already defined (via 1333 CPPFLAGS or such method). 1334 1335 src/common/sysdefs.h | 30 +++++++++++++++++++++--------- 1336 src/xz/util.c | 6 +++++- 1337 2 files changed, 26 insertions(+), 10 deletions(-) 1338 1339commit a831bc185bdd44c06847eae8df2d35cc281f65da 1340Author: Lasse Collin <lasse.collin@tukaani.org> 1341Date: 2025-01-20 16:44:27 +0200 1342 1343 liblzma: Add raw ARM64, RISC-V, and x86 BCJ filter APIs 1344 1345 Put them behind the LZMA_UNSTABLE macro for now. 1346 1347 These low-level special APIs might become useful in erofs-utils. 1348 1349 src/liblzma/api/lzma/bcj.h | 99 +++++++++++++++++++++++++++++++++++++++++ 1350 src/liblzma/common/common.h | 2 + 1351 src/liblzma/liblzma_generic.map | 10 +++++ 1352 src/liblzma/liblzma_linux.map | 10 +++++ 1353 src/liblzma/simple/arm64.c | 18 ++++++++ 1354 src/liblzma/simple/riscv.c | 18 ++++++++ 1355 src/liblzma/simple/x86.c | 24 ++++++++++ 1356 7 files changed, 181 insertions(+) 1357 1358commit 6f5cdd4534faf7db4b6c123651d6a606bc59b98c 1359Author: Lasse Collin <lasse.collin@tukaani.org> 1360Date: 2025-01-20 16:31:49 +0200 1361 1362 xz: Unify a few strings with liblzma 1363 1364 Avoid having both "%s: foo" and "foo" as translatable strings 1365 so that translators don't need to handle it twice. 1366 1367 src/xz/options.c | 11 ++++++----- 1368 src/xz/util.c | 4 ++-- 1369 2 files changed, 8 insertions(+), 7 deletions(-) 1370 1371commit 713fdaa8b06a83f18b06811aba7b9bd7b7cbf1cb 1372Author: Lasse Collin <lasse.collin@tukaani.org> 1373Date: 2025-01-20 16:31:49 +0200 1374 1375 xz: Translate error messages from lzma_str_to_filters() 1376 1377 liblzma doesn't use gettext but the messages are included in xz.pot, 1378 so xz can translate the messages. 1379 1380 src/xz/coder.c | 9 +++------ 1381 1 file changed, 3 insertions(+), 6 deletions(-) 1382 1383commit f2e2b267cab8d7aa0b0a58c325546ee5070c0028 1384Author: Lasse Collin <lasse.collin@tukaani.org> 1385Date: 2025-01-20 16:31:49 +0200 1386 1387 liblzma: Mark string conversion messages as translatable 1388 1389 po/POTFILES.in | 1 + 1390 src/liblzma/common/string_conversion.c | 96 ++++++++++++++++++++-------------- 1391 2 files changed, 59 insertions(+), 38 deletions(-) 1392 1393commit f49d7413d9a0d480ded6d448c1ef7475ae6cd1c9 1394Author: Lasse Collin <lasse.collin@tukaani.org> 1395Date: 2025-01-20 16:31:35 +0200 1396 1397 liblzma: Tweak a few error messages in lzma_str_to_filters() 1398 1399 src/liblzma/common/string_conversion.c | 9 +++++---- 1400 1 file changed, 5 insertions(+), 4 deletions(-) 1401 1402commit da359c360e986b21cd8d7b888c6a80f56b9d49c7 1403Author: Lasse Collin <lasse.collin@tukaani.org> 1404Date: 2025-01-19 20:11:54 +0200 1405 1406 Update THANKS 1407 1408 THANKS | 1 + 1409 1 file changed, 1 insertion(+) 1410 1411commit f032373561cefaf07f92ffe3fbc471ec6770456e 1412Author: Lasse Collin <lasse.collin@tukaani.org> 1413Date: 2025-01-19 19:40:32 +0200 1414 1415 Update THANKS 1416 1417 THANKS | 1 + 1418 1 file changed, 1 insertion(+) 1419 1420commit 51f038f8cbd5d8a95954c05bfcbbc32f2a313615 1421Author: Lasse Collin <lasse.collin@tukaani.org> 1422Date: 2025-01-13 08:44:58 +0200 1423 1424 liblzma: memcmplen.h: Use 8-byte method on 64-bit unaligned archs 1425 1426 Previously it was enabled only on x86-64 and ARM64 when also support 1427 for unaligned access was detected or manually enabled at built time. 1428 1429 In the default build configuration, the 8-byte method is now enabled 1430 also on 64-bit RISC-V and 64-bit PowerPC (both endiannesses). It was 1431 reported that on big endian POWER9, encoding time may reduce 12-13 %. 1432 1433 This change only affects builds with GCC and Clang because the code 1434 uses __builtin_ctzll or __builtin_clzll. 1435 1436 Thanks to Marcus Comstedt for testing on POWER9. 1437 1438 src/liblzma/common/memcmplen.h | 3 +-- 1439 1 file changed, 1 insertion(+), 2 deletions(-) 1440 1441commit 96336b0110d47756a9fd2a103fbf0a99e905fbed 1442Author: Lasse Collin <lasse.collin@tukaani.org> 1443Date: 2025-01-12 13:06:17 +0200 1444 1445 Update THANKS 1446 1447 THANKS | 1 + 1448 1 file changed, 1 insertion(+) 1449 1450commit 150356207c8d6a3e0af465b676430d19d62f884c 1451Author: Lasse Collin <lasse.collin@tukaani.org> 1452Date: 2025-01-12 12:59:20 +0200 1453 1454 liblzma: Fix the encoder breakage on big endian ARM64 1455 1456 When the 8-byte method was enabled for ARM64, a check for endianness 1457 wasn't added. This broke the LZMA/LZMA2 encoder. Test suite caught it. 1458 1459 Fixes: cd64dd70d5665b6048829c45772d08606f44672e 1460 Co-authored-by: Marcus Comstedt <marcus@mc.pp.se> 1461 1462 src/liblzma/common/memcmplen.h | 9 +++++++-- 1463 1 file changed, 7 insertions(+), 2 deletions(-) 1464 1465commit b01b0958025a2da284b53a583f313f8140636cb5 1466Author: Lasse Collin <lasse.collin@tukaani.org> 1467Date: 2025-01-12 11:04:27 +0200 1468 1469 Windows: Update manifest comments about long UTF-8 filenames 1470 1471 src/common/w32_application.manifest.comments.txt | 23 +++++++++++++++-------- 1472 1 file changed, 15 insertions(+), 8 deletions(-) 1473 1474commit 0dfc67d37ebb038be8a9b17b536d1b561d52e81a 1475Author: Lasse Collin <lasse.collin@tukaani.org> 1476Date: 2025-01-12 10:47:58 +0200 1477 1478 Windows: Update build.bash and its README-Windows.txt to UCRT 1479 1480 While MSVCRT builds are possible, UCRT works better with UTF-8. 1481 A 32-bit build is included still but hopefully it's not actually 1482 needed anymore. 1483 1484 windows/README-Windows.txt | 17 ++++++++--------- 1485 windows/build.bash | 20 ++++++++++++++------ 1486 2 files changed, 22 insertions(+), 15 deletions(-) 1487 1488commit 7b3eb2db6c4ba24b5eb438e58ab1ca57e14e59c2 1489Author: Lasse Collin <lasse.collin@tukaani.org> 1490Date: 2025-01-10 13:11:40 +0200 1491 1492 Translations: Update Serbian translation 1493 1494 I rewrapped a few overlong lines. Those edits aren't in the 1495 Translation Project. Automatic wrapping in the master branch 1496 means that these strings need to be updated soon anyway. 1497 1498 po/sr.po | 346 ++++++++++++++++++++++----------------------------------------- 1499 1 file changed, 121 insertions(+), 225 deletions(-) 1500 1501commit 950da11ce09c90412dcbca29689575037640667a 1502Author: Lasse Collin <lasse.collin@tukaani.org> 1503Date: 2025-01-08 19:26:29 +0200 1504 1505 Build: Use --sort=name in TAR_OPTIONS 1506 1507 Use also LC_COLLATE=C to make the sorting locale-independent. 1508 Sorting makes the file order reproducible. 1509 1510 Makefile.am | 3 ++- 1511 1 file changed, 2 insertions(+), 1 deletion(-) 1512 1513commit 75d91d6b39ea3e2fae8f027dcec01be2dca9594d 1514Author: Lasse Collin <lasse.collin@tukaani.org> 1515Date: 2025-01-08 19:08:08 +0200 1516 1517 xz: Workaround broken O_SEARCH in musl 1518 1519 Testing with musl 1.2.5 and Linux 6.12, O_SEARCH doesn't result 1520 in a file descriptor that works with fsync() although it should work. 1521 See the added comment. 1522 1523 The same issue affected gzip --synchronous: 1524 1525 https://bugs.gnu.org/75405 1526 1527 Thanks to Paul Eggert. 1528 1529 src/xz/file_io.c | 11 +++++++++++ 1530 1 file changed, 11 insertions(+) 1531 1532commit ea92eae122a3ccefa61087f84fd99b417fc9ee3c 1533Author: Lasse Collin <lasse.collin@tukaani.org> 1534Date: 2025-01-07 21:34:33 +0200 1535 1536 Revert "xz: O_SEARCH cannot be used for fsync()" 1537 1538 This reverts commit 4014e2479c7b0273f15bd0c9c017c5fe859b0d8f. 1539 1540 POSIX-conforming O_SEARCH should allow fsync(). 1541 1542 src/xz/file_io.c | 21 +++++++++++---------- 1543 1 file changed, 11 insertions(+), 10 deletions(-) 1544 1545commit 4014e2479c7b0273f15bd0c9c017c5fe859b0d8f 1546Author: Lasse Collin <lasse.collin@tukaani.org> 1547Date: 2025-01-05 21:43:11 +0200 1548 1549 xz: O_SEARCH cannot be used for fsync() 1550 1551 Opening a directory with O_SEARCH results in a file descriptor that can 1552 be used with functions like openat(). Such a file descriptor cannot be 1553 used with fsync(). Use O_RDONLY instead. 1554 1555 In musl, O_SEARCH becomes Linux-specific O_PATH. A file descriptor 1556 from O_PATH doesn't allow fsync(). 1557 1558 Seems that it's not possible to fsync() a directory that has write 1559 and search permissions but not read permission. 1560 1561 Fixes: 2a9e91d796d091740489d951fa7780525e4275f1 1562 1563 src/xz/file_io.c | 21 ++++++++++----------- 1564 1 file changed, 10 insertions(+), 11 deletions(-) 1565 1566commit ad2b57cb477b753293c25a01fc24c7f84ee523c2 1567Author: Lasse Collin <lasse.collin@tukaani.org> 1568Date: 2025-01-05 20:48:28 +0200 1569 1570 CI: Make ctest show errors from failed tests 1571 1572 build-aux/ci_build.bash | 2 +- 1573 1 file changed, 1 insertion(+), 1 deletion(-) 1574 1575commit c405264c031aceaf68dfd1546d6337afcebd48e5 1576Author: Lasse Collin <lasse.collin@tukaani.org> 1577Date: 2025-01-05 20:14:49 +0200 1578 1579 tuklib_mbstr_nonprint: Preserve the value of errno 1580 1581 A typical use case is like this: 1582 1583 printf("%s: %s\n", tuklib_mask_nonprint(filename), strerror(errno)); 1584 1585 tuklib_mask_nonprint() may call mbrtowc() and malloc() which may modify 1586 errno. If errno isn't preserved, the error message might be wrong if 1587 a compiler decides to call tuklib_mask_nonprint() before strerror(). 1588 1589 Fixes: 40e573305535960574404d2eae848b248c95ea7e 1590 1591 src/common/tuklib_mbstr_nonprint.c | 17 ++++++++++++++--- 1592 src/common/tuklib_mbstr_nonprint.h | 4 +++- 1593 2 files changed, 17 insertions(+), 4 deletions(-) 1594 1595commit 2a9e91d796d091740489d951fa7780525e4275f1 1596Author: Lasse Collin <lasse.collin@tukaani.org> 1597Date: 2025-01-05 20:14:49 +0200 1598 1599 xz: Use fsync() before deleting the input file, and add --no-sync 1600 1601 xz's default behavior is to delete the input file after successful 1602 compression or decompression (unless writing to standard output). 1603 If the system crashes soon after the deletion, it is possible that 1604 the newly written file has not yet hit the disk while the previous 1605 delete operation might have. In that case neither the original file 1606 nor the written file is available. 1607 1608 Call fsync() on the file. On POSIX systems, sync also the directory 1609 where the file was created. 1610 1611 Add a new option --no-sync which disables fsync() usage. It can avoid 1612 a (possibly significant) performance penalty when processing many 1613 small files. It's fine to use --no-sync when one knows that the files 1614 are easy to recreate or restore after a system crash. 1615 1616 Using fsync() after every flush initiated by --flush-timeout was 1617 considered. It wasn't implemented at least for now. 1618 1619 - --flush-timeout is typically used when writing to stdout. If stdout 1620 is a file, xz cannot (portably) sync the directory of the file. 1621 One would need to create the output file first, sync the directory, 1622 and then run xz with fsync() enabled. 1623 1624 - If xz --flush-timeout output goes to a file, it's possible to use 1625 a separate script to sync the file, for example, once per minute 1626 while telling xz to flush more frequently. 1627 1628 - Not supporting syncing with --flush-timeout was simpler. 1629 1630 Portability notes: 1631 1632 - On systems that lack O_SEARCH (like Linux), "xz dir/file" will now 1633 fail if "dir" cannot be opened for reading. If "dir" still has 1634 write and search permissions (like d-wx------ in "ls -l"), 1635 previously xz would have been able to compress "dir/file" still. 1636 Now it only works if using --no-sync (or --keep or --stdout). 1637 1638 - <libgen.h> and dirname() should be available on all POSIX systems, 1639 and aren't needed on non-POSIX systems. 1640 1641 - fsync() is available on all POSIX systems. The directory syncing 1642 could be changed to fdatasync() although at least on ext4 it 1643 doesn't seem to make a performance difference in xz's usage. 1644 fdatasync() would need a build system check to support (old) 1645 special cases, for example, MINIX 3.3.0 doesn't have fdatasync() 1646 and Solaris 10 needs -lrt. 1647 1648 - On native Windows, _commit() is used to replace fsync(). Directory 1649 syncing isn't done and shouldn't be needed. (In Cygwin, fsync() on 1650 directories is a no-op.) 1651 1652 - DJGPP has fsync() for files. ;-) 1653 1654 Using fsync() was considered somewhere around 2009 and again in 2016 but 1655 those times the idea was rejected. For comparison, GNU gzip 1.7 (2016) 1656 added the option --synchronous which enables fsync(). 1657 1658 Co-authored-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc> 1659 Fixes: https://bugs.debian.org/814089 1660 Link: https://www.mail-archive.com/xz-devel@tukaani.org/msg00282.html 1661 Closes: https://github.com/tukaani-project/xz/pull/151 1662 1663 src/xz/args.c | 14 ++++++ 1664 src/xz/args.h | 2 +- 1665 src/xz/file_io.c | 129 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1666 src/xz/file_io.h | 6 +++ 1667 src/xz/message.c | 3 ++ 1668 src/xz/sandbox.c | 5 ++- 1669 src/xz/xz.1 | 24 ++++++++++- 1670 7 files changed, 177 insertions(+), 6 deletions(-) 1671 1672commit 2e28c7145747b3287283f13c9d2becd73a7c4a1f 1673Author: Lasse Collin <lasse.collin@tukaani.org> 1674Date: 2024-12-27 09:15:50 +0200 1675 1676 xz: Use "goto" for error handling in io_open_dest_real() 1677 1678 src/xz/file_io.c | 20 +++++++++----------- 1679 1 file changed, 9 insertions(+), 11 deletions(-) 1680 1681commit 75107217670a97b7b772833669d88c3c2f188e37 1682Author: Lasse Collin <lasse.collin@tukaani.org> 1683Date: 2025-01-05 12:10:05 +0200 1684 1685 liblzma: Always validate the first digit of a preset string 1686 1687 lzma_str_to_filters() may call parse_lzma12_preset() in two ways. The 1688 call from str_to_filters() detects the string type from the first 1689 character(s) and as a side-effect it validates the first digit of 1690 the preset string. So this change makes no difference there. 1691 1692 However, the call from parse_options() doesn't pre-validate the string. 1693 parse_lzma12_preset() will return an invalid value which is passed to 1694 lzma_lzma_preset() which safely rejects it. The bug still affects the 1695 the error message: 1696 1697 $ xz --filters=lzma2:preset=X 1698 xz: Error in --filters=FILTERS option: 1699 xz: lzma2:preset=X 1700 xz: ^ 1701 xz: Unsupported preset 1702 1703 After the fix: 1704 1705 $ xz --filters=lzma2:preset=X 1706 xz: Error in --filters=FILTERS option: 1707 xz: lzma2:preset=X 1708 xz: ^ 1709 xz: Unsupported preset 1710 1711 The ^ now correctly points to the X and not past it because the X itself 1712 is the problematic character. 1713 1714 Fixes: cedeeca2ea6ada5b0411b2ae10d7a859e837f203 1715 1716 src/liblzma/common/string_conversion.c | 4 ++++ 1717 1 file changed, 4 insertions(+) 1718 1719commit 52ff32433734d03befd85a5bf00fba77d6501455 1720Author: Lasse Collin <lasse.collin@tukaani.org> 1721Date: 2025-01-05 11:40:34 +0200 1722 1723 xz: Fix getopt_long argument type in --filters* 1724 1725 Forgetting the argument (or not using = to separate the option from 1726 the argument) resulted in lzma_str_to_filters() being called with NULL 1727 as input string argument. The function handles it fine but xz passes 1728 the NULL to printf() too: 1729 1730 $ xz --filters 1731 xz: Error in --filters=FILTERS option: 1732 xz: (null) 1733 xz: ^ 1734 xz: Unexpected NULL pointer argument(s) to lzma_str_to_filters() 1735 1736 Now it's correct: 1737 1738 $ xz --filters 1739 xz: option '--filters' requires an argument 1740 1741 The --filters-help option doesn't take any arguments. 1742 1743 Fixes: 9ded880a0221f4d1256845fc4ab957ffd377c760 1744 Fixes: d6af7f347077b22403133239592e478931307759 1745 Fixes: a165d7df1964121eb9df715e6f836a31c865beef 1746 1747 src/xz/args.c | 22 +++++++++++----------- 1748 1 file changed, 11 insertions(+), 11 deletions(-) 1749 1750commit 2655c81b5e92278b0fd51f6537c1116f8349b02a 1751Author: Lasse Collin <lasse.collin@tukaani.org> 1752Date: 2025-01-04 20:04:56 +0200 1753 1754 xzdec: Don't leave Landlock file descriptor open for no reason 1755 1756 This fix is similar to 48ff3f06521ca326996ab9a04d1b342098960427. 1757 1758 Fixes: d74fb5f060b76db709b50f5fd37490394e52f975 1759 1760 src/xzdec/xzdec.c | 2 ++ 1761 1 file changed, 2 insertions(+) 1762 1763commit 35df4c2bc0500e60ba9d0d163d37a6d110d6841e 1764Author: Lasse Collin <lasse.collin@tukaani.org> 1765Date: 2025-01-04 20:02:18 +0200 1766 1767 xz: Make --single-stream imply --keep 1768 1769 Suggested by xx on #tukaani on 2024-04-12. 1770 1771 src/xz/args.c | 3 +++ 1772 src/xz/xz.1 | 9 ++++++++- 1773 2 files changed, 11 insertions(+), 1 deletion(-) 1774 1775commit 6f412814a8019700248229ce972530159a0d9872 1776Author: Lasse Collin <lasse.collin@tukaani.org> 1777Date: 2025-01-04 19:57:07 +0200 1778 1779 Update AUTHORS 1780 1781 The contributions have been rewritten. 1782 1783 AUTHORS | 2 +- 1784 src/liblzma/check/crc32_arm64.h | 1 - 1785 src/liblzma/check/crc32_fast.c | 1 - 1786 src/liblzma/check/crc_common.h | 1 - 1787 4 files changed, 1 insertion(+), 4 deletions(-) 1788 1789commit 5651d153031a7ee2581cdba9bff658031826cb50 1790Author: Lasse Collin <lasse.collin@tukaani.org> 1791Date: 2025-01-04 15:02:16 +0200 1792 1793 xz: Avoid printf formats like %2$s 1794 1795 It's a POSIX feature that isn't in standard C. It's not available on 1796 Windows. Even MinGW-w64 with __USE_MINGW_ANSI_STDIO doesn't support 1797 it even though it supports POSIX %'d for thousand separators. 1798 1799 Gettext's <libintl.h> provides overrides for printf and other functions 1800 which do support the %2$s formats. Translations use them. But xz should 1801 work on Windows without <libintl.h> too. 1802 1803 Fixes: 3e9177fd206d20d6d8acc7d203c25a9ae0549229 1804 1805 src/xz/message.c | 51 ++++++++++++++++++++++++++++++++------------------- 1806 1 file changed, 32 insertions(+), 19 deletions(-) 1807 1808commit 63b246c90e7677c617faab1d3f6fc5c643b5e7cf 1809Author: Lasse Collin <lasse.collin@tukaani.org> 1810Date: 2025-01-04 14:41:37 +0200 1811 1812 tuklib_mbstr_wrap: Add printf format attribute 1813 1814 It's supported by GCC 3.x already. 1815 1816 src/common/tuklib_common.h | 7 +++++++ 1817 src/common/tuklib_mbstr_wrap.h | 1 + 1818 2 files changed, 8 insertions(+) 1819 1820commit a7313c01d9b8db71ffb61dc1dd7c4ea928824b4b 1821Author: Lasse Collin <lasse.collin@tukaani.org> 1822Date: 2025-01-04 13:44:12 +0200 1823 1824 xz: Translate a Windows-specific string 1825 1826 Originally I thought that native Windows builds wouldn't be translated 1827 but nowadays at least MSYS2 ships such binaries. 1828 1829 src/xz/file_io.c | 2 +- 1830 1 file changed, 1 insertion(+), 1 deletion(-) 1831 1832commit 00eb6073c088be9e7516dfc00a13ef520827b57c 1833Author: Lasse Collin <lasse.collin@tukaani.org> 1834Date: 2025-01-02 15:32:10 +0200 1835 1836 xz: Use my_landlock.h 1837 1838 A slightly silly thing is that xz may now query the ABI version up to 1839 three times. We could call my_landlock_ruleset_attr_forbid_all() only 1840 once and cache the result but it didn't seem worth doing. 1841 1842 CMakeLists.txt | 1 + 1843 src/xz/sandbox.c | 72 ++++++++++---------------------------------------------- 1844 2 files changed, 13 insertions(+), 60 deletions(-) 1845 1846commit 0fc5a625d7cc4ad51fde9367de088b9ad3bd40f6 1847Author: Lasse Collin <lasse.collin@tukaani.org> 1848Date: 2025-01-02 15:32:10 +0200 1849 1850 xzdec: Use my_landlock.h 1851 1852 CMakeLists.txt | 1 + 1853 src/xzdec/xzdec.c | 34 ++++++---------------------------- 1854 2 files changed, 7 insertions(+), 28 deletions(-) 1855 1856commit 38cb8ec9fd70d25fca6b473de44cf61586238552 1857Author: Lasse Collin <lasse.collin@tukaani.org> 1858Date: 2025-01-02 15:32:10 +0200 1859 1860 Add my_landlock.h with helper functions to use Linux Landlock 1861 1862 This supports up to Landlock ABI version 6. The current code in 1863 xz and xzdec only support up to ABI version 4. 1864 1865 src/Makefile.am | 1 + 1866 src/common/my_landlock.h | 141 +++++++++++++++++++++++++++++++++++++++++++++++ 1867 2 files changed, 142 insertions(+) 1868 1869commit 672da29bb3a209a727ae46c0df948d7eea69f2e2 1870Author: Lasse Collin <lasse.collin@tukaani.org> 1871Date: 2025-01-01 18:46:50 +0200 1872 1873 liblzma: Silence warnings from "clang -Wimplicit-fallthrough" 1874 1875 src/liblzma/lzma/lzma_decoder.c | 2 +- 1876 1 file changed, 1 insertion(+), 1 deletion(-) 1877 1878commit 1a8a1ad9a1e3179ce267baa551fb17b30624b4dd 1879Author: Lasse Collin <lasse.collin@tukaani.org> 1880Date: 2025-01-01 15:34:51 +0200 1881 1882 Build: Use -Wimplicit-fallthrough=5 when supported 1883 1884 Now that we have the FALLTHROUGH macro, use the strictest mode with 1885 GCC so that comment-based fallthrough markings are no longer accepted. 1886 1887 In GCC, -Wextra includes -Wimplicit-fallthrough=3 and 1888 -Wimplicit-fallthrough is the same as -Wimplicit-fallthrough=3. 1889 Thus, the strict mode requires specifying -Wimplicit-fallthrough=5. 1890 1891 Clang has -Wimplicit-fallthrough which is *not* enabled by -Wextra. 1892 Clang doesn't have a variant that takes an argument. Thus we need 1893 to check for -Wimplicit-fallthrough. Do it before checking for 1894 -Wimplicit-fallthrough=5 so that the latter overrides the former 1895 when using GCC. 1896 1897 CMakeLists.txt | 2 ++ 1898 configure.ac | 2 ++ 1899 2 files changed, 4 insertions(+) 1900 1901commit 94adc996e45cc5cad9352cc3271d3a1a2f5c4c22 1902Author: Lasse Collin <lasse.collin@tukaani.org> 1903Date: 2025-01-01 15:30:50 +0200 1904 1905 Replace "Fall through" comments with FALLTHROUGH 1906 1907 src/liblzma/common/alone_decoder.c | 3 +-- 1908 src/liblzma/common/auto_decoder.c | 5 ++--- 1909 src/liblzma/common/block_decoder.c | 6 ++---- 1910 src/liblzma/common/block_encoder.c | 6 ++---- 1911 src/liblzma/common/common.c | 2 +- 1912 src/liblzma/common/file_info.c | 22 +++++++++------------- 1913 src/liblzma/common/index_decoder.c | 9 +++------ 1914 src/liblzma/common/index_encoder.c | 6 ++---- 1915 src/liblzma/common/index_hash.c | 7 +++---- 1916 src/liblzma/common/lzip_decoder.c | 14 +++++--------- 1917 src/liblzma/common/stream_decoder.c | 16 ++++++---------- 1918 src/liblzma/common/stream_decoder_mt.c | 25 +++++++++---------------- 1919 src/liblzma/common/stream_encoder_mt.c | 10 ++++------ 1920 src/liblzma/lzma/lzma2_encoder.c | 9 +++------ 1921 src/xz/args.c | 2 +- 1922 src/xz/list.c | 3 +-- 1923 16 files changed, 54 insertions(+), 91 deletions(-) 1924 1925commit f31c3a6647b5a5d056324a9c83e6b2c940ebec22 1926Author: Lasse Collin <lasse.collin@tukaani.org> 1927Date: 2025-01-01 15:08:51 +0200 1928 1929 sysdefs.h: Add FALLTHROUGH macro 1930 1931 src/common/sysdefs.h | 9 +++++++++ 1932 1 file changed, 9 insertions(+) 1933 1934commit e34dbd6a0ae7a560a5508d51fc0bd142c5a320dc 1935Author: Lasse Collin <lasse.collin@tukaani.org> 1936Date: 2025-01-01 15:06:15 +0200 1937 1938 xzdec: Fix language in a comment 1939 1940 src/xzdec/xzdec.c | 2 +- 1941 1 file changed, 1 insertion(+), 1 deletion(-) 1942 1943commit 16821252c504071f5c2012e415e59cbf5fb79820 1944Author: Lasse Collin <lasse.collin@tukaani.org> 1945Date: 2025-01-02 13:35:48 +0200 1946 1947 Windows: Make NLS require UCRT and gettext-runtime >= 0.23.1 1948 1949 Also remove the recently-added workaround from tuklib_gettext.h. 1950 Requiring a new enough gettext-runtime is cleaner. I guess it's 1951 mostly MSYS2 where xz is built with translation support, so once 1952 MSYS2 has Gettext >= 0.23.1, this requirement shouldn't be a problem 1953 in practice. 1954 1955 CMakeLists.txt | 29 ++++++++++++++++++++++++++ 1956 configure.ac | 29 ++++++++++++++++++++++++++ 1957 src/common/tuklib_gettext.h | 51 --------------------------------------------- 1958 3 files changed, 58 insertions(+), 51 deletions(-) 1959 1960commit aa1807ed942579f700a08ab091b796cf04e31aec 1961Author: Lasse Collin <lasse.collin@tukaani.org> 1962Date: 2025-01-02 11:52:17 +0200 1963 1964 windows/build-with-cmake.bat: Fix ENABLE_NLS to XZ_NLS 1965 1966 Fixes: 29f77c7b707f2458fb047e77497354b195e05b14 1967 1968 windows/build-with-cmake.bat | 2 +- 1969 1 file changed, 1 insertion(+), 1 deletion(-) 1970 1971commit ea21c76aa2406ba06ac154fe57741734c04f260f 1972Author: Lasse Collin <lasse.collin@tukaani.org> 1973Date: 2024-12-30 11:21:57 +0200 1974 1975 Build: Use git log --pretty=medium when creating ChangeLog 1976 1977 It's the default in git-log. Specifying it explicitly is good in case 1978 a user has set format.pretty to a different value. 1979 1980 Makefile.am | 4 ++-- 1981 1 file changed, 2 insertions(+), 2 deletions(-) 1982 1983commit 08050c0788ce5bac0ffd572e9784a2749c4a13df 1984Author: Lasse Collin <lasse.collin@tukaani.org> 1985Date: 2024-12-30 10:51:33 +0200 1986 1987 Windows: Update MinGW-w64 + CMake instructions to recommend UCRT 1988 1989 windows/INSTALL-MinGW-w64_with_CMake.txt | 38 +++++++++++++++++++------------- 1990 1 file changed, 23 insertions(+), 15 deletions(-) 1991 1992commit 653732bd6f06d8f465bf353bf6e1c16f1405b906 1993Author: Lasse Collin <lasse.collin@tukaani.org> 1994Date: 2024-12-30 10:51:26 +0200 1995 1996 xz man page: Describe the source file deletion in -z and -d options 1997 1998 The DESCRIPTION section always explained it, and the OPTIONS section 1999 only described the differences to the default behavior. However, new 2000 users in a hurry may skip reading DESCRIPTION. The default behavior 2001 is a bit dangerous, thus it's good to repeat in --compress and 2002 --decompress docs that source file is removed after successful operation. 2003 2004 Fixes: https://github.com/tukaani-project/xz/issues/150 2005 2006 src/xz/xz.1 | 17 ++++++++++++++++- 2007 1 file changed, 16 insertions(+), 1 deletion(-) 2008 2009commit bb79f79b278fd4fb06a0bcd5ab3445c468f9baaf 2010Author: Lasse Collin <lasse.collin@tukaani.org> 2011Date: 2024-12-27 21:52:28 +0200 2012 2013 Build: Set libtool -version-info so that it matches with CMake 2014 2015 In the past, they haven't been in sync in development versions 2016 although they (of course) have been in stable releases. 2017 2018 src/liblzma/Makefile.am | 2 +- 2019 1 file changed, 1 insertion(+), 1 deletion(-) 2020 2021commit cf54f70e14c218faf5019ffa2fa769ed73772ee8 2022Author: Lasse Collin <lasse.collin@tukaani.org> 2023Date: 2024-12-28 18:28:56 +0200 2024 2025 CMake/macOS: Use GNU Libtool compatible shared library versioning 2026 2027 Because this increases the Mach-O compatibility_version, this commit 2028 shouldn't cause any ABI compatibility trouble for existing CMake users 2029 on macOS. This is assuming that they won't later downgrade to an older 2030 liblzma version that was built with CMake before this commit. 2031 2032 Meson allows customising the Mach-O versioning too. So the three 2033 build systems can be configured to be compatible. 2034 2035 CMakeLists.txt | 51 ++++++++++++++++++++++++++++++++++++++++++++++++--- 2036 1 file changed, 48 insertions(+), 3 deletions(-) 2037 2038commit 94e17916689d38bc09bf35e602ed6f6276034b59 2039Author: Lasse Collin <lasse.collin@tukaani.org> 2040Date: 2024-12-28 14:49:45 +0200 2041 2042 CMake: Edit a comment 2043 2044 CMakeLists.txt | 2 +- 2045 1 file changed, 1 insertion(+), 1 deletion(-) 2046 2047commit 6b50590725aeae8a2aed06faa3238cb9f8771c1b 2048Author: Lasse Collin <lasse.collin@tukaani.org> 2049Date: 2024-12-28 20:39:49 +0200 2050 2051 version.sh: Omit an unwanted dot from development versions 2052 2053 It printed 5.7.0.alpha instead of 5.7.0alpha. 2054 2055 Fixes: e7a42cda7c827e016619e8cab15e2faf5d4181ae 2056 2057 build-aux/version.sh | 2 +- 2058 1 file changed, 1 insertion(+), 1 deletion(-) 2059 2060commit f7a248f56e94310a080051c4a709c08514fa48b1 2061Author: Lasse Collin <lasse.collin@tukaani.org> 2062Date: 2024-12-27 16:25:07 +0200 2063 2064 CMake: Remove a duplicate word from a comment 2065 2066 CMakeLists.txt | 4 ++-- 2067 1 file changed, 2 insertions(+), 2 deletions(-) 2068 2069commit 8b7c55d148f4a9b3702207164e862437ddffad33 2070Author: Lasse Collin <lasse.collin@tukaani.org> 2071Date: 2024-12-27 16:23:12 +0200 2072 2073 INSTALL: Document CMAKE_DLL_NAME_WITH_SOVERSION 2074 2075 INSTALL | 19 +++++++++++++++++++ 2076 1 file changed, 19 insertions(+) 2077 2078commit 260d5d36203955a7148ae1ab05d0931c942028d5 2079Author: Lasse Collin <lasse.collin@tukaani.org> 2080Date: 2024-12-26 21:27:18 +0200 2081 2082 xz: Fix comments 2083 2084 src/xz/file_io.c | 4 ++-- 2085 src/xz/file_io.h | 4 ++-- 2086 2 files changed, 4 insertions(+), 4 deletions(-) 2087 2088commit bf6da9a573a780cd1a7fb1728ef55d09e58dad11 2089Author: Dexter Castor Döpping <dexter.c.dopping@gmail.com> 2090Date: 2024-12-22 13:44:03 +0100 2091 2092 CMake: Disable unity builds project-wide 2093 2094 liblzma and xz can't be compiled as a unity/jumbo build because of 2095 redeclarations and type name reuse. The CMake documentation recommends 2096 setting UNITY_BUILD to false in this case. 2097 2098 This is especially important if we're compiled as a subproject and the 2099 consumer wants to use CMAKE_UNITY_BUILD=ON for the rest of their code 2100 base. 2101 2102 Closes: https://github.com/tukaani-project/xz/pull/158 2103 2104 CMakeLists.txt | 6 ++++++ 2105 1 file changed, 6 insertions(+) 2106 2107commit f8c328eed1bf0a0168132025a52116b7735f894c 2108Author: Lasse Collin <lasse.collin@tukaani.org> 2109Date: 2024-12-20 08:51:18 +0200 2110 2111 Windows: Workaround a UTF-8 issue in Gettext's libintl_setlocale() 2112 2113 See the comment. In this package, locale is set at program startup and 2114 not changed later, so the point (2) in the comment isn't a problem. 2115 2116 Fixes: 46ee0061629fb075d61d83839e14dd193337af59 2117 2118 src/common/tuklib_gettext.h | 51 +++++++++++++++++++++++++++++++++++++++++++++ 2119 1 file changed, 51 insertions(+) 2120 2121commit 03533906093529701ba91081907d8977991997de 2122Author: Lasse Collin <lasse.collin@tukaani.org> 2123Date: 2024-12-20 06:50:36 +0200 2124 2125 Revert "Windows: Use UTF-8 locale when active code page is UTF-8" 2126 2127 This reverts commit 0d0b574cc45045d6150d397776340c068df59e2a. 2128 2129 src/common/tuklib_gettext.h | 32 ++------------------------------ 2130 1 file changed, 2 insertions(+), 30 deletions(-) 2131 2132commit 4b319e05afef4eab2fbafb6223f25d128ec99fce 2133Author: Lasse Collin <lasse.collin@tukaani.org> 2134Date: 2024-12-19 18:31:09 +0200 2135 2136 xzdec: Use setlocale() instead of tuklib_gettext_setlocale() 2137 2138 xzdec isn't translated and doesn't need libintl on Windows even 2139 when NLS is enabled, thus libintl_setlocale() cannot interfere 2140 with the locale settings. Thus, standard setlocale() works perfectly. 2141 2142 In the commit 78868b6e, the explanation in the commit message is wrong. 2143 2144 Fixes: 78868b6ed63fa4c89f73e3dfed27abfb8b0d46db 2145 2146 src/xzdec/xzdec.c | 9 +++------ 2147 1 file changed, 3 insertions(+), 6 deletions(-) 2148 2149commit 34b80e282ea76ec793eaedaef58a36c3913dec78 2150Author: Lasse Collin <lasse.collin@tukaani.org> 2151Date: 2024-12-19 19:36:15 +0200 2152 2153 Windows: Revert the setlocale(LC_ALL, ".UTF8") documentation 2154 2155 Only leave the FindFileFirstA() notes from 20dfca81, reverting 2156 the incorrect setlocale() notes. On Windows, Gettext's <libintl.h> 2157 overrides setlocale() with libintl_setlocale() wrapper. I hadn't 2158 noticed this, and thus my conclusions were wrong. 2159 2160 Fixes: 20dfca8171dad4c64785ac61d5b68972c444877b 2161 2162 src/common/w32_application.manifest.comments.txt | 21 +-------------------- 2163 1 file changed, 1 insertion(+), 20 deletions(-) 2164 2165commit 5794cda064ce980450eaa5a4e2c71bd317168ce4 2166Author: Lasse Collin <lasse.collin@tukaani.org> 2167Date: 2024-12-18 17:49:05 +0200 2168 2169 tuklib_mbstr_wrap: Silence a warning from Clang 2170 2171 Fixes: ca529c3f41a4a19a59e2e252e6dd9255f130c634 2172 2173 src/common/tuklib_mbstr_wrap.c | 9 +++++++++ 2174 1 file changed, 9 insertions(+) 2175 2176commit 16c9796ef970ae349c54fef9a346e394d7cc4c75 2177Author: Lasse Collin <lasse.collin@tukaani.org> 2178Date: 2024-12-18 14:00:09 +0200 2179 2180 Update THANKS 2181 2182 THANKS | 2 ++ 2183 1 file changed, 2 insertions(+) 2184 2185commit 3b5c8a1fcab385eed9cc95684223fddd7cf5a053 2186Author: Lasse Collin <lasse.collin@tukaani.org> 2187Date: 2024-12-18 14:00:09 +0200 2188 2189 Update TODO 2190 2191 Fixes: 5f6dddc6c911df02ba660564e78e6de80947c947 2192 2193 TODO | 3 --- 2194 1 file changed, 3 deletions(-) 2195 2196commit 22a35e64ce3d331b668f15f858a7bb3da3acc78e 2197Author: Lasse Collin <lasse.collin@tukaani.org> 2198Date: 2024-12-18 14:00:09 +0200 2199 2200 lzmainfo: Use tuklib_mbstr_nonprint 2201 2202 CMakeLists.txt | 3 +++ 2203 src/lzmainfo/Makefile.am | 1 + 2204 src/lzmainfo/lzmainfo.c | 16 ++++++++++------ 2205 3 files changed, 14 insertions(+), 6 deletions(-) 2206 2207commit 03111595ee713e0f94fb4f4a19a15594d5149347 2208Author: Lasse Collin <lasse.collin@tukaani.org> 2209Date: 2024-12-18 14:00:09 +0200 2210 2211 xzdec: Use tuklib_mbstr_nonprint 2212 2213 CMakeLists.txt | 3 +++ 2214 src/xzdec/Makefile.am | 2 ++ 2215 src/xzdec/xzdec.c | 15 +++++++++++---- 2216 3 files changed, 16 insertions(+), 4 deletions(-) 2217 2218commit d22f96921fd2f94d842f3cc2e5f729cb3cca5122 2219Author: Lasse Collin <lasse.collin@tukaani.org> 2220Date: 2024-12-18 14:00:09 +0200 2221 2222 xz: Use tuklib_mbstr_nonprint 2223 2224 Call tuklib_mask_nonprint() on filenames and also on a few other 2225 strings from the command line too. 2226 2227 The filename printed by "xz --robot --list" (in list.c) is also masked. 2228 It's good to get rid of tabs and newlines which would desync the output 2229 but masking other chars wouldn't be strictly necessary. It might matter 2230 with sensible filenames if LC_CTYPE is "C" (when iswprint() might reject 2231 non-ASCII chars) and a script wants to read a filename from xz's output. 2232 Hopefully it's an unusual enough corner case to not be a real problem. 2233 2234 CMakeLists.txt | 2 ++ 2235 src/xz/Makefile.am | 1 + 2236 src/xz/coder.c | 19 ++++++++----- 2237 src/xz/file_io.c | 81 ++++++++++++++++++++++++++++++++++-------------------- 2238 src/xz/list.c | 32 +++++++++++++-------- 2239 src/xz/main.c | 10 +++++-- 2240 src/xz/message.c | 8 ++++-- 2241 src/xz/options.c | 10 ++++--- 2242 src/xz/private.h | 1 + 2243 src/xz/suffix.c | 12 ++++---- 2244 10 files changed, 113 insertions(+), 63 deletions(-) 2245 2246commit 40e573305535960574404d2eae848b248c95ea7e 2247Author: Lasse Collin <lasse.collin@tukaani.org> 2248Date: 2024-12-18 14:00:09 +0200 2249 2250 Add tuklib_mbstr_nonprint to mask non-printable characters 2251 2252 Malicious filenames or other untrusted strings may affect the state of 2253 the terminal when such strings are printed as part of (error) messages. 2254 Add functions that mask such characters. 2255 2256 It's not enough to handle only single-byte control characters. 2257 In multibyte locales, some control characters are multibyte too, for 2258 example, terminals interpret C1 control characters (U+0080 to U+009F) 2259 that are two bytes as UTF-8. 2260 2261 Instead of checking for control characters with iswcntrl(), this 2262 uses iswprint() to detect printable characters. This is much stricter. 2263 On Windows it's actually too strict as it rejects some characters that 2264 definitely are printable. 2265 2266 Gnulib's quotearg would do a lot more but I hope this simpler method 2267 is good enough here. 2268 2269 Thanks to Ryan Colyer for the discussion about the problems of 2270 the earlier single-byte-only method. 2271 2272 Thanks to Christian Weisgerber for reporting a bug in an earlier 2273 version of this code. 2274 2275 Thanks to Jeroen Roovers for a typo fix. 2276 2277 Closes: https://github.com/tukaani-project/xz/pull/118 2278 2279 src/Makefile.am | 2 + 2280 src/common/tuklib_mbstr_nonprint.c | 151 +++++++++++++++++++++++++++++++++++++ 2281 src/common/tuklib_mbstr_nonprint.h | 69 +++++++++++++++++ 2282 3 files changed, 222 insertions(+) 2283 2284commit 36190c8c4bb13d1eab84a30f3650a5ec5ff0e402 2285Author: Lasse Collin <lasse.collin@tukaani.org> 2286Date: 2024-12-18 11:33:09 +0200 2287 2288 Translations: Add preliminary Georgian translation 2289 2290 Most of the auto-wrapped strings are translated already. A few 2291 strings have changed since this was created though. This file 2292 isn't in the Translation Project *yet* because these strings 2293 are still very new. 2294 2295 Closes: https://github.com/tukaani-project/xz/pull/145 2296 2297 po/LINGUAS | 1 + 2298 po/ka.po | 1186 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2299 2 files changed, 1187 insertions(+) 2300 2301commit 4a0c4f92b820b84ace625a95305a9d56cb662f4e 2302Author: Lasse Collin <lasse.collin@tukaani.org> 2303Date: 2024-10-30 20:50:20 +0200 2304 2305 xz: Make one string simpler for translators 2306 2307 Leading spaces in the string can get miscounted by translators. 2308 2309 src/xz/list.c | 4 ++-- 2310 1 file changed, 2 insertions(+), 2 deletions(-) 2311 2312commit 3fcf547e926f6c0414b23459f7b43164f7e8c378 2313Author: Lasse Collin <lasse.collin@tukaani.org> 2314Date: 2024-12-17 10:26:10 +0200 2315 2316 lzmainfo: Sync the translatable strings with xz 2317 2318 src/lzmainfo/lzmainfo.c | 20 ++++++++++++-------- 2319 1 file changed, 12 insertions(+), 8 deletions(-) 2320 2321commit 3e9177fd206d20d6d8acc7d203c25a9ae0549229 2322Author: Lasse Collin <lasse.collin@tukaani.org> 2323Date: 2024-12-17 10:26:10 +0200 2324 2325 xz: Use automatic word wrapping for help texts 2326 2327 --long-help is now one line longer because --lzma1 is now on its 2328 own line. 2329 2330 CMakeLists.txt | 2 + 2331 src/xz/Makefile.am | 3 +- 2332 src/xz/message.c | 482 ++++++++++++++++++++++++++++++++++------------------- 2333 3 files changed, 313 insertions(+), 174 deletions(-) 2334 2335commit a0eecc9eb23ac583ccf442de3f5c106d4b09482d 2336Author: Lasse Collin <lasse.collin@tukaani.org> 2337Date: 2024-12-16 18:46:45 +0200 2338 2339 po/Makevars: Add --keyword=W_:... to XGETTEXT_OPTIONS 2340 2341 The text was copied from tuklib_gettext.h. 2342 2343 Also rearrange the --keyword options to be last on the line. 2344 2345 po/Makevars | 2 +- 2346 1 file changed, 1 insertion(+), 1 deletion(-) 2347 2348commit ca529c3f41a4a19a59e2e252e6dd9255f130c634 2349Author: Lasse Collin <lasse.collin@tukaani.org> 2350Date: 2024-12-16 18:43:52 +0200 2351 2352 Add tuklib_mbstr_wrap for automatic word wrapping 2353 2354 Automatic word wrapping makes translators' work easier and reduces 2355 errors like misaligned columns or overlong lines. Right-to-left 2356 languages and languages that don't use spaces between words will 2357 still need extra effort. (xz hasn't been translated to any RTL 2358 language so far.) 2359 2360 cmake/tuklib_mbstr.cmake | 4 + 2361 m4/tuklib_mbstr.m4 | 2 +- 2362 src/Makefile.am | 2 + 2363 src/common/tuklib_gettext.h | 11 ++ 2364 src/common/tuklib_mbstr_wrap.c | 285 +++++++++++++++++++++++++++++++++++++++++ 2365 src/common/tuklib_mbstr_wrap.h | 203 +++++++++++++++++++++++++++++ 2366 6 files changed, 506 insertions(+), 1 deletion(-) 2367 2368commit 314b83cebad0244a0015a8abc6d8d086b581c215 2369Author: Lasse Collin <lasse.collin@tukaani.org> 2370Date: 2024-12-17 17:57:18 +0200 2371 2372 Build: Sort filenames to ASCII order in Makefile.am 2373 2374 src/Makefile.am | 2 +- 2375 1 file changed, 1 insertion(+), 1 deletion(-) 2376 2377commit df399c52554dfdf60259ca2cce97adbcfff39dc0 2378Author: Lasse Collin <lasse.collin@tukaani.org> 2379Date: 2024-10-21 18:51:24 +0300 2380 2381 tuklib_mbstr_width: Add tuklib_mbstr_width_mem() 2382 2383 It's a new function split from tuklib_mbstr_width(). 2384 It's useful with partial strings that aren't terminated with \0. 2385 2386 src/common/tuklib_mbstr.h | 17 +++++++++++++++++ 2387 src/common/tuklib_mbstr_width.c | 8 ++++++++ 2388 2 files changed, 25 insertions(+) 2389 2390commit 51081efae4c52c226e96da95313916eba99f885f 2391Author: Lasse Collin <lasse.collin@tukaani.org> 2392Date: 2024-12-16 20:08:27 +0200 2393 2394 tuklib_mbstr_width: Update a comment about shift states 2395 2396 src/common/tuklib_mbstr_width.c | 11 ++++++++--- 2397 1 file changed, 8 insertions(+), 3 deletions(-) 2398 2399commit 7ff1b0ac53866877bdfd79acf5fee0269058c58b 2400Author: Lasse Collin <lasse.collin@tukaani.org> 2401Date: 2024-10-21 18:47:56 +0300 2402 2403 tuklib_mbstr_width: Don't mention shift states in the API docs 2404 2405 It is assumed that this code won't be used with charsets that use 2406 locking shift states. 2407 2408 src/common/tuklib_mbstr.h | 8 ++------ 2409 1 file changed, 2 insertions(+), 6 deletions(-) 2410 2411commit 3c16105936320e4095dbe84fa9a33a4a6d46a597 2412Author: Lasse Collin <lasse.collin@tukaani.org> 2413Date: 2024-10-21 18:41:41 +0300 2414 2415 tuklib_mbstr_width: Use stricter return value checking 2416 2417 This should make no difference in practice (at least if mbrtowc() 2418 isn't broken). 2419 2420 src/common/tuklib_mbstr_width.c | 2 +- 2421 1 file changed, 1 insertion(+), 1 deletion(-) 2422 2423commit b797c44c42ea54fe1c52722a2fca0c9618575598 2424Author: Lasse Collin <lasse.collin@tukaani.org> 2425Date: 2024-12-16 20:06:07 +0200 2426 2427 tuklib_mbstr_width: Change the behavior when wcwidth() is not available 2428 2429 If wcwidth() isn't available (Windows), previously it was assumed 2430 that one byte == one column in the terminal. Now it is assumed that 2431 one multibyte character == one column. This works better with UTF-8. 2432 Languages that only use single-width characters without any combining 2433 characters should work correctly with this. 2434 2435 In xz, none of po/*.po contain combining characters and only ko.po, 2436 zh_CN.po, and zh_TW.po contain fullwidth characters. Thus, "only" 2437 those three translations in xz are broken on Windows with the 2438 UTF-8 code page. Broken means that column headings in xz -lvv and 2439 (only in the master branch) strings in --long-help are misaligned, 2440 so it's not a huge problem. I don't know if those three languages 2441 displayed perfectly before the UTF-8 change because I hadn't tested 2442 translations with native Windows builds before. 2443 2444 Fixes: 46ee0061629fb075d61d83839e14dd193337af59 2445 2446 src/common/tuklib_mbstr_width.c | 13 +++++++++++-- 2447 1 file changed, 11 insertions(+), 2 deletions(-) 2448 2449commit 78868b6ed63fa4c89f73e3dfed27abfb8b0d46db 2450Author: Lasse Collin <lasse.collin@tukaani.org> 2451Date: 2024-12-18 14:23:13 +0200 2452 2453 xzdec: Use setlocale() via tuklib_gettext_setlocale() 2454 2455 xzdec isn't translated and didn't have locale-specific behavior 2456 in the past. On Windows with UTF-8 in the application manifest, 2457 setting the locale makes a difference though: 2458 2459 - Without any setlocale() call, non-ASCII filenames don't display 2460 properly in Command Prompt unless one first uses "chcp 65001" 2461 to set the console code page to UTF-8. 2462 2463 - setlocale(LC_ALL, "") is enough to make non-ASCII filenames 2464 print correctly in Command Prompt without using "chcp 65001", 2465 assuming that the non-UTF-8 code page (like 850) supports 2466 those non-ASCII characters. 2467 2468 - setlocale(LC_ALL, ".UTF8") is even better because then mbrtowc() and 2469 such functions use an UTF-8 locale instead of a legacy code page. 2470 The tuklib_gettext_setlocale() macro takes care of this (without 2471 enabling any translations). 2472 2473 Fixes: 46ee0061629fb075d61d83839e14dd193337af59 2474 2475 src/xzdec/xzdec.c | 12 ++++++++++++ 2476 1 file changed, 12 insertions(+) 2477 2478commit 0d0b574cc45045d6150d397776340c068df59e2a 2479Author: Lasse Collin <lasse.collin@tukaani.org> 2480Date: 2024-12-17 14:59:37 +0200 2481 2482 Windows: Use UTF-8 locale when active code page is UTF-8 2483 2484 XZ Utils 5.6.3 set the active code page to UTF-8 to fix CVE-2024-47611. 2485 This wasn't paired with UCRT-specific setlocale(LC_ALL, ".UTF8"), thus 2486 non-ASCII characters from translations became mojibake. 2487 2488 Fixes: 46ee0061629fb075d61d83839e14dd193337af59 2489 2490 src/common/tuklib_gettext.h | 32 ++++++++++++++++++++++++++++++-- 2491 1 file changed, 30 insertions(+), 2 deletions(-) 2492 2493commit 20dfca8171dad4c64785ac61d5b68972c444877b 2494Author: Lasse Collin <lasse.collin@tukaani.org> 2495Date: 2024-12-17 15:01:29 +0200 2496 2497 Windows: Document the need for setlocale(LC_ALL, ".UTF8") 2498 2499 Also warn about unpaired surrogates and (somewhat UTF-8-specific) 2500 MAX_PATH issue in FindFirstFileA(). 2501 2502 Fixes: 46ee0061629fb075d61d83839e14dd193337af59 2503 2504 src/common/w32_application.manifest.comments.txt | 28 +++++++++++++++++++++++- 2505 1 file changed, 27 insertions(+), 1 deletion(-) 2506 2507commit 4e936f234056e5831013ed922145b666b04bb1e3 2508Author: Lasse Collin <lasse.collin@tukaani.org> 2509Date: 2024-12-18 14:12:22 +0200 2510 2511 xzdec: Call tuklib_progname_init() early enough 2512 2513 If the early pledge() call on OpenBSD fails, it calls my_errorf() 2514 which requires the "progname" variable. 2515 2516 Fixes: d74fb5f060b76db709b50f5fd37490394e52f975 2517 2518 src/xzdec/xzdec.c | 6 +++--- 2519 1 file changed, 3 insertions(+), 3 deletions(-) 2520 2521commit 61feaf681bd793dc5c919732b44bca7dcf2ed1b8 2522Author: Lasse Collin <lasse.collin@tukaani.org> 2523Date: 2024-12-15 19:08:32 +0200 2524 2525 CMake: Bump maximum policy version to 3.31 2526 2527 With CMake 3.31, there were a few warnings from 2528 CMP0177 "install() DESTINATION paths are normalized". 2529 These occurred because the install(FILES) command in 2530 my_install_man_lang() is called with a DESTINATION path 2531 that contains two consecutive slashes, for example, 2532 "share/man//man1". Such a path is for the English man pages. 2533 With translated man pages, the language code goes between 2534 the slashes. The warning was probably triggered because the 2535 extra slash gets removed by the normalization. 2536 2537 CMakeLists.txt | 2 +- 2538 1 file changed, 1 insertion(+), 1 deletion(-) 2539 2540commit b0bb84dd7bbdcc85243386a0051c7b2cb5fc6a18 2541Author: Lasse Collin <lasse.collin@tukaani.org> 2542Date: 2024-12-15 18:35:27 +0200 2543 2544 Update THANKS 2545 2546 THANKS | 1 + 2547 1 file changed, 1 insertion(+) 2548 2549commit bee0c044d30a6ad3b3d94901c27e7519f6f46e27 2550Author: Dexter Castor Döpping <dexter.c.dopping@gmail.com> 2551Date: 2024-12-08 18:24:29 +0100 2552 2553 liblzma: Fix incorrect macro name in a comment 2554 2555 Fixes: 33b8a24b6646a9dbfd8358405aec466b13078559 2556 Closes: https://github.com/tukaani-project/xz/pull/155 2557 2558 src/liblzma/api/lzma/lzma12.h | 2 +- 2559 1 file changed, 1 insertion(+), 1 deletion(-) 2560 2561commit 2cfa1ad0a9eb62b1847cf13f9aee290158978a3a 2562Author: Lasse Collin <lasse.collin@tukaani.org> 2563Date: 2024-12-17 10:36:43 +0200 2564 2565 license-check.sh: Add an exception for doc/SHA256SUMS 2566 2567 Fixes: 36b531022f24a2ab57a2dfb9e5052f1c176e9d9a 2568 2569 build-aux/license-check.sh | 1 + 2570 1 file changed, 1 insertion(+) 2571 2572commit 36b531022f24a2ab57a2dfb9e5052f1c176e9d9a 2573Author: Lasse Collin <lasse.collin@tukaani.org> 2574Date: 2024-12-01 21:38:17 +0200 2575 2576 doc/SHA256SUMS: Add the list of SHA-256 hashes of release files 2577 2578 The release files are signed but verifying the signatures cannot 2579 catch certain types of attacks: 2580 2581 1. A malicious maintainer could make more than one variant of 2582 a package. One could be for general distribution. Another 2583 with malicious content could be targeted to specific users, 2584 for example, distributing the malicious version on a mirror 2585 controlled by the attacker. 2586 2587 2. If the signing key of an honest maintainer was compromised 2588 without being detected, a similar situation as described 2589 above could occur. 2590 2591 SHA256SUMS could be put on the project website but having it in 2592 the Git repository makes it obvious that old lines aren't modified 2593 when the file is updated. 2594 2595 Hashes of uncompressed files are included too. This way tarballs 2596 can be recompressed and the hashes can still be verified. 2597 2598 .gitattributes | 1 + 2599 doc/SHA256SUMS | 218 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2600 2 files changed, 219 insertions(+) 2601 2602commit fe9e66993fdbcc2981c7361b9b034a451eb0fc42 2603Author: Lasse Collin <lasse.collin@tukaani.org> 2604Date: 2024-11-30 12:05:59 +0200 2605 2606 Docs: Remove .github/SECURITY.md 2607 2608 One of the reasons to have this file in the xz repository was to 2609 show vulnerability reporting info in the Security section on GitHub. 2610 On 2024-11-25, I added SECURITY.md to the tukaani-project organization 2611 on GitHub: 2612 2613 https://github.com/tukaani-project/.github/blob/main/SECURITY.md 2614 2615 GitHub shows that file in all projects in the organization unless 2616 overridden by a project-specific SECURITY.md. Thus, removing 2617 the file from the xz repo makes GitHub show the organization-wide 2618 text instead. 2619 2620 Maintaining a single copy for the whole GitHub organization makes 2621 things simpler. It's also nicer to have fewer GitHub-specific files 2622 in the xz repo. Information how to report bugs (including security 2623 issues) is available in README and on the home page too. 2624 2625 The OpenSSF Scorecard tool didn't find .github/SECURITY.md from the 2626 xz repository. There was a suggestion to move the file to the top-level 2627 directory where Scorecard should find it. However, Scorecard does find 2628 the organization-wide SECURITY.md. Thus, the file isn't needed in the 2629 xz repository to score points in the Scorecard game: 2630 2631 https://scorecard.dev/viewer/?uri=github.com/tukaani-project/xz 2632 2633 Closes: https://github.com/tukaani-project/xz/issues/148 2634 Closes: https://github.com/tukaani-project/xz/pull/149 2635 2636 .github/SECURITY.md | 14 -------------- 2637 1 file changed, 14 deletions(-) 2638 2639commit b36177273602ebc83e9cc58517f63a7b6af33f70 2640Author: Lasse Collin <lasse.collin@tukaani.org> 2641Date: 2024-11-30 10:27:14 +0200 2642 2643 Translations: Update the Chinese (traditional) translation 2644 2645 po/zh_TW.po | 201 +++++++++++++++++++++++++----------------------------------- 2646 1 file changed, 84 insertions(+), 117 deletions(-) 2647 2648commit c15115f7ede492f20c91b08ba485f9426f60233f 2649Author: Lasse Collin <lasse.collin@tukaani.org> 2650Date: 2024-10-30 19:54:34 +0200 2651 2652 liblzma: Optimize the loop conditions in BCJ filters 2653 2654 Compilers cannot optimize the addition "i + 4" away since theoretically 2655 it could overflow. 2656 2657 src/liblzma/simple/arm.c | 4 +++- 2658 src/liblzma/simple/arm64.c | 4 +++- 2659 src/liblzma/simple/armthumb.c | 7 ++++++- 2660 src/liblzma/simple/ia64.c | 4 +++- 2661 src/liblzma/simple/powerpc.c | 4 +++- 2662 src/liblzma/simple/sparc.c | 5 +++-- 2663 6 files changed, 21 insertions(+), 7 deletions(-) 2664 2665commit 9f69e71e78621fd056f5eaaad7cdcd9279310fb5 2666Author: Lasse Collin <lasse.collin@tukaani.org> 2667Date: 2024-11-25 16:26:54 +0200 2668 2669 Update THANKS 2670 2671 THANKS | 1 + 2672 1 file changed, 1 insertion(+) 2673 2674commit 48ff3f06521ca326996ab9a04d1b342098960427 2675Author: Mark Wielaard <mark@klomp.org> 2676Date: 2024-11-25 12:28:44 +0200 2677 2678 xz: Landlock: Fix a file descriptor leak 2679 2680 src/xz/sandbox.c | 1 + 2681 1 file changed, 1 insertion(+) 2682 2683commit dbca3d078ec581600600abebbb18769d3d713914 2684Author: Sam James <sam@gentoo.org> 2685Date: 2024-10-02 03:04:03 +0100 2686 2687 CI: update FreeBSD, NetBSD, OpenBSD, Solaris actions 2688 2689 Checked the changes and they're all innocuous. This should hopefully 2690 fix the "externally managed" pip error in these jobs that started 2691 recently. 2692 2693 .github/workflows/freebsd.yml | 2 +- 2694 .github/workflows/netbsd.yml | 2 +- 2695 .github/workflows/openbsd.yml | 2 +- 2696 .github/workflows/solaris.yml | 2 +- 2697 4 files changed, 4 insertions(+), 4 deletions(-) 2698 2699commit a94b85bea3f04d8c1f4e2e6f648a9a15bc6ce58f 2700Author: Lasse Collin <lasse.collin@tukaani.org> 2701Date: 2024-10-01 12:17:39 +0300 2702 2703 Add NEWS for 5.6.3 2704 2705 NEWS | 125 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2706 1 file changed, 125 insertions(+) 2707 2708commit be4bf94446b6286a5dffdde85fc1d21448f4edff 2709Author: Lasse Collin <lasse.collin@tukaani.org> 2710Date: 2024-10-01 14:49:41 +0300 2711 2712 cmake/tuklib_large_file_support.cmake: Add a missing include 2713 2714 v5.2 didn't build with CMake. Other branches had 2715 include(CMakePushCheckState) in top-level CMakeLists.txt 2716 which made the build work. 2717 2718 Fixes: 597f49b61475438a43a417236989b2acc968a686 2719 2720 cmake/tuklib_large_file_support.cmake | 1 + 2721 1 file changed, 1 insertion(+) 2722 2723commit 1ebbe915d4e0d877154261b5f8103719a6722975 2724Author: Lasse Collin <lasse.collin@tukaani.org> 2725Date: 2024-10-01 12:10:23 +0300 2726 2727 Update THANKS 2728 2729 THANKS | 2 ++ 2730 1 file changed, 2 insertions(+) 2731 2732commit 74702ee00ecfd080d8ab11118cd25dbe6c437ec0 2733Author: Lasse Collin <lasse.collin@tukaani.org> 2734Date: 2024-10-01 12:10:23 +0300 2735 2736 Tests/Windows: Add the application manifest to the test programs 2737 2738 This ensures that the test programs get executed the same way as 2739 the binaries that are installed. 2740 2741 CMakeLists.txt | 14 ++++++++++---- 2742 tests/Makefile.am | 10 ++++++++++ 2743 tests/tests.cmake | 33 ++++++++++++++++++++++++++++++++- 2744 tests/tests_w32res.rc | 18 ++++++++++++++++++ 2745 4 files changed, 70 insertions(+), 5 deletions(-) 2746 2747commit 7ddf2273e0e4654582ee65db19d44431bfdb5791 2748Author: Lasse Collin <lasse.collin@tukaani.org> 2749Date: 2024-10-01 12:10:23 +0300 2750 2751 license-check.sh: Add an exception for w32_application.manifest 2752 2753 The file gets embedded as is into executables, thus it cannot 2754 hold a license identifier. 2755 2756 build-aux/license-check.sh | 1 + 2757 1 file changed, 1 insertion(+) 2758 2759commit 46ee0061629fb075d61d83839e14dd193337af59 2760Author: Lasse Collin <lasse.collin@tukaani.org> 2761Date: 2024-10-01 12:10:23 +0300 2762 2763 Windows: Embed an application manifest in the EXE files 2764 2765 IMPORTANT: This includes a security fix to command line tool 2766 argument handling. 2767 2768 Some toolchains embed an application manifest by default to declare 2769 UAC-compliance. Some also declare compatibility with Vista/8/8.1/10/11 2770 to let the app access features newer than those of Vista. 2771 2772 We want all the above but also two more things: 2773 2774 - Declare that the app is long path aware to support paths longer 2775 than 259 characters (this may also require a registry change). 2776 2777 - Force the code page to UTF-8. This allows the command line tools 2778 to access files whose names contain characters that don't exist 2779 in the current legacy code page (except unpaired surrogates). 2780 The UTF-8 code page also fixes security issues in command line 2781 argument handling which can be exploited with malicious filenames. 2782 See the new file w32_application.manifest.comments.txt. 2783 2784 Thanks to Orange Tsai and splitline from DEVCORE Research Team 2785 for discovering this issue. 2786 2787 Thanks to Vijay Sarvepalli for reporting the issue to me. 2788 2789 Thanks to Kelvin Lee for testing with MSVC and helping with 2790 the required build system fixes. 2791 2792 CMakeLists.txt | 18 +++ 2793 src/Makefile.am | 4 +- 2794 src/common/common_w32res.rc | 5 + 2795 src/common/w32_application.manifest | 28 ++++ 2796 src/common/w32_application.manifest.comments.txt | 178 +++++++++++++++++++++++ 2797 5 files changed, 232 insertions(+), 1 deletion(-) 2798 2799commit dad153091552b52a41b95ec4981c6951f1cae487 2800Author: Lasse Collin <lasse.collin@tukaani.org> 2801Date: 2024-09-29 14:46:52 +0300 2802 2803 Windows: Set DLL name accurately in StringFileInfo on Cygwin and MSYS2 2804 2805 Now the information in the "Details" tab in the file properties 2806 dialog matches the naming convention of Cygwin and MSYS2. This 2807 is only a cosmetic change. 2808 2809 src/liblzma/liblzma_w32res.rc | 10 +++++++++- 2810 1 file changed, 9 insertions(+), 1 deletion(-) 2811 2812commit 8940ecb96fe9f0f2a9cfb8b66fe9ed31ffbea904 2813Author: Lasse Collin <lasse.collin@tukaani.org> 2814Date: 2024-09-25 15:47:55 +0300 2815 2816 common_w32res.rc: White space edits 2817 2818 LANGUAGE and VS_VERSION_INFO begin new statements so put an empty line 2819 between them. 2820 2821 src/common/common_w32res.rc | 15 ++++++++------- 2822 1 file changed, 8 insertions(+), 7 deletions(-) 2823 2824commit c3b9dad07d3fd9319f88386b7095019bcea45ce1 2825Author: Lasse Collin <lasse.collin@tukaani.org> 2826Date: 2024-09-28 20:09:50 +0300 2827 2828 CMake: Add the resource files to the Cygwin and MSYS2 builds 2829 2830 Autotools-based build has always done this so this is for consistency. 2831 2832 However, the CMake build won't create the DEF file when building 2833 for Cygwin or MSYS2 because in that context it should be useless. 2834 (If Cygwin or MSYS2 is used to host building of normal Windows 2835 binaries then the DEF file is still created.) 2836 2837 CMakeLists.txt | 16 ++++++++++------ 2838 1 file changed, 10 insertions(+), 6 deletions(-) 2839 2840commit da4f275bd1c18b897e5c2dd0043546de3accce0a 2841Author: Lasse Collin <lasse.collin@tukaani.org> 2842Date: 2024-09-28 15:19:14 +0300 2843 2844 CMake: Fix Windows resource file dependencies 2845 2846 If common_w32res.rc is modified, the resource files need to be rebuilt. 2847 In contrast, the liblzma*.map files truly are link dependencies. 2848 2849 CMakeLists.txt | 17 +++++++++-------- 2850 1 file changed, 9 insertions(+), 8 deletions(-) 2851 2852commit 1c673c0aac7f7dee8dda2c1140351c8417a71e47 2853Author: Lasse Collin <lasse.collin@tukaani.org> 2854Date: 2024-09-29 01:20:03 +0300 2855 2856 CMake: Checking for CYGWIN covers MSYS2 too 2857 2858 On MSYS2, both CYGWIN and MSYS are set. 2859 2860 CMakeLists.txt | 2 +- 2861 1 file changed, 1 insertion(+), 1 deletion(-) 2862 2863commit 6aaa0173b839e28429d43a8b62d257ad2f3b4521 2864Author: Lasse Collin <lasse.collin@tukaani.org> 2865Date: 2024-09-28 09:37:30 +0300 2866 2867 Translations: Add the SPDX license identifier to pt_BR.po 2868 2869 po/pt_BR.po | 2 ++ 2870 1 file changed, 2 insertions(+) 2871 2872commit dc7b9f24b737e4e55bcbbdde6754883f991c2cfb 2873Author: Lasse Collin <lasse.collin@tukaani.org> 2874Date: 2024-09-25 16:41:37 +0300 2875 2876 Windows/CMake: Use the correct resource file for lzmadec.exe 2877 2878 CMakeLists.txt was using xzdec_w32res.rc for both xzdec and lzmadec. 2879 2880 Fixes: 998d0b29536094a89cf385a3b894e157db1ccefe 2881 2882 CMakeLists.txt | 2 +- 2883 1 file changed, 1 insertion(+), 1 deletion(-) 2884 2885commit b834ae5f80911a3819d6cdb484f61b257174c544 2886Author: Lasse Collin <lasse.collin@tukaani.org> 2887Date: 2024-09-25 21:29:59 +0300 2888 2889 Translations: Update the Brazilian Portuguese translation 2890 2891 po/pt_BR.po | 144 ++++++++++++++++++++++-------------------------------------- 2892 1 file changed, 53 insertions(+), 91 deletions(-) 2893 2894commit eceb023d4c129fd63ee881a2d8696eaf52ad1532 2895Author: Lasse Collin <lasse.collin@tukaani.org> 2896Date: 2024-09-17 01:21:15 +0300 2897 2898 Update THANKS 2899 2900 THANKS | 1 + 2901 1 file changed, 1 insertion(+) 2902 2903commit 76cfd0a9bb33ae8e534b1f73f6359dc825589f2f 2904Author: Tobias Stoeckmann <tobias@stoeckmann.org> 2905Date: 2024-09-16 23:19:46 +0200 2906 2907 lzmainfo: Avoid integer overflow 2908 2909 The MB output can overflow with huge numbers. Most likely these are 2910 invalid .lzma files anyway, but let's avoid garbage output. 2911 2912 lzmadec was adapted from LZMA Utils. The original code with this bug 2913 was written in 2005, over 19 years ago. 2914 2915 Co-authored-by: Lasse Collin <lasse.collin@tukaani.org> 2916 Closes: https://github.com/tukaani-project/xz/pull/144 2917 2918 src/lzmainfo/lzmainfo.c | 5 ++--- 2919 1 file changed, 2 insertions(+), 3 deletions(-) 2920 2921commit 78355aebb7fb654302e5e33692ba109909dacaff 2922Author: Tobias Stoeckmann <tobias@stoeckmann.org> 2923Date: 2024-09-16 22:04:40 +0200 2924 2925 xzdec: Remove unused short option -M 2926 2927 "xzdec -M123" exited with exit status 1 without printing 2928 any messages. The "M:" entry should have been removed when 2929 the memory usage limiter support was removed from xzdec. 2930 2931 Fixes: 792331bdee706aa852a78b171040ebf814c6f3ae 2932 Closes: https://github.com/tukaani-project/xz/pull/143 2933 [ Lasse: Commit message edits ] 2934 2935 src/xzdec/xzdec.c | 2 +- 2936 1 file changed, 1 insertion(+), 1 deletion(-) 2937 2938commit e5758db7bd75587a2499e0771907521a4aa86908 2939Author: Lasse Collin <lasse.collin@tukaani.org> 2940Date: 2024-09-10 13:54:47 +0300 2941 2942 Update THANKS 2943 2944 THANKS | 1 + 2945 1 file changed, 1 insertion(+) 2946 2947commit 80ffa38f56657257ed4d90d76f6bd2f2bcb8163c 2948Author: Firas Khalil Khana <firasuke@gmail.com> 2949Date: 2024-09-10 12:30:32 +0300 2950 2951 Build: Fix a typo in autogen.sh 2952 2953 Fixes: e9be74f5b129fe8a5388d588e68b1b7f5168a310 2954 Closes: https://github.com/tukaani-project/xz/pull/141 2955 2956 autogen.sh | 2 +- 2957 1 file changed, 1 insertion(+), 1 deletion(-) 2958 2959commit 68c54e45d042add64a4cb44bfc87ca74d29b87e2 2960Author: Lasse Collin <lasse.collin@tukaani.org> 2961Date: 2024-09-02 20:08:40 +0300 2962 2963 Translations: Update Chinese (simplified) translation 2964 2965 Differences to the zh_CN.po file from the Translation Project: 2966 2967 - Two uses of \v were fixed. 2968 2969 - Missing "OPTS" translation in --riscv[=OPTS] was copied from 2970 previous lines. 2971 2972 - "make update-po" was run to remove line numbers from comments. 2973 2974 po/zh_CN.po | 102 ++++++++++++++++++++++++------------------------------------ 2975 1 file changed, 40 insertions(+), 62 deletions(-) 2976 2977commit 2230692aa1bcebb586100183831e3daf1714d60a 2978Author: Lasse Collin <lasse.collin@tukaani.org> 2979Date: 2024-09-02 19:40:50 +0300 2980 2981 Translations: Update the Catalan translation 2982 2983 Differences to the ca.po file from the Translation Project: 2984 2985 - An overlong line translating --filters-help was wrapped. 2986 2987 - "make update-po" was used to remove line numbers from the comments 2988 to match the changes in fccebe2b4fd513488fc920e4dac32562ed3c7637 2989 and 093490b58271e9424ce38a7b1b38bcf61b9c86c6. xz.pot in the TP 2990 is older than these commits. 2991 2992 po/ca.po | 171 ++++++++++++++++++++++++++------------------------------------- 2993 1 file changed, 69 insertions(+), 102 deletions(-) 2994 2995commit 3e7723ce26f74c71919984a6180504b4548cbb7e 2996Author: Lasse Collin <lasse.collin@tukaani.org> 2997Date: 2024-08-22 14:06:16 +0300 2998 2999 Update THANKS 3000 3001 THANKS | 1 + 3002 1 file changed, 1 insertion(+) 3003 3004commit d3e0e679b2b8b428598bb8ba56a17715190814db 3005Author: Lasse Collin <lasse.collin@tukaani.org> 3006Date: 2024-08-22 14:06:16 +0300 3007 3008 CMake: Don't install lzmadec.1 symlinks if XZ_TOOL_LZMADEC=OFF 3009 3010 Thanks-to: 榆柳松 (ZhengSen Wang) <wzhengsen@gmail.com> 3011 Fixes: fb50c6ba1d4c9405e5b12b5988b01a3002638c5d 3012 Closes: https://github.com/tukaani-project/xz/pull/134 3013 3014 CMakeLists.txt | 12 ++++++++++-- 3015 1 file changed, 10 insertions(+), 2 deletions(-) 3016 3017commit acdf21033abe347d9a279e9fe757f90ed16c1dbb 3018Author: Lasse Collin <lasse.collin@tukaani.org> 3019Date: 2024-08-22 14:06:16 +0300 3020 3021 CMake: Fix the build when XZ_TOOL_LZMADEC=OFF 3022 3023 Co-developed-by: 榆柳松 (ZhengSen Wang) <wzhengsen@gmail.com> 3024 Fixes: fb50c6ba1d4c9405e5b12b5988b01a3002638c5d 3025 Fixes: https://github.com/tukaani-project/xz/pull/134 3026 3027 CMakeLists.txt | 6 ++++-- 3028 1 file changed, 4 insertions(+), 2 deletions(-) 3029 3030commit 5e375987509fab484b7bef0b90be92f241c58c91 3031Author: Lasse Collin <lasse.collin@tukaani.org> 3032Date: 2024-08-22 11:01:07 +0300 3033 3034 Update THANKS 3035 3036 THANKS | 1 + 3037 1 file changed, 1 insertion(+) 3038 3039commit 6cd7c8607843c337edfe2c472aa316602a393754 3040Author: Yifeng Li <tomli@tomli.me> 3041Date: 2024-08-22 02:18:49 +0000 3042 3043 liblzma: Fix x86-64 movzw compatibility in range_decoder.h 3044 3045 Support for instruction "movzw" without suffix in "GNU as" was 3046 added in commit [1] and stabilized in binutils 2.27, released 3047 in August 2016. Earlier systems don't accept this instruction 3048 without a suffix, making range_decoder.h's inline assembly 3049 unable to build on old systems such as Ubuntu 16.04, creating 3050 error messages like: 3051 3052 lzma_decoder.c: Assembler messages: 3053 lzma_decoder.c:371: Error: no such instruction: `movzw 2(%r11),%esi' 3054 lzma_decoder.c:373: Error: no such instruction: `movzw 4(%r11),%edi' 3055 lzma_decoder.c:388: Error: no such instruction: `movzw 6(%r11),%edx' 3056 lzma_decoder.c:398: Error: no such instruction: `movzw (%r11,%r14,4),%esi' 3057 3058 Change "movzw" to "movzwl" for compatibility. 3059 3060 [1] https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=c07315e0c610e0e3317b4c02266f81793df253d2 3061 3062 Suggested-by: Lasse Collin <lasse.collin@tukaani.org> 3063 Tested-by: Yifeng Li <tomli@tomli.me> 3064 Signed-off-by: Yifeng Li <tomli@tomli.me> 3065 Fixes: 3182a330c1512cc1f5c87b5c5a272578e60a5158 3066 Fixes: https://github.com/tukaani-project/xz/issues/121 3067 Closes: https://github.com/tukaani-project/xz/pull/136 3068 3069 src/liblzma/rangecoder/range_decoder.h | 24 ++++++++++++------------ 3070 1 file changed, 12 insertions(+), 12 deletions(-) 3071 3072commit bf901dee5d4c46609645e50311c0cb2dfdcf9738 3073Author: Lasse Collin <lasse.collin@tukaani.org> 3074Date: 2024-07-19 20:02:43 +0300 3075 3076 Build: Comment that elf_aux_info(3) will be available on OpenBSD >= 7.6 3077 3078 CMakeLists.txt | 2 +- 3079 configure.ac | 17 +++++++++++------ 3080 2 files changed, 12 insertions(+), 7 deletions(-) 3081 3082commit f7103c2c2a8fa51d1f308ba7387beeff20a0d4dd 3083Author: Lasse Collin <lasse.collin@tukaani.org> 3084Date: 2024-07-19 19:42:26 +0300 3085 3086 Revert "liblzma: Add ARM64 CRC32 instruction support detection on OpenBSD" 3087 3088 This reverts commit dc03f6290f5b9bd3d50c7e12e58dee870889d599. 3089 3090 OpenBSD 7.6 will support elf_aux_info(3), and the detection code used 3091 on FreeBSD will work on OpenBSD 7.6 too. Keep things simpler and drop 3092 the OpenBSD-specific sysctl() method. 3093 3094 Thanks to Christian Weisgerber. 3095 3096 CMakeLists.txt | 6 ------ 3097 configure.ac | 9 --------- 3098 src/liblzma/check/crc32_arm64.h | 15 --------------- 3099 src/liblzma/check/crc_common.h | 1 - 3100 4 files changed, 31 deletions(-) 3101 3102commit 7c292dd0bf23cefcdf4b1509f3666322e08a7ede 3103Author: Lasse Collin <lasse.collin@tukaani.org> 3104Date: 2024-07-13 22:10:37 +0300 3105 3106 liblzma: Tweak a comment 3107 3108 src/liblzma/simple/arm64.c | 4 ++-- 3109 1 file changed, 2 insertions(+), 2 deletions(-) 3110 3111commit 6408edac5529d6ec0abf52794074f229c8362303 3112Author: Lasse Collin <lasse.collin@tukaani.org> 3113Date: 2024-07-11 22:17:56 +0300 3114 3115 CMake: Bump maximum policy version to 3.30 3116 3117 CMakeLists.txt | 2 +- 3118 1 file changed, 1 insertion(+), 1 deletion(-) 3119 3120commit 9231c39ffb518196d6664a86e5325e744621a21b 3121Author: Lasse Collin <lasse.collin@tukaani.org> 3122Date: 2024-07-06 15:13:19 +0300 3123 3124 CMake: Require CMake 3.20 or later 3125 3126 This allows a few cleanups. 3127 3128 CMakeLists.txt | 78 ++++++++++++++++++++-------------------------------------- 3129 1 file changed, 27 insertions(+), 51 deletions(-) 3130 3131commit 028185dd4889e3d6235ff13560160ebca6985021 3132Author: Lasse Collin <lasse.collin@tukaani.org> 3133Date: 2024-07-09 14:27:51 +0300 3134 3135 Update THANKS 3136 3137 THANKS | 1 + 3138 1 file changed, 1 insertion(+) 3139 3140commit baecfa142644eb5f5c6dd6f8e2f531c362fa3747 3141Author: Lasse Collin <lasse.collin@tukaani.org> 3142Date: 2024-07-06 14:04:48 +0300 3143 3144 xz: Remove the TODO comment about --recursive 3145 3146 It won't be implemented. find + xargs is more flexible, for example, 3147 it allows compressing small files in parallel. An example for that 3148 has been included in the xz man page since 2010. 3149 3150 src/xz/args.c | 1 - 3151 1 file changed, 1 deletion(-) 3152 3153commit f691d58fae82bd815c5f86ffad10fe9b6b59dad8 3154Author: Lasse Collin <lasse.collin@tukaani.org> 3155Date: 2024-07-06 14:04:16 +0300 3156 3157 Document --disable-loongarch-crc32 in INSTALL 3158 3159 INSTALL | 8 ++++++++ 3160 1 file changed, 8 insertions(+) 3161 3162commit b3e53122f42796aaebd767bab920cf7bedf69966 3163Author: Lasse Collin <lasse.collin@tukaani.org> 3164Date: 2024-07-03 20:45:48 +0300 3165 3166 CMake: Link xz against Threads::Threads if using pthreads 3167 3168 The liblzma target was recently changed to link against Threads::Threads 3169 with the PRIVATE keyword. I had forgotten that xz itself depends on 3170 pthreads too due to pthread_sigmask(). Thus, the build broke when 3171 building shared liblzma and pthread_sigmask() wasn't in libc. 3172 3173 Thanks to Peter Seiderer for the bug report. 3174 3175 Fixes: ac05f1b0d7cda1e7ae79775a8dfecc54601d7f1c 3176 Fixes: https://github.com/tukaani-project/xz/issues/129#issuecomment-2204522994 3177 3178 CMakeLists.txt | 13 +++++++++++++ 3179 1 file changed, 13 insertions(+) 3180 3181commit 5742ec1fc7f2cf1c82cfe3477bb90594a4658374 3182Author: Lasse Collin <lasse.collin@tukaani.org> 3183Date: 2024-07-02 22:49:33 +0300 3184 3185 Update THANKS 3186 3187 THANKS | 1 + 3188 1 file changed, 1 insertion(+) 3189 3190commit 2d13d10357ecad243d7e4ff1de0e6b437c38a47a 3191Author: Lasse Collin <lasse.collin@tukaani.org> 3192Date: 2024-07-02 20:23:35 +0300 3193 3194 CMake: Improve NLS error messages 3195 3196 CMakeLists.txt | 11 +++++++---- 3197 1 file changed, 7 insertions(+), 4 deletions(-) 3198 3199commit 628d8d2c4fdf9e6a91c7bba7a743f400a94c2909 3200Author: Lasse Collin <lasse.collin@tukaani.org> 3201Date: 2024-07-02 20:19:47 +0300 3202 3203 CMake: Update the comment at the top of CMakeLists.txt 3204 3205 While po/*.gmo files won't be used from the release tarball, 3206 the generated translated man pages will be used still. Those 3207 are text files and po4a has slightly more dependencies than 3208 gettext tools so installing po4a might be a bit more challenging 3209 in some situations. 3210 3211 CMakeLists.txt | 17 +++++++---------- 3212 1 file changed, 7 insertions(+), 10 deletions(-) 3213 3214commit b4b23c94fd4429abc663ced28d5cdc9cf7eb7507 3215Author: Lasse Collin <lasse.collin@tukaani.org> 3216Date: 2024-07-02 20:12:40 +0300 3217 3218 CMake: Drop support for pre-generated po/*.gmo files 3219 3220 When a release tarball is created using Autotools, the tarball includes 3221 po/*.gmo files which are binary files generated from po/*.po. Other 3222 tarball creation methods don't and won't create the .gmo files. 3223 3224 It feels clearer if CMake will never install pre-generated binary files 3225 from the source package. If people are able to install CMake, they 3226 likely are able to install gettext tools as well (assuming they want 3227 translations). 3228 3229 CMakeLists.txt | 66 +++++++++++++++++++--------------------------------------- 3230 1 file changed, 21 insertions(+), 45 deletions(-) 3231 3232commit fb99f8e8c50171b898cb79fe1dc703d5f91e4f0a 3233Author: Lasse Collin <lasse.collin@tukaani.org> 3234Date: 2024-07-02 19:14:50 +0300 3235 3236 CMake: Make XZ_NLS handling more robust 3237 3238 If a user set XZ_NLS=ON but find_package(Intl) failed or CMake version 3239 wasn't at least 3.20, the configuration would fail in a cryptic way. 3240 3241 If XZ_NLS is enabled, require that CMake is new enough and that either 3242 gettext tools or pre-generated .gmo files are available. Otherwise fail 3243 the configuration. Previously missing gettext tools and .gmo files would 3244 only result in a warning. 3245 3246 Missing man page translations are still only a warning. 3247 3248 Thanks to Peter Seiderer for the bug report. 3249 3250 Fixes: https://github.com/tukaani-project/xz/issues/129 3251 Closes: https://github.com/tukaani-project/xz/pull/130 3252 3253 CMakeLists.txt | 82 ++++++++++++++++++++++++++++++++-------------------------- 3254 1 file changed, 46 insertions(+), 36 deletions(-) 3255 3256commit ec6157570ea8a8e38158894e530d35416ff6a0f8 3257Author: Lasse Collin <lasse.collin@tukaani.org> 3258Date: 2024-07-02 19:39:05 +0300 3259 3260 CI: Add gettext as a dependency to CMake builds 3261 3262 .github/workflows/ci.yml | 4 ++-- 3263 1 file changed, 2 insertions(+), 2 deletions(-) 3264 3265commit 24f0f7e399de03bb2ff675d97b723d14f17ed6ac 3266Author: Lasse Collin <lasse.collin@tukaani.org> 3267Date: 2024-07-02 18:43:56 +0300 3268 3269 CMake: Fix ENABLE_NLS comment too 3270 3271 Fixes: 29f77c7b707f2458fb047e77497354b195e05b14 3272 3273 CMakeLists.txt | 2 +- 3274 1 file changed, 1 insertion(+), 1 deletion(-) 3275 3276commit a0df0676130bc565af0ec911e68a1d0fbc3ed0fb 3277Author: Lasse Collin <lasse.collin@tukaani.org> 3278Date: 2024-07-02 18:02:50 +0300 3279 3280 CMake: The compile definition is ENABLE_NLS, not XZ_NLS 3281 3282 The CMake variables were renamed and accidentally also 3283 the compile definition was renamed. As a result, translation 3284 support wasn't actually enabled in the executables. 3285 3286 Fixes: 29f77c7b707f2458fb047e77497354b195e05b14 3287 3288 CMakeLists.txt | 4 ++-- 3289 1 file changed, 2 insertions(+), 2 deletions(-) 3290 3291commit 45d08abc33ccc52d2f050dcec458badc2ce59d0b 3292Author: Lasse Collin <lasse.collin@tukaani.org> 3293Date: 2024-07-01 17:33:20 +0300 3294 3295 Update AUTHORS and THANKS 3296 3297 AUTHORS | 2 +- 3298 THANKS | 1 + 3299 2 files changed, 2 insertions(+), 1 deletion(-) 3300 3301commit 7baf6835cfbf9c85ba37f9ffb7d4f87fb86a474e 3302Author: Xi Ruoyao <xry111@xry111.site> 3303Date: 2024-06-28 13:36:43 +0300 3304 3305 liblzma: Speed up CRC32 calculation on 64-bit LoongArch 3306 3307 The crc.w.{b/h/w/d}.w instructions in LoongArch can calculate the CRC32 3308 result for 1/2/4/8 bytes in a single operation. Using these is much 3309 faster compared to the generic method. 3310 3311 Optimized CRC32 is enabled unconditionally on 64-bit LoongArch because 3312 the LoongArch specification says that CRC32 instructions shall be 3313 implemented for 64-bit processors. Optimized CRC32 isn't enabled for 3314 32-bit LoongArch processors because not enough information is available 3315 about them. 3316 3317 Co-authored-by: Lasse Collin <lasse.collin@tukaani.org> 3318 3319 Closes: https://github.com/tukaani-project/xz/pull/86 3320 3321 CMakeLists.txt | 25 ++++++++++++++ 3322 configure.ac | 40 +++++++++++++++++++++++ 3323 src/liblzma/check/Makefile.inc | 3 +- 3324 src/liblzma/check/crc32_fast.c | 2 ++ 3325 src/liblzma/check/crc32_loongarch.h | 65 +++++++++++++++++++++++++++++++++++++ 3326 src/liblzma/check/crc_common.h | 15 +++++++++ 3327 6 files changed, 149 insertions(+), 1 deletion(-) 3328 3329commit 0ed893668554fb0758003289f8a6af9bd08b89d1 3330Author: Lasse Collin <lasse.collin@tukaani.org> 3331Date: 2024-06-28 14:20:49 +0300 3332 3333 liblzma: ARM64 CRC32: Align the buffer faster 3334 3335 Instead of doing it byte by byte, use the 1/2/4-byte CRC32 instructions. 3336 3337 src/liblzma/check/crc32_arm64.h | 54 ++++++++++++++++++++++++++++++----------- 3338 1 file changed, 40 insertions(+), 14 deletions(-) 3339 3340commit 7e99856f66c07852c4e0de7aa01951e9147d86b0 3341Author: Sam James <sam@gentoo.org> 3342Date: 2024-06-28 14:18:35 +0300 3343 3344 CI: Speed up Valgrind job by using --trace-children-skip-by-arg=... 3345 3346 This addresses the issue I mentioned in 3347 6c095a98fbec70b790253a663173ecdb669108c4 and speeds up the Valgrind 3348 job a bit, because non-xz tools aren't run unnecessarily with 3349 Valgrind by the script tests. 3350 3351 .github/workflows/ci.yml | 2 +- 3352 1 file changed, 1 insertion(+), 1 deletion(-) 3353 3354commit 2402e8a1ae92676fa0d4cb1b761d7f62f005c098 3355Author: Lasse Collin <lasse.collin@tukaani.org> 3356Date: 2024-06-25 16:00:22 +0300 3357 3358 Build: Prepend, not append, PTHREAD_CFLAGS to LIBS 3359 3360 It shouldn't make any difference because LIBS should be empty 3361 at that point in configure. But prepending is the correct way 3362 because in general the libraries being added might require other 3363 libraries that come later on the command line. 3364 3365 configure.ac | 2 +- 3366 1 file changed, 1 insertion(+), 1 deletion(-) 3367 3368commit 7bb46f2b7b3989c1b589a247a251470f65e91cda 3369Author: Lasse Collin <lasse.collin@tukaani.org> 3370Date: 2024-06-25 14:24:29 +0300 3371 3372 Build: Use AC_LINK_IFELSE to handle implicit function declarations 3373 3374 It's more robust in case the compiler allows pre-C99 implicit function 3375 declarations. If an x86 intrinsic is missing and gets treated as 3376 implicit function, the linking step will very probably fail. This 3377 isn't the only way to workaround implicit function declarations but 3378 it might be the simplest and cleanest. 3379 3380 The problem hasn't been observed in the wild. 3381 3382 There are a couple more AC_COMPILE_IFELSE uses in configure.ac. 3383 Of these, Landlock check calls prctl() and in theory could have 3384 the same problem. In practice it doesn't as the check program 3385 looks for several other things too. However, it was changed to 3386 AC_LINK_IFELSE still to look more correct. 3387 3388 Similarly, m4/tuklib_cpucores.m4 and m4/tuklib_physmem.m4 were 3389 updated although they haven't given any trouble either. They 3390 have worked all these years because those check programs rely 3391 on specific headers and types: if headers or types are missing, 3392 compilation will fail. Using the linker makes these checks more 3393 similar to the ones in cmake/tuklib_*.cmake which always link. 3394 3395 configure.ac | 8 ++++++-- 3396 m4/tuklib_cpucores.m4 | 8 ++++---- 3397 m4/tuklib_physmem.m4 | 17 +++++++++++------ 3398 3 files changed, 21 insertions(+), 12 deletions(-) 3399 3400commit 35eb57355ad1c415a838d26192d5af84abb7cf39 3401Author: Lasse Collin <lasse.collin@tukaani.org> 3402Date: 2024-06-24 23:35:59 +0300 3403 3404 Build: Use AC_LINK_IFELSE instead of -Werror 3405 3406 AC_COMPILE_IFELSE needed -Werror because Clang <= 14 would merely 3407 warn about the unsupported attribute and implicit function declaration. 3408 Changing to AC_LINK_IFELSE handles the implicit declaration because 3409 the symbol __crc32d is unlikely to exist in libc. 3410 3411 Note that the other part of the check is that #include <arm_acle.h> 3412 must work. If the header is missing, most compilers give an error 3413 and the linking step won't be attempted. 3414 3415 Avoiding -Werror makes the check more robust in case CFLAGS contains 3416 warning flags that break -Werror anyway (but this isn't the only check 3417 in configure.ac that has this problem). Using AC_LINK_IFELSE also makes 3418 the check more similar to how it is done in CMakeLists.txt. 3419 3420 configure.ac | 12 +----------- 3421 1 file changed, 1 insertion(+), 11 deletions(-) 3422 3423commit 5a728813c378cc3c4c9c95793762452418d08f1b 3424Author: Lasse Collin <lasse.collin@tukaani.org> 3425Date: 2024-06-24 23:34:34 +0300 3426 3427 Build: Sync the compile check changes from CMakeLists.txt 3428 3429 It's nice to keep these in sync. The use of main() will later allow 3430 AC_LINK_IFELSE usage too which may avoid the more fragile -Werror. 3431 3432 configure.ac | 15 ++++++++------- 3433 1 file changed, 8 insertions(+), 7 deletions(-) 3434 3435commit 5279828635a95abdef82e691fc4979d362780e63 3436Author: Lasse Collin <lasse.collin@tukaani.org> 3437Date: 2024-06-24 20:14:43 +0300 3438 3439 CMake: Not experimental anymore 3440 3441 While the CMake support has gotten a lot less testing than 3442 the Autotools-based build, the supported features should now 3443 be equal. The output may differ slightly, for example, 3444 liblzma.pc may have 3445 3446 Libs.private: -pthread -lpthread 3447 3448 with Autotools on GNU/Linux. CMake doesn't put any options 3449 in Libs.private because on modern glibc the pthread functions 3450 are in libc. The options options aren't required to link static 3451 liblzma into an application. 3452 3453 Autotools-based build doesn't generate or install 3454 lib/cmake/liblzma-*.cmake files. This means that on most 3455 platforms one cannot rely on 3456 3457 find_package(liblzma 5.2.5 REQUIRED CONFIG) 3458 3459 or such finding those files. 3460 3461 CMakeLists.txt | 9 ++++++--- 3462 1 file changed, 6 insertions(+), 3 deletions(-) 3463 3464commit de215a0517645d16343f3a5336d3df884a4f665f 3465Author: Lasse Collin <lasse.collin@tukaani.org> 3466Date: 2024-06-25 16:11:13 +0300 3467 3468 CMake: Use configure_file() to copy a file 3469 3470 I had missed this simpler method before. It does create a dependency 3471 so that if .in.h changes the copying is done again. 3472 3473 CMakeLists.txt | 17 +++++++---------- 3474 1 file changed, 7 insertions(+), 10 deletions(-) 3475 3476commit e620f35097c0ad20cd76d8258750aa706758ced9 3477Author: Lasse Collin <lasse.collin@tukaani.org> 3478Date: 2024-06-25 15:51:48 +0300 3479 3480 CMake: Always add pthread flags into CMAKE_REQUIRED_LIBRARIES 3481 3482 It was weird to add CMAKE_THREAD_LIBS_INIT in CMAKE_REQUIRED_LIBRARIES 3483 only if CLOCK_MONOTONIC is available. Alternative would be to remove 3484 the thread libs from CMAKE_REQUIRED_LIBRARIES after the check for 3485 pthread_condattr_setclock() but keeping the libs should be fine too. 3486 Then it's ready in case more pthread functions were wanted some day. 3487 3488 CMakeLists.txt | 6 ++++-- 3489 1 file changed, 4 insertions(+), 2 deletions(-) 3490 3491commit 068a70e54932ca32ca2922aff5a67a62615c650b 3492Author: Sam James <sam@gentoo.org> 3493Date: 2024-06-24 19:25:30 +0100 3494 3495 CMake: Tweak comments 3496 3497 Co-authored-by: Lasse Collin <lasse.collin@tukaani.org> 3498 3499 CMakeLists.txt | 15 +++++++-------- 3500 1 file changed, 7 insertions(+), 8 deletions(-) 3501 3502commit 3c95c93bca593bdd54ac5cc01526b12c82c78faa 3503Author: Lasse Collin <lasse.collin@tukaani.org> 3504Date: 2024-06-24 22:42:01 +0300 3505 3506 CMake: Edit white space for consistency 3507 3508 CMakeLists.txt | 26 +++++++++++++------------- 3509 1 file changed, 13 insertions(+), 13 deletions(-) 3510 3511commit 114cba69dbb96003e676c8c87a2e9943b12d065f 3512Author: Lasse Collin <lasse.collin@tukaani.org> 3513Date: 2024-06-24 22:41:10 +0300 3514 3515 CMake: Fix three checks if building with -flto 3516 3517 In CMake, check_c_source_compiles() always links too. With 3518 link-time optimization, unused functions may get omitted if 3519 main() doesn't depend on them. Consider the following which 3520 tries to check if somefunction() is available when <someheader.h> 3521 has been included: 3522 3523 #include <someheader.h> 3524 int foo(void) { return somefunction(); } 3525 int main(void) { return 0; } 3526 3527 LTO may omit foo() completely because the program as a whole doesn't 3528 need it and then the program will link even if the symbol somefunction 3529 isn't available in libc or other library being linked in, and then 3530 the test may pass when it shouldn't. 3531 3532 What happens if <someheader.h> doesn't declare somefunction()? 3533 Shouldn't the test fail in the compilation phase already? It should 3534 but many compilers don't follow the C99 and later standards that 3535 prohibit implicit function declarations. Instead such compilers 3536 assume that somefunction() exists, compilation succeeds (with a 3537 warning), and then linker with LTO omits the call to somefunction(). 3538 3539 Change the tests so that they are part of main(). If compiler accepts 3540 implicitly declared functions, LTO cannot omit them because it has to 3541 assume that they might have side effects and thus linking will fail. 3542 On the other hand, if the functions/intrinsics being used are supported, 3543 they might get optimized away but in that case it's fine because they 3544 really are supported. 3545 3546 It is fine to use __attribute__((target(...))) for main(). At least 3547 it works with GCC 4.9 to 14.1 on x86-64. 3548 3549 Reported-by: Sam James <sam@gentoo.org> 3550 3551 CMakeLists.txt | 19 ++++++++----------- 3552 1 file changed, 8 insertions(+), 11 deletions(-) 3553 3554commit 78e882205e1f1e91df2af2cb7da00fe205dede99 3555Author: Lasse Collin <lasse.collin@tukaani.org> 3556Date: 2024-06-24 21:19:14 +0300 3557 3558 CMake: Use MATCHES instead of multiple STREQUAL 3559 3560 CMakeLists.txt | 11 ++++------- 3561 1 file changed, 4 insertions(+), 7 deletions(-) 3562 3563commit d3f20382fc1bd865eb70a65455d5022ed05caac8 3564Author: Lasse Collin <lasse.collin@tukaani.org> 3565Date: 2024-06-24 21:06:18 +0300 3566 3567 CMake: Improve the comment about LIBS 3568 3569 CMakeLists.txt | 6 ++++++ 3570 1 file changed, 6 insertions(+) 3571 3572commit 33ec377729a3889e58d98934b2777b2754a3e045 3573Author: Lasse Collin <lasse.collin@tukaani.org> 3574Date: 2024-06-24 20:01:25 +0300 3575 3576 CMake: Fix a typo in a message 3577 3578 It was spotted with codespell. 3579 3580 CMakeLists.txt | 2 +- 3581 1 file changed, 1 insertion(+), 1 deletion(-) 3582 3583commit 2a47be823cd6c717bc91fa29c7710c9b1ae0331f 3584Author: Lasse Collin <lasse.collin@tukaani.org> 3585Date: 2024-06-24 19:58:54 +0300 3586 3587 Document CMake options in INSTALL 3588 3589 INSTALL | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----- 3590 1 file changed, 106 insertions(+), 9 deletions(-) 3591 3592commit 3faf4e8079a46bd46e05cd1234365724a6a33802 3593Author: Lasse Collin <lasse.collin@tukaani.org> 3594Date: 2024-06-24 17:18:44 +0300 3595 3596 CI: Don't omit crc32 from the list with CMake anymore 3597 3598 XZ_CHECKS accepts it but works without too. 3599 3600 build-aux/ci_build.bash | 10 +--------- 3601 1 file changed, 1 insertion(+), 9 deletions(-) 3602 3603commit 1bf83cded2955282fe1a868f08c83d4e5d6dca4a 3604Author: Lasse Collin <lasse.collin@tukaani.org> 3605Date: 2024-06-24 17:39:54 +0300 3606 3607 CI: Workaround buggy config.guess on Ubuntu 22.04LTS and 24.04LTS 3608 3609 Check for the wrong triplet from config.guess and override it with 3610 the --build option on the configure command line. Then i386 assembly 3611 autodetection will work. 3612 3613 These Ubuntu versions (and as of writing, also Debian unstable) 3614 ship config.guess version 2022-01-09 which contains a bug that 3615 was fixed in version 2022-05-08. It results in a wrong configure 3616 triplet when using CC="gcc -m32" to build i386 binaries. 3617 3618 Upstream fix: 3619 https://git.savannah.gnu.org/cgit/config.git/commit/?id=f56a7140386d08a531bcfd444d632b28c61a6329 3620 3621 More information: 3622 https://mail.gnu.org/archive/html/config-patches/2022-05/msg00003.html 3623 3624 build-aux/ci_build.bash | 9 +++++++++ 3625 1 file changed, 9 insertions(+) 3626 3627commit dbcdabf68fee9ed694b68c3a82e6adbeff20b679 3628Author: Lasse Collin <lasse.collin@tukaani.org> 3629Date: 2024-06-24 15:24:52 +0300 3630 3631 CI: Use CC="gcc -m32" to get i386 compiler on x86-64 3632 3633 The old method put it in CFLAGS which is a wrong place because 3634 config.guess doesn't read CFLAGS. 3635 3636 .github/workflows/ci.yml | 4 ++-- 3637 1 file changed, 2 insertions(+), 2 deletions(-) 3638 3639commit 0c1e6d900bac127464fb30a854776e1810ab5f16 3640Author: Lasse Collin <lasse.collin@tukaani.org> 3641Date: 2024-06-24 14:54:17 +0300 3642 3643 CI: Let CMake use the CC environment variable 3644 3645 CC from environment is used to initialize CMAKE_C_COMPILER so 3646 setting CMAKE_C_COMPILER explicitly isn't needed. 3647 3648 The syntax in ci_build.bash was broken in case one wished to put 3649 spaces in CC. 3650 3651 build-aux/ci_build.bash | 4 ---- 3652 1 file changed, 4 deletions(-) 3653 3654commit a3d6eb797c1bd9b0425ef6754e475e43e62bf075 3655Author: Lasse Collin <lasse.collin@tukaani.org> 3656Date: 2024-06-20 23:25:42 +0300 3657 3658 CMake: Add autodetection for 32-bit x86 CRC assembly usage 3659 3660 CMakeLists.txt | 33 ++++++++++++++++++--------------- 3661 1 file changed, 18 insertions(+), 15 deletions(-) 3662 3663commit dbc14f213e5cf866f1f42b7c6381a91e1189908c 3664Author: Lasse Collin <lasse.collin@tukaani.org> 3665Date: 2024-06-20 23:00:59 +0300 3666 3667 CMake: Move option(XZ_ASM_I386) downwards a few lines 3668 3669 CMakeLists.txt | 16 ++++++++-------- 3670 1 file changed, 8 insertions(+), 8 deletions(-) 3671 3672commit e5c2b07b489b155c1bebd5cb5e5b94325c2fef1a 3673Author: Lasse Collin <lasse.collin@tukaani.org> 3674Date: 2024-06-20 18:45:41 +0300 3675 3676 DOS: Update Makefile and config.h for the CRC changes 3677 3678 dos/Makefile | 4 ++-- 3679 dos/config.h | 3 +++ 3680 2 files changed, 5 insertions(+), 2 deletions(-) 3681 3682commit fe77c4e130d62dc3f9c1de40a18c0c6caa5a4d88 3683Author: Lasse Collin <lasse.collin@tukaani.org> 3684Date: 2024-06-23 15:35:35 +0300 3685 3686 liblzma: Tidy up crc_common.h 3687 3688 Prefix ARM64_RUNTIME_DETECTION with CRC_ and reorder it to be with 3689 the other ARM64-specific lines. That macro isn't used outside this 3690 file. 3691 3692 ARM64 CLMUL implementation doesn't exist yet and thus CRC64_ARM64_CLMUL 3693 isn't used anywhere yet. 3694 3695 It's not ideal that the single-letter CRC utility macros are here 3696 as they pollute the namespace of the LZ encoder files. Those could 3697 be moved their own crc_macros.h like they were in 5.2.x but in practice 3698 this is fine enough already. 3699 3700 src/liblzma/check/crc_common.h | 62 ++++++++++++++++++++++++++++-------------- 3701 1 file changed, 42 insertions(+), 20 deletions(-) 3702 3703commit 7484d375384f551d475ff44a93590a225e0cb8f6 3704Author: Lasse Collin <lasse.collin@tukaani.org> 3705Date: 2024-06-23 14:22:08 +0300 3706 3707 liblzma: Move lzma_crcXX_table[][] declarations to crc_common.h 3708 3709 LZ encoder needs lzma_crc32_table[0] but otherwise those tables 3710 are private to the CRC code. In contrast, the other things in 3711 check.h are needed in several places. 3712 3713 src/liblzma/check/check.h | 18 ------------------ 3714 src/liblzma/check/crc32_small.c | 3 +++ 3715 src/liblzma/check/crc_common.h | 18 ++++++++++++++++++ 3716 src/liblzma/lz/lz_encoder_hash.h | 4 ++-- 3717 4 files changed, 23 insertions(+), 20 deletions(-) 3718 3719commit 85b081f5d4598342b8c155a2c08697fb2adc372c 3720Author: Lasse Collin <lasse.collin@tukaani.org> 3721Date: 2024-06-19 18:38:22 +0300 3722 3723 liblzma: Make 32-bit x86 CRC assembly co-exist with CLMUL 3724 3725 Now runtime detection of CLMUL support can pick between the CLMUL and 3726 the generic assembly implementations. Whatever overhead this has for 3727 builds that omit CLMUL completely isn't important because builds for 3728 any non-ancient system is likely to include the CLMUL code too. 3729 3730 Handle the CRC tables in crcXX_fast.c files because now these files 3731 are built even when assembly code is used. 3732 3733 If 32-bit x86 assembly is enabled then it will always be built even 3734 if compiler flags were such that CLMUL would be allowed unconditionally. 3735 That is, runtime detection will be used anyway. This keeps the build 3736 rules simpler. 3737 3738 In LZ encoder, build and use lzma_lz_hash_table[256] if CLMUL CRC 3739 is used without runtime detection. Previously this wasn't needed 3740 because crc32_table.c included the lzma_crc32_table[][] in the build 3741 unless encoder support had been disabled. Including an 8 KiB table 3742 was silly when only 1 KiB is actually used. So now liblzma is 7 KiB 3743 smaller if CLMUL is enabled without runtime detection. 3744 3745 CMakeLists.txt | 8 ++------ 3746 src/liblzma/check/Makefile.inc | 8 ++------ 3747 src/liblzma/check/crc32_fast.c | 14 ++++++++++++- 3748 src/liblzma/check/crc32_table.c | 42 --------------------------------------- 3749 src/liblzma/check/crc32_x86.S | 14 +++++-------- 3750 src/liblzma/check/crc64_fast.c | 18 +++++++++++++---- 3751 src/liblzma/check/crc64_table.c | 37 ---------------------------------- 3752 src/liblzma/check/crc64_x86.S | 14 +++++-------- 3753 src/liblzma/check/crc_common.h | 18 +++++++++-------- 3754 src/liblzma/check/crc_x86_clmul.h | 5 ----- 3755 src/liblzma/lz/lz_encoder.c | 2 +- 3756 src/liblzma/lz/lz_encoder_hash.h | 30 ++++++++++++++++++++-------- 3757 12 files changed, 74 insertions(+), 136 deletions(-) 3758 3759commit 6667d503b5dc9826654e3d9ad505e1883ff6c388 3760Author: Lasse Collin <lasse.collin@tukaani.org> 3761Date: 2024-06-19 17:44:41 +0300 3762 3763 liblzma: CRC: Rename crcXX_generic to lzma_crcXX_generic 3764 3765 This prepares for the possibility that lzma_crc32_generic and 3766 lzma_crc64_generic are extern functions. 3767 3768 src/liblzma/check/crc32_fast.c | 6 +++--- 3769 src/liblzma/check/crc64_fast.c | 6 +++--- 3770 2 files changed, 6 insertions(+), 6 deletions(-) 3771 3772commit 1dca581ff20aa1cde61e9e5267d3aeb0af9b6845 3773Author: Lasse Collin <lasse.collin@tukaani.org> 3774Date: 2024-06-20 22:55:22 +0300 3775 3776 CMake: Define HAVE_CRC_X86_ASM when 32-bit x86 CRC assembly is used 3777 3778 CMakeLists.txt | 3 +++ 3779 1 file changed, 3 insertions(+) 3780 3781commit f76837acb65676e541d8ee79cd62dbbf27280a62 3782Author: Lasse Collin <lasse.collin@tukaani.org> 3783Date: 2024-05-10 16:00:26 +0300 3784 3785 Build: Define HAVE_CRC_X86_ASM when 32-bit x86 CRC assembly is used 3786 3787 This makes it easier to determine when the CRC tables are needed. 3788 3789 configure.ac | 9 +++++++-- 3790 1 file changed, 7 insertions(+), 2 deletions(-) 3791 3792commit 9ce0866b070850da4dc837741ff055faa218bdd6 3793Author: Lasse Collin <lasse.collin@tukaani.org> 3794Date: 2024-06-21 00:46:09 +0300 3795 3796 CI: Update to the new renamed options in CMakeLists.txt 3797 3798 build-aux/ci_build.bash | 10 +++++----- 3799 1 file changed, 5 insertions(+), 5 deletions(-) 3800 3801commit 0232e66d5bc5b01a25a447c657e51747626488ab 3802Author: Lasse Collin <lasse.collin@tukaani.org> 3803Date: 2024-06-20 18:12:22 +0300 3804 3805 CMake: Add XZ_EXTERNAL_SHA256 3806 3807 CMakeLists.txt | 121 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 3808 1 file changed, 116 insertions(+), 5 deletions(-) 3809 3810commit 4535b80caead82a7ddf7feb988b8fbc773152522 3811Author: Lasse Collin <lasse.collin@tukaani.org> 3812Date: 2024-06-20 18:12:21 +0300 3813 3814 CMake: Move threading detection a few lines up 3815 3816 It feels clearer this way, and when support for external SHA-256 3817 is added, this will keep the order of the library detection the 3818 same as in configure.ac (check for pthreads before libmd) although 3819 it shouldn't matter in practice. 3820 3821 CMakeLists.txt | 176 ++++++++++++++++++++++++++++----------------------------- 3822 1 file changed, 88 insertions(+), 88 deletions(-) 3823 3824commit 94d062dbac34d366eb26625034200cc3457e6645 3825Author: Lasse Collin <lasse.collin@tukaani.org> 3826Date: 2024-06-20 18:12:21 +0300 3827 3828 CMake: Move the sandbox code out of the liblzma section 3829 3830 Sandboxing is for the command line tools, not liblzma. 3831 No functional changes. 3832 3833 CMakeLists.txt | 214 ++++++++++++++++++++++++++++----------------------------- 3834 1 file changed, 107 insertions(+), 107 deletions(-) 3835 3836commit 75ce4797d49621710e6da95d8cb91541028c6d68 3837Author: Lasse Collin <lasse.collin@tukaani.org> 3838Date: 2024-06-20 18:12:21 +0300 3839 3840 CMake: Keep existing options in LIBS when adding -lrt 3841 3842 This makes no difference yet because -lrt is currently the only option 3843 that might be added to LIBS. 3844 3845 CMakeLists.txt | 2 +- 3846 1 file changed, 1 insertion(+), 1 deletion(-) 3847 3848commit 47aaa92516fd9609821d04e5e94ca6558e56d62b 3849Author: Lasse Collin <lasse.collin@tukaani.org> 3850Date: 2024-06-15 18:07:04 +0300 3851 3852 CMake: Don't install scripts if the xz tool isn't built 3853 3854 The scripts need the xz tool. 3855 3856 CMakeLists.txt | 11 +++++++++-- 3857 tests/tests.cmake | 2 +- 3858 2 files changed, 10 insertions(+), 3 deletions(-) 3859 3860commit fb50c6ba1d4c9405e5b12b5988b01a3002638c5d 3861Author: Lasse Collin <lasse.collin@tukaani.org> 3862Date: 2024-06-15 18:07:04 +0300 3863 3864 CMake: Add XZ_TOOL_XZDEC and XZ_TOOL_LZMADEC 3865 3866 CMakeLists.txt | 15 ++++++++++++++- 3867 1 file changed, 14 insertions(+), 1 deletion(-) 3868 3869commit def767f7d18ccbd81cd5e5b46c8b6031f3a1de34 3870Author: Lasse Collin <lasse.collin@tukaani.org> 3871Date: 2024-06-15 18:07:04 +0300 3872 3873 CMake: Add XZ_TOOL_LZMAINFO 3874 3875 CMakeLists.txt | 4 +++- 3876 1 file changed, 3 insertions(+), 1 deletion(-) 3877 3878commit 5600e370fb7e11eafabc6c3ef5bf6510e859f4f0 3879Author: Lasse Collin <lasse.collin@tukaani.org> 3880Date: 2024-06-15 18:07:04 +0300 3881 3882 CMake: Add XZ_TOOL_XZ 3883 3884 CMakeLists.txt | 4 +++- 3885 1 file changed, 3 insertions(+), 1 deletion(-) 3886 3887commit 6a3c4aaa43a90da441e1156c5ffd2e6098f5521f 3888Author: Lasse Collin <lasse.collin@tukaani.org> 3889Date: 2024-06-15 18:07:04 +0300 3890 3891 Windows: Drop Visual Studio 2013 support 3892 3893 This simplifies things a little. Building liblzma with VS2013 probably 3894 still worked but building the command line tools was not supported. 3895 3896 Microsoft ended support for VS2013 on 2024-04. 3897 3898 CMakeLists.txt | 9 +++++++-- 3899 src/common/sysdefs.h | 6 +----- 3900 windows/INSTALL-MSVC.txt | 8 ++------ 3901 3 files changed, 10 insertions(+), 13 deletions(-) 3902 3903commit 5d5c92b26246936461a635dda1f95740d7de2058 3904Author: Lasse Collin <lasse.collin@tukaani.org> 3905Date: 2024-06-15 18:07:04 +0300 3906 3907 CMake: Add XZ_TOOL_SCRIPTS 3908 3909 CMakeLists.txt | 44 +++++++++++++++++++++++++++++--------------- 3910 1 file changed, 29 insertions(+), 15 deletions(-) 3911 3912commit d274a2bc00d235f07e96aaf82c149794cfe82b12 3913Author: Lasse Collin <lasse.collin@tukaani.org> 3914Date: 2024-06-15 18:07:04 +0300 3915 3916 CMake: Add XZ_DOC 3917 3918 CMakeLists.txt | 45 ++++++++++++++++++++++++--------------------- 3919 1 file changed, 24 insertions(+), 21 deletions(-) 3920 3921commit 188143a50ade67253ed256608f50f78aa1380403 3922Author: Lasse Collin <lasse.collin@tukaani.org> 3923Date: 2024-06-20 21:53:03 +0300 3924 3925 CMake: Refactor XZ_SYMBOL_VERSIONING to match configure.ac 3926 3927 Make the available options and their behavior match 3928 --enable-symbol-versions in configure.ac. 3929 3930 Don't enable symbol versions on Linux if not using glibc. Previously 3931 the generic variant was selected on Microblaze or if using NVHPC 3932 without checking that libc is glibc. 3933 3934 Leave the cache variable to "auto" or "yes" if that was specified 3935 instead of setting it to the autodetected value by default. A downside 3936 is that one cannot easily see which variant the autodetection code 3937 has selected. The same applies to XZ_SANDBOX and XZ_THREADS though. 3938 3939 CMakeLists.txt | 125 ++++++++++++++++++++++++++++++++++----------------------- 3940 1 file changed, 75 insertions(+), 50 deletions(-) 3941 3942commit cc52ef8ed3b75a581262c587f6c06c213a550f86 3943Author: Lasse Collin <lasse.collin@tukaani.org> 3944Date: 2024-06-15 18:07:04 +0300 3945 3946 CMake: Use the same option list for XZ_THREADS as in configure.ac 3947 3948 Also clarify that "yes" will fail if no threading support is found. 3949 If no threading is wanted, it has to be disabled manually. 3950 3951 configure.ac doesn't behave this way at the moment. Instead it 3952 assumes pthreads to be present if not targeting Windows. If pthreads 3953 actually are missing, the build fails later. 3954 3955 CMakeLists.txt | 18 ++++++++++-------- 3956 1 file changed, 10 insertions(+), 8 deletions(-) 3957 3958commit 37f7af3452bab0a34ce320c2ad532835f18752d9 3959Author: Lasse Collin <lasse.collin@tukaani.org> 3960Date: 2024-06-15 18:07:04 +0300 3961 3962 CMake: Use the same option list for XZ_SANDBOX as in configure.ac 3963 3964 It's simpler to document this way. 3965 3966 CMakeLists.txt | 20 ++++++++++---------- 3967 1 file changed, 10 insertions(+), 10 deletions(-) 3968 3969commit c715dec8e800b65145918cfb0ee9bbc90faa8aad 3970Author: Lasse Collin <lasse.collin@tukaani.org> 3971Date: 2024-06-15 18:07:04 +0300 3972 3973 CMake: Fix indentation 3974 3975 CMakeLists.txt | 2 +- 3976 1 file changed, 1 insertion(+), 1 deletion(-) 3977 3978commit ea379f2f180befabd2039342db8eaeb757fdd2b7 3979Author: Lasse Collin <lasse.collin@tukaani.org> 3980Date: 2024-06-15 18:07:04 +0300 3981 3982 CMake: Add warning options for GCC and Clang 3983 3984 The list was copied from configure.ac and should be kept in sync. 3985 (Pretend that the deleted comment in CMakeLists.txt didn't exist.) 3986 3987 There is no need to add equivalent of --enable-werror as CMake >= 3.24 3988 supports -DCMAKE_COMPILE_WARNING_AS_ERROR=ON. 3989 3990 CMakeLists.txt | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++----- 3991 1 file changed, 59 insertions(+), 5 deletions(-) 3992 3993commit 74223338197b7dfcd69f56df78b6502805a75f23 3994Author: Lasse Collin <lasse.collin@tukaani.org> 3995Date: 2024-06-15 18:07:04 +0300 3996 3997 CMake: Use \040 instead of \x20 for a space 3998 3999 This is for consistency with 4c81c9611f8b2e1ad65eb7fa166afc570c58607e 4000 where \040 has to be used because \0x20F gets interpret at three hex 4001 digits. Octals escapes are never longer than three digits. 4002 4003 CMakeLists.txt | 2 +- 4004 1 file changed, 1 insertion(+), 1 deletion(-) 4005 4006commit e8854b6bdc956c46dc4232bd07c17163034a00f2 4007Author: Lasse Collin <lasse.collin@tukaani.org> 4008Date: 2024-06-15 18:07:04 +0300 4009 4010 CMake: Add XZ_ASSUME_RAM 4011 4012 CMakeLists.txt | 4 +++- 4013 1 file changed, 3 insertions(+), 1 deletion(-) 4014 4015commit e1127e75cb82e0385f02c995771d6fe1420f43c5 4016Author: Lasse Collin <lasse.collin@tukaani.org> 4017Date: 2024-06-15 18:07:04 +0300 4018 4019 CMake: Rename liblzma_INSTALL_CMAKEDIR to XZ_INSTALL_CMAKEDIR 4020 4021 CMakeLists.txt | 6 +++--- 4022 1 file changed, 3 insertions(+), 3 deletions(-) 4023 4024commit 96abfe98c15e431a50a6a31015c5bb05540ab2ff 4025Author: Lasse Collin <lasse.collin@tukaani.org> 4026Date: 2024-06-15 18:07:04 +0300 4027 4028 CMake: Refactor ADDITIONAL_CHECK_TYPES to XZ_CHECKS 4029 4030 Now "crc32" is in the list too for completeness but it doesn't 4031 actually have any effect. The description of the cache variable 4032 says that "crc32 is always built" so it should be clear enough. 4033 4034 CMakeLists.txt | 14 +++++++------- 4035 tests/tests.cmake | 17 ++++++++--------- 4036 2 files changed, 15 insertions(+), 16 deletions(-) 4037 4038commit 679500ffe00ecb4f02292129e7529ab7392f3943 4039Author: Lasse Collin <lasse.collin@tukaani.org> 4040Date: 2024-06-15 18:07:04 +0300 4041 4042 CMake: Rename the cache variable POSIX_SHELL to XZ_POSIX_SHELL 4043 4044 We still need the variable POSIX_SHELL for configure_file() 4045 but it doesn't need to be a cache variable. 4046 4047 CMakeLists.txt | 7 ++++--- 4048 1 file changed, 4 insertions(+), 3 deletions(-) 4049 4050commit e5c0eb2e50e5522a0a55e7ba83fe49b04c8a6eef 4051Author: Lasse Collin <lasse.collin@tukaani.org> 4052Date: 2024-06-15 18:07:04 +0300 4053 4054 CMake: Rename ENCODERS and DECODERS to use XZ_ prefix 4055 4056 CMakeLists.txt | 34 +++++++++++++++++----------------- 4057 tests/tests.cmake | 4 ++-- 4058 2 files changed, 19 insertions(+), 19 deletions(-) 4059 4060commit e7785e2061f95d44aa6c0856b09cc0fbad7d6154 4061Author: Lasse Collin <lasse.collin@tukaani.org> 4062Date: 2024-06-15 18:07:04 +0300 4063 4064 CMake: Rename MATCH_FINDERS to XZ_MATCH_FINDERS 4065 4066 CMakeLists.txt | 6 +++--- 4067 1 file changed, 3 insertions(+), 3 deletions(-) 4068 4069commit 63294806b488a27a28a0960f6a257695dd2b569a 4070Author: Lasse Collin <lasse.collin@tukaani.org> 4071Date: 2024-06-15 18:07:04 +0300 4072 4073 CMake: Rename SYMBOL_VERSIONING to XZ_SYMBOL_VERSIONING 4074 4075 CMakeLists.txt | 9 +++++---- 4076 1 file changed, 5 insertions(+), 4 deletions(-) 4077 4078commit ad245b133675d285bca5d48123062e9d1e3f747e 4079Author: Lasse Collin <lasse.collin@tukaani.org> 4080Date: 2024-06-15 18:07:04 +0300 4081 4082 CMake: Rename ENABLE_THREADS to XZ_THREADS 4083 4084 CMakeLists.txt | 24 +++++++++++------------- 4085 1 file changed, 11 insertions(+), 13 deletions(-) 4086 4087commit 4250d4de32e66e558cc2ebe73b05255633c933ed 4088Author: Lasse Collin <lasse.collin@tukaani.org> 4089Date: 2024-06-15 18:07:04 +0300 4090 4091 CMake: Rename ENABLE_SANDBOX to XZ_SANDBOX 4092 4093 CMakeLists.txt | 23 +++++++++++------------ 4094 1 file changed, 11 insertions(+), 12 deletions(-) 4095 4096commit 0fdcd0c582f1a38542cd647dde449d9447d5888d 4097Author: Lasse Collin <lasse.collin@tukaani.org> 4098Date: 2024-06-15 18:07:04 +0300 4099 4100 CMake: Rename ENABLE_X86_ASM to XZ_ASM_I386 4101 4102 CMakeLists.txt | 10 +++++----- 4103 1 file changed, 5 insertions(+), 5 deletions(-) 4104 4105commit e017d5526e316003fdb2a3f76acbb83443f14ddf 4106Author: Lasse Collin <lasse.collin@tukaani.org> 4107Date: 2024-06-15 18:07:04 +0300 4108 4109 CMake: Rename CREATE_XZ_SYMLINKS to XZ_TOOL_SYMLINKS 4110 4111 This only affects the names unxz and xzcat. The xz-prefixed script 4112 symlinks (xzfgrep and such) are always created if scripts are enabled. 4113 4114 CMakeLists.txt | 4 ++-- 4115 1 file changed, 2 insertions(+), 2 deletions(-) 4116 4117commit 04cac14fcb9fb302c24e90b04ca4b77d3717b50c 4118Author: Lasse Collin <lasse.collin@tukaani.org> 4119Date: 2024-06-15 18:07:04 +0300 4120 4121 CMake: Rename CREATE_LZMA_SYMLINKS to XZ_TOOL_LZMA_SYMLINKS 4122 4123 Update the description too. 4124 4125 It affects creation of not only the legacy lzma, unlzma, lzcat symlinks 4126 but also lzgrep and other legacy names for the scripts. The last 4127 LZMA Utils release was made in 2008 but these names are still used 4128 in some places to handle .lzma files. 4129 4130 CMakeLists.txt | 7 ++++--- 4131 1 file changed, 4 insertions(+), 3 deletions(-) 4132 4133commit 612ccebf884eb1a9b6848e230c24f97a03fe917a 4134Author: Lasse Collin <lasse.collin@tukaani.org> 4135Date: 2024-06-15 18:07:04 +0300 4136 4137 CMake: Rename ALLOW_ARM64_CRC32 to XZ_ARM64_CRC32 4138 4139 Update description too. 4140 4141 CMakeLists.txt | 6 +++--- 4142 1 file changed, 3 insertions(+), 3 deletions(-) 4143 4144commit 3dcc12290d6dffbe7f10f501c141d325bad65901 4145Author: Lasse Collin <lasse.collin@tukaani.org> 4146Date: 2024-06-15 18:07:04 +0300 4147 4148 CMake: Rename ALLOW_CLMUL_CRC to XZ_CLMUL_CRC 4149 4150 Update description too. 4151 4152 CMakeLists.txt | 6 +++--- 4153 1 file changed, 3 insertions(+), 3 deletions(-) 4154 4155commit 4b8faa72442da9aa1a356f5848aae798d8588a7d 4156Author: Lasse Collin <lasse.collin@tukaani.org> 4157Date: 2024-06-15 18:07:04 +0300 4158 4159 CMake: Rename ENABLE_DOXYGEN to XZ_DOXYGEN 4160 4161 CMakeLists.txt | 4 ++-- 4162 1 file changed, 2 insertions(+), 2 deletions(-) 4163 4164commit b56273ae575bac350e50b0c689269dcab04b04b3 4165Author: Lasse Collin <lasse.collin@tukaani.org> 4166Date: 2024-06-15 18:07:04 +0300 4167 4168 CMake: Rename LZIP_DECODER to XZ_LZIP_DECODER 4169 4170 CMakeLists.txt | 4 ++-- 4171 tests/tests.cmake | 2 +- 4172 2 files changed, 3 insertions(+), 3 deletions(-) 4173 4174commit 2343992fcbe8b436da6df888be37713cccaff0ab 4175Author: Lasse Collin <lasse.collin@tukaani.org> 4176Date: 2024-06-15 18:07:04 +0300 4177 4178 CMake: Rename MICROLZMA_ENCODER/DECODER to XZ_MICROLZMA_ENCODER/DECODER 4179 4180 CMakeLists.txt | 8 ++++---- 4181 tests/tests.cmake | 2 +- 4182 2 files changed, 5 insertions(+), 5 deletions(-) 4183 4184commit 96f0a6632cc0598a26d93255b0c444df18dc7891 4185Author: Lasse Collin <lasse.collin@tukaani.org> 4186Date: 2024-06-15 18:07:04 +0300 4187 4188 CMake: Rename ENABLE_SMALL to XZ_SMALL 4189 4190 CMakeLists.txt | 14 +++++++------- 4191 1 file changed, 7 insertions(+), 7 deletions(-) 4192 4193commit 29f77c7b707f2458fb047e77497354b195e05b14 4194Author: Lasse Collin <lasse.collin@tukaani.org> 4195Date: 2024-06-15 18:07:04 +0300 4196 4197 CMake: Rename ENABLE_NLS to XZ_NLS 4198 4199 Also update the description to mention that this affects installation 4200 of translated man pages too. 4201 4202 Prefixing the cache variables with the project name helps if 4203 the package is used as a subproject in another package. 4204 It also makes the package-specific options group more nicely 4205 in ccmake and cmake-gui. 4206 4207 CMakeLists.txt | 28 +++++++++++++++------------- 4208 1 file changed, 15 insertions(+), 13 deletions(-) 4209 4210commit ac05f1b0d7cda1e7ae79775a8dfecc54601d7f1c 4211Author: Lasse Collin <lasse.collin@tukaani.org> 4212Date: 2024-06-15 23:34:29 +0300 4213 4214 CMake: Link Threads::Threads as PRIVATE to liblzma 4215 4216 This way pthread options aren't passed to the linker when linking 4217 against shared liblzma but they are still passed when linking against 4218 static liblzma. (Also, one never needs the include path of the 4219 threading library to use liblzma since liblzma's API headers 4220 don't #include <pthread.h>. But <pthread.h> tends to be in the 4221 default include path so here this change makes no difference.) 4222 4223 One cannot mix target_link_libraries() calls that use the scope 4224 (PRIVATE, PUBLIC, or INTERFACE) keyword and calls that don't use it. 4225 The calls without the keyword are like PUBLIC except perhaps when 4226 they aren't, or something like that... It seems best to always 4227 specify a scope keyword as the meanings of those three keywords 4228 at least are clear. 4229 4230 CMakeLists.txt | 2 +- 4231 1 file changed, 1 insertion(+), 1 deletion(-) 4232 4233commit 82986d8c691a294c78b48d8391303e5c428b5437 4234Author: Lasse Collin <lasse.collin@tukaani.org> 4235Date: 2024-06-16 19:39:32 +0300 4236 4237 CMake: Add empty lines 4238 4239 CMakeLists.txt | 2 ++ 4240 1 file changed, 2 insertions(+) 4241 4242commit 2aecffe0f0e14f3ef635e8cd7b405420f2385de2 4243Author: Lasse Collin <lasse.collin@tukaani.org> 4244Date: 2024-06-16 19:37:36 +0300 4245 4246 CMake: Use CMAKE_THREAD_LIBS_INIT in liblzma.pc only with pthreads 4247 4248 This shouldn't make much difference in practice as on Windows 4249 no flags are needed anyway and unitialized variable (when threading 4250 is disabled) expands to empty. But it's clearer this way. 4251 4252 CMakeLists.txt | 8 +++++++- 4253 1 file changed, 7 insertions(+), 1 deletion(-) 4254 4255commit 664918bd3635ea8e773f06022286ecb0c485166c 4256Author: Lasse Collin <lasse.collin@tukaani.org> 4257Date: 2024-06-17 18:20:14 +0300 4258 4259 Update THANKS 4260 4261 THANKS | 3 +++ 4262 1 file changed, 3 insertions(+) 4263 4264commit 5ca96a93488d0f5a530c78b274cac317453807ff 4265Author: Lasse Collin <lasse.collin@tukaani.org> 4266Date: 2024-06-16 19:25:07 +0300 4267 4268 CMake: Use native newlines in liblzma.pc 4269 4270 vcpkg doesn't specify the newline type so it should be fine to 4271 use native newlines in liblzma.pc on Windows. 4272 4273 CMakeLists.txt | 4 +--- 4274 1 file changed, 1 insertion(+), 3 deletions(-) 4275 4276commit ebd155c3a1b87411edae06d3bdaa9659ec057522 4277Author: Lasse Collin <lasse.collin@tukaani.org> 4278Date: 2024-06-16 19:18:56 +0300 4279 4280 CMake: Use relative paths in liblzma.pc if possible 4281 4282 Now liblzma.pc can be relocatable only if using CMake >= 3.20 4283 but that should be OK as now we shouldn't get broken liblzma.pc 4284 if CMAKE_INSTALL_LIBDIR or CMAKE_INSTALL_INCLUDEDIR contain an 4285 absolute path. 4286 4287 Thanks to Eli Schwartz. 4288 4289 CMakeLists.txt | 18 ++++++++++++++---- 4290 1 file changed, 14 insertions(+), 4 deletions(-) 4291 4292commit 7a366d93cfd74ce10201db400be8836199944e36 4293Author: Lasse Collin <lasse.collin@tukaani.org> 4294Date: 2024-06-16 18:33:08 +0300 4295 4296 Revert "CMake: Set only "prefix" as an absolute path in liblzma.pc" 4297 4298 This reverts commit 5d1c649ba9eb7a5b9371252ebfbc2911dc774e69. 4299 4300 While CMAKE_INSTALL_<dir> tend to be relative paths, they don't need 4301 to be. Thus the commit was broken. A fancier method is required. 4302 4303 Thanks to Eli Schwartz for the bug report and explanation. 4304 4305 CMakeLists.txt | 6 +++--- 4306 1 file changed, 3 insertions(+), 3 deletions(-) 4307 4308commit 30a2d5d51006301a3ddab5ef1f5ff0a9d74dce6f 4309Author: Lasse Collin <lasse.collin@tukaani.org> 4310Date: 2024-06-16 13:39:37 +0300 4311 4312 liblzma: CRC CLMUL: Omit is_arch_extension_supported() when not needed 4313 4314 On E2K the function compiles only due to compiler emulation but the 4315 function is never used. It's cleaner to omit the function when it's 4316 not needed even though it's a "static inline" function. 4317 4318 Thanks to Ilya Kurdyukov. 4319 4320 src/liblzma/check/crc_x86_clmul.h | 4 ++++ 4321 1 file changed, 4 insertions(+) 4322 4323commit 54eaea5ea49bb8bca4286d4412f19ac73187489e 4324Author: Lasse Collin <lasse.collin@tukaani.org> 4325Date: 2024-06-16 13:21:34 +0300 4326 4327 liblzma: x86 CLMUL CRC: Rewrite 4328 4329 It's faster with both tiny and large buffers and doesn't require 4330 disabling any sanitizers. With large buffers the extra speed is 4331 from folding four 16-byte chunks in parallel. 4332 4333 The 32-bit x86 with MSVC reportedly still needs a workaround. 4334 Now the simpler "__asm mov ebx, ebx" trick is enough but it 4335 needs to be in lzma_crc64() instead of crc64_arch_optimized(). 4336 Thanks to Iouri Kharon for testing and the fix. 4337 4338 Thanks to Ilya Kurdyukov for testing the speed with aligned and 4339 unaligned buffers on a few x86 processors and on E2K v6. 4340 4341 Thanks to Sam James for general feedback. 4342 4343 Fixes: https://github.com/tukaani-project/xz/issues/112 4344 Fixes: https://github.com/tukaani-project/xz/issues/122 4345 4346 src/liblzma/check/crc64_fast.c | 8 + 4347 src/liblzma/check/crc_x86_clmul.h | 437 ++++++++++++++++++++------------------ 4348 2 files changed, 237 insertions(+), 208 deletions(-) 4349 4350commit c0e7eaae8d6eef1e313c9d0da20ccf126ec61f38 4351Author: Lasse Collin <lasse.collin@tukaani.org> 4352Date: 2024-06-01 14:44:04 +0300 4353 4354 sysdefs.h: Add alignas 4355 4356 src/common/sysdefs.h | 11 +++++++++++ 4357 1 file changed, 11 insertions(+) 4358 4359commit 20014c261451381d5e2f58e63e7b1fbefd4df4bf 4360Author: Lasse Collin <lasse.collin@tukaani.org> 4361Date: 2024-06-11 12:47:59 +0300 4362 4363 liblzma: Use a single macro to select CLMUL CRC to build 4364 4365 This way it's clearer that two things cannot be selected 4366 at the same time. 4367 4368 src/liblzma/check/crc32_fast.c | 2 +- 4369 src/liblzma/check/crc64_fast.c | 2 +- 4370 src/liblzma/check/crc_x86_clmul.h | 18 ++++++++++-------- 4371 3 files changed, 12 insertions(+), 10 deletions(-) 4372 4373commit d8fb0986171bd6a3066b236fc9a6b3d573c8e441 4374Author: Lasse Collin <lasse.collin@tukaani.org> 4375Date: 2024-06-10 15:31:01 +0300 4376 4377 liblzma: CRC32 CLMUL: Refactor the constants and simplify 4378 4379 By using modulus scaled constants, the final reduction can 4380 be simplified. 4381 4382 src/liblzma/check/crc_x86_clmul.h | 52 +++++++-------------------------------- 4383 1 file changed, 9 insertions(+), 43 deletions(-) 4384 4385commit ef652ac391ff7e8cda656238dc5b5f83bc1554c2 4386Author: Lasse Collin <lasse.collin@tukaani.org> 4387Date: 2024-06-10 15:12:48 +0300 4388 4389 liblzma: CRC64 CLMUL: Refactor the constants 4390 4391 Now it refers to crc_clmul_consts_gen.c. vfold8 was renamed to mu_p 4392 and the p no longer has the lowest bit set (it makes no difference 4393 as the output bits it affects are ignored). 4394 4395 src/liblzma/check/crc_x86_clmul.h | 43 +++++++-------------------------------- 4396 1 file changed, 7 insertions(+), 36 deletions(-) 4397 4398commit 9f5fc17e32bf5c7c6cfadf40c29a1dedb4cc03ac 4399Author: Lasse Collin <lasse.collin@tukaani.org> 4400Date: 2024-06-10 14:45:44 +0300 4401 4402 liblzma: Add crc_clmul_consts_gen.c 4403 4404 It's a standalone program that prints the required constants. 4405 It's won't be a part of the normal build of the package. 4406 4407 src/liblzma/check/Makefile.inc | 1 + 4408 src/liblzma/check/crc_clmul_consts_gen.c | 160 +++++++++++++++++++++++++++++++ 4409 2 files changed, 161 insertions(+) 4410 4411commit 71b147aab7fe4a60ed57b697d5bb490f099894be 4412Author: Lasse Collin <lasse.collin@tukaani.org> 4413Date: 2024-05-09 21:44:03 +0300 4414 4415 liblzma: Remove CRC_USE_GENERIC_FOR_SMALL_INPUTS 4416 4417 It was already commented out. 4418 4419 src/liblzma/check/crc32_fast.c | 21 --------------------- 4420 src/liblzma/check/crc64_fast.c | 5 ----- 4421 src/liblzma/check/crc_common.h | 14 -------------- 4422 src/liblzma/check/crc_x86_clmul.h | 9 +-------- 4423 4 files changed, 1 insertion(+), 48 deletions(-) 4424 4425commit f99a7be40645f86959a5b180dfae948dd165e07c 4426Author: Lasse Collin <lasse.collin@tukaani.org> 4427Date: 2024-05-09 21:03:39 +0300 4428 4429 liblzma: Remove crc_attr_no_sanitize_address 4430 4431 It's not enough to silence the address sanitizer. Also memory and 4432 thread sanitizers would need to be silenced. They, at least currently, 4433 aren't smart enough to see that the extra bytes are discarded from 4434 the xmm registers by later instructions. 4435 4436 Valgrind is smarter, possibly because this kind of code isn't weird 4437 to write in assembly. Agner Fog's optimizing_assembly.pdf even mentions 4438 this idea of doing an aligned read and then discarding the extra 4439 bytes. The sanitizers don't instrument assembly code but Valgrind 4440 checks all code. 4441 4442 It's better to change the implementation to avoid the sanitization 4443 attributes which also look scary in the code. (Somehow they can look 4444 more scary than __asm__ which is implictly unsanitized.) 4445 4446 See also: 4447 https://github.com/tukaani-project/xz/issues/112 4448 https://github.com/tukaani-project/xz/issues/122 4449 4450 src/liblzma/check/crc_common.h | 9 --------- 4451 src/liblzma/check/crc_x86_clmul.h | 3 --- 4452 2 files changed, 12 deletions(-) 4453 4454commit ead4d151996f8a18bf9b07eb1e175c0a1590e562 4455Author: Lasse Collin <lasse.collin@tukaani.org> 4456Date: 2024-06-10 15:37:49 +0300 4457 4458 Revert "Build: Temporarily disable CRC CLMUL to silence OSS Fuzz" 4459 4460 This reverts commit 9f1a6d6f9a258886933a22239a5b81af34b28199. 4461 4462 configure.ac | 4 +--- 4463 1 file changed, 1 insertion(+), 3 deletions(-) 4464 4465commit 2178acf8a4d40a93e970cfcf9b807d5ef6c8da92 4466Author: Lasse Collin <lasse.collin@tukaani.org> 4467Date: 2024-06-12 14:26:44 +0300 4468 4469 CMake: Prefer C11 with a fallback to C99 4470 4471 There is no need to make a similar change in configure.ac. 4472 With Autoconf 2.72, the deprecated macro AC_PROG_CC_C99 4473 is an alias for AC_PROG_CC which prefers a C11 compiler. 4474 4475 CMakeLists.txt | 17 +++++++++++------ 4476 1 file changed, 11 insertions(+), 6 deletions(-) 4477 4478commit c97e9c12fef4d1093ee2a75236742481361f50f5 4479Author: Lasse Collin <lasse.collin@tukaani.org> 4480Date: 2024-06-12 14:20:21 +0300 4481 4482 Update THANKS 4483 4484 THANKS | 4 ++++ 4485 1 file changed, 4 insertions(+) 4486 4487commit 89e9f12e03324b8a186e807b268f34f92d1b2f41 4488Author: Lasse Collin <lasse.collin@tukaani.org> 4489Date: 2024-06-11 11:15:49 +0300 4490 4491 Tests: Improve the CRC32 test 4492 4493 A similar one was already there for CRC64 but nowadays also CRC32 4494 has a CLMUL implementation, so it's good to test it better too. 4495 4496 tests/test_check.c | 17 +++++++++++++---- 4497 1 file changed, 13 insertions(+), 4 deletions(-) 4498 4499commit c7164b1927e3fe7cdba70ee4687e1a590a81043b 4500Author: Lasse Collin <lasse.collin@tukaani.org> 4501Date: 2024-06-11 22:42:26 +0300 4502 4503 xz: Fix white space 4504 4505 src/xz/list.c | 6 +++--- 4506 1 file changed, 3 insertions(+), 3 deletions(-) 4507 4508commit 0a32d2072c598de281058b26dc08920fbf0cd2a1 4509Author: Lasse Collin <lasse.collin@tukaani.org> 4510Date: 2024-06-11 21:59:09 +0300 4511 4512 liblzma: Fix a typo in a comment 4513 4514 Thanks to Sam James for spotting it. 4515 4516 Fixes: f644473a211394447824ea00518d0a214ff3f7f2 4517 4518 src/liblzma/check/crc_x86_clmul.h | 2 +- 4519 1 file changed, 1 insertion(+), 1 deletion(-) 4520 4521commit afd9b4d282a10186808c3331dad4caf79c02d55f 4522Author: Lasse Collin <lasse.collin@tukaani.org> 4523Date: 2024-05-10 15:52:26 +0300 4524 4525 liblzma: Fix a comment indentation 4526 4527 src/liblzma/check/crc_common.h | 6 +++--- 4528 1 file changed, 3 insertions(+), 3 deletions(-) 4529 4530commit 50e6bff274568c568930e15094da8217e7d47d28 4531Author: Lasse Collin <lasse.collin@tukaani.org> 4532Date: 2024-05-09 22:09:12 +0300 4533 4534 liblzma: Fix white space 4535 4536 src/liblzma/check/crc32_table.c | 10 +++++----- 4537 src/liblzma/check/crc_x86_clmul.h | 6 +++--- 4538 src/liblzma/check/sha256.c | 2 +- 4539 3 files changed, 9 insertions(+), 9 deletions(-) 4540 4541commit caea7844d3824755d053b4743c4913d73ac2db3d 4542Author: Lasse Collin <lasse.collin@tukaani.org> 4543Date: 2024-06-01 14:25:29 +0300 4544 4545 tuklib: __STDC_VERSION__ in C23 is 202311 4546 4547 src/common/tuklib_common.h | 4 +--- 4548 1 file changed, 1 insertion(+), 3 deletions(-) 4549 4550commit 9e73918a4f14be754a23f74dda45ca431939a4a0 4551Author: RainRat <rainrat78@yahoo.ca> 4552Date: 2024-06-05 15:21:49 -0700 4553 4554 Fix typos 4555 4556 Closes: https://github.com/tukaani-project/xz/pull/124 4557 4558 INSTALL | 2 +- 4559 doc/examples/03_compress_custom.c | 2 +- 4560 src/common/tuklib_integer.h | 2 +- 4561 src/liblzma/api/lzma/container.h | 2 +- 4562 src/xz/mytime.c | 2 +- 4563 tests/test_filter_str.c | 2 +- 4564 6 files changed, 6 insertions(+), 6 deletions(-) 4565 4566commit 04b23addf3733873667675df2439725f076c2f36 4567Author: Lasse Collin <lasse.collin@tukaani.org> 4568Date: 2024-06-07 15:47:20 +0300 4569 4570 tuklib_integer: Fix building on OpenBSD/sparc64 that uses GCC 4.2 4571 4572 GCC 4.2 doesn't have __builtin_bswap16() and friends so tuklib_integer.h 4573 tries to use OS-specific byte swap methods instead. On OpenBSD those 4574 macros are swap16/32/64 instead of bswap16/32/64 like on other *BSDs 4575 and Darwin. 4576 4577 An alternative to "#ifdef __OpenBSD__" could be "#ifdef swap16" as it 4578 is a macro. But since OpenBSD seems to be a special case under this 4579 special case of "*BSDs and Darwin", checking for __OpenBSD__ seems 4580 the more conservative choice now. 4581 4582 Thanks to Christian Weisgerber and Brad Smith who both submitted 4583 the same patch a few hours apart. 4584 4585 Co-authored-by: Christian Weisgerber <naddy@mips.inka.de> 4586 Co-authored-by: Brad Smith <brad@comstyle.com> 4587 Closes: https://github.com/tukaani-project/xz/pull/126 4588 4589 src/common/tuklib_integer.h | 12 +++++++++--- 4590 1 file changed, 9 insertions(+), 3 deletions(-) 4591 4592commit dc03f6290f5b9bd3d50c7e12e58dee870889d599 4593Author: Lasse Collin <lasse.collin@tukaani.org> 4594Date: 2024-06-07 15:06:59 +0300 4595 4596 liblzma: Add ARM64 CRC32 instruction support detection on OpenBSD 4597 4598 The C code is from Christian Weisgerber, I merely reordered the OSes. 4599 Then I added the build system checks without testing them. 4600 4601 Also thanks to Brad Smith who submitted a similar patch on GitHub 4602 a few hours after Christian had sent his via email. 4603 4604 Co-authored-by: Christian Weisgerber <naddy@mips.inka.de> 4605 Closes: https://github.com/tukaani-project/xz/pull/125 4606 4607 CMakeLists.txt | 6 ++++++ 4608 configure.ac | 9 +++++++++ 4609 src/liblzma/check/crc32_arm64.h | 15 +++++++++++++++ 4610 src/liblzma/check/crc_common.h | 1 + 4611 4 files changed, 31 insertions(+) 4612 4613commit f5c2ae58ec68c665e62c790b842657afcb31474c 4614Author: Lasse Collin <lasse.collin@tukaani.org> 4615Date: 2024-06-05 13:55:43 +0300 4616 4617 Update THANKS 4618 4619 THANKS | 2 ++ 4620 1 file changed, 2 insertions(+) 4621 4622commit e5491dfab9c54dc7078a8d3d07fabb91d6e06418 4623Author: Lasse Collin <lasse.collin@tukaani.org> 4624Date: 2024-06-05 13:42:47 +0300 4625 4626 CMake: Include the "alpha" or "beta" suffix in PACKAGE_VERSION 4627 4628 This way the version string gets into xzgrep and other scripts 4629 in full and also into liblzma.pc. 4630 4631 For the project() command, a suffixless string is required though. 4632 4633 CMakeLists.txt | 16 +++++++++++++--- 4634 1 file changed, 13 insertions(+), 3 deletions(-) 4635 4636commit 1d3c61575fda0be6b2d50c9e32a343349d5cd5c0 4637Author: Lasse Collin <lasse.collin@tukaani.org> 4638Date: 2024-06-05 13:30:28 +0300 4639 4640 CMake: Fix wrong version variable 4641 4642 liblzma_VERSION has never existed in the repository. xz_VERSION from 4643 the project() command was used for liblzma SOVERSION so use xz_VERSION 4644 here too. 4645 4646 The wrong variable did no harm in practice as PROJECT_VERSION 4647 was used as the fallback. It has the same value as xz_VERSION. 4648 4649 Fixes: 7e3493d40eac0c3fa3d5124097745a70e15c41f6 4650 4651 CMakeLists.txt | 2 +- 4652 1 file changed, 1 insertion(+), 1 deletion(-) 4653 4654commit 5d1c649ba9eb7a5b9371252ebfbc2911dc774e69 4655Author: Lasse Collin <lasse.collin@tukaani.org> 4656Date: 2024-06-05 12:59:59 +0300 4657 4658 CMake: Set only "prefix" as an absolute path in liblzma.pc 4659 4660 CMake provides variables that are relative to CMAKE_INSTALL_PREFIX 4661 so use them instead of repeating the full path. 4662 4663 CMakeLists.txt | 6 +++--- 4664 1 file changed, 3 insertions(+), 3 deletions(-) 4665 4666commit e0d6d05ce0d464e966c0669bbf869202a43cc2f7 4667Author: Lasse Collin <lasse.collin@tukaani.org> 4668Date: 2024-06-04 23:59:29 +0300 4669 4670 CMake: Fix liblzma filename in Windows environments 4671 4672 This is a mess because liblzma DLL outside Cygwin and MSYS2 4673 is liblzma.dll instead of lzma.dll to avoid a conflict with 4674 lzma.dll from LZMA SDK. 4675 4676 On Cygwin the name was "liblzma-5.dll" while "cyglzma-5.dll" 4677 would have been correct (and match what Libtool produces). 4678 MSYS2 likely was broken too as it uses the "msys-" prefix. 4679 4680 This change has no effect with MinGW-w64 because with that 4681 the "lib" prefix was correct already. 4682 4683 With MSVC builds this is a small breaking change that requires developers 4684 to adjust the library name when linking against liblzma. The liblzma.dll 4685 name is kept as is but the import library and static library are now 4686 lzma.lib instead of liblzma.lib. This is helpful when using pkgconf 4687 because "pkgconf --msvc-syntax --libs liblzma" outputs "lzma.lib" 4688 (it's converted from "-llzma" in liblzma.pc). It would be easy to 4689 keep the liblzma.lib naming but the pkgconf compatibility seems worth 4690 it in the long run. The lzma.lib name is compatible with MinGW-w64 4691 too as -llzma will find also lzma.lib. 4692 4693 vcpkg had been patching CMakeLists.txt this way since 2022 but I 4694 learned this only recently. The reasoning for the patch makes sense, 4695 and while this is a small breaking change with MSVC, it seems like 4696 a decent compromise as it keeps the DLL name the same. 4697 4698 2022 patch in vcpkg: https://github.com/microsoft/vcpkg/blob/0707a17ecf1466d64cf1a3c1ee18c8ff02aadb2d/ports/liblzma/win_output_name.patch 4699 See the discussion: https://github.com/microsoft/vcpkg/pull/39024 4700 4701 Thanks to Vincent Torri for confirming the naming issue on Cygwin. 4702 4703 CMakeLists.txt | 34 ++++++++++++++++++++++++++++++---- 4704 1 file changed, 30 insertions(+), 4 deletions(-) 4705 4706commit e7a42cda7c827e016619e8cab15e2faf5d4181ae 4707Author: Lasse Collin <lasse.collin@tukaani.org> 4708Date: 2024-06-03 16:55:03 +0300 4709 4710 Fix version.sh compatiblity with Solaris 4711 4712 The ancient /bin/tr on Solaris doesn't support '\n'. 4713 With /usr/xpg4/bin/tr it works but it might not be in PATH. 4714 4715 Another problem was that sed was given input that didn't have a newline 4716 at the end. Text files must end with a newline to be portable. 4717 4718 Fix both problems: 4719 4720 - Handle multiline input within sed itself to avoid one tr invocation. 4721 The default sed even on Solaris does understand \n. 4722 4723 - Use octals in tr -d. \012 works for ASCII "line feed", it's even 4724 used as an example in the Solaris man page. But we must strip 4725 also ASCII "carriage return" \015 and EBCDIC "next line" \025. 4726 The EBCDIC case got handled with \n previously. Stripping \012 4727 and \015 on EBCDIC system won't matter as those control chars 4728 won't be present in the string in the first place. 4729 4730 An awk-based solution could be an alternative but it might need 4731 special casing on Solaris to used nawk instead of awk. The changes 4732 in this commit are smaller and should have a smaller risk for 4733 regressions. It's also possible that version.sh will be dropped 4734 entirely at some point. 4735 4736 build-aux/version.sh | 5 ++--- 4737 1 file changed, 2 insertions(+), 3 deletions(-) 4738 4739commit a61c9ab4751f2710dcd5459c7d74bbf20781f0f9 4740Author: Lasse Collin <lasse.collin@tukaani.org> 4741Date: 2024-06-03 17:07:11 +0300 4742 4743 CI: Don't require po4a on Solaris 4744 4745 .github/workflows/solaris.yml | 2 +- 4746 1 file changed, 1 insertion(+), 1 deletion(-) 4747 4748commit 5229bdf5335ce18ed54beb7e646e39927663be86 4749Author: Lasse Collin <lasse.collin@tukaani.org> 4750Date: 2024-06-03 15:08:15 +0300 4751 4752 CI: Use set -e on Solaris too 4753 4754 .github/workflows/solaris.yml | 1 + 4755 1 file changed, 1 insertion(+) 4756 4757commit afa938e429c1ce07d26d02999352fb014b62ff3d 4758Author: Lasse Collin <lasse.collin@tukaani.org> 4759Date: 2024-06-03 17:44:50 +0300 4760 4761 CMake: Install liblzma.pc even with MSVC 4762 4763 I had misunderstood that it wouldn't be useful with MSVC. 4764 vcpkg had been installing liblzma.pc with custom rules since 2020, 4765 years before liblzma.pc support was added to CMakeLists.txt. 4766 4767 See: 4768 https://github.com/microsoft/vcpkg/blob/eb895b95aac6fd7485373702f29f508c42a180a0/ports/liblzma/portfile.cmake 4769 https://github.com/microsoft/vcpkg/pull/39024#issuecomment-2145064670 4770 4771 CMakeLists.txt | 8 +++----- 4772 1 file changed, 3 insertions(+), 5 deletions(-) 4773 4774commit 35f8649f08341639a627fd06350e938124ca3622 4775Author: Sam James <sam@gentoo.org> 4776Date: 2024-06-03 06:16:23 +0100 4777 4778 ci: don't pin official GH actions via commit, just tag 4779 4780 There's no real value in doing it via commit for official GH actions. We 4781 can keep using pinned commits for unofficial actions. It's hassle for no 4782 gain. 4783 4784 Maybe going forward we can limit this further by only being paranoid 4785 for the jobs with any access to tokens. 4786 4787 .github/workflows/ci.yml | 4 ++-- 4788 .github/workflows/freebsd.yml | 2 +- 4789 .github/workflows/netbsd.yml | 2 +- 4790 .github/workflows/openbsd.yml | 2 +- 4791 .github/workflows/solaris.yml | 2 +- 4792 .github/workflows/windows-ci.yml | 4 ++-- 4793 6 files changed, 8 insertions(+), 8 deletions(-) 4794 4795commit e885dae37ff5b1dbc760dabc1e03e866a7302ef2 4796Author: Christoph Junghans <christoph.junghans@gmail.com> 4797Date: 2024-04-30 07:49:26 -0600 4798 4799 ci: set -e on openbsd 4800 4801 Closes: https://github.com/tukaani-project/xz/pull/116 4802 4803 .github/workflows/openbsd.yml | 1 + 4804 1 file changed, 1 insertion(+) 4805 4806commit 21b02dd128cf9e8c76325ec124f70381862dcf19 4807Author: Christoph Junghans <christoph.junghans@gmail.com> 4808Date: 2024-04-30 07:48:58 -0600 4809 4810 ci: set -e on netbsd 4811 4812 .github/workflows/netbsd.yml | 1 + 4813 1 file changed, 1 insertion(+) 4814 4815commit 8641f0c24c041136670c975b23408184b45431bc 4816Author: Christoph Junghans <christoph.junghans@gmail.com> 4817Date: 2024-04-25 14:56:06 -0700 4818 4819 ci: actually fail on FreeBSD 4820 4821 Without "set -e" the job will always be successful. 4822 4823 See vmactions/freebsd-vm#72 4824 4825 .github/workflows/freebsd.yml | 1 + 4826 1 file changed, 1 insertion(+) 4827 4828commit ef616683ef11f11ffdfbe0624da33905e28a70f9 4829Author: Andrew Murray <radarhere@users.noreply.github.com> 4830Date: 2024-04-25 09:24:46 +1000 4831 4832 Updated actions 4833 4834 Closes: https://github.com/tukaani-project/xz/pull/115 4835 4836 .github/workflows/ci.yml | 4 ++-- 4837 .github/workflows/windows-ci.yml | 6 +++--- 4838 2 files changed, 5 insertions(+), 5 deletions(-) 4839 4840commit 57b440d316da9ac9cb312ee7e6890f5382556f10 4841Author: Sam James <sam@gentoo.org> 4842Date: 2024-06-03 02:49:40 +0100 4843 4844 ci: add po4a 4845 4846 .github/workflows/netbsd.yml | 2 +- 4847 .github/workflows/openbsd.yml | 3 ++- 4848 2 files changed, 3 insertions(+), 2 deletions(-) 4849 4850commit 08cdf4be9a673d78efe393b53dd73bf43c81dd95 4851Author: Sam James <sam@gentoo.org> 4852Date: 2024-04-13 21:02:04 +0100 4853 4854 ci: add Solaris 4855 4856 Inspired by https://github.com/RsyncProject/rsync/commit/3f2a38b01184cae9a931280b534acf5a3dae2e94. 4857 4858 It runs on Solaris 5.11 via a VirtualBox VM. 4859 4860 .github/workflows/solaris.yml | 31 +++++++++++++++++++++++++++++++ 4861 1 file changed, 31 insertions(+) 4862 4863commit b69768c8bd1a34fde311935c551d061ba52d9a3f 4864Author: Sam James <sam@gentoo.org> 4865Date: 2024-04-14 08:08:00 +0100 4866 4867 xz: list: suppress -Wformat-nonliteral for Solaris 4868 4869 Solaris' GCC can't understand that our use is fine, unlike modern compilers: 4870 ``` 4871 list.c: In function 'print_totals_basic': 4872 list.c:1191:4: error: format not a string literal, argument types not checked [-Werror=format-nonliteral] 4873 uint64_to_str(totals.files, 0)); 4874 ^~~~~~~~~~~~~ 4875 cc1: all warnings being treated as errors 4876 ``` 4877 4878 It's presumably because of older gettext missing format attributes. 4879 4880 This is with `gcc (GCC) 7.3.0`. 4881 4882 src/xz/list.c | 7 +++++++ 4883 1 file changed, 7 insertions(+) 4884 4885commit bb90e1f66d9beb490c4c99763e79519045968710 4886Author: Lasse Collin <lasse.collin@tukaani.org> 4887Date: 2024-06-03 11:44:28 +0300 4888 4889 license-check.sh: Fix reporting of unclear license info 4890 4891 The main feature was broken because an old variable name hadn't 4892 been updated to match the rest of the script. 4893 4894 build-aux/license-check.sh | 4 ++-- 4895 1 file changed, 2 insertions(+), 2 deletions(-) 4896 4897commit b8d134e61ede9f4a296226d97f5c20721fb4e8e2 4898Author: Lasse Collin <lasse.collin@tukaani.org> 4899Date: 2024-05-31 21:36:26 +0300 4900 4901 Update THANKS 4902 4903 THANKS | 3 +++ 4904 1 file changed, 3 insertions(+) 4905 4906commit 162587d3fb3fcedc6eee61eda3ccaaf60c80f0de 4907Author: Lasse Collin <lasse.collin@tukaani.org> 4908Date: 2024-05-29 17:47:13 +0300 4909 4910 Translations: Run po4a/update-po 4911 4912 Now the files are in the new formatting without source file 4913 line numbers. Future updates should keep the diffs much smaller. 4914 4915 po4a/de.po | 1592 ++++++++++--------- 4916 po4a/fr.po | 4450 +++++++++++++++++----------------------------------- 4917 po4a/ko.po | 1592 ++++++++++--------- 4918 po4a/pt_BR.po | 4817 ++++++++++++++++++--------------------------------------- 4919 po4a/ro.po | 1592 ++++++++++--------- 4920 po4a/uk.po | 1592 ++++++++++--------- 4921 6 files changed, 6114 insertions(+), 9521 deletions(-) 4922 4923commit 50cd8ed002473c5cd53980e70a53e5e6ad646ffe 4924Author: Lasse Collin <lasse.collin@tukaani.org> 4925Date: 2024-05-29 17:44:53 +0300 4926 4927 Translations: Run "make -C po update-po" 4928 4929 In the past this wasn't done before releases; the Git repository 4930 just contained the files from the Translation Project. But this 4931 way it is clearer when comparing release tarballs against the 4932 Git repository. In future releases this might no longer be necessary 4933 within a stable branch as the .po files won't change so easily anymore 4934 when creating a tarball. 4935 4936 po/ca.po | 567 +++++++++++++++++++++++++--------------- 4937 po/cs.po | 821 +++++++++++++++++++++++++++++++++++++-------------------- 4938 po/da.po | 809 +++++++++++++++++++++++++++++++++++--------------------- 4939 po/de.po | 403 ++++++++++++++-------------- 4940 po/eo.po | 403 ++++++++++++++-------------- 4941 po/es.po | 403 ++++++++++++++-------------- 4942 po/fi.po | 578 +++++++++++++++++++++++++--------------- 4943 po/fr.po | 538 +++++++++++++++++++++++--------------- 4944 po/hr.po | 403 ++++++++++++++-------------- 4945 po/hu.po | 403 ++++++++++++++-------------- 4946 po/it.po | 854 +++++++++++++++++++++++++++++++++++++++--------------------- 4947 po/ko.po | 403 ++++++++++++++-------------- 4948 po/pl.po | 403 ++++++++++++++-------------- 4949 po/pt.po | 842 +++++++++++++++++++++++++++++++++++++++-------------------- 4950 po/pt_BR.po | 567 +++++++++++++++++++++++++--------------- 4951 po/ro.po | 403 ++++++++++++++-------------- 4952 po/sr.po | 838 ++++++++++++++++++++++++++++++++++++++-------------------- 4953 po/sv.po | 403 ++++++++++++++-------------- 4954 po/tr.po | 567 +++++++++++++++++++++++++--------------- 4955 po/uk.po | 403 ++++++++++++++-------------- 4956 po/vi.po | 403 ++++++++++++++-------------- 4957 po/zh_CN.po | 417 +++++++++++++++-------------- 4958 po/zh_TW.po | 558 ++++++++++++++++++++++++--------------- 4959 23 files changed, 7257 insertions(+), 5132 deletions(-) 4960 4961commit 16dbd865c8833462e1604a1e13f7effe55bb3fe6 4962Author: Lasse Collin <lasse.collin@tukaani.org> 4963Date: 2024-05-29 18:03:04 +0300 4964 4965 Add NEWS for 5.6.2 4966 4967 NEWS | 130 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4968 1 file changed, 130 insertions(+) 4969 4970commit a0eeb5f9369c43508610dcf00140edb8e2be92a6 4971Author: Lasse Collin <lasse.collin@tukaani.org> 4972Date: 2024-05-29 18:03:04 +0300 4973 4974 Add NEWS for 5.4.7 4975 4976 NEWS | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4977 1 file changed, 89 insertions(+) 4978 4979commit 9b476fb93a9672f2e70b56e3e9c7e9cfedd6c162 4980Author: Lasse Collin <lasse.collin@tukaani.org> 4981Date: 2024-05-29 18:03:04 +0300 4982 4983 Add NEWS for 5.2.13 4984 4985 NEWS | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4986 1 file changed, 115 insertions(+) 4987 4988commit 9284f1aea31f0eb23e2ea72f7218b271e2234762 4989Author: Lasse Collin <lasse.collin@tukaani.org> 4990Date: 2024-05-29 16:33:24 +0300 4991 4992 Build: Update po/*.po files only when needed 4993 4994 When po/xz.pot doesn't exist, running "make" or "make dist" will 4995 create it. Then the .po files will be updated but only if they 4996 actually would change more than the POT-Creation-Date line. 4997 Then the .gmo files would be generated from the .po files. 4998 This is the case before and after this commit. 4999 5000 However, "make dist" and thus "make mydist" did a forced update 5001 to the files, updating them even if the only change was the 5002 POT-Creation-Date line. This had pros and cons: It made it clear 5003 that the .po file really is in sync with the recent strings in 5004 the package. On the other hand, it added noise in form of changed 5005 files in the source tree and distribution tarballs. It can be 5006 ignored with something like "diff -I'^"POT-Creation-Date: '" but 5007 it's still a minor annoyance *if* there's not enough value in 5008 having the most recent timestamp. 5009 5010 Setting DIST_DEPENDS_ON_UPDATE_PO = no means that such forced 5011 update won't happen in "make dist" anymore. However, the "mydist" 5012 target will use xz.pot-update target which is the same target that 5013 is run when xz.pot doesn't exist at all yet. Thus "mydist" will 5014 ensure that the translations are up to date, without noise from 5015 changes that would affect only the POT-Creation-Date line. 5016 5017 Note that po4a always uses msgmerge with --update, so POT-Creation-Date 5018 in the man page translations is never the only change in .po files. 5019 In that sense this commit makes the message translations behave more 5020 similarly to the man page translations. 5021 5022 Distribution tarballs will still have non-reproducible POT-Creation-Date 5023 in po/xz.pot and po4a/xz-man.pot but those are just two files. Even they 5024 could be made reproducible from a Git timestamp if desired. 5025 5026 Makefile.am | 3 ++- 5027 po/Makevars | 6 +++++- 5028 2 files changed, 7 insertions(+), 2 deletions(-) 5029 5030commit 4beba1cd62d7f8f7a6f1e899b68292d94c53b599 5031Author: Lasse Collin <lasse.collin@tukaani.org> 5032Date: 2024-05-28 21:10:33 +0300 5033 5034 po4a/update-po: Disable wrapping in .pot and .po files 5035 5036 The .po files from the Translation Project come with unwrapped 5037 strings so this matches it. 5038 5039 This may reduce the noise in diffs too. When the beginning of 5040 a paragraph had changed, the rest of the lines got rewrapped 5041 in msgsid. Now it's just one very long line that changes when 5042 a paragraph has been edited. 5043 5044 The --add-location=file option was removed as redundant. The line 5045 numbers don't exist in the .pot file due to --porefs file and thus 5046 they cannot get copied to the .po files either. 5047 5048 po4a/update-po | 15 +++++++++++---- 5049 1 file changed, 11 insertions(+), 4 deletions(-) 5050 5051commit b14c130a58a649f9a73392eeb122cb252327c569 5052Author: Lasse Collin <lasse.collin@tukaani.org> 5053Date: 2024-05-28 18:36:53 +0300 5054 5055 Update contact info in README 5056 5057 README | 12 +++++++++--- 5058 1 file changed, 9 insertions(+), 3 deletions(-) 5059 5060commit 75f5f2e014b0ee646963f36bc6a9c840fb272353 5061Author: Lasse Collin <lasse.collin@tukaani.org> 5062Date: 2024-05-28 13:25:07 +0300 5063 5064 Translations: Use --package-name=xz-man with po4a 5065 5066 This is to match reality. See the added comment. 5067 5068 po4a/update-po | 9 ++++++++- 5069 1 file changed, 8 insertions(+), 1 deletion(-) 5070 5071commit eb217d016cfbbba1babc19a61095b3ea25898af6 5072Author: Lasse Collin <lasse.collin@tukaani.org> 5073Date: 2024-05-28 13:03:40 +0300 5074 5075 Translations: Omit --package-name from po/Makevars 5076 5077 This is closer to the reality in the po/*.po files. 5078 5079 po/Makevars | 3 +-- 5080 1 file changed, 1 insertion(+), 2 deletions(-) 5081 5082commit d28a4b2520adeeaa1b9e921bf42c7c1f36552c06 5083Author: Lasse Collin <lasse.collin@tukaani.org> 5084Date: 2024-05-27 17:45:51 +0300 5085 5086 license-check.sh: Use '--' with slightly untrusted filenames 5087 5088 Names from git ls-files should be safe but if one runs it on 5089 a tree without the .git dir and there are extra files, it's 5090 safer to have the end of arguments marked with '--'. 5091 5092 build-aux/license-check.sh | 6 +++--- 5093 1 file changed, 3 insertions(+), 3 deletions(-) 5094 5095commit fda0ec862a34094cf23fc25d0e0a95858c3a3ab5 5096Author: Lasse Collin <lasse.collin@tukaani.org> 5097Date: 2024-05-27 17:41:37 +0300 5098 5099 license-check.sh: Use xargs -0 instead of -d 5100 5101 Neither are in POSIX but -0 is much more portable in practice. 5102 5103 Despite the old comment, the grep usage should be portable already. 5104 5105 build-aux/license-check.sh | 11 ++++++----- 5106 1 file changed, 6 insertions(+), 5 deletions(-) 5107 5108commit 9114267038deaecf4832a5cacb5acbe6591ac839 5109Author: Lasse Collin <lasse.collin@tukaani.org> 5110Date: 2024-05-28 01:17:45 +0300 5111 5112 Translations: Omit man page line numbers from .pot and .po files 5113 5114 po4a/update-po | 5 +++++ 5115 1 file changed, 5 insertions(+) 5116 5117commit 093490b58271e9424ce38a7b1b38bcf61b9c86c6 5118Author: Lasse Collin <lasse.collin@tukaani.org> 5119Date: 2024-05-28 01:06:30 +0300 5120 5121 Translations: Use the xgettext option --add-location=file 5122 5123 po/Makevars | 3 ++- 5124 1 file changed, 2 insertions(+), 1 deletion(-) 5125 5126commit fccebe2b4fd513488fc920e4dac32562ed3c7637 5127Author: Lasse Collin <lasse.collin@tukaani.org> 5128Date: 2024-05-28 00:43:53 +0300 5129 5130 Translations: Use the msgmerge option --add-location=file 5131 5132 This way the PO file diffs are less noisy but the locations of the 5133 strings are still present at file level, just without line numbers. 5134 5135 The option is available since gettext 0.19 (2014). 5136 configure.ac requires 0.19.6. 5137 5138 po/Makevars | 2 +- 5139 1 file changed, 1 insertion(+), 1 deletion(-) 5140 5141commit f361d9ae85707a87eb28db400eb7229cec103d58 5142Author: Lasse Collin <lasse.collin@tukaani.org> 5143Date: 2024-05-27 12:22:08 +0300 5144 5145 Build: Use $(SHELL) instead of sh to run scripts in Makefile.am 5146 5147 Makefile.am | 14 +++++++------- 5148 1 file changed, 7 insertions(+), 7 deletions(-) 5149 5150commit a26dece34793a09aac2476f954d162d03e9cf62b 5151Author: Lasse Collin <lasse.collin@tukaani.org> 5152Date: 2024-05-23 17:25:13 +0300 5153 5154 Translations: Change the home page URLs in man page translations 5155 5156 Since the source strings have changed, these would get marked as 5157 fuzzy and the original string would be used instead. The original 5158 and translated strings are identical in this case so it wouldn't 5159 matter. But patching the translations helps still because then 5160 po4a will show the correct translation percentage. 5161 5162 po4a/de.po | 8 ++++---- 5163 po4a/fr.po | 4 ++-- 5164 po4a/ko.po | 4 ++-- 5165 po4a/pt_BR.po | 4 ++-- 5166 po4a/ro.po | 8 ++++---- 5167 po4a/uk.po | 8 ++++---- 5168 6 files changed, 18 insertions(+), 18 deletions(-) 5169 5170commit 24387c234b4eed1ef9a7eaa107391740b4095568 5171Author: Lasse Collin <lasse.collin@tukaani.org> 5172Date: 2024-05-23 15:15:18 +0300 5173 5174 CMake: Add manual support for 32-bit x86 assembly files 5175 5176 One has to pass -DENABLE_X86_ASM=ON to cmake to enable the 5177 CRC assembly code. Autodetection isn't done. Looking at 5178 CMAKE_SYSTEM_PROCESSOR might not work as it comes from uname 5179 unless cross-compilation is done using a CMake toolchain file. 5180 5181 On top of this, if the code is run on modern processors that support 5182 the CLMUL instruction, then the C code should be faster (but then 5183 one should also be using a x86-64 build if possible). 5184 5185 CMakeLists.txt | 34 +++++++++++++++++++++++++++++++--- 5186 1 file changed, 31 insertions(+), 3 deletions(-) 5187 5188commit 0fb3c9c3f684f5a25bd425ed079a20a79f0c969d 5189Author: Lasse Collin <lasse.collin@tukaani.org> 5190Date: 2024-05-23 14:26:45 +0300 5191 5192 CMake: Rename USE_DOXYGEN to ENABLE_DOXYGEN 5193 5194 It's more consistent with the other option() uses. 5195 5196 CMakeLists.txt | 4 ++-- 5197 1 file changed, 2 insertions(+), 2 deletions(-) 5198 5199commit 6bbec3bda02bf87d24fa095074456e723589921f 5200Author: Lasse Collin <lasse.collin@tukaani.org> 5201Date: 2024-05-22 15:21:53 +0300 5202 5203 Mention license-check.sh in COPYING 5204 5205 COPYING | 6 ++++++ 5206 1 file changed, 6 insertions(+) 5207 5208commit 62733592a1cc6f0b41f46ef52e06d1a6fe1ff38a 5209Author: Lasse Collin <lasse.collin@tukaani.org> 5210Date: 2024-05-22 15:21:53 +0300 5211 5212 Use more confident language in COPYING 5213 5214 COPYING | 8 ++++---- 5215 1 file changed, 4 insertions(+), 4 deletions(-) 5216 5217commit a119a4209e8827e1d7c2cfd30cb9f5a9b76f9dff 5218Author: Lasse Collin <lasse.collin@tukaani.org> 5219Date: 2024-05-22 15:21:53 +0300 5220 5221 Build: Run license-check.sh in "mydist" and "dist-hook" 5222 5223 In mydist the point is to check using the file list from the Git 5224 repository. In dist-hook it is to check that the TARBALL_IGNORE 5225 patterns work when the .git dir or the "git" command aren't available. 5226 5227 Refuse to create a distribution tarball if license issues are found. 5228 5229 Makefile.am | 2 ++ 5230 1 file changed, 2 insertions(+) 5231 5232commit f3434ecfcb45154508752986f4fc670b8f0555dc 5233Author: Lasse Collin <lasse.collin@tukaani.org> 5234Date: 2024-05-22 15:21:53 +0300 5235 5236 Add build-aux/license-check.sh 5237 5238 This helps in spotting files that lack SPDX license identifier 5239 and which haven't been explicitly white listed either. The script 5240 requires the .git directory to be present as only the files that 5241 are in the Git repository are checked. 5242 5243 XZ Utils isn't FSFE REUSE compliant for now. 5244 5245 Makefile.am | 1 + 5246 build-aux/license-check.sh | 174 +++++++++++++++++++++++++++++++++++++++++++++ 5247 2 files changed, 175 insertions(+) 5248 5249commit 9ae2ebc1e504a1814b0788de95fb5c58c0328dde 5250Author: Lasse Collin <lasse.collin@tukaani.org> 5251Date: 2024-04-29 17:16:38 +0300 5252 5253 Add SPDX license identifiers to files under tests/ossfuzz 5254 5255 tests/ossfuzz/Makefile | 2 ++ 5256 tests/ossfuzz/config/fuzz_decode_alone.options | 2 ++ 5257 tests/ossfuzz/config/fuzz_decode_stream.options | 2 ++ 5258 tests/ossfuzz/config/fuzz_encode_stream.options | 2 ++ 5259 tests/ossfuzz/config/fuzz_lzma.dict | 2 ++ 5260 tests/ossfuzz/config/fuzz_xz.dict | 2 ++ 5261 6 files changed, 12 insertions(+) 5262 5263commit 9000d70eb9815bd7f43ffddc1c3316c507aa0e05 5264Author: Lasse Collin <lasse.collin@tukaani.org> 5265Date: 2024-04-29 17:16:06 +0300 5266 5267 Add SPDX license identifier to .codespellrc 5268 5269 .codespellrc | 2 ++ 5270 1 file changed, 2 insertions(+) 5271 5272commit 903c16fcfa5bfad0cdb2a7383d941243bcb12e76 5273Author: Lasse Collin <lasse.collin@tukaani.org> 5274Date: 2024-05-22 15:12:09 +0300 5275 5276 Move entries po4a/.gitignore to the top level .gitignore 5277 5278 The po4a directory is in EXTRA_DIST and thus all files there 5279 are included in the package. .gitignore doesn't belong in the 5280 package so keep that file out of the po4a directory. 5281 5282 .gitignore | 4 ++++ 5283 po4a/.gitignore | 3 --- 5284 2 files changed, 4 insertions(+), 3 deletions(-) 5285 5286commit 56f1d5ed68e84ba5dfa328ea2291b8f46c995125 5287Author: Lasse Collin <lasse.collin@tukaani.org> 5288Date: 2024-05-20 16:55:00 +0300 5289 5290 Tests: Make the config.h grep patterns Meson compatible 5291 5292 Now the test scripts detect both 5293 5294 #define HAVE_DECODER_ARM 5295 #define HAVE_DECODER_ARM 1 5296 5297 as support for the ARM filter without confusing it with these: 5298 5299 #define HAVE_DECODER_ARM64 5300 #define HAVE_DECODER_ARM64 1 5301 5302 Previously only the ones ending with " 1" were accepted for 5303 the macros where this kind of confusion was possible. 5304 5305 This should help with Meson support because Meson's built-in 5306 features produce config.h entries that are either 5307 5308 #define FOO 1 5309 #define FOO 0 5310 5311 or: 5312 5313 #define FOO 5314 #undef FOO 5315 5316 The former method has a benefit that one can use "#if FOO" and -Wundef 5317 will catch if a #define is missing (for example, it helps catching 5318 typos). But XZ Utils has to use the latter since it has been 5319 convenient with Autoconf's default behavior.[*] While it's easy to 5320 emulate the Autoconf style (#define FOO 1 vs. no #define at all) 5321 in Meson, it results in clumsy code. Thus it's better to change 5322 the few places in the tests where this difference matters. 5323 5324 [*] While most checks in Autoconf default to the second style above, 5325 a few things use the first style (like AC_CHECK_DECLS). The mix 5326 of both styles is the most confusing as one has to remember which 5327 macro needs #ifdef and which #if. Currently HAVE_VISIBILITY is 5328 only such config.h entry that is 1 or 0. It comes unmodified 5329 from Gnulib's visibility.m4. 5330 5331 tests/test_compress.sh | 4 ++-- 5332 tests/test_files.sh | 2 +- 5333 2 files changed, 3 insertions(+), 3 deletions(-) 5334 5335commit 9d997d6f9d4f042412e45c7b7a23a14ad2e4f9aa 5336Author: Lasse Collin <lasse.collin@tukaani.org> 5337Date: 2024-05-20 16:55:00 +0300 5338 5339 CMake: Add comments 5340 5341 tests/tests.cmake | 2 ++ 5342 1 file changed, 2 insertions(+) 5343 5344commit d35368b33e54bad2f566df99fac29ffea38e34de 5345Author: Lasse Collin <lasse.collin@tukaani.org> 5346Date: 2024-05-20 16:55:00 +0300 5347 5348 CMake: Remove the note that some tests aren't run 5349 5350 They are now in the common build configurations. 5351 5352 CMakeLists.txt | 2 -- 5353 1 file changed, 2 deletions(-) 5354 5355commit dc232d584619b2819a9c52d6ad5d8b5d56b392ba 5356Author: Lasse Collin <lasse.collin@tukaani.org> 5357Date: 2024-05-20 16:55:00 +0300 5358 5359 CMake: Add support for test_files.sh 5360 5361 tests/tests.cmake | 20 ++++++++++++++++++++ 5362 1 file changed, 20 insertions(+) 5363 5364commit a7e9230af9d1f87f474fe38886eb977d4149dc9b 5365Author: Lasse Collin <lasse.collin@tukaani.org> 5366Date: 2024-05-20 16:55:00 +0300 5367 5368 Tests: Make test_files.sh more flexible 5369 5370 Add a new optional argument to specify the directory of the xz and 5371 xzdec executables. 5372 5373 If ../config.h doesn't exist, assume that all encoders and decoders 5374 are available. 5375 5376 tests/test_files.sh | 18 +++++++++++++----- 5377 1 file changed, 13 insertions(+), 5 deletions(-) 5378 5379commit b40e6efbb48d740b9b5b303e59e344801cbb5bd8 5380Author: Lasse Collin <lasse.collin@tukaani.org> 5381Date: 2024-05-20 16:55:00 +0300 5382 5383 CMake: Add support for test_compress.sh tests 5384 5385 tests/tests.cmake | 26 ++++++++++++++++++++++++++ 5386 1 file changed, 26 insertions(+) 5387 5388commit ac3222d2cb1ff3a15eb6d58f9ea9bc78e8bc3bb2 5389Author: Lasse Collin <lasse.collin@tukaani.org> 5390Date: 2024-05-20 16:55:00 +0300 5391 5392 Tests: Make test_compress.sh more flexible 5393 5394 Add a new optional second argument: directory of the xz and xzdec 5395 executables. This is need with the CMake build where the binaries 5396 end up in the top-level build directory. 5397 5398 If ../config.h doesn't exist, assume that all encoders and decoders 5399 are available. This will make this script usable from CMake in the 5400 most common build configuration. 5401 5402 NOTE: Since the existence of ../config.h is checked, the working 5403 directory of the test script must be a subdir in the build tree! 5404 Otherwise ../config.h would look outside the build tree. 5405 5406 Use the default check type instead of forcing CRC32 or CRC64. 5407 Now the script doesn't need to check if CRC64 is available. 5408 5409 tests/test_compress.sh | 41 +++++++++++++++++++++++++++++------------ 5410 1 file changed, 29 insertions(+), 12 deletions(-) 5411 5412commit 006040b29c83104403621e950ada0c8956c56b3d 5413Author: Lasse Collin <lasse.collin@tukaani.org> 5414Date: 2024-05-20 16:55:00 +0300 5415 5416 CMake: Prepare to support the test_*.sh tests 5417 5418 This is a bit hacky since the scripts grep config.h to know which 5419 features were built but the CMake build doesn't create config.h. 5420 So instead those test scripts will be run only when all relevant 5421 features have been enabled. 5422 5423 tests/tests.cmake | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 5424 1 file changed, 49 insertions(+) 5425 5426commit 6167607a6ea72fb74eefb943c4566e3cab528cd2 5427Author: Lasse Collin <lasse.collin@tukaani.org> 5428Date: 2024-05-20 16:55:00 +0300 5429 5430 Tests: test_suffix.sh: Add a comment 5431 5432 tests/test_suffix.sh | 3 +++ 5433 1 file changed, 3 insertions(+) 5434 5435commit 4e9023857d287f624562156b60dc23d2b64c0f10 5436Author: Lasse Collin <lasse.collin@tukaani.org> 5437Date: 2024-05-18 00:34:07 +0300 5438 5439 Fix typos 5440 5441 Thanks to xx on #tukaani. 5442 5443 src/common/mythread.h | 2 +- 5444 src/common/tuklib_integer.h | 2 +- 5445 src/liblzma/api/lzma/base.h | 2 +- 5446 src/liblzma/common/filter_buffer_decoder.c | 2 +- 5447 src/liblzma/common/filter_common.c | 2 +- 5448 src/scripts/xzgrep.in | 2 +- 5449 6 files changed, 6 insertions(+), 6 deletions(-) 5450 5451commit b14d08fbbc254485ace9ccfe7908674f608a62ae 5452Author: Lasse Collin <lasse.collin@tukaani.org> 5453Date: 2024-05-18 00:23:52 +0300 5454 5455 liblzma: Fix white space 5456 5457 Thanks to xx on #tukaani. 5458 5459 src/liblzma/simple/simple_coder.h | 8 ++++---- 5460 1 file changed, 4 insertions(+), 4 deletions(-) 5461 5462commit 9f1a6d6f9a258886933a22239a5b81af34b28199 5463Author: Lasse Collin <lasse.collin@tukaani.org> 5464Date: 2024-05-15 23:14:17 +0300 5465 5466 Build: Temporarily disable CRC CLMUL to silence OSS Fuzz 5467 5468 The code makes aligned 16-byte reads which may read up to 15 bytes 5469 before the beginning or past the end of the buffer if the buffer 5470 is misaligned. The unneeded bytes are then ignored. It cannot cross 5471 page boundaries and thus cannot cause access violations. 5472 5473 This inherently trips address sanitizer which was already disabled 5474 with __attribute__((__no_sanitize_address__)). However, it also 5475 trips memory sanitizer if the extra bytes are uninitialized because 5476 memory sanitizer doesn't see that those bytes then get ignored by 5477 byte shuffling in the xmm registers. 5478 5479 The plan is to change the code so that all sanitizers pass but it's 5480 not finished yet (performance shouldn't get worse) so as a temporary 5481 measure to keep OSS Fuzz happy, the CLMUL CRC is now disabled even 5482 though I think think the code is fine to use (and easy enough to review 5483 the memory accesses in it too). 5484 5485 configure.ac | 4 +++- 5486 1 file changed, 3 insertions(+), 1 deletion(-) 5487 5488commit 142e670a413a7bce1a2647f1cf1f33f8ee2dbe88 5489Author: Lasse Collin <lasse.collin@tukaani.org> 5490Date: 2024-05-13 17:15:04 +0300 5491 5492 xz: Document the static function get_chains_memusage() 5493 5494 src/xz/coder.c | 14 ++++++++++++-- 5495 1 file changed, 12 insertions(+), 2 deletions(-) 5496 5497commit 78e984399a64bfee5d11e7308e0bdbc1006db2ca 5498Author: Lasse Collin <lasse.collin@tukaani.org> 5499Date: 2024-05-13 17:07:22 +0300 5500 5501 xz: Rename filters_memusage_max() to get_chains_memusage() 5502 5503 src/xz/coder.c | 14 ++++++-------- 5504 1 file changed, 6 insertions(+), 8 deletions(-) 5505 5506commit 54c3db0a83d3e67d89aba92a0957f2dce9b111a7 5507Author: Lasse Collin <lasse.collin@tukaani.org> 5508Date: 2024-05-13 17:04:05 +0300 5509 5510 xz: Rename filter_memusages to chains_memusages 5511 5512 src/xz/coder.c | 6 +++--- 5513 1 file changed, 3 insertions(+), 3 deletions(-) 5514 5515commit d9e1ae79ec90d6a7eafeaceaf0ece4f0c83d4417 5516Author: Lasse Collin <lasse.collin@tukaani.org> 5517Date: 2024-05-12 22:26:30 +0300 5518 5519 xz: Simplify the memory usage scaling code 5520 5521 This is closer to what it was before the --filtersX support was added, 5522 just extended to support for scaling all filter chains. The method 5523 before this commit was an extended version of the original too but 5524 it was done in a more complex way for no clear reason. In case of 5525 an error, the complex version printed fewer informative messages 5526 (a good thing) but it's not a sigificant benefit. 5527 5528 In the limit is too low even for single-threaded mode, the required 5529 amount of memory is now reported like in 5.4.x instead of like in 5530 5.5.1alpha - 5.6.1 which showed the original non-scaled usage. It 5531 had been a FIXME in the old code but it's not clear what message 5532 makes the most sense. 5533 5534 Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a 5535 5536 src/xz/coder.c | 163 ++++++++++++++++++++------------------------------------- 5537 1 file changed, 57 insertions(+), 106 deletions(-) 5538 5539commit 0ee56983d198b776878432703de664049b1be32e 5540Author: Lasse Collin <lasse.collin@tukaani.org> 5541Date: 2024-05-13 12:14:00 +0300 5542 5543 xz: Edit comments 5544 5545 src/xz/coder.h | 6 ++---- 5546 1 file changed, 2 insertions(+), 4 deletions(-) 5547 5548commit ec82a49c3553f7206104582dbfb8b64fa433b491 5549Author: Lasse Collin <lasse.collin@tukaani.org> 5550Date: 2024-05-13 12:03:51 +0300 5551 5552 xz: Rename chain_idx to chain_num 5553 5554 src/xz/coder.c | 6 +++--- 5555 1 file changed, 3 insertions(+), 3 deletions(-) 5556 5557commit a731a6993c34bbbd55abaf9c166718682b1da24f 5558Author: Lasse Collin <lasse.collin@tukaani.org> 5559Date: 2024-05-12 22:29:11 +0300 5560 5561 xz: Edit coding style 5562 5563 src/xz/coder.c | 2 +- 5564 1 file changed, 1 insertion(+), 1 deletion(-) 5565 5566commit 32eb176b89243fce3112347fe43a8ad14a9fd2be 5567Author: Lasse Collin <lasse.collin@tukaani.org> 5568Date: 2024-05-12 22:16:05 +0300 5569 5570 xz: Edit comments 5571 5572 Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a 5573 5574 src/xz/coder.c | 8 ++------ 5575 1 file changed, 2 insertions(+), 6 deletions(-) 5576 5577commit b90339f4daa510d2b1b8c550f855a99667f1d004 5578Author: Lasse Collin <lasse.collin@tukaani.org> 5579Date: 2024-05-12 21:57:49 +0300 5580 5581 xz: Fix grammar in a comment 5582 5583 Fixes: cb3111e3ed84152912b5138d690c8d9f00c6ef02 5584 5585 src/xz/coder.c | 2 +- 5586 1 file changed, 1 insertion(+), 1 deletion(-) 5587 5588commit 4c0bdaf13d651b22ba13bd93f8379724d6ccdc13 5589Author: Lasse Collin <lasse.collin@tukaani.org> 5590Date: 2024-05-12 21:46:56 +0300 5591 5592 xz: Rename filter_memusages to encoder_memusages 5593 5594 src/xz/coder.c | 12 ++++++------ 5595 1 file changed, 6 insertions(+), 6 deletions(-) 5596 5597commit b54aa023e0ec291b06e976e5f094ab0549e7b09b 5598Author: Lasse Collin <lasse.collin@tukaani.org> 5599Date: 2024-05-12 21:42:05 +0300 5600 5601 xz: Edit coding style 5602 5603 src/xz/coder.c | 8 ++++---- 5604 1 file changed, 4 insertions(+), 4 deletions(-) 5605 5606commit 49f67d3d3f42b640a7dfc4ca04c8934f658e10ce 5607Author: Lasse Collin <lasse.collin@tukaani.org> 5608Date: 2024-05-12 21:31:02 +0300 5609 5610 xz: Rename filters_index to chain_num 5611 5612 The reason is the same as in bd0782c1f13e52cd0fd8415208e30e47004a4c68. 5613 5614 src/xz/args.c | 8 ++++---- 5615 src/xz/coder.c | 8 ++++---- 5616 src/xz/coder.h | 2 +- 5617 3 files changed, 9 insertions(+), 9 deletions(-) 5618 5619commit ff9e8b3d069ecfa52ec43dcdb198542d1692a492 5620Author: Lasse Collin <lasse.collin@tukaani.org> 5621Date: 2024-05-12 21:22:43 +0300 5622 5623 xz: Replace a few uint32_t with "unsigned" to reduce the number of casts 5624 5625 These hold only tiny values. 5626 5627 src/xz/args.c | 2 +- 5628 src/xz/coder.c | 17 ++++++++--------- 5629 src/xz/coder.h | 2 +- 5630 3 files changed, 10 insertions(+), 11 deletions(-) 5631 5632commit b5e6c1113b1ba02c282bd9163eccdb521c937a78 5633Author: Lasse Collin <lasse.collin@tukaani.org> 5634Date: 2024-05-12 21:10:45 +0300 5635 5636 xz: Rename filters_used_mask to chains_used_mask 5637 5638 The reason is the same as in bd0782c1f13e52cd0fd8415208e30e47004a4c68. 5639 5640 src/xz/coder.c | 30 +++++++++++++++--------------- 5641 1 file changed, 15 insertions(+), 15 deletions(-) 5642 5643commit 32500dfaadae2ea36fda2e17b49ae7d9ac1acf52 5644Author: Lasse Collin <lasse.collin@tukaani.org> 5645Date: 2024-05-12 17:14:43 +0300 5646 5647 xz: Move the setting of "check" in coder_set_compression_settings() 5648 5649 It's more logical to do it in the beginning instead of in the middle 5650 of the filter chain handling. 5651 5652 Fixes: d6af7f347077b22403133239592e478931307759 5653 5654 src/xz/coder.c | 18 +++++++++--------- 5655 1 file changed, 9 insertions(+), 9 deletions(-) 5656 5657commit ad146b1f42bbb678175a503a45ce525e779f9b8b 5658Author: Lasse Collin <lasse.collin@tukaani.org> 5659Date: 2024-05-12 17:09:17 +0300 5660 5661 xz: Rename "filters" to "chains" 5662 5663 The convention is that 5664 5665 lzma_filter filters[LZMA_FILTERS_MAX + 1]; 5666 5667 contains the filters of a single filter chain. 5668 It was so here as well before the commit 5669 d6af7f347077b22403133239592e478931307759. 5670 It changes "filters" to a ten-element array of filter chains. 5671 It's clearer to call this array-of-arrays "chains". 5672 5673 This also renames "filter_idx" to "chain_idx" which is used 5674 as an index as in chains[chain_idx]. 5675 5676 src/xz/coder.c | 68 +++++++++++++++++++++++++++++----------------------------- 5677 1 file changed, 34 insertions(+), 34 deletions(-) 5678 5679commit 5a4ae4e4d0105404184e9a82ee08f94e1b7783e0 5680Author: Lasse Collin <lasse.collin@tukaani.org> 5681Date: 2024-05-12 16:56:15 +0300 5682 5683 xz: Clean up a comment 5684 5685 src/xz/coder.c | 9 +++------ 5686 1 file changed, 3 insertions(+), 6 deletions(-) 5687 5688commit 2de80494ed9a4dc7db395a32a5efb770ce769804 5689Author: Lasse Collin <lasse.collin@tukaani.org> 5690Date: 2024-05-12 16:52:09 +0300 5691 5692 xz: Add clarifying assertions 5693 5694 src/xz/coder.c | 4 ++++ 5695 1 file changed, 4 insertions(+) 5696 5697commit 1eaad004bf7748976324672db028e34f42802e61 5698Author: Lasse Collin <lasse.collin@tukaani.org> 5699Date: 2024-05-10 20:23:33 +0300 5700 5701 xz: Add a clarifying assertion 5702 5703 Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a 5704 5705 src/xz/coder.c | 1 + 5706 1 file changed, 1 insertion(+) 5707 5708commit 605094329b986244833c967c04963cacc41a868d 5709Author: Lasse Collin <lasse.collin@tukaani.org> 5710Date: 2024-05-12 16:47:17 +0300 5711 5712 xz: Clarify a comment 5713 5714 src/xz/coder.c | 4 +++- 5715 1 file changed, 3 insertions(+), 1 deletion(-) 5716 5717commit 8fac2577f2dbb9491afd8500f60d004c9071df3b 5718Author: Lasse Collin <lasse.collin@tukaani.org> 5719Date: 2024-05-12 16:28:25 +0300 5720 5721 xz: Use the info collected in parse_block_list() 5722 5723 This is slightly simpler and it avoids looping through 5724 the opt_block_list array. 5725 5726 src/xz/coder.c | 95 ++++++++++++++++++++++++---------------------------------- 5727 1 file changed, 39 insertions(+), 56 deletions(-) 5728 5729commit 81d350dab864b985b740742772f3b132d4c52914 5730Author: Lasse Collin <lasse.collin@tukaani.org> 5731Date: 2024-05-12 15:48:45 +0300 5732 5733 xz: Remember the filter chains and the largest Block in parse_block_list() 5734 5735 src/xz/args.c | 18 ++++++++++++++++++ 5736 src/xz/coder.c | 2 ++ 5737 src/xz/coder.h | 13 +++++++++++++ 5738 3 files changed, 33 insertions(+) 5739 5740commit 46ab56968f7dfdac187710a1223659d832fa1565 5741Author: Lasse Collin <lasse.collin@tukaani.org> 5742Date: 2024-05-12 15:38:48 +0300 5743 5744 xz: Update a comment and initialization of filters_used_mask 5745 5746 src/xz/coder.c | 16 ++++++++-------- 5747 1 file changed, 8 insertions(+), 8 deletions(-) 5748 5749commit e89293a0baeb8663707c6b4a74fbb310ec698a8f 5750Author: Lasse Collin <lasse.collin@tukaani.org> 5751Date: 2024-05-12 15:08:10 +0300 5752 5753 xz: parse_block_list: Edit integer type casting 5754 5755 src/xz/args.c | 5 ++--- 5756 1 file changed, 2 insertions(+), 3 deletions(-) 5757 5758commit 87011e40c168255cd2edea129ee68c901770603b 5759Author: Lasse Collin <lasse.collin@tukaani.org> 5760Date: 2024-05-12 14:51:37 +0300 5761 5762 xz: Make filter_memusages a local variable 5763 5764 src/xz/coder.c | 35 +++++++++++++++++++++-------------- 5765 1 file changed, 21 insertions(+), 14 deletions(-) 5766 5767commit 347b412a9374e0456bef9da0d7d79174c0b6f1a5 5768Author: Lasse Collin <lasse.collin@tukaani.org> 5769Date: 2024-05-10 20:33:08 +0300 5770 5771 xz: Remove unused code and simplify 5772 5773 opt_mode == MODE_COMPRESS isn't possible when HAVE_ENCODERS isn't 5774 defined. Thus, when *encoding*, the message about *decoder* memory 5775 usage is possible to show only when both encoder and decoder have 5776 been built. 5777 5778 Since the message is shown only at V_DEBUG, skip the memusage 5779 calculation if verbosity level isn't high enough. 5780 5781 Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a 5782 5783 src/xz/coder.c | 16 ++++------------ 5784 1 file changed, 4 insertions(+), 12 deletions(-) 5785 5786commit 31358c057c9de9d6aba96bae112b2d17942de7cb 5787Author: Lasse Collin <lasse.collin@tukaani.org> 5788Date: 2024-05-10 20:22:58 +0300 5789 5790 xz: Fix integer type from uint64_t to uint32_t 5791 5792 lzma_options_lzma.dict_size is uint32_t so use it here too. 5793 5794 Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a 5795 5796 src/xz/coder.c | 2 +- 5797 1 file changed, 1 insertion(+), 1 deletion(-) 5798 5799commit 3f71e0f3a118e1012526f94fd640a626d30cb599 5800Author: Lasse Collin <lasse.collin@tukaani.org> 5801Date: 2024-05-08 21:40:07 +0300 5802 5803 debug/translation.bash: Remove an outdated test command 5804 5805 Since 5.3.5beta, "xz --lzma2=mf=bt4,nice=2" works even though bt4 needs 5806 at least nice=4. It is rounded up internally by liblzma when needed. 5807 5808 Fixes: 5cd9f0df78cc4f8a7807bf6104adea13034fbb45 5809 5810 debug/translation.bash | 1 - 5811 1 file changed, 1 deletion(-) 5812 5813commit b05a516830095a0e1937aeb31c937fb0400408b6 5814Author: Lasse Collin <lasse.collin@tukaani.org> 5815Date: 2024-05-07 20:41:28 +0300 5816 5817 Fix the date of NEWS for 5.4.5 5818 5819 NEWS | 2 +- 5820 1 file changed, 1 insertion(+), 1 deletion(-) 5821 5822commit 6d336aeb97b69c496ddc626af403f6f21c753658 5823Author: Lasse Collin <lasse.collin@tukaani.org> 5824Date: 2024-05-07 16:21:15 +0300 5825 5826 Build: Update visibility.m4 from Gnulib 5827 5828 This fixes the syntax of the "serial" line and renames 5829 a temporary variable. 5830 5831 m4/visibility.m4 | 13 +++++++------ 5832 1 file changed, 7 insertions(+), 6 deletions(-) 5833 5834commit ab51e8ee610e2a893906859848f93d5cb0d5ba83 5835Author: Lasse Collin <lasse.collin@tukaani.org> 5836Date: 2024-05-07 15:05:21 +0300 5837 5838 po4a/update-po: Delete the *.po.authors files 5839 5840 These are temporary files that are needed only when running po4a. 5841 The top-level Makefile.am puts the whole po4a directory into 5842 distribution tarball (it's simpler) so deleting these temporary 5843 files is needed to prevent them from getting into tarballs. 5844 5845 po4a/update-po | 4 ++++ 5846 1 file changed, 4 insertions(+) 5847 5848commit e4780244a17420cc95d5498cd6e02ad10eac6e5f 5849Author: Lasse Collin <lasse.collin@tukaani.org> 5850Date: 2024-05-07 13:12:17 +0300 5851 5852 xz: Edit comments and coding style 5853 5854 src/xz/coder.c | 25 ++++++++++++------------- 5855 1 file changed, 12 insertions(+), 13 deletions(-) 5856 5857commit fe4d8b0c80eaeca3381be302eeb89aba871a7e7c 5858Author: Lasse Collin <lasse.collin@tukaani.org> 5859Date: 2024-05-06 23:08:22 +0300 5860 5861 xz: Omit an incorrect comment 5862 5863 It likely was a leftover from a development version of the code. 5864 5865 Fixes: 183819bfd9efac8c184d9bf123325719b7eee30f 5866 5867 src/xz/coder.c | 6 +----- 5868 1 file changed, 1 insertion(+), 5 deletions(-) 5869 5870commit 9bef5b8d17dd5e009d6a6b2becc2dc535da53937 5871Author: Lasse Collin <lasse.collin@tukaani.org> 5872Date: 2024-05-06 23:04:31 +0300 5873 5874 xz: Add braces to a for-statement and to an if-statement 5875 5876 No functional changes. 5877 5878 Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a 5879 Fixes: 479fd58d60622331fcbe48fddf756927b9f80d9a 5880 5881 src/xz/coder.c | 6 ++++-- 5882 1 file changed, 4 insertions(+), 2 deletions(-) 5883 5884commit de06b9f0c0a3f72569829ecadbc9c0a3ef099f57 5885Author: Lasse Collin <lasse.collin@tukaani.org> 5886Date: 2024-05-06 23:00:09 +0300 5887 5888 liblzma: Omit an unneeded array from the x86 filter 5889 5890 Fixes: 6aa2a6deeba04808a0fe4461396e7fb70277f3d4 5891 5892 src/liblzma/simple/x86.c | 5 +---- 5893 1 file changed, 1 insertion(+), 4 deletions(-) 5894 5895commit 7da488cb933fdf51cfc14cb5810beb0766224380 5896Author: Lasse Collin <lasse.collin@tukaani.org> 5897Date: 2024-05-06 22:56:31 +0300 5898 5899 CMake: Add test_suffix.sh to the tests 5900 5901 tests/tests.cmake | 13 +++++++++++++ 5902 1 file changed, 13 insertions(+) 5903 5904commit a805594ed0b4cbf7b81aa28ff46a8ab3c83c6876 5905Author: Lasse Collin <lasse.collin@tukaani.org> 5906Date: 2024-05-06 22:55:54 +0300 5907 5908 Test: Add CMake support to test_suffix.sh 5909 5910 It needs to find the xz executable from a different directory 5911 and work without config.h. 5912 5913 tests/test_suffix.sh | 12 +++++++----- 5914 1 file changed, 7 insertions(+), 5 deletions(-) 5915 5916commit 50e19489387774bab3c4a988397d0d9c7a142a46 5917Author: Lasse Collin <lasse.collin@tukaani.org> 5918Date: 2024-05-06 20:45:34 +0300 5919 5920 Update INSTALL about MINIX 3 5921 5922 The latest stable is 3.3.0 and it's from 2014. 5923 Don't mention the older versions in INSTALL. 5924 3.3.0 ships with Clang already. 5925 5926 Testing with 3.4.0beta6 shows that tuklib_physmem 5927 works too so omit comments about that from INSTALL. 5928 Visibility warnigns weren't a problem either. 5929 5930 Thus it's enough to mention the need for --disable-threads 5931 as configure doesn't autodetect the lack of pthreads. 5932 5933 INSTALL | 20 +++++++------------- 5934 1 file changed, 7 insertions(+), 13 deletions(-) 5935 5936commit 68d18aea1422a2b86b98b71d0b019233d84e01b0 5937Author: Lasse Collin <lasse.collin@tukaani.org> 5938Date: 2024-05-02 23:00:16 +0300 5939 5940 Windows: Remove the "doc/api" line from README-Windows.txt 5941 5942 Fixes: 252aa1d67bc015eeba462803ab72edeb7744d864 5943 5944 windows/README-Windows.txt | 2 -- 5945 1 file changed, 2 deletions(-) 5946 5947commit 8ede961374613aa302a13571d662cfaea1cf91f7 5948Author: Lasse Collin <lasse.collin@tukaani.org> 5949Date: 2024-05-02 22:59:04 +0300 5950 5951 Build: Don't copy doc/api from source tree to distribution tarball 5952 5953 It was copied if it existed. This was intentional when autogen.sh 5954 still built liblzma API docs with Doxygen. 5955 5956 Fixes: d3a77ebc04bf1db8d52de2d9b0f07877bc4fd139 5957 5958 Makefile.am | 5 ----- 5959 1 file changed, 5 deletions(-) 5960 5961commit 9a6761aa35ed84d30bd2fda2333a4fdf3f46ecdc 5962Author: Sam James <sam@gentoo.org> 5963Date: 2024-05-02 13:26:40 +0100 5964 5965 ci: add SPDX headers 5966 5967 I've checked over each of these and they're straightforward applications 5968 of the relevant Github Actions. 5969 5970 .github/workflows/freebsd.yml | 2 ++ 5971 .github/workflows/netbsd.yml | 2 ++ 5972 .github/workflows/openbsd.yml | 2 ++ 5973 3 files changed, 6 insertions(+) 5974 5975commit 81efe6119f86e3274e512c9eca5ec22b2196c2b3 5976Author: Yaroslav Halchenko <debian@onerussian.com> 5977Date: 2024-03-29 14:37:24 -0400 5978 5979 codespell: Ignore the THANKS file and debbugs.gnu.org URL 5980 5981 This way "codespell -i 0" is silent. 5982 5983 This is the first commit from 5984 https://github.com/tukaani-project/xz/pull/93 5985 with trivial edits by Lasse Collin. 5986 5987 .codespellrc | 6 +++++- 5988 1 file changed, 5 insertions(+), 1 deletion(-) 5989 5990commit 905bfc74fe2670fd9c39014803017ab53d325401 5991Author: Lasse Collin <lasse.collin@tukaani.org> 5992Date: 2024-04-30 14:37:11 +0300 5993 5994 Add .gitattributes to clean up git-archive output 5995 5996 .gitattributes | 7 +++++++ 5997 1 file changed, 7 insertions(+) 5998 5999commit 3334c71d3d4294a4f6569df3ba9bcf2443dfa501 6000Author: Lasse Collin <lasse.collin@tukaani.org> 6001Date: 2024-04-19 12:11:09 +0300 6002 6003 xzdec: Support Landlock ABI version 4 6004 6005 This was added to xz in 02e3505991233901575b7eabc06b2c6c62a96899 6006 but I forgot to do the same in xzdec. 6007 6008 The Landlock sandbox in xzdec could be stricter as now it's 6009 active only for the last file being decompressed. In xz, 6010 read-only sandbox is used for multi-file case. On the other hand, 6011 xz doesn't go to the strictest mode when processing the last file 6012 when more than one file was specified; xzdec does. 6013 6014 src/xzdec/xzdec.c | 18 ++++++++++++++---- 6015 1 file changed, 14 insertions(+), 4 deletions(-) 6016 6017commit 278563ef8f2b8d98d7f2c85e1a64ec1bc21d26d8 6018Author: Lasse Collin <lasse.collin@tukaani.org> 6019Date: 2024-04-30 22:22:45 +0300 6020 6021 liblzma: Fix incorrect function type error from sanitizer 6022 6023 Clang 17 with -fsanitize=address,undefined: 6024 6025 src/liblzma/common/filter_common.c:366:8: runtime error: 6026 call to function encoder_find through pointer to incorrect 6027 function type 'const lzma_filter_coder *(*)(unsigned long)' 6028 src/liblzma/common/filter_encoder.c:187: note: 6029 encoder_find defined here 6030 6031 Use a wrapper function to get the correct type neatly. 6032 This reduces the number of casts needed too. 6033 6034 This issue could be a problem with control flow integrity (CFI) 6035 methods that check the function type on indirect function calls. 6036 6037 Fixes: 3b34851de1eaf358cf9268922fa0eeed8278d680 6038 6039 src/liblzma/common/filter_decoder.c | 15 ++++++++++++--- 6040 src/liblzma/common/filter_encoder.c | 17 +++++++++++++---- 6041 2 files changed, 25 insertions(+), 7 deletions(-) 6042 6043commit 77c8f60547decefca8f2d0c905d9c708c38ee8ff 6044Author: Lasse Collin <lasse.collin@tukaani.org> 6045Date: 2024-04-30 21:41:11 +0300 6046 6047 xz: Avoid arithmetic on a null pointer 6048 6049 It's undefined behavior. The result wasn't ever used as it occurred 6050 in the last iteration of a loop. 6051 6052 Clang 17 with -fsanitize=address,undefined: 6053 6054 $ src/xz/xz --block-list=123 6055 src/xz/args.c:164:12: runtime error: applying non-zero offset 1 6056 to null pointer 6057 6058 Fixes: 88ccf47205d7f3aa314d358c72ef214f10f68b43 6059 Co-authored-by: Sam James <sam@gentoo.org> 6060 6061 src/xz/args.c | 8 +++++++- 6062 1 file changed, 7 insertions(+), 1 deletion(-) 6063 6064commit 64503cc2b76a388ced4ec5f68234a07f0dcddcd5 6065Author: Lasse Collin <lasse.collin@tukaani.org> 6066Date: 2024-04-27 20:42:00 +0300 6067 6068 CMake: Support building liblzma API docs using Doxygen 6069 6070 This is disabled by default to match the default in Autotools. 6071 Use -DUSE_DOXYGEN=ON to enable Doxygen usage. 6072 6073 This uses the update-doxygen script, thus this is under if(UNIX) 6074 although Doxygen itself can run on Windows too. 6075 6076 CMakeLists.txt | 40 +++++++++++++++++++++++++++++++--------- 6077 1 file changed, 31 insertions(+), 9 deletions(-) 6078 6079commit 0a7f5a80d8532a1d8cfa0a902c9d1ad7651eca37 6080Author: Lasse Collin <lasse.collin@tukaani.org> 6081Date: 2024-04-20 23:36:39 +0300 6082 6083 CMake: List API headers in LIBLZMA_API_HEADERS variable 6084 6085 This way the same list will be usable in more than one location. 6086 6087 CMakeLists.txt | 21 ++++++++++++--------- 6088 1 file changed, 12 insertions(+), 9 deletions(-) 6089 6090commit 541406bee3f09e9813103c6406b10fc6ab2e0d30 6091Author: Lasse Collin <lasse.collin@tukaani.org> 6092Date: 2024-04-19 15:16:42 +0300 6093 6094 PACKAGERS: Document the optional Doxygen usage 6095 6096 Also add a note that packagers should check the licensing 6097 of the Doxygen output. 6098 6099 PACKAGERS | 19 ++++++++++--------- 6100 1 file changed, 10 insertions(+), 9 deletions(-) 6101 6102commit e21efdf96f39378fe417479f89e97046680406f5 6103Author: Lasse Collin <lasse.collin@tukaani.org> 6104Date: 2024-04-27 17:47:09 +0300 6105 6106 Build: Add --enable-doxygen to generate and install API docs 6107 6108 It requires Doxygen. This option is disabled by default. 6109 6110 INSTALL | 6 ++++++ 6111 configure.ac | 10 +++++++++- 6112 src/liblzma/api/Makefile.am | 19 +++++++++++++++++++ 6113 3 files changed, 34 insertions(+), 1 deletion(-) 6114 6115commit 0ece09a575d7e542bda8825808ddd6cf7de8cc4b 6116Author: Lasse Collin <lasse.collin@tukaani.org> 6117Date: 2024-04-19 15:15:17 +0300 6118 6119 Doxygen: update-doxygen: Support out-of-tree builds 6120 6121 Also, now $0 is used to refer to the script itself. 6122 6123 doxygen/update-doxygen | 110 ++++++++++++++++++++++++++++++------------------- 6124 1 file changed, 68 insertions(+), 42 deletions(-) 6125 6126commit 2c519f641f266fd897edf680827d9c905f411440 6127Author: Lasse Collin <lasse.collin@tukaani.org> 6128Date: 2024-04-28 21:08:00 +0300 6129 6130 Doxygen: Simplify Doxyfile and add SPDX license identifier 6131 6132 This omits all comments and a few non-default options that weren't 6133 needed. Now it contains no copyrighted content from Doxygen itself. 6134 6135 doxygen/Doxyfile | 2698 +----------------------------------------------------- 6136 1 file changed, 25 insertions(+), 2673 deletions(-) 6137 6138commit bdba39a57530d11b88440df8024002be3d09e4a1 6139Author: Lasse Collin <lasse.collin@tukaani.org> 6140Date: 2024-04-19 15:14:02 +0300 6141 6142 Doxygen: Don't strip JavaScript anymore 6143 6144 The stripping method worked well with Doxygen 1.8 and 1.9 but 6145 it doesn't work with Doxygen 1.10 anymore. Since we won't ship 6146 pre-generated liblzma API docs anymore, the extra bloat and 6147 extra license info of the JavaScript files won't affect the 6148 upstream source package anymore. 6149 6150 doxygen/update-doxygen | 21 --------------------- 6151 1 file changed, 21 deletions(-) 6152 6153commit d3a77ebc04bf1db8d52de2d9b0f07877bc4fd139 6154Author: Lasse Collin <lasse.collin@tukaani.org> 6155Date: 2024-04-19 17:26:41 +0300 6156 6157 Build: Remove old Doxygen rules from top-level Makefile.am 6158 6159 Makefile.am | 12 ------------ 6160 1 file changed, 12 deletions(-) 6161 6162commit fd7faa4c338a42a6a40e854b837d285ae2e8c609 6163Author: Lasse Collin <lasse.collin@tukaani.org> 6164Date: 2024-04-19 15:10:06 +0300 6165 6166 Update COPYING to match the autogen.sh and mydist changes 6167 6168 COPYING | 11 ----------- 6169 1 file changed, 11 deletions(-) 6170 6171commit b2bc55d8a0a9f2f59bfd4302067300e650f6baa3 6172Author: Lasse Collin <lasse.collin@tukaani.org> 6173Date: 2024-04-19 17:23:43 +0300 6174 6175 Build: Don't run update-doxygen as part of "make mydist" 6176 6177 Makefile.am | 1 - 6178 1 file changed, 1 deletion(-) 6179 6180commit e9be74f5b129fe8a5388d588e68b1b7f5168a310 6181Author: Lasse Collin <lasse.collin@tukaani.org> 6182Date: 2024-04-19 15:09:48 +0300 6183 6184 autogen.sh: Don't generated Doxygen docs anymore 6185 6186 autogen.sh | 18 +++--------------- 6187 1 file changed, 3 insertions(+), 15 deletions(-) 6188 6189commit 252aa1d67bc015eeba462803ab72edeb7744d864 6190Author: Lasse Collin <lasse.collin@tukaani.org> 6191Date: 2024-04-19 17:41:36 +0300 6192 6193 windows/build.bash: Omit Doxygen docs from the package 6194 6195 They will be omitted from the source tarball and I don't want 6196 to make Doxygen a dependency of build.bash. 6197 6198 windows/build.bash | 4 ++-- 6199 1 file changed, 2 insertions(+), 2 deletions(-) 6200 6201commit 634095364d87444d62d8ec54c134c0cd4705f5d7 6202Author: Lasse Collin <lasse.collin@tukaani.org> 6203Date: 2024-04-19 14:14:47 +0300 6204 6205 README: Don't mention PDF man pages anymore 6206 6207 README | 6 +++--- 6208 1 file changed, 3 insertions(+), 3 deletions(-) 6209 6210commit dc684bf76ea23574ee9d88382057381e04e6089a 6211Author: Lasse Collin <lasse.collin@tukaani.org> 6212Date: 2024-04-19 14:10:39 +0300 6213 6214 Build: Omit PDF man pages from the package 6215 6216 pdf-local rule was added to create the PDFs still with "make pdf". 6217 The install rules are missing but that likely doesn't matter at all. 6218 6219 Makefile.am | 29 +++++++++++++++++++---------- 6220 1 file changed, 19 insertions(+), 10 deletions(-) 6221 6222commit e3531ab4125cbd5c01ebd3200791350960547189 6223Author: Lasse Collin <lasse.collin@tukaani.org> 6224Date: 2024-04-19 13:54:39 +0300 6225 6226 windows/build.bash: Don't copy PDF man pages to the package 6227 6228 windows/README-Windows.txt | 2 +- 6229 windows/build.bash | 2 +- 6230 2 files changed, 2 insertions(+), 2 deletions(-) 6231 6232commit 710a4573ef2cbd19c66318c3b2d1388e418e26c7 6233Author: Lasse Collin <lasse.collin@tukaani.org> 6234Date: 2024-04-28 01:34:50 +0300 6235 6236 Tests: test_index: Fix failures when features are disabled 6237 6238 Fixes: cd88423e76d54eb72aea037364f3ebb21f122503 6239 6240 tests/test_index.c | 13 ++++++++----- 6241 1 file changed, 8 insertions(+), 5 deletions(-) 6242 6243commit aaff75c3486c4489ce88b0efb36b41cf138af7c3 6244Author: Lasse Collin <lasse.collin@tukaani.org> 6245Date: 2024-04-20 17:09:11 +0300 6246 6247 CMake: Keep the build working if the "tests" directory is missing 6248 6249 This moves the tests section as is from CMakeLists.txt into 6250 tests/tests.cmake. CMakeLists.txt now includes tests/tests.cmake 6251 if the latter file exists. 6252 6253 Now it's possible to delete the whole "tests" directory and 6254 building with CMake will still work normally, just without 6255 the tests. This way the tests are readily available for those 6256 who want them, and those who won't run the tests anyway have 6257 a straightforward way to ensure that nothing from the "tests" 6258 directory can affect the build process. 6259 6260 CMakeLists.txt | 76 ++--------------------------------------------- 6261 tests/Makefile.am | 1 + 6262 tests/tests.cmake | 88 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 6263 3 files changed, 92 insertions(+), 73 deletions(-) 6264 6265commit a5f2aa5618fe9183706c9c514c3067985f6c338b 6266Author: Lasse Collin <lasse.collin@tukaani.org> 6267Date: 2024-04-20 13:12:50 +0300 6268 6269 Tests: Remove x86 and SPARC BCJ tests 6270 6271 These are very old but the exact test file isn't easy to reproduce 6272 as it was compiled from a short C program (bcj_test.c) long ago. 6273 These tests weren't very good anyway, just a little better than nothing. 6274 6275 tests/Makefile.am | 7 ---- 6276 tests/bcj_test.c | 64 --------------------------------- 6277 tests/compress_prepared_bcj_sparc | Bin 1240 -> 0 bytes 6278 tests/compress_prepared_bcj_x86 | Bin 1388 -> 0 bytes 6279 tests/files/README | 8 ----- 6280 tests/files/good-1-sparc-lzma2.xz | Bin 612 -> 0 bytes 6281 tests/files/good-1-x86-lzma2.xz | Bin 716 -> 0 bytes 6282 tests/test_compress_prepared_bcj_sparc | 4 --- 6283 tests/test_compress_prepared_bcj_x86 | 4 --- 6284 9 files changed, 87 deletions(-) 6285 6286commit d879686469c9c4bf2a7c0bb6420ebe4530fc8f07 6287Author: Lasse Collin <lasse.collin@tukaani.org> 6288Date: 2024-04-27 18:30:40 +0300 6289 6290 Tests: test_index: Edit a misleading test 6291 6292 tests/test_index.c | 7 +++++-- 6293 1 file changed, 5 insertions(+), 2 deletions(-) 6294 6295commit 612005bbdb0dea9dc09e9e2e9cc16a15c1480acd 6296Author: Lasse Collin <lasse.collin@tukaani.org> 6297Date: 2024-04-27 16:46:01 +0300 6298 6299 Tests: test_index: Use minimal values to test integer overflow 6300 6301 tests/test_index.c | 4 ++-- 6302 1 file changed, 2 insertions(+), 2 deletions(-) 6303 6304commit 4ad88b2544c2aaf8de8f38af54587098cbe66c1d 6305Author: Lasse Collin <lasse.collin@tukaani.org> 6306Date: 2024-04-27 15:13:39 +0300 6307 6308 Tests: test_index: Test lzma_index_buffer_decode() more 6309 6310 tests/test_index.c | 29 ++++++++++++++++++++++++++--- 6311 1 file changed, 26 insertions(+), 3 deletions(-) 6312 6313commit 575b11b0d291e66c5fce31ce7a72f11436d57c83 6314Author: Lasse Collin <lasse.collin@tukaani.org> 6315Date: 2024-04-27 15:08:29 +0300 6316 6317 Tests: test_index: Test that *i = NULL is done on LZMA_PROG_ERROR 6318 6319 On LZMA_DATA_ERROR from lzma_index_buffer_decode(), *i = NULL was 6320 already done but this adds a test for that case too. 6321 6322 tests/test_index.c | 31 +++++++++++++++++++++++++++---- 6323 1 file changed, 27 insertions(+), 4 deletions(-) 6324 6325commit 2c970debdb285823f01f75e875561d893345ac2b 6326Author: Lasse Collin <lasse.collin@tukaani.org> 6327Date: 2024-04-27 15:01:25 +0300 6328 6329 Tests: test_index: Test lzma_index_buffer_encode() with empty output buf 6330 6331 tests/test_index.c | 3 +++ 6332 1 file changed, 3 insertions(+) 6333 6334commit cd88423e76d54eb72aea037364f3ebb21f122503 6335Author: Lasse Collin <lasse.collin@tukaani.org> 6336Date: 2024-04-27 14:59:55 +0300 6337 6338 Tests: test_index: Replace if-statements with tuktest assertions 6339 6340 tests/test_index.c | 22 +++++++++------------- 6341 1 file changed, 9 insertions(+), 13 deletions(-) 6342 6343commit 7f865577a6224fbbb5f5ca52574b62ea8ac9bf51 6344Author: Lasse Collin <lasse.collin@tukaani.org> 6345Date: 2024-04-27 14:56:16 +0300 6346 6347 Tests: test_index: Make it clear that my_alloc() has no integer overflows 6348 6349 liblzma guarantees that the product of the allocation size arguments 6350 will fit in size_t. 6351 6352 Putting the pre-increment in the if-statement was clearly wrong 6353 although in practice it didn't matter here as the function is 6354 called only a couple of times. 6355 6356 tests/test_index.c | 5 ++++- 6357 1 file changed, 4 insertions(+), 1 deletion(-) 6358 6359commit 12313a3b6596cdcf012e180597f84d231f8730d3 6360Author: Lasse Collin <lasse.collin@tukaani.org> 6361Date: 2024-04-27 14:51:52 +0300 6362 6363 Tests: test_index: Verify also iter.block.number_in_stream 6364 6365 tests/test_index.c | 2 ++ 6366 1 file changed, 2 insertions(+) 6367 6368commit ad2654010d9d641ce1601beeff00630027e6bcd4 6369Author: Lasse Collin <lasse.collin@tukaani.org> 6370Date: 2024-04-27 14:51:06 +0300 6371 6372 Tests: test_index: Check cases that aren't a multiple of 4 bytes 6373 6374 tests/test_index.c | 33 +++++++++++++++++++++++++-------- 6375 1 file changed, 25 insertions(+), 8 deletions(-) 6376 6377commit 2524fcf2b68b662035437cee8edbe80067c0c240 6378Author: Lasse Collin <lasse.collin@tukaani.org> 6379Date: 2024-04-27 14:40:25 +0300 6380 6381 Tests: test_index: Edit comments and white space 6382 6383 tests/test_index.c | 18 +++++++++++------- 6384 1 file changed, 11 insertions(+), 7 deletions(-) 6385 6386commit 71eed2520e2eecae89bade9dceea16e56cfa2ea0 6387Author: Lasse Collin <lasse.collin@tukaani.org> 6388Date: 2024-04-27 14:33:38 +0300 6389 6390 liblzma: index_decoder: Fix missing initializations on LZMA_PROG_ERROR 6391 6392 If the arguments to lzma_index_decoder() or lzma_index_buffer_decode() 6393 were such that LZMA_PROG_ERROR was returned, the lzma_index **i 6394 argument wasn't touched even though the API docs say that *i = NULL 6395 is done if an error occurs. This obviously won't be done even now 6396 if i == NULL but otherwise it is best to do it due to the wording 6397 in the API docs. 6398 6399 In practice this matters very little: The problem can occur only 6400 if the functions are called with invalid arguments, that is, 6401 the calling application must already have a bug. 6402 6403 src/liblzma/common/index_decoder.c | 11 +++++++++++ 6404 1 file changed, 11 insertions(+) 6405 6406commit 0478473953f50716a2bc37b619b1c7dc2682b1ad 6407Author: Lasse Collin <lasse.collin@tukaani.org> 6408Date: 2024-04-26 18:25:18 +0300 6409 6410 CMake: Bump maximum policy version to 3.29 6411 6412 CMakeLists.txt | 2 +- 6413 1 file changed, 1 insertion(+), 1 deletion(-) 6414 6415commit a607e2b40d23f7d998dbaba76692aa30b4c3d9d3 6416Author: Sam James <sam@gentoo.org> 6417Date: 2024-04-13 22:30:44 +0100 6418 6419 ci: add NetBSD 6420 6421 .github/workflows/netbsd.yml | 29 +++++++++++++++++++++++++++++ 6422 1 file changed, 29 insertions(+) 6423 6424commit 72c210336de26fb87a928160d025fa10a638d23b 6425Author: Sam James <sam@gentoo.org> 6426Date: 2024-04-13 23:49:26 +0100 6427 6428 ci: add FreeBSD 6429 6430 .github/workflows/freebsd.yml | 29 +++++++++++++++++++++++++++++ 6431 1 file changed, 29 insertions(+) 6432 6433commit b526ec2dbfb5889845ea60548c4f5b1f97d84ab2 6434Author: Sam James <sam@gentoo.org> 6435Date: 2024-04-13 23:16:08 +0100 6436 6437 ci: add OpenBSD 6438 6439 .github/workflows/openbsd.yml | 31 +++++++++++++++++++++++++++++++ 6440 1 file changed, 31 insertions(+) 6441 6442commit c7ef767c49351743d8d011574abb9e200bf6b24f 6443Author: Sam James <sam@gentoo.org> 6444Date: 2024-04-15 05:53:01 +0100 6445 6446 liblzma: outqueue: add header guard 6447 6448 Reported by github's codeql. 6449 6450 src/liblzma/common/outqueue.h | 5 +++++ 6451 1 file changed, 5 insertions(+) 6452 6453commit 55dcae3056d95cb2ddb8b560c12ba7596bc79f2c 6454Author: Sam James <sam@gentoo.org> 6455Date: 2024-04-15 05:53:56 +0100 6456 6457 liblzma: easy_preset: add header guard 6458 6459 Reported by github's codeql. 6460 6461 src/liblzma/common/easy_preset.h | 5 +++++ 6462 1 file changed, 5 insertions(+) 6463 6464commit 4ffc60f32397371769b7d6b5e3ed8626292d58df 6465Author: Lasse Collin <lasse.collin@tukaani.org> 6466Date: 2024-04-25 14:00:57 +0300 6467 6468 tuklib_integer: Rename bswapXX to byteswapXX 6469 6470 The __builtin_bswapXX from GCC and Clang are preferred when 6471 they are available. This can allow compilers to emit the x86 MOVBE 6472 instruction instead of doing a load + byteswap as two instructions 6473 (which would happen if the byteswapping is done in inline asm). 6474 6475 bswap16, bswap32, and bswap64 exist in system headers on *BSDs 6476 and Darwin. #defining bswap16 on NetBSD results in a warning about 6477 macro redefinition. It's safest to avoid this namespace conflict 6478 completely. 6479 6480 No OS supported by tuklib_integer.h uses byteswapXX names and 6481 a web search doesn't immediately find any obvious danger of 6482 namespace conflicts. So let's try these still-pretty-short names 6483 for the macros. 6484 6485 Thanks to Sam James for pointing out the compiler warning on 6486 NetBSD 10.0. 6487 6488 src/common/tuklib_integer.h | 47 ++++++++++++++++++++------------------ 6489 src/liblzma/check/crc32_fast.c | 4 ++-- 6490 src/liblzma/check/crc32_tablegen.c | 2 +- 6491 src/liblzma/check/crc64_fast.c | 4 ++-- 6492 src/liblzma/check/crc64_tablegen.c | 2 +- 6493 5 files changed, 31 insertions(+), 28 deletions(-) 6494 6495commit 08ab0966a75b501aa7c717622223f0c13a113c75 6496Author: Lasse Collin <lasse.collin@tukaani.org> 6497Date: 2024-04-24 01:20:26 +0300 6498 6499 liblzma: API doc cleanups 6500 6501 src/liblzma/api/lzma/container.h | 2 +- 6502 src/liblzma/api/lzma/index.h | 6 +++--- 6503 src/liblzma/api/lzma/vli.h | 5 ++--- 6504 3 files changed, 6 insertions(+), 7 deletions(-) 6505 6506commit 3ac8a9bb4cccbee88350696dc9c645c48d77c989 6507Author: Lasse Collin <lasse.collin@tukaani.org> 6508Date: 2024-04-23 16:35:33 +0300 6509 6510 Tests: test_filter_str: Add a few assertions 6511 6512 tests/test_filter_str.c | 4 ++++ 6513 1 file changed, 4 insertions(+) 6514 6515commit 26c69be80523b05c84dea86c47c4ddd9a10945d7 6516Author: Lasse Collin <lasse.collin@tukaani.org> 6517Date: 2024-04-23 16:35:08 +0300 6518 6519 Tests: test_filter_str: Move one assertion and add a comment 6520 6521 tests/test_filter_str.c | 6 ++++-- 6522 1 file changed, 4 insertions(+), 2 deletions(-) 6523 6524commit 4f6af853bc99904efb8b6c28a0af7b81a8476c1b 6525Author: Lasse Collin <lasse.collin@tukaani.org> 6526Date: 2024-04-23 16:26:06 +0300 6527 6528 Tests: test_filter_str: Tweak comments and white space 6529 6530 tests/test_filter_str.c | 3 +++ 6531 1 file changed, 3 insertions(+) 6532 6533commit c92663aa1bd576e0615498a4189acf0df12e84b9 6534Author: Lasse Collin <lasse.collin@tukaani.org> 6535Date: 2024-04-23 16:25:22 +0300 6536 6537 Tests: test_filter_str: Add missing RISC-V case 6538 6539 Fixes: 89ea1a22f4ed3685b053b7260bc5acf6c75d1664 6540 6541 tests/test_filter_str.c | 3 +++ 6542 1 file changed, 3 insertions(+) 6543 6544commit b0366df1d7ed26268101f9303a001c91c0806dfc 6545Author: Lasse Collin <lasse.collin@tukaani.org> 6546Date: 2024-04-22 22:23:32 +0300 6547 6548 Tests: test_filter_str: Test *error_pos more thoroughly 6549 6550 tests/test_filter_str.c | 77 ++++++++++++++++++++++++++++++++++++++++++++++++- 6551 1 file changed, 76 insertions(+), 1 deletion(-) 6552 6553commit 70d12dd069bb9bb0d6bb1c8fafc4e6f77780263d 6554Author: Lasse Collin <lasse.collin@tukaani.org> 6555Date: 2024-04-22 21:54:39 +0300 6556 6557 liblzma: lzma_str_to_filters: Set *error_pos on all errors 6558 6559 The API docs clearly say that if error_pos isn't NULL then *error 6560 is always set on any error. However, it wasn't touched if str == NULL 6561 or filters == NULL or unsupported flags were specified. 6562 6563 Fixes: cedeeca2ea6ada5b0411b2ae10d7a859e837f203 6564 6565 src/liblzma/common/string_conversion.c | 6 ++++++ 6566 1 file changed, 6 insertions(+) 6567 6568commit ed8e552395701fbf046027cebc8be4a6755b263f 6569Author: Lasse Collin <lasse.collin@tukaani.org> 6570Date: 2024-04-22 20:31:25 +0300 6571 6572 liblzma: Clean up white space 6573 6574 src/liblzma/lz/lz_encoder.h | 2 +- 6575 1 file changed, 1 insertion(+), 1 deletion(-) 6576 6577commit 2f06920f20b1ad63b7953dc09569e1d424998849 6578Author: Lasse Collin <lasse.collin@tukaani.org> 6579Date: 2024-04-22 18:35:19 +0300 6580 6581 Tests: test_filter_flags: Edit comments and style 6582 6583 tests/test_filter_flags.c | 13 +++++++++---- 6584 1 file changed, 9 insertions(+), 4 deletions(-) 6585 6586commit b101e1d1dbc81577c0c9aa0cb89cf2e46a15eb82 6587Author: Lasse Collin <lasse.collin@tukaani.org> 6588Date: 2024-04-22 16:39:44 +0300 6589 6590 Tests: Fix C99/C11 compatibility when features are disabled 6591 6592 The array could become empty and then the initializer would be 6593 simply {} which is allowed only in GNU-C and C23. 6594 6595 tests/test_filter_flags.c | 18 ++++++++---------- 6596 1 file changed, 8 insertions(+), 10 deletions(-) 6597 6598commit f8f3a220ac8afcb8cb2812917d3b77e00c2eab0d 6599Author: Lasse Collin <lasse.collin@tukaani.org> 6600Date: 2024-04-21 20:32:16 +0300 6601 6602 DOS: Omit useless defines from config.h 6603 6604 dos/config.h | 12 ------------ 6605 1 file changed, 12 deletions(-) 6606 6607commit fc1921b04b8840caaa777c2bd5340d41b259da20 6608Author: Lasse Collin <lasse.collin@tukaani.org> 6609Date: 2024-04-21 20:27:50 +0300 6610 6611 Build: Omit useless checks for fcntl.h, limits.h, and sys/time.h 6612 6613 configure.ac | 6 ------ 6614 1 file changed, 6 deletions(-) 6615 6616commit 6aa2a6deeba04808a0fe4461396e7fb70277f3d4 6617Author: Lasse Collin <lasse.collin@tukaani.org> 6618Date: 2024-04-19 22:04:21 +0300 6619 6620 liblzma: Silence a warning from Coverity static analysis 6621 6622 It is logical why it cannot know for sure that the value has 6623 to be at most 4 if it is less than 16. 6624 6625 The x86 filter is based on a very old LZMA SDK version. Newer 6626 ones have quite a different implementation for the same filter. 6627 6628 Thanks to Sam James. 6629 6630 src/liblzma/simple/x86.c | 12 +++++------- 6631 1 file changed, 5 insertions(+), 7 deletions(-) 6632 6633commit e89d3e83b4496d0b5410870634970c0aa9721d59 6634Author: Lasse Collin <lasse.collin@tukaani.org> 6635Date: 2024-04-19 23:18:19 +0300 6636 6637 Update .gitignore 6638 6639 .gitignore | 21 ++++++++------------- 6640 1 file changed, 8 insertions(+), 13 deletions(-) 6641 6642commit 86fc4ee859709da0ff9617a1490f13ddac0a109b 6643Author: Lasse Collin <lasse.collin@tukaani.org> 6644Date: 2024-04-19 20:53:24 +0300 6645 6646 Tests: test_lzip_decoder: Tweak coding style and comments 6647 6648 tests/test_lzip_decoder.c | 58 +++++++++++++++++++++++------------------------ 6649 1 file changed, 28 insertions(+), 30 deletions(-) 6650 6651commit 38be573a279bd7b608ee7d8509ec10884e6fb0d5 6652Author: Lasse Collin <lasse.collin@tukaani.org> 6653Date: 2024-04-19 20:51:36 +0300 6654 6655 Tests: test_lzip_decoder: Remove redundant initializations 6656 6657 tests/test_lzip_decoder.c | 6 ++---- 6658 1 file changed, 2 insertions(+), 4 deletions(-) 6659 6660commit d7e4bc53eacfab9f3de95d8252bdfdc9419079c9 6661Author: Lasse Collin <lasse.collin@tukaani.org> 6662Date: 2024-04-19 20:47:24 +0300 6663 6664 Tests: test_lzip_decoder: Remove unneeded tuktest_malloc() calls 6665 6666 tests/test_lzip_decoder.c | 12 ++---------- 6667 1 file changed, 2 insertions(+), 10 deletions(-) 6668 6669commit eeca8f7c5baf1ad69606bb734d5001763466d58f 6670Author: Lasse Collin <lasse.collin@tukaani.org> 6671Date: 2024-04-15 20:35:07 +0300 6672 6673 xz: Fix white space error. 6674 6675 Thanks to xx on #tukaani. 6676 6677 src/xz/args.c | 2 +- 6678 1 file changed, 1 insertion(+), 1 deletion(-) 6679 6680commit 462ca9409940a19f743daee6b3bcc611277d0007 6681Author: Sam James <sam@gentoo.org> 6682Date: 2024-04-11 23:01:44 +0100 6683 6684 xz: add missing noreturn for message_filters_help 6685 6686 Fixes: a165d7df1964121eb9df715e6f836a31c865beef 6687 6688 src/xz/message.h | 1 + 6689 1 file changed, 1 insertion(+) 6690 6691commit 863f13d2828b99b0539ce73f9cf85bde32358034 6692Author: Sam James <sam@gentoo.org> 6693Date: 2024-04-11 19:34:04 +0100 6694 6695 xz: signals: suppress -Wsign-conversion on macOS 6696 6697 On macOS, we get: 6698 ``` 6699 signals.c: In function 'signals_init': 6700 signals.c:76:17: error: conversion to 'sigset_t' {aka 'unsigned int'} from 'int' may change the sign of the result [-Werror=sign-conversion] 6701 76 | sigaddset(&hooked_signals, sigs[i]); 6702 | ^~~~~~~~~ 6703 signals.c:81:17: error: conversion to 'sigset_t' {aka 'unsigned int'} from 'int' may change the sign of the result [-Werror=sign-conversion] 6704 81 | sigaddset(&hooked_signals, message_progress_sigs[i]); 6705 | ^~~~~~~~~ 6706 signals.c:86:9: error: conversion to 'sigset_t' {aka 'unsigned int'} from 'int' may change the sign of the result [-Werror=sign-conversion] 6707 86 | sigaddset(&hooked_signals, SIGTSTP); 6708 | ^~~~~~~~~ 6709 ``` 6710 6711 We use `int` for `hooked_signals` but we can't just cast to whatever 6712 `sigset_t` is because `sigset_t` is an opaque type. It's an unsigned int 6713 on macOS. On macOS, `sigaddset` is implemented as a macro. 6714 6715 Just suppress -Wsign-conversion for `signals_init` for macOS given 6716 there's no real nice way of fixing this. 6717 6718 src/xz/signals.c | 7 +++++++ 6719 1 file changed, 7 insertions(+) 6720 6721commit fcbd0d199933a69713cb293cbd7409a757d854cd 6722Author: Lasse Collin <lasse.collin@tukaani.org> 6723Date: 2024-04-13 22:19:40 +0300 6724 6725 Tests: test_microlzma: Add a "FIXME?" about LZMA_FINISH handling 6726 6727 tests/test_microlzma.c | 8 ++++++++ 6728 1 file changed, 8 insertions(+) 6729 6730commit 0fe2dfa68355d2b165544b2bc8babf77dcc2039e 6731Author: Lasse Collin <lasse.collin@tukaani.org> 6732Date: 2024-04-13 18:05:31 +0300 6733 6734 Tests: test_microlzma: Tweak comments, coding style, and minor details 6735 6736 A few lines were reordered, a few ARRAY_SIZE were changed to sizeof, 6737 and a few uint32_t were changed to size_t. No real functional changes 6738 were intended. 6739 6740 tests/test_microlzma.c | 149 +++++++++++++++++++++++++++---------------------- 6741 1 file changed, 83 insertions(+), 66 deletions(-) 6742 6743commit 97f0ee0f1f903f4e7c4ea23e9b89d687025d2992 6744Author: Ryan Carsten Schmidt <git@ryandesign.com> 6745Date: 2024-04-12 19:31:13 -0500 6746 6747 CI: Use only the active CPUs on macOS 6748 6749 hw.ncpu counts all CPUs including inactive ones. hw.activecpu counts 6750 only the active CPUs. 6751 6752 build-aux/ci_build.bash | 2 +- 6753 1 file changed, 1 insertion(+), 1 deletion(-) 6754 6755commit 73f629e321b74f68c9954728fa4f19261afccf46 6756Author: Sam James <sam@gentoo.org> 6757Date: 2024-04-10 18:33:55 +0100 6758 6759 ci: rename ci_build.sh -> ci_build.bash 6760 6761 We discussed the name and it's less cognitive load to just call it '.bash' 6762 so you don't have an immediate question about if bashisms are OK. 6763 6764 .github/workflows/ci.yml | 52 ++++++++++++++++---------------- 6765 .github/workflows/windows-ci.yml | 20 ++++++------ 6766 build-aux/{ci_build.sh => ci_build.bash} | 0 6767 3 files changed, 36 insertions(+), 36 deletions(-) 6768 6769commit 8709407a9ef8e7e8aec117879400e4dd3e227ada 6770Author: Sam James <sam@gentoo.org> 6771Date: 2024-04-10 17:42:23 +0100 6772 6773 ci: build in parallel by default 6774 6775 build-aux/ci_build.sh | 2 ++ 6776 1 file changed, 2 insertions(+) 6777 6778commit 65bf7e0a1ca6386f17608e8afb84ac470c18d23f 6779Author: Sam James <sam@gentoo.org> 6780Date: 2024-04-10 15:41:08 +0100 6781 6782 ci: default to -O2 6783 6784 We need this for when we're passing sanitizer flags or -gdwarf-4 for Clang 6785 with Valgrind. Just always start with -O2 if CFLAGS isn't set in the 6786 environment and append what was passed on the command line. 6787 6788 build-aux/ci_build.sh | 3 ++- 6789 1 file changed, 2 insertions(+), 1 deletion(-) 6790 6791commit bc899f9e0700ad153bd65f4804c4de7515c8a847 6792Author: Sam James <sam@gentoo.org> 6793Date: 2024-04-10 15:17:47 +0100 6794 6795 ci: make automake's test runner verbose on failures 6796 6797 This is a lot easier to work with than the save-logs thing the action 6798 tries to do... 6799 6800 build-aux/ci_build.sh | 2 +- 6801 1 file changed, 1 insertion(+), 1 deletion(-) 6802 6803commit b5e3470442531717b2457b40ab412740296af1bc 6804Author: Sam James <sam@gentoo.org> 6805Date: 2024-04-10 12:38:51 +0100 6806 6807 ci: make UBSAN abort on errors 6808 6809 Unfortunately, UBSAN doesn't do this by default. See also the change 6810 I made in Meson for this in October [0]. 6811 6812 [0] https://github.com/mesonbuild/meson/commit/7b7d2e060b447de9c2642848847370a58711ac1c 6813 6814 .github/workflows/ci.yml | 1 + 6815 1 file changed, 1 insertion(+) 6816 6817commit 6c095a98fbec70b790253a663173ecdb669108c4 6818Author: Sam James <sam@gentoo.org> 6819Date: 2024-04-10 11:43:10 +0100 6820 6821 ci: test Valgrind 6822 6823 Using `--trace-children=yes` has a trade-off here, as it makes 6824 `test_scripts.sh` pretty slow when calling various non-xz utilities. 6825 6826 But I also feel like it's not useless to have Valgrind used there and it's 6827 not easy to exclude Valgrind just for that one test... 6828 6829 I did consider using AX_VALGRIND_CHECK [0][1] but I couldn't get it working 6830 immediately with some conditionally-built tests and I wondered if it was 6831 worth spending time on at least while we're debating xz's future build 6832 system situation. 6833 6834 [0] https://www.gnu.org/software/autoconf-archive/ax_valgrind_check.html 6835 [1] https://tecnocode.co.uk/2014/12/23/automatically-valgrinding-code-with-ax_valgrind_check/ 6836 6837 .github/workflows/ci.yml | 11 ++++++++++- 6838 build-aux/ci_build.sh | 8 +++++--- 6839 2 files changed, 15 insertions(+), 4 deletions(-) 6840 6841commit 6286c1900c2d2ca33d9b1b397122c7bcdb9a4d59 6842Author: Lasse Collin <lasse.collin@tukaani.org> 6843Date: 2024-04-10 23:20:02 +0300 6844 6845 liblzma: CRC: Simplify table omission macros 6846 6847 A macro is useful to prevent a single #if directive from 6848 getting too ugly but only one macro is needed for all archs. 6849 6850 src/liblzma/check/crc32_table.c | 10 ++++------ 6851 src/liblzma/check/crc64_table.c | 4 ++-- 6852 src/liblzma/check/crc_common.h | 5 +++-- 6853 3 files changed, 9 insertions(+), 10 deletions(-) 6854 6855commit 45da936c879acf4f053a3055665bf1b10ded4462 6856Author: Lasse Collin <lasse.collin@tukaani.org> 6857Date: 2024-04-10 23:09:40 +0300 6858 6859 liblzma: ARM64 CRC: Fix omission of CRC32 table 6860 6861 The macro name had an odd typo so the table wasn't omitted 6862 when it should have. 6863 6864 Fixes: 1940f0ec28f08c0ac72c1413d9706fb82eabe6ad 6865 6866 src/liblzma/check/crc32_table.c | 2 +- 6867 1 file changed, 1 insertion(+), 1 deletion(-) 6868 6869commit 308a9af85400b0e2019f0f012c8354e831d06d65 6870Author: Lasse Collin <lasse.collin@tukaani.org> 6871Date: 2024-04-10 22:21:51 +0300 6872 6873 Build: If ARM64 feature detection func is found, stop looking for others 6874 6875 This can speed up configure a tiny bit. 6876 6877 Fixes: c5f6d79cc9515a7f22d7ea4860c6cc394b295732 6878 6879 configure.ac | 2 +- 6880 1 file changed, 1 insertion(+), 1 deletion(-) 6881 6882commit fc43cecd32bf9d5f8caa599206b15c9569af1eb6 6883Author: Lasse Collin <lasse.collin@tukaani.org> 6884Date: 2024-04-10 22:04:27 +0300 6885 6886 liblzma: ARM64 CRC32: Change style of the macOS code to match FreeBSD 6887 6888 I didn't test this but it shouldn't change any functionality. 6889 6890 Fixes: 761f5b69a4c778c8bcb09279b845b07c28790575 6891 6892 src/liblzma/check/crc32_arm64.h | 7 ++++--- 6893 1 file changed, 4 insertions(+), 3 deletions(-) 6894 6895commit 1024cd4cd966b998fedec51e385e9ee9a49b3c57 6896Author: Lasse Collin <lasse.collin@tukaani.org> 6897Date: 2024-04-10 21:59:27 +0300 6898 6899 liblzma: ARM64 CRC32: Add error checking to FreeBSD-specific code 6900 6901 Also add parenthesis to the return statement. 6902 6903 I didn't test this. 6904 6905 Fixes: 761f5b69a4c778c8bcb09279b845b07c28790575 6906 6907 src/liblzma/check/crc32_arm64.h | 6 ++++-- 6908 1 file changed, 4 insertions(+), 2 deletions(-) 6909 6910commit 2337f7021c860b026e3e849e60a9ae8d09ec0ea0 6911Author: Lasse Collin <lasse.collin@tukaani.org> 6912Date: 2024-04-10 21:56:33 +0300 6913 6914 liblzma: ARM64 CRC32: Use negation instead of subtracting from 8 6915 6916 Subtracting from 0 is negation, this just keeps warnings away. 6917 6918 Fixes: 761f5b69a4c778c8bcb09279b845b07c28790575 6919 6920 src/liblzma/check/crc32_arm64.h | 2 +- 6921 1 file changed, 1 insertion(+), 1 deletion(-) 6922 6923commit d8fffd01aa1a3c18e437a222abd34699e23ff5e7 6924Author: Lasse Collin <lasse.collin@tukaani.org> 6925Date: 2024-04-10 21:55:10 +0300 6926 6927 liblzma: ARM64 CRC32: Tweak coding style and comments 6928 6929 src/liblzma/check/crc32_arm64.h | 10 +++++----- 6930 1 file changed, 5 insertions(+), 5 deletions(-) 6931 6932commit 780d2c236de0e4749655696c2e0c26fb7565afd3 6933Author: Lasse Collin <lasse.collin@tukaani.org> 6934Date: 2024-04-09 21:55:01 +0300 6935 6936 Update SECURITY.md. 6937 6938 .github/SECURITY.md | 25 ++++++++----------------- 6939 1 file changed, 8 insertions(+), 17 deletions(-) 6940 6941commit 986865ea2f9d1f8dbef4a130926df106b0f6d41a 6942Author: Lasse Collin <lasse.collin@tukaani.org> 6943Date: 2024-04-09 17:47:01 +0300 6944 6945 CI: Remove ifunc support. 6946 6947 .github/workflows/ci.yml | 13 +++---------- 6948 build-aux/ci_build.sh | 5 +---- 6949 2 files changed, 4 insertions(+), 14 deletions(-) 6950 6951commit 689ae2427342a2ea1206eb5ca08301baf410e7e0 6952Author: Lasse Collin <lasse.collin@tukaani.org> 6953Date: 2024-04-09 17:43:16 +0300 6954 6955 liblzma: Remove ifunc support. 6956 6957 This is *NOT* done for security reasons even though the backdoor 6958 relied on the ifunc code. Instead, the reason is that in this 6959 project ifunc provides little benefits but it's quite a bit of 6960 extra code to support it. The only case where ifunc *might* matter 6961 for performance is if the CRC functions are used directly by an 6962 application. In normal compression use it's completely irrelevant. 6963 6964 CMakeLists.txt | 79 --------------------------------------- 6965 INSTALL | 8 ---- 6966 configure.ac | 79 --------------------------------------- 6967 src/liblzma/check/crc32_fast.c | 48 +++--------------------- 6968 src/liblzma/check/crc64_fast.c | 21 ----------- 6969 src/liblzma/check/crc_common.h | 9 +---- 6970 src/liblzma/check/crc_x86_clmul.h | 11 +----- 6971 7 files changed, 8 insertions(+), 247 deletions(-) 6972 6973commit 6b4c859059a7eb9b0547590c081668e14ecf8af6 6974Author: Lasse Collin <lasse.collin@tukaani.org> 6975Date: 2024-04-08 22:04:41 +0300 6976 6977 tests/files/README: Update the main heading. 6978 6979 tests/files/README | 4 ++-- 6980 1 file changed, 2 insertions(+), 2 deletions(-) 6981 6982commit 2a851e06b891ce894f918faff32a6cca6fdecee6 6983Author: Lasse Collin <lasse.collin@tukaani.org> 6984Date: 2024-04-08 22:02:45 +0300 6985 6986 tests/files/README: Explain how to recreate the ARM64 test files. 6987 6988 tests/files/README | 15 ++++++++++++++- 6989 1 file changed, 14 insertions(+), 1 deletion(-) 6990 6991commit 3d09b721b94e18fe1f853a04799697f5de10b291 6992Author: Lasse Collin <lasse.collin@tukaani.org> 6993Date: 2024-04-08 21:51:55 +0300 6994 6995 debug: Add generator for the ARM64 test file data. 6996 6997 debug/Makefile.am | 3 +- 6998 debug/testfilegen-arm64.c | 116 ++++++++++++++++++++++++++++++++++++++++++++++ 6999 2 files changed, 118 insertions(+), 1 deletion(-) 7000 7001commit 31ef676567c9d6fcc4ec9fc833c312f7a7c21c48 7002Author: Lasse Collin <lasse.collin@tukaani.org> 7003Date: 2024-04-08 21:19:38 +0300 7004 7005 xz man page: Use .ft CR instead of CW to silence warnings from groff. 7006 7007 src/xz/xz.1 | 32 ++++++++++++++++---------------- 7008 1 file changed, 16 insertions(+), 16 deletions(-) 7009 7010commit 780cbf29d5a88db2b546e9b7b019c4c33ca72685 7011Author: Lasse Collin <lasse.collin@tukaani.org> 7012Date: 2024-04-08 19:28:35 +0300 7013 7014 Fix NEWS for 5.6.0 and 5.6.1. 7015 7016 NEWS | 6 ++++++ 7017 1 file changed, 6 insertions(+) 7018 7019commit bfd0c7c478e93a1911b845459549ff94587b6ea2 7020Author: Lasse Collin <lasse.collin@tukaani.org> 7021Date: 2024-04-08 19:22:26 +0300 7022 7023 Remove the XZ logo. 7024 7025 COPYING | 5 - 7026 COPYING.CC-BY-SA-4.0 | 427 --------------------------------------------------- 7027 Makefile.am | 2 - 7028 README | 2 - 7029 doc/xz-logo.png | Bin 6771 -> 0 bytes 7030 doxygen/Doxyfile | 6 +- 7031 doxygen/footer.html | 13 -- 7032 7 files changed, 3 insertions(+), 452 deletions(-) 7033 7034commit 77a294d98a9d2d48f7e4ac273711518bf689f5c4 7035Author: Lasse Collin <lasse.collin@tukaani.org> 7036Date: 2024-04-08 18:27:39 +0300 7037 7038 Update maintainer and author info. 7039 7040 The other maintainer suddenly disappeared. 7041 7042 AUTHORS | 9 +++++++-- 7043 README | 10 +++------- 7044 THANKS | 1 - 7045 src/liblzma/api/lzma.h | 2 +- 7046 4 files changed, 11 insertions(+), 11 deletions(-) 7047 7048commit 8dd03d4484ccf80022722a16d0ed9b37f2b58072 7049Author: Lasse Collin <lasse.collin@tukaani.org> 7050Date: 2024-04-08 18:05:32 +0300 7051 7052 Docs: Update .xz file format specification to 1.2.1. 7053 7054 This only reverts the XZ URL changes. 7055 7056 doc/xz-file-format.txt | 12 ++++++++---- 7057 1 file changed, 8 insertions(+), 4 deletions(-) 7058 7059commit 17aa2e1a796d3f758802df29afc89dcf335db567 7060Author: Lasse Collin <lasse.collin@tukaani.org> 7061Date: 2024-04-08 17:33:56 +0300 7062 7063 Update website URLs back to tukaani.org. 7064 7065 The XZ projects were moved back to their original URLs. 7066 7067 .github/SECURITY.md | 2 +- 7068 CMakeLists.txt | 2 +- 7069 COPYING | 3 +-- 7070 README | 4 ++-- 7071 configure.ac | 2 +- 7072 doc/faq.txt | 2 +- 7073 doc/lzma-file-format.txt | 12 ++++++------ 7074 dos/config.h | 2 +- 7075 src/liblzma/api/lzma.h | 2 +- 7076 src/xz/xz.1 | 6 +++--- 7077 src/xzdec/xzdec.1 | 4 ++-- 7078 windows/README-Windows.txt | 2 +- 7079 12 files changed, 21 insertions(+), 22 deletions(-) 7080 7081commit 2739db981023373a2ddabc7b456c7e658bb4f582 7082Author: Lasse Collin <lasse.collin@tukaani.org> 7083Date: 2024-04-08 17:07:08 +0300 7084 7085 xzdec: Tweak coding style and comments. 7086 7087 src/xzdec/xzdec.c | 32 +++++++++++++++++++++----------- 7088 1 file changed, 21 insertions(+), 11 deletions(-) 7089 7090commit 408b6adb2a07d07c6535f859571cca38837caaf3 7091Author: Lasse Collin <lasse.collin@tukaani.org> 7092Date: 2024-04-08 15:53:46 +0300 7093 7094 tests/ossfuzz: Tiny fix to a comment. 7095 7096 tests/ossfuzz/fuzz_decode_stream.c | 2 +- 7097 1 file changed, 1 insertion(+), 1 deletion(-) 7098 7099commit db4dd74a344580e0b81436598d9741a3454245b0 7100Author: Lasse Collin <lasse.collin@tukaani.org> 7101Date: 2024-04-09 18:22:16 +0300 7102 7103 Update THANKS. 7104 7105 THANKS | 1 + 7106 1 file changed, 1 insertion(+) 7107 7108commit e93e13c8b3bec925c56e0c0b675d8000a0f7f754 7109Author: Lasse Collin <lasse.collin@tukaani.org> 7110Date: 2024-04-08 15:32:58 +0300 7111 7112 Remove the backdoor found in 5.6.0 and 5.6.1 (CVE-2024-3094). 7113 7114 While the backdoor was inactive (and thus harmless) without inserting 7115 a small trigger code into the build system when the source package was 7116 created, it's good to remove this anyway: 7117 7118 - The executable payloads were embedded as binary blobs in 7119 the test files. This was a blatant violation of the 7120 Debian Free Software Guidelines. 7121 7122 - On machines that see lots bots poking at the SSH port, the backdoor 7123 noticeably increased CPU load, resulting in degraded user experience 7124 and thus overwhelmingly negative user feedback. 7125 7126 - The maintainer who added the backdoor has disappeared. 7127 7128 - Backdoors are bad for security. 7129 7130 This reverts the following without making any other changes: 7131 7132 6e636819 Tests: Update two test files. 7133 a3a29bbd Tests: Test --single-stream can decompress bad-3-corrupt_lzma2.xz. 7134 0b4ccc91 Tests: Update RISC-V test files. 7135 8c9b8b20 liblzma: Fix typos in crc32_fast.c and crc64_fast.c. 7136 82ecc538 liblzma: Fix false Valgrind error report with GCC. 7137 cf44e4b7 Tests: Add a few test files. 7138 3060e107 Tests: Use smaller dictionary size in RISC-V test files. 7139 e2870db5 Tests: Add two RISC-V Filter test files. 7140 7141 The RISC-V test files also have real content that tests the filter 7142 but the real content would fit into much smaller files. A generator 7143 program would need to be available as well. 7144 7145 Thanks to Andres Freund for finding and reporting it and making 7146 it public quickly so others could act without a delay. 7147 See: https://www.openwall.com/lists/oss-security/2024/03/29/4 7148 7149 src/liblzma/check/crc32_fast.c | 7 +++++-- 7150 src/liblzma/check/crc64_fast.c | 4 +++- 7151 src/liblzma/check/crc_common.h | 25 ------------------------- 7152 tests/files/README | 27 --------------------------- 7153 tests/files/bad-3-corrupt_lzma2.xz | Bin 512 -> 0 bytes 7154 tests/files/bad-dict_size.lzma | Bin 41 -> 0 bytes 7155 tests/files/good-1-riscv-lzma2-1.xz | Bin 7424 -> 0 bytes 7156 tests/files/good-1-riscv-lzma2-2.xz | Bin 7432 -> 0 bytes 7157 tests/files/good-2cat.xz | Bin 136 -> 0 bytes 7158 tests/files/good-large_compressed.lzma | Bin 35421 -> 0 bytes 7159 tests/files/good-small_compressed.lzma | Bin 258 -> 0 bytes 7160 tests/test_files.sh | 11 ----------- 7161 12 files changed, 8 insertions(+), 66 deletions(-) 7162 7163commit f9cf4c05edd14dedfe63833f8ccbe41b55823b00 7164Author: Lasse Collin <lasse.collin@tukaani.org> 7165Date: 2024-03-30 14:36:28 +0200 7166 7167 CMake: Fix sabotaged Landlock sandbox check. 7168 7169 It never enabled it. 7170 7171 CMakeLists.txt | 2 +- 7172 1 file changed, 1 insertion(+), 1 deletion(-) 7173 7174commit af071ef7702debef4f1d324616a0137a5001c14c 7175Author: Jia Tan <jiat0218@gmail.com> 7176Date: 2024-03-26 01:50:02 +0800 7177 7178 Docs: Simplify SECURITY.md. 7179 7180 .github/SECURITY.md | 8 +------- 7181 1 file changed, 1 insertion(+), 7 deletions(-) 7182 7183commit 0b99783d63f27606936bb79a16c52d0d70c0b56f 7184Author: Lasse Collin <lasse.collin@tukaani.org> 7185Date: 2024-03-22 17:46:30 +0200 7186 7187 liblzma: memcmplen.h: Add a comment why subtraction is used. 7188 7189 src/liblzma/common/memcmplen.h | 13 +++++++++++++ 7190 1 file changed, 13 insertions(+) 7191 7192commit 8a25ba024d55610c448c6e4f1400a00bae51b493 7193Author: Lasse Collin <lasse.collin@tukaani.org> 7194Date: 2024-03-15 17:43:39 +0200 7195 7196 INSTALL: Document arguments of --enable-symbol-versions. 7197 7198 INSTALL | 43 +++++++++++++++++++++++++++++++++++++++---- 7199 1 file changed, 39 insertions(+), 4 deletions(-) 7200 7201commit 49324b711f9d42b3543bf2f3ae598eaa03360bd5 7202Author: Lasse Collin <lasse.collin@tukaani.org> 7203Date: 2024-03-15 17:15:50 +0200 7204 7205 Build: Use only the generic symbol versioning with NVIDIA HPC Compiler. 7206 7207 This does the previous commit with CMake. 7208 7209 AC_EGREP_CPP uses AC_REQUIRE so the outermost if-commands must 7210 be changed to AS_IF to ensure that things wont break some day. 7211 See 5a5bd7f871818029d5ccbe189f087f591258c294. 7212 7213 configure.ac | 18 +++++++++++++----- 7214 1 file changed, 13 insertions(+), 5 deletions(-) 7215 7216commit c273123ed0ebaebf49994057a7fe98aae7f42c40 7217Author: Lasse Collin <lasse.collin@tukaani.org> 7218Date: 2024-03-15 16:36:35 +0200 7219 7220 CMake: Use only the generic symbol versioning with NVIDIA HPC Compiler. 7221 7222 It doesn't support the __symver__ attribute or __asm__(".symver ..."). 7223 The generic symbol versioning can still be used since it only needs 7224 linker support. 7225 7226 CMakeLists.txt | 7 ++++++- 7227 1 file changed, 6 insertions(+), 1 deletion(-) 7228 7229commit df7f487648d18a3992386a59b8a061edca862d17 7230Author: Lasse Collin <lasse.collin@tukaani.org> 7231Date: 2024-03-13 21:38:24 +0200 7232 7233 Update THANKS. 7234 7235 THANKS | 1 + 7236 1 file changed, 1 insertion(+) 7237 7238commit 3217b82b3ec023bf8338249134a076bea0ea30ec 7239Author: Lasse Collin <lasse.collin@tukaani.org> 7240Date: 2024-03-13 21:30:18 +0200 7241 7242 liblzma: Minor comment edits. 7243 7244 src/liblzma/common/string_conversion.c | 4 ++-- 7245 src/liblzma/delta/delta_decoder.c | 2 ++ 7246 2 files changed, 4 insertions(+), 2 deletions(-) 7247 7248commit 096bc0e3f8fb4bfc4d2f3f64a7f219401ffb4c31 7249Author: Sergey Kosukhin <sergey.kosukhin@mpimet.mpg.de> 7250Date: 2024-03-13 13:07:13 +0100 7251 7252 liblzma: Fix building with NVHPC (NVIDIA HPC SDK). 7253 7254 NVHPC compiler has several issues that make it impossible to 7255 build liblzma: 7256 - the compiler cannot handle unions that contain pointers that 7257 are not the first members; 7258 - the compiler cannot handle the assembler code in range_decoder.h 7259 (LZMA_RANGE_DECODER_CONFIG has to be set to zero); 7260 - the compiler fails to produce valid code for delta_decode if the 7261 vectorization is enabled, which results in failed tests. 7262 7263 This introduces NVHPC-specific workarounds that address the issues. 7264 7265 src/liblzma/common/string_conversion.c | 6 ++++-- 7266 src/liblzma/delta/delta_decoder.c | 3 +++ 7267 src/liblzma/rangecoder/range_decoder.h | 1 + 7268 3 files changed, 8 insertions(+), 2 deletions(-) 7269 7270commit 2ad7fad67080e88fa7fc191f9d613d8b7add9c62 7271Author: Lasse Collin <lasse.collin@tukaani.org> 7272Date: 2024-03-13 21:17:10 +0200 7273 7274 CMake: Disable symbol versioning on non-glibc Linux. 7275 7276 This better matches what configure.ac does. For example, musl has 7277 only basic symbol versioning support: 7278 7279 https://wiki.musl-libc.org/functional-differences-from-glibc.html#Symbol_versioning 7280 7281 configure.ac tries to enable symbol versioning only with glibc 7282 so now CMake does the same. 7283 7284 CMakeLists.txt | 22 ++++++++++++++++++++-- 7285 1 file changed, 20 insertions(+), 2 deletions(-) 7286 7287commit 82f0c0d39eb2c026b1d96ee706f70ace868d4ed4 7288Author: Lasse Collin <lasse.collin@tukaani.org> 7289Date: 2024-03-13 20:32:46 +0200 7290 7291 CMake: Make symbol versioning configurable. 7292 7293 CMakeLists.txt | 62 +++++++++++++++++++++++++++++++++++++++------------------- 7294 1 file changed, 42 insertions(+), 20 deletions(-) 7295 7296commit 45d33bfc45e4295b8ad743bc2ae61cc724f98076 7297Author: Lasse Collin <lasse.collin@tukaani.org> 7298Date: 2024-03-13 19:47:36 +0200 7299 7300 Build: Style tweaks to configure.ac. 7301 7302 The AC_MSG_ERROR line is overlong anyway as are a few other 7303 AC_MSG_ERROR lines already. 7304 7305 configure.ac | 16 +++++++++------- 7306 1 file changed, 9 insertions(+), 7 deletions(-) 7307 7308commit f56ed6fac6619b56b005878d3b5210e2f0d721c0 7309Author: Sergey Kosukhin <sergey.kosukhin@mpimet.mpg.de> 7310Date: 2024-03-12 20:03:49 +0100 7311 7312 Build: Let the users override the symbol versioning variant. 7313 7314 There are cases when the users want to decide themselves whether 7315 they want to have the generic (even on GNU/Linux) or the linux 7316 (even if we do not recommend that) symbol versioning variant. 7317 The former might be needed to circumvent compiler issues (i.e. 7318 the compiler does not support all features that are required 7319 for the linux versioning), the latter might help in overriding 7320 the assumptions made in the configure script. 7321 7322 configure.ac | 91 +++++++++++++++++++++++++++++++++--------------------------- 7323 1 file changed, 50 insertions(+), 41 deletions(-) 7324 7325commit a4f2e20d8466369b1bb277c66f75c9e4ba9cc378 7326Author: Jia Tan <jiat0218@gmail.com> 7327Date: 2024-03-09 11:27:27 +0800 7328 7329 Add NEWS for 5.6.1 7330 7331 NEWS | 26 ++++++++++++++++++++++++++ 7332 1 file changed, 26 insertions(+) 7333 7334commit f01be8ad754a905d8c418601767480ec11621b02 7335Author: Jia Tan <jiat0218@gmail.com> 7336Date: 2024-03-09 10:43:20 +0800 7337 7338 Translations: Add missing --riscv option to man page translations. 7339 7340 po4a/de.po | 702 +++++++++++++++++++++++++++++----------------------------- 7341 po4a/fr.po | 549 ++++++++++++++++++++++----------------------- 7342 po4a/ko.po | 702 +++++++++++++++++++++++++++++----------------------------- 7343 po4a/pt_BR.po | 641 +++++++++++++++++++++++++++-------------------------- 7344 po4a/ro.po | 702 +++++++++++++++++++++++++++++----------------------------- 7345 po4a/uk.po | 702 +++++++++++++++++++++++++++++----------------------------- 7346 6 files changed, 2024 insertions(+), 1974 deletions(-) 7347 7348commit 6e636819e8f070330d835fce46289a3ff72a7b89 7349Author: Jia Tan <jiat0218@gmail.com> 7350Date: 2024-03-09 10:18:29 +0800 7351 7352 Tests: Update two test files. 7353 7354 The original files were generated with random local to my machine. 7355 To better reproduce these files in the future, a constant seed was used 7356 to recreate these files. 7357 7358 tests/files/bad-3-corrupt_lzma2.xz | Bin 484 -> 512 bytes 7359 tests/files/good-large_compressed.lzma | Bin 35430 -> 35421 bytes 7360 2 files changed, 0 insertions(+), 0 deletions(-) 7361 7362commit a3a29bbd5d86183fc7eae8f0182dace374e778d8 7363Author: Jia Tan <jiat0218@gmail.com> 7364Date: 2024-03-09 10:08:32 +0800 7365 7366 Tests: Test --single-stream can decompress bad-3-corrupt_lzma2.xz. 7367 7368 The first stream in this file is valid, so this tests that xz properly 7369 stops after decompressing it. 7370 7371 tests/test_files.sh | 11 +++++++++++ 7372 1 file changed, 11 insertions(+) 7373 7374commit 0b4ccc91454dbcf0bf521b9bd51aa270581ee23c 7375Author: Jia Tan <jiat0218@gmail.com> 7376Date: 2024-03-09 10:05:32 +0800 7377 7378 Tests: Update RISC-V test files. 7379 7380 This increases code coverage and tests for possible shifting bugs. 7381 7382 tests/files/good-1-riscv-lzma2-1.xz | Bin 7512 -> 7424 bytes 7383 tests/files/good-1-riscv-lzma2-2.xz | Bin 7512 -> 7432 bytes 7384 2 files changed, 0 insertions(+), 0 deletions(-) 7385 7386commit 8c9b8b2063daa78ead9f648c2ec3c91e8615dffb 7387Author: Jia Tan <jiat0218@gmail.com> 7388Date: 2024-03-09 09:52:32 +0800 7389 7390 liblzma: Fix typos in crc32_fast.c and crc64_fast.c. 7391 7392 src/liblzma/check/crc32_fast.c | 4 ++-- 7393 src/liblzma/check/crc64_fast.c | 3 +-- 7394 2 files changed, 3 insertions(+), 4 deletions(-) 7395 7396commit b93a8d7631d9517da63f03e0185455024a4609e8 7397Author: Jia Tan <jiat0218@gmail.com> 7398Date: 2024-03-09 09:49:55 +0800 7399 7400 Tests: Replace HAVE_MICROLZMA usage in CMake and Autotools builds. 7401 7402 This reverts commit adaacafde6661496ca2814b1e94a3ba5186428cb. 7403 7404 CMakeLists.txt | 15 ++++++++++----- 7405 configure.ac | 9 ++------- 7406 tests/Makefile.am | 9 ++++++--- 7407 tests/test_microlzma.c | 12 ++++-------- 7408 4 files changed, 22 insertions(+), 23 deletions(-) 7409 7410commit 82ecc538193b380a21622aea02b0ba078e7ade92 7411Author: Jia Tan <jiat0218@gmail.com> 7412Date: 2024-03-09 09:20:57 +0800 7413 7414 liblzma: Fix false Valgrind error report with GCC. 7415 7416 With GCC and a certain combination of flags, Valgrind will falsely 7417 trigger an invalid write. This appears to be due to the omission of 7418 instructions to properly save, set up, and restore the frame pointer. 7419 7420 The IFUNC resolver is a leaf function since it only calls a function 7421 that is inlined. So sometimes GCC omits the frame pointer instructions 7422 in the resolver unless this optimization is explictly disabled. 7423 7424 This fixes https://bugzilla.redhat.com/show_bug.cgi?id=2267598. 7425 7426 src/liblzma/check/crc32_fast.c | 9 +++------ 7427 src/liblzma/check/crc64_fast.c | 7 +++---- 7428 src/liblzma/check/crc_common.h | 25 +++++++++++++++++++++++++ 7429 3 files changed, 31 insertions(+), 10 deletions(-) 7430 7431commit 3007e74ef250f0ce95d97ffbdf2282284f93764d 7432Author: Lasse Collin <lasse.collin@tukaani.org> 7433Date: 2024-03-05 23:21:26 +0200 7434 7435 liblzma: Fix a typo in a comment in the RISC-V filter. 7436 7437 src/liblzma/simple/riscv.c | 2 +- 7438 1 file changed, 1 insertion(+), 1 deletion(-) 7439 7440commit 72d2933bfae514e0dbb123488e9f1eb7cf64175f 7441Author: Jia Tan <jiat0218@gmail.com> 7442Date: 2024-03-05 00:34:46 +0800 7443 7444 liblzma: Use attribute no_profile_instrument_function with ifunc. 7445 7446 Thanks to Sam James for determining this was the attribute needed to 7447 workaround the GCC bug and for his version of the patch in Gentoo. 7448 7449 src/liblzma/check/crc32_fast.c | 5 +++++ 7450 src/liblzma/check/crc64_fast.c | 3 +++ 7451 2 files changed, 8 insertions(+) 7452 7453commit e5faaebbcf02ea880cfc56edc702d4f7298788ad 7454Author: Jia Tan <jiat0218@gmail.com> 7455Date: 2024-03-05 00:27:31 +0800 7456 7457 Build: Require attribute no_profile_instrument_function for ifunc usage. 7458 7459 Using __attribute__((__no_profile_instrument_function__)) on the ifunc 7460 resolver works around a bug in GCC -fprofile-generate: 7461 it adds profiling code even to ifunc resolvers which can make 7462 the ifunc resolver crash at program startup. This attribute 7463 was not introduced until GCC 7 and Clang 13, so ifunc won't 7464 be used with prior versions of these compilers. 7465 7466 This bug was brought to our attention by: 7467 7468 https://bugs.gentoo.org/925415 7469 7470 And was reported to upstream GCC by: 7471 7472 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=11411 7473 7474 CMakeLists.txt | 7 +++++++ 7475 configure.ac | 7 +++++++ 7476 2 files changed, 14 insertions(+) 7477 7478commit 7eeadd279a24c26ca7ff1292b7df802b89409eb7 7479Author: Lasse Collin <lasse.collin@tukaani.org> 7480Date: 2024-03-04 19:23:18 +0200 7481 7482 liblzma: Fix a comment in the RISC-V filter. 7483 7484 src/liblzma/simple/riscv.c | 4 ++-- 7485 1 file changed, 2 insertions(+), 2 deletions(-) 7486 7487commit 5f3d0595296cc3035eae9e7bb6c3ffb1e1267333 7488Author: Lasse Collin <lasse.collin@tukaani.org> 7489Date: 2024-02-29 16:35:52 +0200 7490 7491 CMake: Warn if translated man pages are missing. 7492 7493 CMakeLists.txt | 9 +++++++++ 7494 1 file changed, 9 insertions(+) 7495 7496commit 4cd1042ee752d61370c685d0d8b20c1e935672f7 7497Author: Lasse Collin <lasse.collin@tukaani.org> 7498Date: 2024-02-29 16:35:52 +0200 7499 7500 CMake: Warn if gettext tools and pre-created .gmo files are missing. 7501 7502 It's only done with CMake >= 3.20 and if library support 7503 for translation was already found. 7504 7505 Sort of fixes: https://github.com/tukaani-project/xz/issues/82 7506 7507 CMakeLists.txt | 25 +++++++++++++++++++++++++ 7508 1 file changed, 25 insertions(+) 7509 7510commit a94b42362c8e807f92236d6d63373f04991e3a50 7511Author: Lasse Collin <lasse.collin@tukaani.org> 7512Date: 2024-02-28 18:26:25 +0200 7513 7514 xz: Add comments. 7515 7516 src/xz/coder.c | 10 ++++++++++ 7517 1 file changed, 10 insertions(+) 7518 7519commit bbf112e32307a75a54a9e170bc392811443d5c87 7520Author: Jia Tan <jiat0218@gmail.com> 7521Date: 2024-02-27 23:42:41 +0800 7522 7523 xz: Change logging level for thread reduction to highest verbosity only. 7524 7525 Now that multi threaded encoding is the default, users do not need to 7526 see a warning message everytime the number of threads is reduced. On 7527 some machines, this could happen very often. It is not unreasonable for 7528 users to need to set double verbose mode to see this kind of 7529 information. 7530 7531 To see these warning messages -vv or --verbose --verbose must be passed 7532 to set xz into the highest possible verbosity mode. 7533 7534 These warnings had caused automated testing frameworks to fail when they 7535 expected no output to stderr. 7536 7537 Thanks to Sebastian Andrzej Siewior for reporting this and for the 7538 initial version of the patch. 7539 7540 src/xz/coder.c | 4 ++-- 7541 1 file changed, 2 insertions(+), 2 deletions(-) 7542 7543commit 649f6447441510d593a88475ad6df4bcdf74ce48 7544Author: Lasse Collin <lasse.collin@tukaani.org> 7545Date: 2024-02-26 23:06:13 +0200 7546 7547 Fix sorting in THANKS. 7548 7549 THANKS | 4 ++-- 7550 1 file changed, 2 insertions(+), 2 deletions(-) 7551 7552commit 1255b7d849bf53f196a842ef2a508ed0ff577eaa 7553Author: Jia Tan <jiat0218@gmail.com> 7554Date: 2024-02-26 23:39:29 +0800 7555 7556 Update THANKS. 7557 7558 THANKS | 1 + 7559 1 file changed, 1 insertion(+) 7560 7561commit eee579fff50099ba163c12305e81a4bd42b7dd53 7562Author: Chien Wong <m@xv97.com> 7563Date: 2024-02-25 21:38:13 +0800 7564 7565 xz: Add missing RISC-V on the filter list in the man page 7566 7567 Signed-off-by: Chien Wong <m@xv97.com> 7568 7569 src/xz/xz.1 | 4 +++- 7570 1 file changed, 3 insertions(+), 1 deletion(-) 7571 7572commit 328c52da8a2bbb81307644efdb58db2c422d9ba7 7573Author: Jia Tan <jiat0218@gmail.com> 7574Date: 2024-02-26 23:02:06 +0800 7575 7576 Build: Fix Linux Landlock feature test in Autotools and CMake builds. 7577 7578 The previous Linux Landlock feature test assumed that having the 7579 linux/landlock.h header file was enough. The new feature tests also 7580 requires that prctl() and the required Landlock system calls are 7581 supported. 7582 7583 CMakeLists.txt | 25 ++++++++++++++++++++++--- 7584 configure.ac | 27 ++++++++++++++++++++++++++- 7585 src/xz/sandbox.c | 2 +- 7586 src/xz/sandbox.h | 2 +- 7587 src/xzdec/xzdec.c | 8 ++++---- 7588 5 files changed, 54 insertions(+), 10 deletions(-) 7589 7590commit eb8ad59e9bab32a8d655796afd39597ea6dcc64d 7591Author: Jia Tan <jiat0218@gmail.com> 7592Date: 2024-02-26 20:06:10 +0800 7593 7594 Tests: Add test_microlzma to .gitignore and CMakeLists.txt. 7595 7596 .gitignore | 1 + 7597 CMakeLists.txt | 1 + 7598 2 files changed, 2 insertions(+) 7599 7600commit 9eed1b9a3ae140e93a82febc05a0181e9a4f5093 7601Author: Jia Tan <jiat0218@gmail.com> 7602Date: 2024-02-26 19:56:25 +0800 7603 7604 Tests: Correct license header in test_microlzma.c. 7605 7606 tests/test_microlzma.c | 5 ++--- 7607 1 file changed, 2 insertions(+), 3 deletions(-) 7608 7609commit 8bf9f72ee1c05b9e205a72807e8a9e304785673d 7610Author: Jia Tan <jiat0218@gmail.com> 7611Date: 2024-02-25 21:41:55 +0800 7612 7613 Fix typos in NEWS and CMakeLists. 7614 7615 CMakeLists.txt | 2 +- 7616 NEWS | 2 +- 7617 2 files changed, 2 insertions(+), 2 deletions(-) 7618 7619commit 5d8d915ebe2e345820a0f54d1baf8d7d4824c0c7 7620Author: Jia Tan <jiat0218@gmail.com> 7621Date: 2024-02-24 16:30:06 +0800 7622 7623 Bump version and soname for 5.7.0alpha. 7624 7625 Like 5.5.0alpha, 5.7.0alpha won't be released, it's just to mark that 7626 the branch is not stable. 7627 7628 Once again there is no API/ABI stability for new features in devel 7629 versions. The major soname won't be bumped even if API/ABI of new 7630 features breaks between devel releases. 7631 7632 src/liblzma/Makefile.am | 2 +- 7633 src/liblzma/api/lzma/version.h | 6 +++--- 7634 src/liblzma/liblzma_generic.map | 2 +- 7635 src/liblzma/liblzma_linux.map | 2 +- 7636 4 files changed, 6 insertions(+), 6 deletions(-) 7637 7638commit a18fb1edef0d0aac12a09eed05e9c448c777af7b 7639Author: Jia Tan <jiat0218@gmail.com> 7640Date: 2024-02-24 15:50:36 +0800 7641 7642 Add NEWS for 5.6.0. 7643 7644 NEWS | 143 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 7645 1 file changed, 143 insertions(+) 7646 7647commit 24355c5280bc95e3d594432d60bb8432aa6af173 7648Author: Jia Tan <jiat0218@gmail.com> 7649Date: 2024-02-22 22:27:01 +0800 7650 7651 Translations: Remove obsolete and fuzzy matches from some translations. 7652 7653 The French and Brazilian Portuguese man page translations have not been 7654 updated since the switch from public domain to 0BSD. The old GPLv2 7655 strings have now been removed from these files. 7656 7657 po4a/fr.po | 4702 +++++++++++++++++++++++++++++++++++++---------------- 7658 po4a/pt_BR.po | 4987 ++++++++++++++++++++++++++++++++++++++++----------------- 7659 2 files changed, 6832 insertions(+), 2857 deletions(-) 7660 7661commit 02ca4a7d7b703e2ec63e00b70feec825e919dbc1 7662Author: Jia Tan <jiat0218@gmail.com> 7663Date: 2024-02-21 00:31:54 +0800 7664 7665 Translations: Patch man pages to avoid fuzzy matches. 7666 7667 This will be fixed in the next round of translations, but this avoids 7668 having a fuzzy match or not fixing the English version. 7669 7670 po4a/de.po | 2 +- 7671 po4a/ko.po | 2 +- 7672 po4a/ro.po | 2 +- 7673 po4a/uk.po | 2 +- 7674 4 files changed, 4 insertions(+), 4 deletions(-) 7675 7676commit 898aad9fc711e03452d24d9e2c5b7f77a6f9ce64 7677Author: Jia Tan <jiat0218@gmail.com> 7678Date: 2024-02-21 00:30:43 +0800 7679 7680 xzmore: Fix typo in xzmore.1. 7681 7682 Thanks to Yuri Chornoivan. 7683 7684 src/scripts/xzmore.1 | 2 +- 7685 1 file changed, 1 insertion(+), 1 deletion(-) 7686 7687commit 5631aa206c8d16b4eeab85a46b8b698f4fc4cdba 7688Author: Jia Tan <jiat0218@gmail.com> 7689Date: 2024-02-24 12:12:16 +0800 7690 7691 Translations: Update the Vietnamese translation. 7692 7693 po/vi.po | 505 ++++++++++++++++++++++++++++++++++++++------------------------- 7694 1 file changed, 309 insertions(+), 196 deletions(-) 7695 7696commit a65fd7ce9d6228e87faf61dc56a35984d0088248 7697Author: Jia Tan <jiat0218@gmail.com> 7698Date: 2024-02-24 12:06:40 +0800 7699 7700 Translations: Update the Esperanto translation. 7701 7702 po/eo.po | 502 ++++++++++++++++++++++++++++++++++++++------------------------- 7703 1 file changed, 306 insertions(+), 196 deletions(-) 7704 7705commit cf44e4b7f5dfdbf8c78aef377c10f71e274f63c0 7706Author: Jia Tan <jiat0218@gmail.com> 7707Date: 2024-02-23 23:09:59 +0800 7708 7709 Tests: Add a few test files. 7710 7711 tests/files/README | 19 +++++++++++++++++++ 7712 tests/files/bad-3-corrupt_lzma2.xz | Bin 0 -> 484 bytes 7713 tests/files/bad-dict_size.lzma | Bin 0 -> 41 bytes 7714 tests/files/good-2cat.xz | Bin 0 -> 136 bytes 7715 tests/files/good-large_compressed.lzma | Bin 0 -> 35430 bytes 7716 tests/files/good-small_compressed.lzma | Bin 0 -> 258 bytes 7717 6 files changed, 19 insertions(+) 7718 7719commit 39f4a1a86ad80b2d064b812cee42668e6c8b8c73 7720Author: Jia Tan <jiat0218@gmail.com> 7721Date: 2024-02-23 20:58:36 +0800 7722 7723 Tests: Add MicroLZMA test. 7724 7725 tests/Makefile.am | 4 +- 7726 tests/test_microlzma.c | 548 +++++++++++++++++++++++++++++++++++++++++++++++++ 7727 2 files changed, 551 insertions(+), 1 deletion(-) 7728 7729commit adaacafde6661496ca2814b1e94a3ba5186428cb 7730Author: Jia Tan <jiat0218@gmail.com> 7731Date: 2024-02-23 20:57:59 +0800 7732 7733 Build: Define HAVE_MICROLZMA when it is configured. 7734 7735 CMakeLists.txt | 4 ++++ 7736 configure.ac | 9 +++++++-- 7737 2 files changed, 11 insertions(+), 2 deletions(-) 7738 7739commit eea78216d27182ca917bf00e02feaab058a4d21e 7740Author: Jia Tan <jiat0218@gmail.com> 7741Date: 2024-02-23 20:27:15 +0800 7742 7743 xz: Fix Capsicum sandbox compile error. 7744 7745 user_abort_pipe[] was still being used instead of the parameters. 7746 7747 src/xz/sandbox.c | 4 ++-- 7748 1 file changed, 2 insertions(+), 2 deletions(-) 7749 7750commit 32b0a3ce19224f9074d01a4ffbc1655b05fcb82d 7751Author: Jia Tan <jiat0218@gmail.com> 7752Date: 2024-02-23 16:12:32 +0800 7753 7754 Build: Fix ARM64 CRC32 instruction feature test. 7755 7756 Old versions of Clang reported the unsupported function attribute and 7757 __crc32d() function as warnings instead of errors, so the feature test 7758 passed when it shouldn't have, causing a compile error at build time. 7759 -Werror was added to this feature test to fix this. The change is not 7760 needed for CMake because check_c_source_compiles() also performs 7761 linking and the error is caught then. 7762 7763 Thanks to Sebastian Andrzej Siewior for reporting this. 7764 7765 configure.ac | 10 ++++++++++ 7766 1 file changed, 10 insertions(+) 7767 7768commit 4c81c9611f8b2e1ad65eb7fa166afc570c58607e 7769Author: Lasse Collin <lasse.collin@tukaani.org> 7770Date: 2024-02-22 19:16:35 +0200 7771 7772 CMake: Add LOCALEDIR to the windres workaround. 7773 7774 LOCALEDIR may contain spaces like in "C:\Program Files". 7775 7776 CMakeLists.txt | 16 +++++++++++----- 7777 1 file changed, 11 insertions(+), 5 deletions(-) 7778 7779commit de4337fd89ca7db5feb97b5c40143404f6e22986 7780Author: Lasse Collin <lasse.collin@tukaani.org> 7781Date: 2024-02-22 15:18:25 +0200 7782 7783 xz: Landlock: Fix error message if input file is a directory. 7784 7785 If xz is given a directory, it should look like this: 7786 7787 $ xz /usr/bin 7788 xz: /usr/bin: Is a directory, skipping 7789 7790 The Landlock rules didn't allow opening directories for reading: 7791 7792 $ xz /usr/bin 7793 xz: /usr/bin: Permission denied 7794 7795 The simplest fix was to allow opening directories for reading. 7796 While it's a bit silly to allow it solely for the error message, 7797 it shouldn't make the sandbox significantly weaker. 7798 7799 The single-file use case (like when called from GNU tar) is 7800 still as strict as possible: all Landlock restrictions are 7801 enabled before (de)compression starts. 7802 7803 src/xz/sandbox.c | 15 ++++++++++++++- 7804 1 file changed, 14 insertions(+), 1 deletion(-) 7805 7806commit 120da10ae139ea52ca4275452adf8eda02d07cc8 7807Author: Lasse Collin <lasse.collin@tukaani.org> 7808Date: 2024-02-22 14:41:29 +0200 7809 7810 liblzma: Disable branchless C version in range decoder. 7811 7812 Thanks to Sebastian Andrzej Siewior and Sam James for 7813 benchmarking on various systems. 7814 7815 src/liblzma/rangecoder/range_decoder.h | 13 ++++++++++--- 7816 1 file changed, 10 insertions(+), 3 deletions(-) 7817 7818commit 00440f52be9ac2c7438c7b0cb1082f12399632c6 7819Author: Lasse Collin <lasse.collin@tukaani.org> 7820Date: 2024-02-21 17:41:32 +0200 7821 7822 INSTALL: Clarify that --disable-assembler affects only 32-bit x86. 7823 7824 INSTALL | 18 +++++++++--------- 7825 1 file changed, 9 insertions(+), 9 deletions(-) 7826 7827commit 11405be84ea294497e12d03d7219f607063f4a00 7828Author: Lasse Collin <lasse.collin@tukaani.org> 7829Date: 2024-02-19 18:41:37 +0200 7830 7831 Windows: build.bash: Include COPYING.0BSD in the package. 7832 7833 windows/build.bash | 2 +- 7834 1 file changed, 1 insertion(+), 1 deletion(-) 7835 7836commit c27cf64e3e27f4968431d65be7098a12a3a80d30 7837Author: Lasse Collin <lasse.collin@tukaani.org> 7838Date: 2024-02-18 17:59:46 +0200 7839 7840 Windows: build.bash: include liblzma-crt-mixing.txt in the package. 7841 7842 windows/build.bash | 6 ++++-- 7843 1 file changed, 4 insertions(+), 2 deletions(-) 7844 7845commit 8d38941baed05de4ff7cc775de14833108f62184 7846Author: Lasse Collin <lasse.collin@tukaani.org> 7847Date: 2024-02-18 17:17:43 +0200 7848 7849 Windows: Major update to Windows build instructions. 7850 7851 INSTALL | 68 ++++----- 7852 windows/INSTALL-MSVC.txt | 23 +-- 7853 windows/INSTALL-MinGW-w64_with_Autotools.txt | 49 +++++++ 7854 windows/INSTALL-MinGW-w64_with_CMake.txt | 203 +++++++++++++++++++++++++++ 7855 windows/INSTALL-MinGW.txt | 138 ------------------ 7856 windows/README-Windows.txt | 2 + 7857 windows/build-with-cmake.bat | 35 +++++ 7858 windows/liblzma-crt-mixing.txt | 70 +++++++++ 7859 8 files changed, 404 insertions(+), 184 deletions(-) 7860 7861commit 4b5b0d352348ff510ffb50a3b5b71788857d37a1 7862Author: Lasse Collin <lasse.collin@tukaani.org> 7863Date: 2024-02-18 15:15:04 +0200 7864 7865 Windows: Update windows/README-Windows.txt. 7866 7867 It's for binary packages built with windows/build.bash. 7868 7869 windows/README-Windows.txt | 104 ++++++++++++++++++--------------------------- 7870 1 file changed, 41 insertions(+), 63 deletions(-) 7871 7872commit 1ee716f74085223c8fbcae1d5a384e6bf53c0f6a 7873Author: Lasse Collin <lasse.collin@tukaani.org> 7874Date: 2024-02-18 15:15:04 +0200 7875 7876 Windows: Update windows/build.bash. 7877 7878 Support for the old MinGW was dropped. Only MinGW-w64 with GCC 7879 is supported now. 7880 7881 The script now supports also cross-compilation from GNU/Linux 7882 (tests are not run). MSYS2 and also the old MSYS 1.0.11 work 7883 for building on Windows. The i686 and x86_64 toolchains must 7884 be in PATH to build both 32-bit and 64-bit versions. 7885 7886 Parallel builds are done if "nproc" from GNU coreutils is available. 7887 7888 MinGW-w64 runtime copyright information file was renamed from 7889 COPYING-Windows.txt to COPYING.MinGW-w64-runtime.txt which 7890 is the filename used by MinGW-w64 itself. Its existence 7891 is now mandatory, it's checked at the beginning of the script. 7892 7893 The file TODO is no longer copied to the package. 7894 7895 windows/build.bash | 191 +++++++++++++++++++++++++++++++---------------------- 7896 1 file changed, 112 insertions(+), 79 deletions(-) 7897 7898commit 60462e42609a1d961868a1d1ebecc713c6d27e2e 7899Author: Jia Tan <jiat0218@gmail.com> 7900Date: 2024-02-20 23:32:22 +0800 7901 7902 Translations: Update the Romanian man page translations. 7903 7904 po4a/ro.po | 1715 +++++++++++++++++++++++++++++++----------------------------- 7905 1 file changed, 875 insertions(+), 840 deletions(-) 7906 7907commit 10d733e5b8929c642e00891cfa9ead9c2cdd2e05 7908Author: Jia Tan <jiat0218@gmail.com> 7909Date: 2024-02-20 23:30:25 +0800 7910 7911 Translations: Update the Korean man page translations. 7912 7913 po4a/ko.po | 6 +++--- 7914 1 file changed, 3 insertions(+), 3 deletions(-) 7915 7916commit 797a34b72ac6baff237d7a546fa941d8f78f2f62 7917Author: Jia Tan <jiat0218@gmail.com> 7918Date: 2024-02-20 21:03:53 +0800 7919 7920 Translations: Update the Spanish translation. 7921 7922 po/es.po | 6 +++--- 7923 1 file changed, 3 insertions(+), 3 deletions(-) 7924 7925commit 5c3751d019f023e091df9a653e2bb1f6ea8b0d49 7926Author: Jia Tan <jiat0218@gmail.com> 7927Date: 2024-02-20 20:18:07 +0800 7928 7929 Translations: Update the Romanian translation. 7930 7931 po/ro.po | 470 ++++++++++++++++++++++++++++++--------------------------------- 7932 1 file changed, 227 insertions(+), 243 deletions(-) 7933 7934commit e2d31154ecc750935436e8b62c6b073b2cfa84e3 7935Author: Jia Tan <jiat0218@gmail.com> 7936Date: 2024-02-20 20:15:50 +0800 7937 7938 Translations: Update the Croatian translation. 7939 7940 po/hr.po | 648 ++++++++++++++++++++++++++++++++++----------------------------- 7941 1 file changed, 355 insertions(+), 293 deletions(-) 7942 7943commit 704500f994d5ac271bfcfd592275c5a7da4dc8d2 7944Author: Jia Tan <jiat0218@gmail.com> 7945Date: 2024-02-20 20:05:44 +0800 7946 7947 Translations: Update the German man page translations. 7948 7949 po4a/de.po | 1696 +++++++++++++++++++++++++++++++----------------------------- 7950 1 file changed, 873 insertions(+), 823 deletions(-) 7951 7952commit 1cfd3dca3fef321b06db73c3c9e13f347c2e2f5f 7953Author: Jia Tan <jiat0218@gmail.com> 7954Date: 2024-02-20 19:58:25 +0800 7955 7956 Translations: Update the German translation. 7957 7958 po/de.po | 427 +++++++++++++++++++++++++++++++++------------------------------ 7959 1 file changed, 225 insertions(+), 202 deletions(-) 7960 7961commit 28b9b3f16cc7c6e5b42e691994569c17f4561c9a 7962Author: Jia Tan <jiat0218@gmail.com> 7963Date: 2024-02-20 19:56:52 +0800 7964 7965 Translations: Update the Hungarian translation. 7966 7967 po/hu.po | 556 ++++++++++++++++++++++++++++++++++++++------------------------- 7968 1 file changed, 338 insertions(+), 218 deletions(-) 7969 7970commit 00b06cd0af6ad2ee93d3006bf80417db060c2b04 7971Author: Lasse Collin <lasse.collin@tukaani.org> 7972Date: 2024-02-19 16:48:05 +0200 7973 7974 CMake: Fix building of lzmainfo when translations are enabled. 7975 7976 CMakeLists.txt | 2 ++ 7977 1 file changed, 2 insertions(+) 7978 7979commit b0d1422b6037bfea6f6723683bd82a8e6d77026c 7980Author: Lasse Collin <lasse.collin@tukaani.org> 7981Date: 2024-02-19 13:38:42 +0200 7982 7983 CMake: Don't assume that -fvisibility=hidden is supported outside Windows. 7984 7985 The original code was good enough for supporting GNU/Linux 7986 and a few others but it wasn't very portable. 7987 7988 CMake doesn't support Solaris Studio's -xldscope=hidden. 7989 If it ever does, things should still work with this commit 7990 as Solaris Studio supports not only its own __global but also 7991 the GNU C __attribute__((visibility("default"))). Support for the 7992 attribute was added in 2007 to Sun Studio 12 compiler version 5.9. 7993 7994 CMakeLists.txt | 26 ++++++++++++++++++++++---- 7995 1 file changed, 22 insertions(+), 4 deletions(-) 7996 7997commit 2ced9d34bef4dce52ecbbf84d0903ab0aae1442c 7998Author: Lasse Collin <lasse.collin@tukaani.org> 7999Date: 2024-02-19 12:20:59 +0200 8000 8001 CMake: Revise the component splitting. 8002 8003 CMakeLists.txt | 57 +++++++++++++++++++++++++++++++-------------------------- 8004 1 file changed, 31 insertions(+), 26 deletions(-) 8005 8006commit 426bdc709c169d39b31dec410016779de117ef69 8007Author: Lasse Collin <lasse.collin@tukaani.org> 8008Date: 2024-02-17 21:45:07 +0200 8009 8010 CMake: Update the main comment and document CMAKE_BUILD_TYPE=Release. 8011 8012 CMakeLists.txt | 79 ++++++++++++++++++++++++++++++++++++++++++++++------------ 8013 1 file changed, 63 insertions(+), 16 deletions(-) 8014 8015commit 4430e075f7ccfc47972d6ca0aa1c3779fc265e10 8016Author: Lasse Collin <lasse.collin@tukaani.org> 8017Date: 2024-02-17 21:27:48 +0200 8018 8019 CMake: Use -O2 instead of -O3 in CMAKE_BUILD_TYPE=Release. 8020 8021 -O3 doesn't seem useful for speed but it makes the code bigger. 8022 CMake makes is difficult for users to simply override the 8023 optimization level: CFLAGS / CMAKE_C_FLAGS aren't helpful because 8024 they go before CMAKE_C_FLAGS_RELEASE. Of course, users can override 8025 CMAKE_C_FLAGS_RELEASE directly but then they have to remember to 8026 add also -DNDEBUG to disable assertions. 8027 8028 This commit changes -O3 to -O2 in CMAKE_C_FLAGS_RELEASE if and only if 8029 CMAKE_C_FLAGS_RELEASE cache variable doesn't already exist. So if 8030 a custom value is passed on the command line (or reconfiguring an 8031 already-configured build), the cache variable won't be modified. 8032 8033 CMakeLists.txt | 19 +++++++++++++++++++ 8034 1 file changed, 19 insertions(+) 8035 8036commit 025eb6d7879e4c4e8cb29716b371e0f4c1aea660 8037Author: Lasse Collin <lasse.collin@tukaani.org> 8038Date: 2024-02-18 14:59:52 +0200 8039 8040 CMake: Handle symbol versioning on MicroBlaze specially. 8041 8042 This is to match configure.ac. 8043 8044 CMakeLists.txt | 23 +++++++++++++++++++---- 8045 1 file changed, 19 insertions(+), 4 deletions(-) 8046 8047commit 2edd1a35b2507d1ce68b52dbaebe23c4850a74ce 8048Author: Lasse Collin <lasse.collin@tukaani.org> 8049Date: 2024-02-17 22:18:12 +0200 8050 8051 CMake: Keep build working even if lib/*.[ch] are removed. 8052 8053 CMakeLists.txt | 7 ++++++- 8054 1 file changed, 6 insertions(+), 1 deletion(-) 8055 8056commit d753e2ce4715552884afadc4ed6fbf8ccca6efac 8057Author: Lasse Collin <lasse.collin@tukaani.org> 8058Date: 2024-02-17 18:10:40 +0200 8059 8060 CMake: Install documentation. 8061 8062 CMakeLists.txt | 32 ++++++++++++++++++++++++++++++++ 8063 1 file changed, 32 insertions(+) 8064 8065commit 7a0405bea9cb0df9318b70f779f82b2c473e98ac 8066Author: Lasse Collin <lasse.collin@tukaani.org> 8067Date: 2024-02-17 15:35:35 +0200 8068 8069 CMake: Bump maximum policy version to 3.28. 8070 8071 CMP0154 doesn't affect us since we don't use FILE_SET. 8072 8073 CMakeLists.txt | 2 +- 8074 1 file changed, 1 insertion(+), 1 deletion(-) 8075 8076commit c2264ffbe3892d28930b89b0123efc369cabc143 8077Author: Lasse Collin <lasse.collin@tukaani.org> 8078Date: 2024-02-17 15:35:35 +0200 8079 8080 CMake: Build lzmainfo. 8081 8082 CMakeLists.txt | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 8083 1 file changed, 54 insertions(+) 8084 8085commit 998d0b29536094a89cf385a3b894e157db1ccefe 8086Author: Lasse Collin <lasse.collin@tukaani.org> 8087Date: 2024-02-17 15:35:35 +0200 8088 8089 CMake: Build lzmadec. 8090 8091 CMakeLists.txt | 76 ++++++++++++++++++++++++++++++++-------------------------- 8092 1 file changed, 42 insertions(+), 34 deletions(-) 8093 8094commit 74e8bc7417a0f37ca7ed5ee0127d33c69b3100b9 8095Author: Lasse Collin <lasse.collin@tukaani.org> 8096Date: 2024-02-17 15:35:35 +0200 8097 8098 CMake: Add test_scripts.sh to the tests. 8099 8100 In contrast to Automake, skipping of this test when decoders 8101 are disabled is handled at CMake side instead of test_scripts.sh 8102 because CMake-build doesn't create config.h. 8103 8104 CMakeLists.txt | 14 ++++++++++++++ 8105 tests/test_scripts.sh | 13 ++++++++----- 8106 2 files changed, 22 insertions(+), 5 deletions(-) 8107 8108commit 4808f238a731befcd46c2117c62a1caaf4403989 8109Author: Lasse Collin <lasse.collin@tukaani.org> 8110Date: 2024-02-17 15:35:35 +0200 8111 8112 CMake: Install scripts. 8113 8114 Compared to the Autotools-based build, this has simpler handling 8115 for the shell (@POSIX_SHELL@) and extra PATH entry for the scripts 8116 (configure has --enable-path-for-scripts=PREFIX). The simpler 8117 metho should be enough for non-ancient systems and Solaris. 8118 8119 CMakeLists.txt | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 8120 1 file changed, 82 insertions(+), 1 deletion(-) 8121 8122commit 3462362ebd94d835c664e94ad8f414cfe7590ca7 8123Author: Lasse Collin <lasse.collin@tukaani.org> 8124Date: 2024-02-17 15:35:35 +0200 8125 8126 Scripts: Use @PACKAGE_VERSION@ instead of @VERSION@. 8127 8128 PACKAGE_VERSION was already used in liblzma.pc.in. 8129 This way only one version @foo@ is used. 8130 8131 src/scripts/xzdiff.in | 2 +- 8132 src/scripts/xzgrep.in | 2 +- 8133 src/scripts/xzless.in | 2 +- 8134 src/scripts/xzmore.in | 2 +- 8135 4 files changed, 4 insertions(+), 4 deletions(-) 8136 8137commit 67610c245ba6c68cf65991693bab9312b7dc987b 8138Author: Lasse Collin <lasse.collin@tukaani.org> 8139Date: 2024-02-17 15:35:35 +0200 8140 8141 CMake: Simplify symlink creation and install translated man pages. 8142 8143 It helps that cmake_install.cmake doesn't parallelize installation 8144 so symlinks can be created so that the target is always known to 8145 exist (a requirement on Windows in some cases). 8146 8147 This bumps the minimum CMake version from 3.13 to 3.14 to use 8148 file(CREATE_LINK ...). It could be made to work on 3.13 by 8149 calling "cmake -E create_symlink" but it's uglier code and 8150 slower in "make install". 3.14 should be a reasonable version 8151 to require nowadays, especially since the Autotools build 8152 is still the primary build system for most OSes. 8153 8154 CMakeLists.txt | 195 +++++++++++++++++++++++++++++---------------------------- 8155 1 file changed, 98 insertions(+), 97 deletions(-) 8156 8157commit 50cc1d8a5a8154428bf240c7e4972e32b17d99bf 8158Author: Lasse Collin <lasse.collin@tukaani.org> 8159Date: 2024-02-17 15:35:35 +0200 8160 8161 CMake: Add support for building and installing xz with translations. 8162 8163 If gettext tools are available, the .po files listed in po/LINGUAS 8164 are converted using msgfmt. This allows building with translations 8165 directly from xz.git without Autotools. 8166 8167 If gettext tools aren't available, the Autotools-created .gmo files 8168 in the "po" directory will be used. This allows CMake-based build 8169 to use translations from Autotools-generated tarball. 8170 8171 If translation support is found (Intl_FOUND) but both the 8172 gettext tools and the pre-generated .gmo files are missing, 8173 then "make" will fail. 8174 8175 CMakeLists.txt | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 8176 1 file changed, 66 insertions(+), 2 deletions(-) 8177 8178commit 746c471643009947f94a3494a1148f74c7381b56 8179Author: Lasse Collin <lasse.collin@tukaani.org> 8180Date: 2024-02-19 11:58:33 +0200 8181 8182 liblzma: Remove commented-out code. 8183 8184 src/liblzma/rangecoder/range_decoder.h | 3 --- 8185 1 file changed, 3 deletions(-) 8186 8187commit 4ce300ce0884c6e552de2af9ae8050b47b01f0e7 8188Author: Lasse Collin <lasse.collin@tukaani.org> 8189Date: 2024-02-17 23:07:35 +0200 8190 8191 xz: Delete old commented-out code. 8192 8193 src/xz/message.c | 19 ------------------- 8194 1 file changed, 19 deletions(-) 8195 8196commit cae9a5e0bf422e6c5e64180805904f7ed02dc3aa 8197Author: Lasse Collin <lasse.collin@tukaani.org> 8198Date: 2024-02-17 23:07:35 +0200 8199 8200 xz: Use stricter pledge(2) and Landlock sandbox. 8201 8202 This makes these sandboxing methods stricter when no files are 8203 created or deleted. That is, it's a middle ground between the 8204 initial sandbox and the strictest single-file-to-stdout sandbox: 8205 this allows opening files for reading but output has to go to stdout. 8206 8207 src/xz/main.c | 46 +++++++++++++++++++++++++++++++++------------- 8208 src/xz/sandbox.c | 32 ++++++++++++++++++++++++++++++++ 8209 src/xz/sandbox.h | 4 ++++ 8210 3 files changed, 69 insertions(+), 13 deletions(-) 8211 8212commit 02e3505991233901575b7eabc06b2c6c62a96899 8213Author: Lasse Collin <lasse.collin@tukaani.org> 8214Date: 2024-02-17 23:07:35 +0200 8215 8216 xz: Support Landlock ABI version 4. 8217 8218 Linux 6.7 added support for ABI version 4 which restricts 8219 TCP connections which xz won't need and thus those can be 8220 forbidden now. Since the ABI version is handled at runtime, 8221 supporting version 4 won't cause any compatibility issues. 8222 8223 Note that new enough kernel headers are required to get 8224 version 4 support enabled at build time. 8225 8226 src/xz/sandbox.c | 25 ++++++++++++++++++++----- 8227 1 file changed, 20 insertions(+), 5 deletions(-) 8228 8229commit 374868d81d473ab56556a1cfd6b1b36a1fab348b 8230Author: Lasse Collin <lasse.collin@tukaani.org> 8231Date: 2024-02-17 23:07:35 +0200 8232 8233 xz: Move sandboxing code to sandbox.c and improve Landlock sandbox. 8234 8235 Landlock is now always used just like pledge(2) is: first in more 8236 permissive mode and later (under certain common conditions) in 8237 a strict mode that doesn't allow opening more files. 8238 8239 I put pledge(2) first in sandbox.c because it's the simplest API 8240 to use and still somewhat fine-grained for basic applications. 8241 So it's the simplest thing to understand for anyone reading sandbox.c. 8242 8243 CMakeLists.txt | 2 + 8244 src/xz/Makefile.am | 2 + 8245 src/xz/file_io.c | 170 +----------------------------- 8246 src/xz/file_io.h | 6 -- 8247 src/xz/main.c | 50 +++------ 8248 src/xz/private.h | 6 +- 8249 src/xz/sandbox.c | 295 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 8250 src/xz/sandbox.h | 39 +++++++ 8251 8 files changed, 357 insertions(+), 213 deletions(-) 8252 8253commit 7312dfbb02197c7f990c7a3cefd027a9387d1473 8254Author: Lasse Collin <lasse.collin@tukaani.org> 8255Date: 2024-02-17 23:07:35 +0200 8256 8257 xz: Tweak comments. 8258 8259 src/xz/main.c | 4 +++- 8260 1 file changed, 3 insertions(+), 1 deletion(-) 8261 8262commit c701a5909ad9882469fbab4fab5d2d5556d3ba78 8263Author: Lasse Collin <lasse.collin@tukaani.org> 8264Date: 2024-02-17 23:07:35 +0200 8265 8266 xz: Fix message_init() description. 8267 8268 Also explicitly initialize progress_automatic to make it clear 8269 that it can be read before message_init() sets it. Static variable 8270 was initialized to false by default already so this is only for 8271 clarity. 8272 8273 src/xz/main.c | 3 ++- 8274 src/xz/message.c | 2 +- 8275 src/xz/message.h | 5 ++++- 8276 3 files changed, 7 insertions(+), 3 deletions(-) 8277 8278commit 9466306719f3b76e92fac4e55fbfd89ec92295fa 8279Author: Lasse Collin <lasse.collin@tukaani.org> 8280Date: 2024-02-17 19:35:47 +0200 8281 8282 Build: Makefile.am: Sort EXTRA_DIST. 8283 8284 Dirs first, then files in case-sensitive ASCII order. 8285 8286 Makefile.am | 14 +++++++------- 8287 1 file changed, 7 insertions(+), 7 deletions(-) 8288 8289commit f3440e78c9517db75bfa52e1a378fad60b073bbe 8290Author: Lasse Collin <lasse.collin@tukaani.org> 8291Date: 2024-02-17 19:25:05 +0200 8292 8293 Build: Don't install TODO. 8294 8295 Makefile.am | 2 +- 8296 1 file changed, 1 insertion(+), 1 deletion(-) 8297 8298commit a7a3b62e2ab03c82b2bd5c78da1d1fb8b8490381 8299Author: Jia Tan <jiat0218@gmail.com> 8300Date: 2024-02-18 01:09:11 +0800 8301 8302 Translations: Update the Korean man page translations. 8303 8304 po4a/ko.po | 1707 +++++++++++++++++++++++++++++++----------------------------- 8305 1 file changed, 871 insertions(+), 836 deletions(-) 8306 8307commit 9b315db2d5e74700f3dc0755eb86c27947c0b393 8308Author: Jia Tan <jiat0218@gmail.com> 8309Date: 2024-02-18 01:08:32 +0800 8310 8311 Translations: Update the Korean translation. 8312 8313 po/ko.po | 423 +++++++++++++++++++++++++++++++++------------------------------ 8314 1 file changed, 223 insertions(+), 200 deletions(-) 8315 8316commit 56246607dff177b0410d140fcca4a42c865723dc 8317Author: Lasse Collin <lasse.collin@tukaani.org> 8318Date: 2024-02-17 16:23:14 +0200 8319 8320 Build: Install translated lzmainfo man pages. 8321 8322 All other translated man pages were being installed but 8323 lzmainfo had been forgotten. 8324 8325 src/lzmainfo/Makefile.am | 26 ++++++++++++++++++++++++++ 8326 1 file changed, 26 insertions(+) 8327 8328commit f1d6b88aefcced538403c5c2606ba57065b16e70 8329Author: Lasse Collin <lasse.collin@tukaani.org> 8330Date: 2024-02-17 16:01:32 +0200 8331 8332 liblzma: Avoid implementation-defined behavior in the RISC-V filter. 8333 8334 GCC docs promise that it works and a few other compilers do 8335 too. Clang/LLVM is documented source code only but unsurprisingly 8336 it behaves the same as others on x86-64 at least. But the 8337 certainly-portable way is good enough here so use that. 8338 8339 src/liblzma/simple/riscv.c | 30 ++++++++++++++++++++++-------- 8340 1 file changed, 22 insertions(+), 8 deletions(-) 8341 8342commit 843ddc5f617b91ae132d6bab0f2f2d9c9fcd214a 8343Author: Lasse Collin <lasse.collin@tukaani.org> 8344Date: 2024-02-17 15:48:28 +0200 8345 8346 liblzma: Wrap a line exceeding 80 chars. 8347 8348 src/liblzma/rangecoder/range_decoder.h | 3 ++- 8349 1 file changed, 2 insertions(+), 1 deletion(-) 8350 8351commit e9053c907250c70d98b319d95fa54cb94fc76869 8352Author: Sebastian Andrzej Siewior <sebastian@breakpoint.cc> 8353Date: 2024-02-16 21:50:15 +0100 8354 8355 liblzma/rangecoder: Exclude x32 from the x86-64 optimisation. 8356 8357 The x32 port has a x86-64 ABI in term of all registers but uses only 8358 32bit pointer like x86-32. The assembly optimisation fails to compile on 8359 x32. Given the state of x32 I suggest to exclude it from the 8360 optimisation rather than trying to fix it. 8361 8362 Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc> 8363 8364 src/liblzma/rangecoder/range_decoder.h | 2 +- 8365 1 file changed, 1 insertion(+), 1 deletion(-) 8366 8367commit 3d198fb13b87f8803442e5799d465f7434a70555 8368Author: Jia Tan <jiat0218@gmail.com> 8369Date: 2024-02-17 21:05:07 +0800 8370 8371 Translations: Update the Spanish translation. 8372 8373 po/es.po | 427 +++++++++++++++++++++++++++++++++------------------------------ 8374 1 file changed, 226 insertions(+), 201 deletions(-) 8375 8376commit cf278bfe60a25b54b3786f06503bc61272970820 8377Author: Jia Tan <jiat0218@gmail.com> 8378Date: 2024-02-17 20:43:29 +0800 8379 8380 Translations: Update the Swedish translation. 8381 8382 po/sv.po | 434 +++++++++++++++++++++++++++++++++------------------------------ 8383 1 file changed, 230 insertions(+), 204 deletions(-) 8384 8385commit b0f1a41be50560cc6cb528e8e96b02b2067c52c2 8386Author: Jia Tan <jiat0218@gmail.com> 8387Date: 2024-02-17 20:41:38 +0800 8388 8389 Translations: Update the Polish translation. 8390 8391 po/pl.po | 424 +++++++++++++++++++++++++++++++++------------------------------ 8392 1 file changed, 224 insertions(+), 200 deletions(-) 8393 8394commit d74ed48b30c631b6a4c7e7858b06828293bf8520 8395Author: Jia Tan <jiat0218@gmail.com> 8396Date: 2024-02-17 20:41:02 +0800 8397 8398 Translations: Update the Ukrainian translation. 8399 8400 po/uk.po | 2 +- 8401 1 file changed, 1 insertion(+), 1 deletion(-) 8402 8403commit 711e22d5c5f3bac39ac904efb3ede874a66e2045 8404Author: Lasse Collin <lasse.collin@tukaani.org> 8405Date: 2024-02-16 17:53:34 +0200 8406 8407 Translations: Use the same sentence in xz.pot-header that the TP uses. 8408 8409 po/xz.pot-header | 2 +- 8410 1 file changed, 1 insertion(+), 1 deletion(-) 8411 8412commit fb5f6aaf18584672d0fee5dbe41fd30fc6bf5422 8413Author: Jia Tan <jiat0218@gmail.com> 8414Date: 2024-02-16 22:53:46 +0800 8415 8416 Fix typos discovered by codespell. 8417 8418 AUTHORS | 2 +- 8419 NEWS | 2 +- 8420 src/liblzma/rangecoder/range_decoder.h | 4 ++-- 8421 3 files changed, 4 insertions(+), 4 deletions(-) 8422 8423commit c64723bbb094e29b4edd98f6fcce866e1b569b42 8424Author: Jia Tan <jiat0218@gmail.com> 8425Date: 2024-02-16 22:52:41 +0800 8426 8427 Translations: Update the Ukrainian man page translations. 8428 8429 po4a/uk.po | 1710 +++++++++++++++++++++++++++++++----------------------------- 8430 1 file changed, 873 insertions(+), 837 deletions(-) 8431 8432commit 2895195ed0f68b245c7bd568c126ba6e685fa1d6 8433Author: Jia Tan <jiat0218@gmail.com> 8434Date: 2024-02-16 22:51:04 +0800 8435 8436 Translations: Update the Ukrainian translation. 8437 8438 po/uk.po | 466 ++++++++++++++++++++++++++++++--------------------------------- 8439 1 file changed, 225 insertions(+), 241 deletions(-) 8440 8441commit 4c20781f4c8f04879b64d631a4f44b4909147bde 8442Author: Lasse Collin <lasse.collin@tukaani.org> 8443Date: 2024-02-15 22:32:52 +0200 8444 8445 Translations: Omit the generic copyright line from man page headers. 8446 8447 po4a/update-po | 1 + 8448 1 file changed, 1 insertion(+) 8449 8450commit 4323bc3e0c1e1d2037d5e670a3bf6633e8a3031e 8451Author: Jia Tan <jiat0218@gmail.com> 8452Date: 2024-02-15 22:26:43 +0800 8453 8454 Update m4/.gitignore. 8455 8456 m4/.gitignore | 1 + 8457 1 file changed, 1 insertion(+) 8458 8459commit 5394a1665b7a108a54cb8b4ef3ebe59d3dbcca3a 8460Author: Lasse Collin <lasse.collin@tukaani.org> 8461Date: 2024-02-14 21:11:49 +0200 8462 8463 Tests: tuktest.h: Treat Clang separately from GCC. 8464 8465 Don't assume that Clang defines __GNUC__ as the extensions 8466 are available in clang-cl as well (and possibly in some other 8467 Clang variants?). 8468 8469 tests/tuktest.h | 6 +++--- 8470 1 file changed, 3 insertions(+), 3 deletions(-) 8471 8472commit cce7330b9f23485a0879422e0c3395a7065439ac 8473Author: Lasse Collin <lasse.collin@tukaani.org> 8474Date: 2024-02-14 21:11:03 +0200 8475 8476 Tests: tuktest.h: Add a missing word to a comment. 8477 8478 tests/tuktest.h | 4 ++-- 8479 1 file changed, 2 insertions(+), 2 deletions(-) 8480 8481commit 5dd8fc9452a3373cedc27379067ce638f992c741 8482Author: Lasse Collin <lasse.collin@tukaani.org> 8483Date: 2024-02-14 21:10:10 +0200 8484 8485 Tests: tuktest.h: Fix the comment about STest. 8486 8487 tests/tuktest.h | 3 ++- 8488 1 file changed, 2 insertions(+), 1 deletion(-) 8489 8490commit 6f1790254a03c5edf0f2976f773220f070450acd 8491Author: Jia Tan <jiat0218@gmail.com> 8492Date: 2024-02-15 01:53:40 +0800 8493 8494 Bump version for 5.5.2beta. 8495 8496 src/liblzma/api/lzma/version.h | 4 ++-- 8497 src/liblzma/liblzma_generic.map | 2 +- 8498 src/liblzma/liblzma_linux.map | 2 +- 8499 3 files changed, 4 insertions(+), 4 deletions(-) 8500 8501commit 924fdeedf48113fb1e0646d86bd89a356d21a055 8502Author: Lasse Collin <lasse.collin@tukaani.org> 8503Date: 2024-02-14 19:46:11 +0200 8504 8505 liblzma: Fix validate_map.sh. 8506 8507 Adding the SPDX license identifier changed the line numbers. 8508 8509 src/liblzma/validate_map.sh | 2 +- 8510 1 file changed, 1 insertion(+), 1 deletion(-) 8511 8512commit 22140a2df6161b0110e6b4afa5ea0a07c5b60b01 8513Author: Lasse Collin <lasse.collin@tukaani.org> 8514Date: 2024-02-14 19:38:34 +0200 8515 8516 Build: Start the generated ChangeLog from around 5.4.0 instead of 5.2.0. 8517 8518 Makefile.am | 2 +- 8519 1 file changed, 1 insertion(+), 1 deletion(-) 8520 8521commit 0b8cefa136c21d403a01b78517f4decb50172bdb 8522Author: Lasse Collin <lasse.collin@tukaani.org> 8523Date: 2024-02-14 19:27:46 +0200 8524 8525 Fixed NEWS for 5.5.2beta. 8526 8527 NEWS | 8 ++++++-- 8528 1 file changed, 6 insertions(+), 2 deletions(-) 8529 8530commit a4557bad96361d93ea171ed859ac5a696fca824f 8531Author: Lasse Collin <lasse.collin@tukaani.org> 8532Date: 2024-02-14 19:21:45 +0200 8533 8534 liblzma: Silence warnings in --enable-small build. 8535 8536 src/liblzma/lzma/lzma_decoder.c | 2 ++ 8537 src/liblzma/rangecoder/range_decoder.h | 1 + 8538 2 files changed, 3 insertions(+) 8539 8540commit 38edf473236d00b3e100dc4c4f0bf43a4993fed2 8541Author: Lasse Collin <lasse.collin@tukaani.org> 8542Date: 2024-02-14 19:15:58 +0200 8543 8544 Build: Install COPYING.0BSD as part of docs. 8545 8546 Makefile.am | 1 + 8547 1 file changed, 1 insertion(+) 8548 8549commit b74e10bd839bcdc239afb5300ffaee195f34c217 8550Author: Lasse Collin <lasse.collin@tukaani.org> 8551Date: 2024-02-14 19:14:05 +0200 8552 8553 Docs: List COPYING.0BSD in README. 8554 8555 README | 1 + 8556 1 file changed, 1 insertion(+) 8557 8558commit dfdb60ffe933a1f1497d300dbb4513ed17ec6f0e 8559Author: Lasse Collin <lasse.collin@tukaani.org> 8560Date: 2024-02-14 19:11:48 +0200 8561 8562 Docs: Include doc/examples/11_file_info.c in tarballs. 8563 8564 It was added in 2017 in c2e29f06a7d1e3ba242ac2fafc69f5d6e92f62cd 8565 but it never got into any release tarballs because it was 8566 forgotten to be added to Makefile.am. 8567 8568 Makefile.am | 1 + 8569 1 file changed, 1 insertion(+) 8570 8571commit 160b6862646d95dfdbd73ab7f1031ede0f54992d 8572Author: Lasse Collin <lasse.collin@tukaani.org> 8573Date: 2024-02-14 19:05:58 +0200 8574 8575 liblzma: Silence a warning. 8576 8577 src/liblzma/rangecoder/range_decoder.h | 2 +- 8578 1 file changed, 1 insertion(+), 1 deletion(-) 8579 8580commit eeedd4d0925ea417add04ceb42a6c0829244b50c 8581Author: Lasse Collin <lasse.collin@tukaani.org> 8582Date: 2024-02-14 18:32:27 +0200 8583 8584 Add NEWS for 5.5.2beta. 8585 8586 NEWS | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 8587 1 file changed, 60 insertions(+) 8588 8589commit 8af7db854f903068d72a9a0d21103cb0c5027fa8 8590Author: Lasse Collin <lasse.collin@tukaani.org> 8591Date: 2024-02-13 14:32:47 +0200 8592 8593 xz: Mention lzmainfo if trying to use 'lzma --list'. 8594 8595 This kind of fixes the problem reported here: 8596 https://bugs.launchpad.net/ubuntu/+source/xz-utils/+bug/1291020 8597 8598 src/xz/list.c | 16 ++++++++++++++-- 8599 1 file changed, 14 insertions(+), 2 deletions(-) 8600 8601commit 0668907ff736e4cd16738c10d39a2bc9e851aefb 8602Author: Lasse Collin <lasse.collin@tukaani.org> 8603Date: 2024-02-14 14:58:36 +0200 8604 8605 liblzma: Add comments. 8606 8607 src/liblzma/lzma/lzma_decoder.c | 9 +++++++++ 8608 src/liblzma/rangecoder/range_decoder.h | 11 +++++++++-- 8609 2 files changed, 18 insertions(+), 2 deletions(-) 8610 8611commit 109f1913d4824c8214d5bbd38ebebf62c37572da 8612Author: Lasse Collin <lasse.collin@tukaani.org> 8613Date: 2024-02-13 17:00:17 +0200 8614 8615 Scripts: Add lz4 support to xzgrep and xzdiff. 8616 8617 src/scripts/xzdiff.1 | 8 +++++--- 8618 src/scripts/xzdiff.in | 14 +++++++++----- 8619 src/scripts/xzgrep.1 | 6 ++++-- 8620 src/scripts/xzgrep.in | 1 + 8621 4 files changed, 19 insertions(+), 10 deletions(-) 8622 8623commit de55485cb23af56c5adbe3239b935c957ff8ac4f 8624Author: Lasse Collin <lasse.collin@tukaani.org> 8625Date: 2024-02-13 14:05:13 +0200 8626 8627 liblzma: Choose the range decoder variants using a bitmask macro. 8628 8629 src/liblzma/rangecoder/range_decoder.h | 64 ++++++++++++++++++++++++++++------ 8630 1 file changed, 53 insertions(+), 11 deletions(-) 8631 8632commit 0709c2b2d7c1d8f437b003f691880fd7810e5be5 8633Author: Lasse Collin <lasse.collin@tukaani.org> 8634Date: 2024-02-13 11:38:10 +0200 8635 8636 xz: Fix outdated threading related info on the man page. 8637 8638 src/xz/xz.1 | 22 ++++++++++++++-------- 8639 1 file changed, 14 insertions(+), 8 deletions(-) 8640 8641commit 3182a330c1512cc1f5c87b5c5a272578e60a5158 8642Author: Lasse Collin <lasse.collin@tukaani.org> 8643Date: 2024-02-12 17:09:10 +0200 8644 8645 liblzma: Range decoder: Add x86-64 inline assembly. 8646 8647 It's compatible with GCC and Clang. 8648 8649 src/liblzma/rangecoder/range_decoder.h | 491 +++++++++++++++++++++++++++++++++ 8650 1 file changed, 491 insertions(+) 8651 8652commit cba2edc991dffba7cd4891dbc1bd26cb950cf053 8653Author: Lasse Collin <lasse.collin@tukaani.org> 8654Date: 2024-02-12 17:09:10 +0200 8655 8656 liblzma: Range decoder: Add branchless C code. 8657 8658 It's used only for basic bittrees and fixed-size reverse bittree 8659 because those showed a clear benefit on x86-64 with GCC and Clang. 8660 The other methods were more mixed and thus are commented out but 8661 they should be tested on other archs. 8662 8663 src/liblzma/rangecoder/range_decoder.h | 76 ++++++++++++++++++++++++++++++++++ 8664 1 file changed, 76 insertions(+) 8665 8666commit e290a72d6dee71faf3a90c9678b2f730083666a7 8667Author: Lasse Collin <lasse.collin@tukaani.org> 8668Date: 2024-02-12 17:09:10 +0200 8669 8670 liblzma: Clarify a comment. 8671 8672 src/liblzma/lzma/lzma_decoder.c | 9 ++++++--- 8673 1 file changed, 6 insertions(+), 3 deletions(-) 8674 8675commit 5e04706b91ca90d6befd4da24a588a55e631d4a9 8676Author: Lasse Collin <lasse.collin@tukaani.org> 8677Date: 2024-02-12 17:09:10 +0200 8678 8679 liblzma: LZMA decoder: Optimize loop comparison. 8680 8681 But now it needs one more local variable. 8682 8683 src/liblzma/lzma/lzma_decoder.c | 5 ++--- 8684 src/liblzma/rangecoder/range_decoder.h | 10 +++++++++- 8685 2 files changed, 11 insertions(+), 4 deletions(-) 8686 8687commit 88276f9f2cb4871c7eb86952d93d07c1cf6caa66 8688Author: Lasse Collin <lasse.collin@tukaani.org> 8689Date: 2024-02-12 17:09:10 +0200 8690 8691 liblzma: Optimize literal_subcoder() macro slightly. 8692 8693 src/liblzma/lzma/lzma_common.h | 22 ++++++++++++---------- 8694 src/liblzma/lzma/lzma_decoder.c | 12 ++++++------ 8695 src/liblzma/lzma/lzma_encoder.c | 6 +++--- 8696 src/liblzma/lzma/lzma_encoder_optimum_normal.c | 2 +- 8697 src/liblzma/lzma/lzma_encoder_private.h | 4 ++-- 8698 5 files changed, 24 insertions(+), 22 deletions(-) 8699 8700commit 5938f6de4d8ec9656776cd69e78ddfd6c3ad84e5 8701Author: Lasse Collin <lasse.collin@tukaani.org> 8702Date: 2024-02-12 17:09:10 +0200 8703 8704 liblzma: LZ decoder: Add unlikely(). 8705 8706 src/liblzma/lz/lz_decoder.h | 2 +- 8707 1 file changed, 1 insertion(+), 1 deletion(-) 8708 8709commit 9c252e3ed086c6b72590b2531586c42596d4a9d9 8710Author: Lasse Collin <lasse.collin@tukaani.org> 8711Date: 2024-02-12 17:09:10 +0200 8712 8713 liblzma: LZ decoder: Remove a useless unlikely(). 8714 8715 src/liblzma/lz/lz_decoder.h | 2 +- 8716 1 file changed, 1 insertion(+), 1 deletion(-) 8717 8718commit f3872a59475456c5d365cad9f1c5be514cfa54b5 8719Author: Lasse Collin <lasse.collin@tukaani.org> 8720Date: 2024-02-12 17:09:10 +0200 8721 8722 liblzma: Optimize LZ decoder slightly. 8723 8724 Now extra buffer space is reserved so that repeating bytes for 8725 any single match will never need to copy from two places (both 8726 the beginning and the end of the buffer). This simplifies 8727 dict_repeat() and helps a little with speed. 8728 8729 This seems to reduce .lzma decompression time about 2 %, so 8730 with .xz and CRC it could be slightly less. The small things 8731 add up still. 8732 8733 src/liblzma/lz/lz_decoder.c | 43 ++++++++++++----- 8734 src/liblzma/lz/lz_decoder.h | 101 +++++++++++++++++++++------------------- 8735 src/liblzma/lzma/lzma_decoder.c | 4 +- 8736 3 files changed, 88 insertions(+), 60 deletions(-) 8737 8738commit eb518446e578acf079abae5f1ce28db7b6e59bc1 8739Author: Lasse Collin <lasse.collin@tukaani.org> 8740Date: 2024-02-12 17:09:10 +0200 8741 8742 liblzma: LZMA decoder: Get rid of next_state[]. 8743 8744 It's not completely obvious if this is better in the decoder. 8745 It should be good if compiler can avoid creating a branch 8746 (like using CMOV on x86). 8747 8748 This also makes lzma_encoder.c use the new macros. 8749 8750 src/liblzma/lzma/lzma_common.h | 14 ++++++++++++++ 8751 src/liblzma/lzma/lzma_decoder.c | 30 ++++++++---------------------- 8752 src/liblzma/lzma/lzma_encoder.c | 4 ++-- 8753 3 files changed, 24 insertions(+), 24 deletions(-) 8754 8755commit e0c0ee475c0800c08291ae45e0d66aa00d5ce604 8756Author: Lasse Collin <lasse.collin@tukaani.org> 8757Date: 2024-02-12 17:09:10 +0200 8758 8759 liblzma: LZMA decoder improvements. 8760 8761 This adds macros for bittree decoding which prepares the code 8762 for alternative C versions and inline assembly. 8763 8764 src/liblzma/lzma/lzma_decoder.c | 264 ++++++++++----------------------- 8765 src/liblzma/rangecoder/range_common.h | 4 + 8766 src/liblzma/rangecoder/range_decoder.h | 142 ++++++++++++++++-- 8767 3 files changed, 210 insertions(+), 200 deletions(-) 8768 8769commit de5c5e417645ad8906ef914bc059d08c1462fc29 8770Author: Jia Tan <jiat0218@gmail.com> 8771Date: 2024-02-12 17:09:10 +0200 8772 8773 liblzma: Creates Non-resumable and Resumable modes for lzma_decoder. 8774 8775 The new decoder resumes the first decoder loop in the Resumable mode. 8776 Then, the code executes in Non-resumable mode until it detects that it 8777 cannot guarantee to have enough input/output to decode another symbol. 8778 8779 The Resumable mode is how the decoder has always worked. Before decoding 8780 every input bit, it checks if there is enough space and will save its 8781 location to be resumed later. When the decoder has more input/output, 8782 it jumps back to the correct sequence in the Resumable mode code. 8783 8784 When the input/output buffers are large, the Resumable mode is much 8785 slower than the Non-resumable because it has more branches and is harder 8786 for the compiler to optimize since it is in a large switch block. 8787 8788 Early benchmarking shows significant time improvement (8-10% on gcc and 8789 clang x86) by using the Non-resumable code as much as possible. 8790 8791 src/liblzma/lz/lz_decoder.h | 14 +- 8792 src/liblzma/lzma/lzma_decoder.c | 720 ++++++++++++++++++++++++++++------------ 8793 2 files changed, 521 insertions(+), 213 deletions(-) 8794 8795commit e446ab7a18abfde18f8d1cf02a914df72b1370e3 8796Author: Jia Tan <jiat0218@gmail.com> 8797Date: 2024-02-12 17:09:10 +0200 8798 8799 liblzma: Creates separate "safe" range decoder mode. 8800 8801 The new "safe" range decoder mode is the same as old range decoder, but 8802 now the default behavior of the range decoder will not check if there is 8803 enough input or output to complete the operation. When the buffers are 8804 close to fully consumed, the "safe" operations must be used instead. This 8805 will improve speed because it will reduce the number of branches needed 8806 for most of the range decoder operations. 8807 8808 src/liblzma/lzma/lzma_decoder.c | 108 ++++++++------------------------- 8809 src/liblzma/rangecoder/range_decoder.h | 77 +++++++++++++++++------ 8810 2 files changed, 82 insertions(+), 103 deletions(-) 8811 8812commit 7f6d9ca329ff3e01d4b0be7366eb4f5c93da41b9 8813Author: Lasse Collin <lasse.collin@tukaani.org> 8814Date: 2024-02-12 17:09:10 +0200 8815 8816 doxygen/footer.html: Add missing closing tags and don't open a new tab. 8817 8818 The footer template from Doxygen has the closing </body> </html> 8819 as Doxygen doesn't add them otherwise. 8820 8821 target="_blank" was omitted as it's not useful here but 8822 it can be slightly annoying as one cannot just go back 8823 in the browser history. 8824 8825 Since the footer links to the license file in the same 8826 directory and not to CC website, the rel attributes 8827 can be omitted. 8828 8829 doxygen/footer.html | 6 ++++-- 8830 1 file changed, 4 insertions(+), 2 deletions(-) 8831 8832commit 26d1527d34d52b0f5d632d4fb636fb33d0867e92 8833Author: Lasse Collin <lasse.collin@tukaani.org> 8834Date: 2024-02-13 13:19:10 +0200 8835 8836 Tweak the expressions in AUTHORS. 8837 8838 AUTHORS | 31 +++++++++++++++++++++++-------- 8839 1 file changed, 23 insertions(+), 8 deletions(-) 8840 8841commit d231d56580175fa040fdd3c6207a58243ce6217b 8842Author: Lasse Collin <lasse.collin@tukaani.org> 8843Date: 2024-02-13 13:07:33 +0200 8844 8845 Translations: Add the man page translators into man page header comment. 8846 8847 It looked odd to only have the original English authors listed 8848 in the header comments of the translated files. 8849 8850 po4a/.gitignore | 1 + 8851 po4a/po4a.conf | 14 +++++++------- 8852 po4a/update-po | 18 ++++++++++++++++++ 8853 3 files changed, 26 insertions(+), 7 deletions(-) 8854 8855commit 6d35fcb936474fca1acaebfd9502c097b6fde88e 8856Author: Lasse Collin <lasse.collin@tukaani.org> 8857Date: 2024-02-12 17:09:10 +0200 8858 8859 Translations: Translate also messages of lzmainfo. 8860 8861 lzmainfo has had translation support since 2009 at least but 8862 it was never added to po/POTFILES.in so the messages weren't 8863 translated. It's a very rarely needed tool so it's not too bad. 8864 8865 This also adds src/xz/mytime.c to po/POTFILES.in although there 8866 are no translatable strings. It's simpler this way so that it 8867 won't be forgotten if strings were ever added to that file. 8868 8869 po/POTFILES.in | 2 ++ 8870 1 file changed, 2 insertions(+) 8871 8872commit a9f369dd54b05f9ac4e00ead9d765d04fc259868 8873Author: Lasse Collin <lasse.collin@tukaani.org> 8874Date: 2024-02-12 17:09:10 +0200 8875 8876 Translations: Add custom .pot header with SPDX license identifier. 8877 8878 The same is used for both po/xz.pot and po4a/xz-man.pot. 8879 8880 Makefile.am | 1 + 8881 po/xz.pot-header | 7 +++++++ 8882 po4a/update-po | 8 ++++++++ 8883 3 files changed, 16 insertions(+) 8884 8885commit 469cd6653bb96e83c5cf1031c204d34566b15f44 8886Author: Lasse Collin <lasse.collin@tukaani.org> 8887Date: 2024-02-12 17:09:10 +0200 8888 8889 Translations: po4a/update-po: Add copyright notice to xz-man.pot. 8890 8891 All man pages are under 0BSD now so this is simple now. 8892 8893 po4a/update-po | 2 +- 8894 1 file changed, 1 insertion(+), 1 deletion(-) 8895 8896commit 28ce45e38fbed4b5f54f2013e38dab47d22bf699 8897Author: Lasse Collin <lasse.collin@tukaani.org> 8898Date: 2024-02-12 17:09:10 +0200 8899 8900 Update COPYING about the man pages of the scripts. 8901 8902 COPYING | 6 +++--- 8903 1 file changed, 3 insertions(+), 3 deletions(-) 8904 8905commit e48287bf51afd5184ea74de1dcade9e153f873f7 8906Author: Lasse Collin <lasse.collin@tukaani.org> 8907Date: 2024-02-12 17:09:10 +0200 8908 8909 xzdiff, xzgrep, and xzmore: Rewrite the man pages. 8910 8911 The main reason is a kind of silly one: 8912 8913 xz-man.pot contains strings from all man pages in XZ Utils. 8914 The man pages of xzdiff, xzgrep, and xzmore were under GPLv2 8915 and the rest under 0BSD. Thus xz-man.pot contained strings 8916 under two licences. po4a creates the translated man pages 8917 from the combined 0BSD+GPLv2 xz-man.pot. 8918 8919 I haven't liked this mixing in xz-man.pot but the 8920 Translation Project requires that all man pages must be 8921 in the same .pot file. So a separate xz-man-gpl.pot 8922 wasn't an option. 8923 8924 Since these man pages are short, rewriting them was quick enough. 8925 Now xz-man.pot is entirely under 0BSD and marking the per-file 8926 licenses is simpler. 8927 8928 As a bonus, some wording hopefully is now slightly better 8929 although it's perhaps a matter of taste. 8930 8931 NOTE: In xzgrep.1, the EXIT STATUS section was written by me 8932 in the commit d796b6d7fdb8b7238b277056cf9146cce25db604 so that's 8933 why that section could be taken as is from the old xzgrep.1. 8934 8935 src/scripts/xzdiff.1 | 94 ++++++++++++++++++++++++----------------- 8936 src/scripts/xzgrep.1 | 116 ++++++++++++++++++++++++++++++++------------------- 8937 src/scripts/xzmore.1 | 79 ++++++++++++++++++++--------------- 8938 3 files changed, 173 insertions(+), 116 deletions(-) 8939 8940commit 3e551b111b8ae8150f1a1040364dbafc034f22be 8941Author: Lasse Collin <lasse.collin@tukaani.org> 8942Date: 2024-02-12 17:09:10 +0200 8943 8944 xzless: Update man page slightly. 8945 8946 The xz tool can decompress three file formats and xzless 8947 has always supported uncompressed files too. 8948 8949 src/scripts/xzless.1 | 8 ++++---- 8950 1 file changed, 4 insertions(+), 4 deletions(-) 8951 8952commit 40f36da2262d13d6e1ba8449caa855512ae626d7 8953Author: Lasse Collin <lasse.collin@tukaani.org> 8954Date: 2024-02-12 17:09:10 +0200 8955 8956 Translations: Change po/Makevars to add a copyright notice to po/xz.pot. 8957 8958 po/Makevars | 4 ++-- 8959 1 file changed, 2 insertions(+), 2 deletions(-) 8960 8961commit 24192854e2ea5c06997431a98bda3c36c5da1497 8962Author: Lasse Collin <lasse.collin@tukaani.org> 8963Date: 2024-02-12 17:09:10 +0200 8964 8965 Translations: Update po/Makevars to use the template from gettext 0.22.4. 8966 8967 Also add SPDX license identifier now that there is a known license. 8968 8969 po/Makevars | 51 ++++++++++++++++++++++++++++++++++++++++++++++----- 8970 1 file changed, 46 insertions(+), 5 deletions(-) 8971 8972commit b94154957370116480b43bcabca25fc52deb9853 8973Author: Lasse Collin <lasse.collin@tukaani.org> 8974Date: 2024-02-12 17:09:10 +0200 8975 8976 liblzma: Include the SPDX license identifier 0BSD to generated files. 8977 8978 Perhaps the generated files aren't even copyrightable but 8979 using the same license for them as for the rest of the liblzma 8980 keeps things more consistent for tools that look for license info. 8981 8982 src/liblzma/check/crc32_table_be.h | 4 +++- 8983 src/liblzma/check/crc32_table_le.h | 4 +++- 8984 src/liblzma/check/crc32_tablegen.c | 16 ++++++++++------ 8985 src/liblzma/check/crc64_table_be.h | 4 +++- 8986 src/liblzma/check/crc64_table_le.h | 4 +++- 8987 src/liblzma/check/crc64_tablegen.c | 8 +++++--- 8988 src/liblzma/lz/lz_encoder_hash_table.h | 4 +++- 8989 src/liblzma/lzma/fastpos_table.c | 4 +++- 8990 src/liblzma/lzma/fastpos_tablegen.c | 12 +++++++----- 8991 src/liblzma/rangecoder/price_table.c | 4 +++- 8992 src/liblzma/rangecoder/price_tablegen.c | 12 +++++++----- 8993 11 files changed, 50 insertions(+), 26 deletions(-) 8994 8995commit 8e4ec794836bc1701d8c9bd5e347b8ce8cc5bbb4 8996Author: Lasse Collin <lasse.collin@tukaani.org> 8997Date: 2024-02-12 17:09:10 +0200 8998 8999 liblzma: Fix compilation of price_tablegen.c. 9000 9001 It is built and run only manually so this didn't matter 9002 unless one wanted to regenerate the price_table.c. 9003 9004 src/liblzma/rangecoder/price_tablegen.c | 5 +++++ 9005 src/liblzma/rangecoder/range_common.h | 5 ++++- 9006 2 files changed, 9 insertions(+), 1 deletion(-) 9007 9008commit e99bff3ffbcdf2634fd5bd13887627ec7dbfecaf 9009Author: Lasse Collin <lasse.collin@tukaani.org> 9010Date: 2024-02-12 17:09:10 +0200 9011 9012 Add SPDX license identifiers to GPL, LGPL, and FSFULLR files. 9013 9014 extra/scanlzma/scanlzma.c | 2 ++ 9015 lib/Makefile.am | 2 ++ 9016 lib/getopt-cdefs.h | 2 ++ 9017 lib/getopt-core.h | 2 ++ 9018 lib/getopt-ext.h | 2 ++ 9019 lib/getopt-pfx-core.h | 2 ++ 9020 lib/getopt-pfx-ext.h | 2 ++ 9021 lib/getopt.c | 2 ++ 9022 lib/getopt.in.h | 2 ++ 9023 lib/getopt1.c | 2 ++ 9024 lib/getopt_int.h | 2 ++ 9025 m4/ax_pthread.m4 | 2 ++ 9026 m4/getopt.m4 | 2 ++ 9027 m4/posix-shell.m4 | 2 ++ 9028 m4/visibility.m4 | 2 ++ 9029 src/scripts/xzdiff.1 | 3 +-- 9030 src/scripts/xzdiff.in | 1 + 9031 src/scripts/xzgrep.1 | 3 +-- 9032 src/scripts/xzgrep.in | 1 + 9033 src/scripts/xzless.in | 1 + 9034 src/scripts/xzmore.1 | 3 +-- 9035 src/scripts/xzmore.in | 1 + 9036 22 files changed, 37 insertions(+), 6 deletions(-) 9037 9038commit 22af94128b89a131f5e58ae69bee5e50227c15da 9039Author: Lasse Collin <lasse.collin@tukaani.org> 9040Date: 2024-02-12 17:09:10 +0200 9041 9042 Add SPDX license identifier into 0BSD source code files. 9043 9044 .github/workflows/ci.yml | 2 ++ 9045 .github/workflows/windows-ci.yml | 2 ++ 9046 CMakeLists.txt | 2 ++ 9047 Makefile.am | 3 +-- 9048 autogen.sh | 1 + 9049 build-aux/ci_build.sh | 3 ++- 9050 build-aux/manconv.sh | 3 ++- 9051 build-aux/version.sh | 3 ++- 9052 cmake/remove-ordinals.cmake | 2 ++ 9053 cmake/tuklib_common.cmake | 4 ++++ 9054 cmake/tuklib_cpucores.cmake | 4 ++++ 9055 cmake/tuklib_integer.cmake | 4 ++++ 9056 cmake/tuklib_large_file_support.cmake | 4 ++++ 9057 cmake/tuklib_mbstr.cmake | 4 ++++ 9058 cmake/tuklib_physmem.cmake | 4 ++++ 9059 cmake/tuklib_progname.cmake | 4 ++++ 9060 configure.ac | 4 +++- 9061 debug/Makefile.am | 3 +-- 9062 debug/crc32.c | 2 ++ 9063 debug/full_flush.c | 2 ++ 9064 debug/hex2bin.c | 2 ++ 9065 debug/known_sizes.c | 2 ++ 9066 debug/memusage.c | 2 ++ 9067 debug/repeat.c | 2 ++ 9068 debug/sync_flush.c | 2 ++ 9069 debug/translation.bash | 1 + 9070 doc/examples/01_compress_easy.c | 2 ++ 9071 doc/examples/02_decompress.c | 2 ++ 9072 doc/examples/03_compress_custom.c | 2 ++ 9073 doc/examples/04_compress_easy_mt.c | 2 ++ 9074 doc/examples/11_file_info.c | 2 ++ 9075 doc/examples/Makefile | 3 +-- 9076 dos/Makefile | 2 ++ 9077 dos/config.h | 2 ++ 9078 doxygen/update-doxygen | 3 ++- 9079 extra/7z2lzma/7z2lzma.bash | 3 ++- 9080 m4/tuklib_common.m4 | 8 ++++++-- 9081 m4/tuklib_cpucores.m4 | 8 ++++++-- 9082 m4/tuklib_integer.m4 | 8 ++++++-- 9083 m4/tuklib_mbstr.m4 | 8 ++++++-- 9084 m4/tuklib_physmem.m4 | 8 ++++++-- 9085 m4/tuklib_progname.m4 | 8 ++++++-- 9086 po/POTFILES.in | 2 ++ 9087 po4a/po4a.conf | 2 ++ 9088 po4a/update-po | 3 ++- 9089 src/Makefile.am | 3 +-- 9090 src/common/common_w32res.rc | 2 ++ 9091 src/common/mythread.h | 2 ++ 9092 src/common/sysdefs.h | 2 ++ 9093 src/common/tuklib_common.h | 2 ++ 9094 src/common/tuklib_config.h | 2 ++ 9095 src/common/tuklib_cpucores.c | 2 ++ 9096 src/common/tuklib_cpucores.h | 2 ++ 9097 src/common/tuklib_exit.c | 2 ++ 9098 src/common/tuklib_exit.h | 2 ++ 9099 src/common/tuklib_gettext.h | 2 ++ 9100 src/common/tuklib_integer.h | 2 ++ 9101 src/common/tuklib_mbstr.h | 2 ++ 9102 src/common/tuklib_mbstr_fw.c | 2 ++ 9103 src/common/tuklib_mbstr_width.c | 2 ++ 9104 src/common/tuklib_open_stdxxx.c | 2 ++ 9105 src/common/tuklib_open_stdxxx.h | 2 ++ 9106 src/common/tuklib_physmem.c | 2 ++ 9107 src/common/tuklib_physmem.h | 2 ++ 9108 src/common/tuklib_progname.c | 2 ++ 9109 src/common/tuklib_progname.h | 2 ++ 9110 src/liblzma/Makefile.am | 3 +-- 9111 src/liblzma/api/Makefile.am | 3 +-- 9112 src/liblzma/api/lzma.h | 2 ++ 9113 src/liblzma/api/lzma/base.h | 2 ++ 9114 src/liblzma/api/lzma/bcj.h | 2 ++ 9115 src/liblzma/api/lzma/block.h | 2 ++ 9116 src/liblzma/api/lzma/check.h | 2 ++ 9117 src/liblzma/api/lzma/container.h | 2 ++ 9118 src/liblzma/api/lzma/delta.h | 2 ++ 9119 src/liblzma/api/lzma/filter.h | 2 ++ 9120 src/liblzma/api/lzma/hardware.h | 2 ++ 9121 src/liblzma/api/lzma/index.h | 2 ++ 9122 src/liblzma/api/lzma/index_hash.h | 2 ++ 9123 src/liblzma/api/lzma/lzma12.h | 2 ++ 9124 src/liblzma/api/lzma/stream_flags.h | 2 ++ 9125 src/liblzma/api/lzma/version.h | 2 ++ 9126 src/liblzma/api/lzma/vli.h | 2 ++ 9127 src/liblzma/check/Makefile.inc | 4 ++-- 9128 src/liblzma/check/check.c | 2 ++ 9129 src/liblzma/check/check.h | 2 ++ 9130 src/liblzma/check/crc32_arm64.h | 2 ++ 9131 src/liblzma/check/crc32_fast.c | 2 ++ 9132 src/liblzma/check/crc32_small.c | 2 ++ 9133 src/liblzma/check/crc32_table.c | 2 ++ 9134 src/liblzma/check/crc32_tablegen.c | 2 ++ 9135 src/liblzma/check/crc32_x86.S | 2 ++ 9136 src/liblzma/check/crc64_fast.c | 2 ++ 9137 src/liblzma/check/crc64_small.c | 2 ++ 9138 src/liblzma/check/crc64_table.c | 2 ++ 9139 src/liblzma/check/crc64_tablegen.c | 2 ++ 9140 src/liblzma/check/crc64_x86.S | 2 ++ 9141 src/liblzma/check/crc_common.h | 2 ++ 9142 src/liblzma/check/crc_x86_clmul.h | 2 ++ 9143 src/liblzma/check/sha256.c | 2 ++ 9144 src/liblzma/common/Makefile.inc | 3 +-- 9145 src/liblzma/common/alone_decoder.c | 2 ++ 9146 src/liblzma/common/alone_decoder.h | 2 ++ 9147 src/liblzma/common/alone_encoder.c | 2 ++ 9148 src/liblzma/common/auto_decoder.c | 2 ++ 9149 src/liblzma/common/block_buffer_decoder.c | 2 ++ 9150 src/liblzma/common/block_buffer_encoder.c | 2 ++ 9151 src/liblzma/common/block_buffer_encoder.h | 2 ++ 9152 src/liblzma/common/block_decoder.c | 2 ++ 9153 src/liblzma/common/block_decoder.h | 2 ++ 9154 src/liblzma/common/block_encoder.c | 2 ++ 9155 src/liblzma/common/block_encoder.h | 2 ++ 9156 src/liblzma/common/block_header_decoder.c | 2 ++ 9157 src/liblzma/common/block_header_encoder.c | 2 ++ 9158 src/liblzma/common/block_util.c | 2 ++ 9159 src/liblzma/common/common.c | 2 ++ 9160 src/liblzma/common/common.h | 2 ++ 9161 src/liblzma/common/easy_buffer_encoder.c | 2 ++ 9162 src/liblzma/common/easy_decoder_memusage.c | 2 ++ 9163 src/liblzma/common/easy_encoder.c | 2 ++ 9164 src/liblzma/common/easy_encoder_memusage.c | 2 ++ 9165 src/liblzma/common/easy_preset.c | 2 ++ 9166 src/liblzma/common/easy_preset.h | 2 ++ 9167 src/liblzma/common/file_info.c | 2 ++ 9168 src/liblzma/common/filter_buffer_decoder.c | 2 ++ 9169 src/liblzma/common/filter_buffer_encoder.c | 2 ++ 9170 src/liblzma/common/filter_common.c | 2 ++ 9171 src/liblzma/common/filter_common.h | 2 ++ 9172 src/liblzma/common/filter_decoder.c | 2 ++ 9173 src/liblzma/common/filter_decoder.h | 2 ++ 9174 src/liblzma/common/filter_encoder.c | 2 ++ 9175 src/liblzma/common/filter_encoder.h | 2 ++ 9176 src/liblzma/common/filter_flags_decoder.c | 2 ++ 9177 src/liblzma/common/filter_flags_encoder.c | 2 ++ 9178 src/liblzma/common/hardware_cputhreads.c | 2 ++ 9179 src/liblzma/common/hardware_physmem.c | 2 ++ 9180 src/liblzma/common/index.c | 2 ++ 9181 src/liblzma/common/index.h | 2 ++ 9182 src/liblzma/common/index_decoder.c | 2 ++ 9183 src/liblzma/common/index_decoder.h | 2 ++ 9184 src/liblzma/common/index_encoder.c | 2 ++ 9185 src/liblzma/common/index_encoder.h | 2 ++ 9186 src/liblzma/common/index_hash.c | 2 ++ 9187 src/liblzma/common/lzip_decoder.c | 2 ++ 9188 src/liblzma/common/lzip_decoder.h | 2 ++ 9189 src/liblzma/common/memcmplen.h | 2 ++ 9190 src/liblzma/common/microlzma_decoder.c | 2 ++ 9191 src/liblzma/common/microlzma_encoder.c | 2 ++ 9192 src/liblzma/common/outqueue.c | 2 ++ 9193 src/liblzma/common/outqueue.h | 2 ++ 9194 src/liblzma/common/stream_buffer_decoder.c | 2 ++ 9195 src/liblzma/common/stream_buffer_encoder.c | 2 ++ 9196 src/liblzma/common/stream_decoder.c | 2 ++ 9197 src/liblzma/common/stream_decoder.h | 2 ++ 9198 src/liblzma/common/stream_decoder_mt.c | 2 ++ 9199 src/liblzma/common/stream_encoder.c | 2 ++ 9200 src/liblzma/common/stream_encoder_mt.c | 2 ++ 9201 src/liblzma/common/stream_flags_common.c | 2 ++ 9202 src/liblzma/common/stream_flags_common.h | 2 ++ 9203 src/liblzma/common/stream_flags_decoder.c | 2 ++ 9204 src/liblzma/common/stream_flags_encoder.c | 2 ++ 9205 src/liblzma/common/string_conversion.c | 2 ++ 9206 src/liblzma/common/vli_decoder.c | 2 ++ 9207 src/liblzma/common/vli_encoder.c | 2 ++ 9208 src/liblzma/common/vli_size.c | 2 ++ 9209 src/liblzma/delta/Makefile.inc | 3 +-- 9210 src/liblzma/delta/delta_common.c | 2 ++ 9211 src/liblzma/delta/delta_common.h | 2 ++ 9212 src/liblzma/delta/delta_decoder.c | 2 ++ 9213 src/liblzma/delta/delta_decoder.h | 2 ++ 9214 src/liblzma/delta/delta_encoder.c | 2 ++ 9215 src/liblzma/delta/delta_encoder.h | 2 ++ 9216 src/liblzma/delta/delta_private.h | 2 ++ 9217 src/liblzma/liblzma.pc.in | 3 +-- 9218 src/liblzma/liblzma_generic.map | 2 ++ 9219 src/liblzma/liblzma_linux.map | 2 ++ 9220 src/liblzma/liblzma_w32res.rc | 2 ++ 9221 src/liblzma/lz/Makefile.inc | 3 +-- 9222 src/liblzma/lz/lz_decoder.c | 2 ++ 9223 src/liblzma/lz/lz_decoder.h | 2 ++ 9224 src/liblzma/lz/lz_encoder.c | 2 ++ 9225 src/liblzma/lz/lz_encoder.h | 2 ++ 9226 src/liblzma/lz/lz_encoder_hash.h | 2 ++ 9227 src/liblzma/lz/lz_encoder_mf.c | 2 ++ 9228 src/liblzma/lzma/Makefile.inc | 3 +-- 9229 src/liblzma/lzma/fastpos.h | 2 ++ 9230 src/liblzma/lzma/fastpos_tablegen.c | 2 ++ 9231 src/liblzma/lzma/lzma2_decoder.c | 2 ++ 9232 src/liblzma/lzma/lzma2_decoder.h | 2 ++ 9233 src/liblzma/lzma/lzma2_encoder.c | 2 ++ 9234 src/liblzma/lzma/lzma2_encoder.h | 2 ++ 9235 src/liblzma/lzma/lzma_common.h | 2 ++ 9236 src/liblzma/lzma/lzma_decoder.c | 2 ++ 9237 src/liblzma/lzma/lzma_decoder.h | 2 ++ 9238 src/liblzma/lzma/lzma_encoder.c | 2 ++ 9239 src/liblzma/lzma/lzma_encoder.h | 2 ++ 9240 src/liblzma/lzma/lzma_encoder_optimum_fast.c | 2 ++ 9241 src/liblzma/lzma/lzma_encoder_optimum_normal.c | 2 ++ 9242 src/liblzma/lzma/lzma_encoder_presets.c | 2 ++ 9243 src/liblzma/lzma/lzma_encoder_private.h | 2 ++ 9244 src/liblzma/rangecoder/Makefile.inc | 3 +-- 9245 src/liblzma/rangecoder/price.h | 2 ++ 9246 src/liblzma/rangecoder/price_tablegen.c | 2 ++ 9247 src/liblzma/rangecoder/range_common.h | 2 ++ 9248 src/liblzma/rangecoder/range_decoder.h | 2 ++ 9249 src/liblzma/rangecoder/range_encoder.h | 2 ++ 9250 src/liblzma/simple/Makefile.inc | 3 +-- 9251 src/liblzma/simple/arm.c | 2 ++ 9252 src/liblzma/simple/arm64.c | 2 ++ 9253 src/liblzma/simple/armthumb.c | 2 ++ 9254 src/liblzma/simple/ia64.c | 2 ++ 9255 src/liblzma/simple/powerpc.c | 2 ++ 9256 src/liblzma/simple/riscv.c | 2 ++ 9257 src/liblzma/simple/simple_coder.c | 2 ++ 9258 src/liblzma/simple/simple_coder.h | 2 ++ 9259 src/liblzma/simple/simple_decoder.c | 2 ++ 9260 src/liblzma/simple/simple_decoder.h | 2 ++ 9261 src/liblzma/simple/simple_encoder.c | 2 ++ 9262 src/liblzma/simple/simple_encoder.h | 2 ++ 9263 src/liblzma/simple/simple_private.h | 2 ++ 9264 src/liblzma/simple/sparc.c | 2 ++ 9265 src/liblzma/simple/x86.c | 2 ++ 9266 src/liblzma/validate_map.sh | 1 + 9267 src/lzmainfo/Makefile.am | 3 +-- 9268 src/lzmainfo/lzmainfo.c | 2 ++ 9269 src/lzmainfo/lzmainfo_w32res.rc | 2 ++ 9270 src/scripts/Makefile.am | 3 +-- 9271 src/xz/Makefile.am | 3 +-- 9272 src/xz/args.c | 2 ++ 9273 src/xz/args.h | 2 ++ 9274 src/xz/coder.c | 2 ++ 9275 src/xz/coder.h | 2 ++ 9276 src/xz/file_io.c | 2 ++ 9277 src/xz/file_io.h | 2 ++ 9278 src/xz/hardware.c | 2 ++ 9279 src/xz/hardware.h | 2 ++ 9280 src/xz/list.c | 2 ++ 9281 src/xz/list.h | 2 ++ 9282 src/xz/main.c | 2 ++ 9283 src/xz/main.h | 2 ++ 9284 src/xz/message.c | 2 ++ 9285 src/xz/message.h | 2 ++ 9286 src/xz/mytime.c | 2 ++ 9287 src/xz/mytime.h | 2 ++ 9288 src/xz/options.c | 2 ++ 9289 src/xz/options.h | 2 ++ 9290 src/xz/private.h | 2 ++ 9291 src/xz/signals.c | 2 ++ 9292 src/xz/signals.h | 2 ++ 9293 src/xz/suffix.c | 2 ++ 9294 src/xz/suffix.h | 2 ++ 9295 src/xz/util.c | 2 ++ 9296 src/xz/util.h | 2 ++ 9297 src/xz/xz_w32res.rc | 2 ++ 9298 src/xzdec/Makefile.am | 3 +-- 9299 src/xzdec/lzmadec_w32res.rc | 2 ++ 9300 src/xzdec/xzdec.c | 2 ++ 9301 src/xzdec/xzdec_w32res.rc | 2 ++ 9302 tests/Makefile.am | 3 +-- 9303 tests/bcj_test.c | 2 ++ 9304 tests/code_coverage.sh | 1 + 9305 tests/create_compress_files.c | 2 ++ 9306 tests/ossfuzz/fuzz_common.h | 2 ++ 9307 tests/ossfuzz/fuzz_decode_alone.c | 2 ++ 9308 tests/ossfuzz/fuzz_decode_stream.c | 2 ++ 9309 tests/ossfuzz/fuzz_encode_stream.c | 2 ++ 9310 tests/test_bcj_exact_size.c | 2 ++ 9311 tests/test_block_header.c | 2 ++ 9312 tests/test_check.c | 2 ++ 9313 tests/test_compress.sh | 1 + 9314 tests/test_compress_generated_abc | 1 + 9315 tests/test_compress_generated_random | 1 + 9316 tests/test_compress_generated_text | 1 + 9317 tests/test_compress_prepared_bcj_sparc | 1 + 9318 tests/test_compress_prepared_bcj_x86 | 1 + 9319 tests/test_files.sh | 1 + 9320 tests/test_filter_flags.c | 2 ++ 9321 tests/test_filter_str.c | 2 ++ 9322 tests/test_hardware.c | 2 ++ 9323 tests/test_index.c | 2 ++ 9324 tests/test_index_hash.c | 2 ++ 9325 tests/test_lzip_decoder.c | 2 ++ 9326 tests/test_memlimit.c | 2 ++ 9327 tests/test_scripts.sh | 1 + 9328 tests/test_stream_flags.c | 2 ++ 9329 tests/test_suffix.sh | 1 + 9330 tests/test_vli.c | 2 ++ 9331 tests/tests.h | 2 ++ 9332 tests/tuktest.h | 2 ++ 9333 windows/build.bash | 3 ++- 9334 290 files changed, 588 insertions(+), 58 deletions(-) 9335 9336commit 23de53421ea258cde6a3c33a038b1e9d08f771d1 9337Author: Lasse Collin <lasse.collin@tukaani.org> 9338Date: 2024-02-12 23:25:54 +0200 9339 9340 liblzma: Sync the AUTHORS fix about SHA-256 to lzma.h. 9341 9342 src/liblzma/api/lzma.h | 10 ++++------ 9343 1 file changed, 4 insertions(+), 6 deletions(-) 9344 9345commit 689e0228baeb95232430e90d628379db89583d71 9346Author: Lasse Collin <lasse.collin@tukaani.org> 9347Date: 2024-02-12 17:09:10 +0200 9348 9349 Change most public domain parts to 0BSD. 9350 9351 Translations and doc/xz-file-format.txt and doc/lzma-file-format.txt 9352 were not touched. 9353 9354 COPYING.0BSD was added. 9355 9356 .github/workflows/ci.yml | 3 - 9357 .github/workflows/windows-ci.yml | 3 - 9358 CMakeLists.txt | 3 - 9359 COPYING | 112 ++++++++++++++----------- 9360 COPYING.0BSD | 11 +++ 9361 Makefile.am | 3 - 9362 PACKAGERS | 11 +-- 9363 autogen.sh | 3 - 9364 build-aux/ci_build.sh | 3 - 9365 build-aux/manconv.sh | 3 - 9366 build-aux/version.sh | 3 - 9367 cmake/remove-ordinals.cmake | 3 - 9368 cmake/tuklib_common.cmake | 3 - 9369 cmake/tuklib_cpucores.cmake | 3 - 9370 cmake/tuklib_integer.cmake | 3 - 9371 cmake/tuklib_large_file_support.cmake | 3 - 9372 cmake/tuklib_mbstr.cmake | 3 - 9373 cmake/tuklib_physmem.cmake | 3 - 9374 cmake/tuklib_progname.cmake | 3 - 9375 configure.ac | 3 - 9376 debug/Makefile.am | 3 - 9377 debug/crc32.c | 3 - 9378 debug/full_flush.c | 3 - 9379 debug/hex2bin.c | 3 - 9380 debug/known_sizes.c | 3 - 9381 debug/memusage.c | 3 - 9382 debug/repeat.c | 3 - 9383 debug/sync_flush.c | 3 - 9384 debug/translation.bash | 3 - 9385 doc/examples/01_compress_easy.c | 3 - 9386 doc/examples/02_decompress.c | 3 - 9387 doc/examples/03_compress_custom.c | 3 - 9388 doc/examples/04_compress_easy_mt.c | 3 - 9389 doc/examples/11_file_info.c | 3 - 9390 doc/examples/Makefile | 3 - 9391 dos/Makefile | 3 - 9392 doxygen/update-doxygen | 3 - 9393 extra/7z2lzma/7z2lzma.bash | 3 - 9394 m4/tuklib_common.m4 | 3 - 9395 m4/tuklib_cpucores.m4 | 3 - 9396 m4/tuklib_integer.m4 | 3 - 9397 m4/tuklib_mbstr.m4 | 3 - 9398 m4/tuklib_physmem.m4 | 3 - 9399 m4/tuklib_progname.m4 | 3 - 9400 po4a/update-po | 3 - 9401 src/Makefile.am | 3 - 9402 src/common/common_w32res.rc | 3 - 9403 src/common/mythread.h | 3 - 9404 src/common/sysdefs.h | 3 - 9405 src/common/tuklib_common.h | 3 - 9406 src/common/tuklib_cpucores.c | 3 - 9407 src/common/tuklib_cpucores.h | 3 - 9408 src/common/tuklib_exit.c | 3 - 9409 src/common/tuklib_exit.h | 3 - 9410 src/common/tuklib_gettext.h | 3 - 9411 src/common/tuklib_integer.h | 3 - 9412 src/common/tuklib_mbstr.h | 3 - 9413 src/common/tuklib_mbstr_fw.c | 3 - 9414 src/common/tuklib_mbstr_width.c | 3 - 9415 src/common/tuklib_open_stdxxx.c | 3 - 9416 src/common/tuklib_open_stdxxx.h | 3 - 9417 src/common/tuklib_physmem.c | 3 - 9418 src/common/tuklib_physmem.h | 3 - 9419 src/common/tuklib_progname.c | 3 - 9420 src/common/tuklib_progname.h | 3 - 9421 src/liblzma/Makefile.am | 3 - 9422 src/liblzma/api/Makefile.am | 3 - 9423 src/liblzma/api/lzma.h | 13 ++- 9424 src/liblzma/api/lzma/base.h | 3 - 9425 src/liblzma/api/lzma/bcj.h | 3 - 9426 src/liblzma/api/lzma/block.h | 3 - 9427 src/liblzma/api/lzma/check.h | 3 - 9428 src/liblzma/api/lzma/container.h | 3 - 9429 src/liblzma/api/lzma/delta.h | 3 - 9430 src/liblzma/api/lzma/filter.h | 3 - 9431 src/liblzma/api/lzma/hardware.h | 3 - 9432 src/liblzma/api/lzma/index.h | 3 - 9433 src/liblzma/api/lzma/index_hash.h | 3 - 9434 src/liblzma/api/lzma/lzma12.h | 3 - 9435 src/liblzma/api/lzma/stream_flags.h | 3 - 9436 src/liblzma/api/lzma/version.h | 3 - 9437 src/liblzma/api/lzma/vli.h | 3 - 9438 src/liblzma/check/Makefile.inc | 3 - 9439 src/liblzma/check/check.c | 3 - 9440 src/liblzma/check/check.h | 3 - 9441 src/liblzma/check/crc32_arm64.h | 3 - 9442 src/liblzma/check/crc32_fast.c | 3 - 9443 src/liblzma/check/crc32_small.c | 3 - 9444 src/liblzma/check/crc32_table.c | 3 - 9445 src/liblzma/check/crc32_tablegen.c | 3 - 9446 src/liblzma/check/crc32_x86.S | 3 - 9447 src/liblzma/check/crc64_fast.c | 3 - 9448 src/liblzma/check/crc64_small.c | 3 - 9449 src/liblzma/check/crc64_table.c | 3 - 9450 src/liblzma/check/crc64_tablegen.c | 3 - 9451 src/liblzma/check/crc64_x86.S | 3 - 9452 src/liblzma/check/crc_common.h | 3 - 9453 src/liblzma/check/crc_x86_clmul.h | 3 - 9454 src/liblzma/check/sha256.c | 3 - 9455 src/liblzma/common/Makefile.inc | 3 - 9456 src/liblzma/common/alone_decoder.c | 3 - 9457 src/liblzma/common/alone_decoder.h | 3 - 9458 src/liblzma/common/alone_encoder.c | 3 - 9459 src/liblzma/common/auto_decoder.c | 3 - 9460 src/liblzma/common/block_buffer_decoder.c | 3 - 9461 src/liblzma/common/block_buffer_encoder.c | 3 - 9462 src/liblzma/common/block_buffer_encoder.h | 3 - 9463 src/liblzma/common/block_decoder.c | 3 - 9464 src/liblzma/common/block_decoder.h | 3 - 9465 src/liblzma/common/block_encoder.c | 3 - 9466 src/liblzma/common/block_encoder.h | 3 - 9467 src/liblzma/common/block_header_decoder.c | 3 - 9468 src/liblzma/common/block_header_encoder.c | 3 - 9469 src/liblzma/common/block_util.c | 3 - 9470 src/liblzma/common/common.c | 3 - 9471 src/liblzma/common/common.h | 3 - 9472 src/liblzma/common/easy_buffer_encoder.c | 3 - 9473 src/liblzma/common/easy_decoder_memusage.c | 3 - 9474 src/liblzma/common/easy_encoder.c | 3 - 9475 src/liblzma/common/easy_encoder_memusage.c | 3 - 9476 src/liblzma/common/easy_preset.c | 3 - 9477 src/liblzma/common/easy_preset.h | 3 - 9478 src/liblzma/common/file_info.c | 3 - 9479 src/liblzma/common/filter_buffer_decoder.c | 3 - 9480 src/liblzma/common/filter_buffer_encoder.c | 3 - 9481 src/liblzma/common/filter_common.c | 3 - 9482 src/liblzma/common/filter_common.h | 3 - 9483 src/liblzma/common/filter_decoder.c | 3 - 9484 src/liblzma/common/filter_decoder.h | 3 - 9485 src/liblzma/common/filter_encoder.c | 3 - 9486 src/liblzma/common/filter_encoder.h | 3 - 9487 src/liblzma/common/filter_flags_decoder.c | 3 - 9488 src/liblzma/common/filter_flags_encoder.c | 3 - 9489 src/liblzma/common/hardware_cputhreads.c | 3 - 9490 src/liblzma/common/hardware_physmem.c | 3 - 9491 src/liblzma/common/index.c | 3 - 9492 src/liblzma/common/index.h | 3 - 9493 src/liblzma/common/index_decoder.c | 3 - 9494 src/liblzma/common/index_decoder.h | 3 - 9495 src/liblzma/common/index_encoder.c | 3 - 9496 src/liblzma/common/index_encoder.h | 3 - 9497 src/liblzma/common/index_hash.c | 3 - 9498 src/liblzma/common/lzip_decoder.c | 3 - 9499 src/liblzma/common/lzip_decoder.h | 3 - 9500 src/liblzma/common/memcmplen.h | 3 - 9501 src/liblzma/common/microlzma_decoder.c | 3 - 9502 src/liblzma/common/microlzma_encoder.c | 3 - 9503 src/liblzma/common/outqueue.c | 3 - 9504 src/liblzma/common/outqueue.h | 3 - 9505 src/liblzma/common/stream_buffer_decoder.c | 3 - 9506 src/liblzma/common/stream_buffer_encoder.c | 3 - 9507 src/liblzma/common/stream_decoder.c | 3 - 9508 src/liblzma/common/stream_decoder.h | 3 - 9509 src/liblzma/common/stream_decoder_mt.c | 3 - 9510 src/liblzma/common/stream_encoder.c | 3 - 9511 src/liblzma/common/stream_encoder_mt.c | 3 - 9512 src/liblzma/common/stream_flags_common.c | 3 - 9513 src/liblzma/common/stream_flags_common.h | 3 - 9514 src/liblzma/common/stream_flags_decoder.c | 3 - 9515 src/liblzma/common/stream_flags_encoder.c | 3 - 9516 src/liblzma/common/string_conversion.c | 3 - 9517 src/liblzma/common/vli_decoder.c | 3 - 9518 src/liblzma/common/vli_encoder.c | 3 - 9519 src/liblzma/common/vli_size.c | 3 - 9520 src/liblzma/delta/Makefile.inc | 3 - 9521 src/liblzma/delta/delta_common.c | 3 - 9522 src/liblzma/delta/delta_common.h | 3 - 9523 src/liblzma/delta/delta_decoder.c | 3 - 9524 src/liblzma/delta/delta_decoder.h | 3 - 9525 src/liblzma/delta/delta_encoder.c | 3 - 9526 src/liblzma/delta/delta_encoder.h | 3 - 9527 src/liblzma/delta/delta_private.h | 3 - 9528 src/liblzma/liblzma.pc.in | 3 - 9529 src/liblzma/liblzma_w32res.rc | 3 - 9530 src/liblzma/lz/Makefile.inc | 3 - 9531 src/liblzma/lz/lz_decoder.c | 3 - 9532 src/liblzma/lz/lz_decoder.h | 3 - 9533 src/liblzma/lz/lz_encoder.c | 3 - 9534 src/liblzma/lz/lz_encoder.h | 3 - 9535 src/liblzma/lz/lz_encoder_hash.h | 3 - 9536 src/liblzma/lz/lz_encoder_mf.c | 3 - 9537 src/liblzma/lzma/Makefile.inc | 3 - 9538 src/liblzma/lzma/fastpos.h | 3 - 9539 src/liblzma/lzma/fastpos_tablegen.c | 3 - 9540 src/liblzma/lzma/lzma2_decoder.c | 3 - 9541 src/liblzma/lzma/lzma2_decoder.h | 3 - 9542 src/liblzma/lzma/lzma2_encoder.c | 3 - 9543 src/liblzma/lzma/lzma2_encoder.h | 3 - 9544 src/liblzma/lzma/lzma_common.h | 3 - 9545 src/liblzma/lzma/lzma_decoder.c | 3 - 9546 src/liblzma/lzma/lzma_decoder.h | 3 - 9547 src/liblzma/lzma/lzma_encoder.c | 3 - 9548 src/liblzma/lzma/lzma_encoder.h | 3 - 9549 src/liblzma/lzma/lzma_encoder_optimum_fast.c | 3 - 9550 src/liblzma/lzma/lzma_encoder_optimum_normal.c | 3 - 9551 src/liblzma/lzma/lzma_encoder_presets.c | 3 - 9552 src/liblzma/lzma/lzma_encoder_private.h | 3 - 9553 src/liblzma/rangecoder/Makefile.inc | 3 - 9554 src/liblzma/rangecoder/price.h | 3 - 9555 src/liblzma/rangecoder/price_tablegen.c | 3 - 9556 src/liblzma/rangecoder/range_common.h | 3 - 9557 src/liblzma/rangecoder/range_decoder.h | 3 - 9558 src/liblzma/rangecoder/range_encoder.h | 3 - 9559 src/liblzma/simple/Makefile.inc | 3 - 9560 src/liblzma/simple/arm.c | 3 - 9561 src/liblzma/simple/arm64.c | 3 - 9562 src/liblzma/simple/armthumb.c | 3 - 9563 src/liblzma/simple/ia64.c | 3 - 9564 src/liblzma/simple/powerpc.c | 3 - 9565 src/liblzma/simple/riscv.c | 3 - 9566 src/liblzma/simple/simple_coder.c | 3 - 9567 src/liblzma/simple/simple_coder.h | 3 - 9568 src/liblzma/simple/simple_decoder.c | 3 - 9569 src/liblzma/simple/simple_decoder.h | 3 - 9570 src/liblzma/simple/simple_encoder.c | 3 - 9571 src/liblzma/simple/simple_encoder.h | 3 - 9572 src/liblzma/simple/simple_private.h | 3 - 9573 src/liblzma/simple/sparc.c | 3 - 9574 src/liblzma/simple/x86.c | 3 - 9575 src/liblzma/validate_map.sh | 3 - 9576 src/lzmainfo/Makefile.am | 3 - 9577 src/lzmainfo/lzmainfo.1 | 4 +- 9578 src/lzmainfo/lzmainfo.c | 3 - 9579 src/lzmainfo/lzmainfo_w32res.rc | 3 - 9580 src/scripts/Makefile.am | 3 - 9581 src/scripts/xzless.1 | 4 +- 9582 src/xz/Makefile.am | 3 - 9583 src/xz/args.c | 3 - 9584 src/xz/args.h | 3 - 9585 src/xz/coder.c | 3 - 9586 src/xz/coder.h | 3 - 9587 src/xz/file_io.c | 3 - 9588 src/xz/file_io.h | 3 - 9589 src/xz/hardware.c | 3 - 9590 src/xz/hardware.h | 3 - 9591 src/xz/list.c | 3 - 9592 src/xz/list.h | 3 - 9593 src/xz/main.c | 3 - 9594 src/xz/main.h | 3 - 9595 src/xz/message.c | 3 - 9596 src/xz/message.h | 3 - 9597 src/xz/mytime.c | 3 - 9598 src/xz/mytime.h | 3 - 9599 src/xz/options.c | 3 - 9600 src/xz/options.h | 3 - 9601 src/xz/private.h | 3 - 9602 src/xz/signals.c | 3 - 9603 src/xz/signals.h | 3 - 9604 src/xz/suffix.c | 3 - 9605 src/xz/suffix.h | 3 - 9606 src/xz/util.c | 3 - 9607 src/xz/util.h | 3 - 9608 src/xz/xz.1 | 4 +- 9609 src/xz/xz_w32res.rc | 3 - 9610 src/xzdec/Makefile.am | 3 - 9611 src/xzdec/lzmadec_w32res.rc | 3 - 9612 src/xzdec/xzdec.1 | 4 +- 9613 src/xzdec/xzdec.c | 3 - 9614 src/xzdec/xzdec_w32res.rc | 3 - 9615 tests/Makefile.am | 3 - 9616 tests/bcj_test.c | 3 - 9617 tests/code_coverage.sh | 3 - 9618 tests/create_compress_files.c | 3 - 9619 tests/files/README | 3 +- 9620 tests/ossfuzz/fuzz_common.h | 3 - 9621 tests/ossfuzz/fuzz_decode_alone.c | 3 - 9622 tests/ossfuzz/fuzz_decode_stream.c | 3 - 9623 tests/ossfuzz/fuzz_encode_stream.c | 3 - 9624 tests/test_bcj_exact_size.c | 3 - 9625 tests/test_block_header.c | 3 - 9626 tests/test_check.c | 3 - 9627 tests/test_compress.sh | 3 - 9628 tests/test_files.sh | 3 - 9629 tests/test_filter_flags.c | 3 - 9630 tests/test_filter_str.c | 3 - 9631 tests/test_hardware.c | 3 - 9632 tests/test_index.c | 3 - 9633 tests/test_index_hash.c | 3 - 9634 tests/test_lzip_decoder.c | 3 - 9635 tests/test_memlimit.c | 3 - 9636 tests/test_scripts.sh | 3 - 9637 tests/test_stream_flags.c | 3 - 9638 tests/test_suffix.sh | 3 - 9639 tests/test_vli.c | 3 - 9640 tests/tests.h | 3 - 9641 tests/tuktest.h | 3 - 9642 windows/README-Windows.txt | 11 +-- 9643 windows/build.bash | 3 - 9644 288 files changed, 100 insertions(+), 911 deletions(-) 9645 9646commit 76946dc4336c831fe2cc26696a035d807dd3cf13 9647Author: Lasse Collin <lasse.collin@tukaani.org> 9648Date: 2024-02-09 17:20:31 +0200 9649 9650 Fix SHA-256 authors. 9651 9652 The initial commit 5d018dc03549c1ee4958364712fb0c94e1bf2741 9653 in 2007 had a comment in sha256.c that the code is based on 9654 Crypto++ Library 5.5.1. In 2009 the Authors list in sha256.c 9655 and the AUTHORS file was updated with information that the 9656 code had come from Crypto++ but via 7-Zip. I know I had viewed 9657 7-Zip's SHA-256 code but back then the C code has been identical 9658 enough with Crypto++, so I don't why I thought the author info 9659 would need that extra step via 7-Zip for this single file. 9660 9661 Another error is that I had mixed sha.* and shacal2.* files 9662 when checking for author info in Crypto++. The shacal2.* files 9663 aren't related to liblzma's sha256.c and thus Kevin Springle's 9664 code in Crypto++ isn't either. 9665 9666 AUTHORS | 6 ++---- 9667 src/liblzma/check/sha256.c | 14 ++++---------- 9668 2 files changed, 6 insertions(+), 14 deletions(-) 9669 9670commit 21d9cbae9eecca28ce373d3d9464defd2cf5d851 9671Author: Lasse Collin <lasse.collin@tukaani.org> 9672Date: 2024-02-09 17:20:31 +0200 9673 9674 Remove macosx/build.sh. 9675 9676 It was last updated in 2013. 9677 9678 Makefile.am | 1 - 9679 macosx/build.sh | 113 -------------------------------------------------------- 9680 2 files changed, 114 deletions(-) 9681 9682commit eac2c3c67f9113a225fb6667df862edd30366931 9683Author: Lasse Collin <lasse.collin@tukaani.org> 9684Date: 2024-02-09 17:20:31 +0200 9685 9686 Doc: Remove doc/examples_old. 9687 9688 It was good to keep these around in parallel with the newer examples 9689 but I think it's OK to remove the old ones at this point. 9690 9691 Makefile.am | 5 -- 9692 doc/examples_old/xz_pipe_comp.c | 127 -------------------------------------- 9693 doc/examples_old/xz_pipe_decomp.c | 123 ------------------------------------ 9694 3 files changed, 255 deletions(-) 9695 9696commit 89ea1a22f4ed3685b053b7260bc5acf6c75d1664 9697Author: Jia Tan <jiat0218@gmail.com> 9698Date: 2024-02-13 22:38:58 +0800 9699 9700 Tests: Add RISC-V filter support in a few places. 9701 9702 tests/test_filter_flags.c | 6 ++++++ 9703 tests/test_filter_str.c | 6 ++++++ 9704 2 files changed, 12 insertions(+) 9705 9706commit 45663443eb2b377e6171529380fee312f1adcdf4 9707Author: Jia Tan <jiat0218@gmail.com> 9708Date: 2024-02-13 22:37:07 +0800 9709 9710 liblzma: Fix build error if only RISC-V BCJ filter is enabled. 9711 9712 If any other BCJ filter was enabled for encoding or decoding, then this 9713 was not a problem. 9714 9715 src/liblzma/common/string_conversion.c | 4 +++- 9716 1 file changed, 3 insertions(+), 1 deletion(-) 9717 9718commit 2f15597d677bc35743c777d4cf3bfa698b478681 9719Author: Jia Tan <jiat0218@gmail.com> 9720Date: 2024-02-13 22:56:24 +0800 9721 9722 Translations: Update the Korean translation. 9723 9724 po/ko.po | 526 ++++++++++++++++++++++++++++++++++----------------------------- 9725 1 file changed, 284 insertions(+), 242 deletions(-) 9726 9727commit df873143ad1615c6d6aaa1bf8808b1676091dfe3 9728Author: Jia Tan <jiat0218@gmail.com> 9729Date: 2024-02-13 01:55:53 +0800 9730 9731 Translations: Update the Korean man page translations. 9732 9733 po4a/ko.po | 1375 ++++++++++++++++++++++++++++++++++-------------------------- 9734 1 file changed, 770 insertions(+), 605 deletions(-) 9735 9736commit b3f415eddb150341865a1af47959c3baba076b33 9737Author: Jia Tan <jiat0218@gmail.com> 9738Date: 2024-02-13 01:53:33 +0800 9739 9740 Translations: Update the Chinese (simplified) translation. 9741 9742 po/zh_CN.po | 424 ++++++++++++++++++++++++++++++++++++++---------------------- 9743 1 file changed, 268 insertions(+), 156 deletions(-) 9744 9745commit 9860d418d296eb3c721e5384fb367c0499b579c8 9746Author: Lasse Collin <lasse.collin@tukaani.org> 9747Date: 2024-02-09 23:21:01 +0200 9748 9749 xzless: Use ||- in LESSOPEN with with "less" 451 and newer. 9750 9751 src/scripts/xzless.in | 9 ++++++++- 9752 1 file changed, 8 insertions(+), 1 deletion(-) 9753 9754commit fd0692b0525e6c26b496492be9e2c865cab734f8 9755Author: Lasse Collin <lasse.collin@tukaani.org> 9756Date: 2024-02-09 23:00:05 +0200 9757 9758 xzless: Use --show-preproc-errors with "less" 632 and newer. 9759 9760 This makes "less" show a warning if a decompression error occurred. 9761 9762 src/scripts/xzless.in | 11 +++++++++-- 9763 1 file changed, 9 insertions(+), 2 deletions(-) 9764 9765commit adb073da76a920b5a81e6b32254f4ddb054dc57a 9766Author: Jia Tan <jiat0218@gmail.com> 9767Date: 2024-02-09 23:59:54 +0800 9768 9769 liblzma: Fix typo discovered by codespell. 9770 9771 src/liblzma/check/crc32_arm64.h | 2 +- 9772 1 file changed, 1 insertion(+), 1 deletion(-) 9773 9774commit 55d9fc883d221cbace951a370f1fb144698f8c2e 9775Author: Jia Tan <jiat0218@gmail.com> 9776Date: 2024-02-09 20:01:06 +0800 9777 9778 Translations: Update the Swedish translation. 9779 9780 po/sv.po | 420 ++++++++++++++++++++++++++++++++++++++------------------------- 9781 1 file changed, 254 insertions(+), 166 deletions(-) 9782 9783commit 55ba4a1ea321499c805eedfa811ffde690bae311 9784Author: Jia Tan <jiat0218@gmail.com> 9785Date: 2024-02-08 20:09:04 +0800 9786 9787 Translations: Update the Spanish translation. 9788 9789 po/es.po | 22 +++++++++++----------- 9790 1 file changed, 11 insertions(+), 11 deletions(-) 9791 9792commit 7f2293cd804a89d3c3b2d3ed573560ca9e1520ae 9793Author: Jia Tan <jiat0218@gmail.com> 9794Date: 2024-02-07 21:34:35 +0800 9795 9796 Translations: Update the Spanish translation. 9797 9798 po/es.po | 419 ++++++++++++++++++++++++++++++++++++++------------------------- 9799 1 file changed, 253 insertions(+), 166 deletions(-) 9800 9801commit f4af2036bc625739d6d33d9e1fede583a25c3828 9802Author: Jia Tan <jiat0218@gmail.com> 9803Date: 2024-02-07 21:28:32 +0800 9804 9805 Translations: Update the Polish translation. 9806 9807 po/pl.po | 411 ++++++++++++++++++++++++++++++++++++++------------------------- 9808 1 file changed, 249 insertions(+), 162 deletions(-) 9809 9810commit e5e93bb816043c559cddf03a3b7ba13bec353ee4 9811Author: Jia Tan <jiat0218@gmail.com> 9812Date: 2024-02-07 19:40:12 +0800 9813 9814 Translations: Update the German translation. 9815 9816 po/de.po | 396 ++++++++++++++++++++++++++++++++++++++------------------------- 9817 1 file changed, 242 insertions(+), 154 deletions(-) 9818 9819commit 28f18ff8e26902762fb007c13be235b4ac1ac071 9820Author: Jia Tan <jiat0218@gmail.com> 9821Date: 2024-02-07 19:27:25 +0800 9822 9823 Translations: Update the German man page translations. 9824 9825 po4a/de.po | 1353 +++++++++++++++++++++++++++++++++--------------------------- 9826 1 file changed, 752 insertions(+), 601 deletions(-) 9827 9828commit cabfbc7947da05aa5dfe39bec9759e076f940e3c 9829Author: Jia Tan <jiat0218@gmail.com> 9830Date: 2024-02-06 23:44:06 +0800 9831 9832 Translations: Update the Romanian translation. 9833 9834 po/ro.po | 416 ++++++++++++++++++++++++++++++++++++++------------------------- 9835 1 file changed, 252 insertions(+), 164 deletions(-) 9836 9837commit bf20c94f5d748cea2147779f4fa7e2fd2eb8555e 9838Author: Jia Tan <jiat0218@gmail.com> 9839Date: 2024-02-06 23:45:02 +0800 9840 9841 Translations: Update the Romanian man page translations. 9842 9843 po4a/ro.po | 1759 +++++++++++++++++++++++++++++++++--------------------------- 9844 1 file changed, 966 insertions(+), 793 deletions(-) 9845 9846commit 7c25ec9feb0241e4affb7432681cc4f5696f3a96 9847Author: Jia Tan <jiat0218@gmail.com> 9848Date: 2024-02-07 20:56:57 +0800 9849 9850 Translations: Update the Ukrainian translation. 9851 9852 po/uk.po | 397 ++++++++++++++++++++++++++++++++++++++------------------------- 9853 1 file changed, 242 insertions(+), 155 deletions(-) 9854 9855commit b3523250e9eef10b017473754c1e1c9e31f10374 9856Author: Jia Tan <jiat0218@gmail.com> 9857Date: 2024-02-06 23:30:03 +0800 9858 9859 Translations: Update the Ukrainian man page translations. 9860 9861 po4a/uk.po | 1363 ++++++++++++++++++++++++++++++++++-------------------------- 9862 1 file changed, 764 insertions(+), 599 deletions(-) 9863 9864commit a5c177f514f4c90e0d2f6045636fca6c2e80a20d 9865Author: Jia Tan <jiat0218@gmail.com> 9866Date: 2024-02-02 01:39:28 +0800 9867 9868 Update AUTHORS. 9869 9870 AUTHORS | 3 ++- 9871 1 file changed, 2 insertions(+), 1 deletion(-) 9872 9873commit 7f68a68c19d0ae57bd0e802be0ea8f974e41299f 9874Author: Jia Tan <jiat0218@gmail.com> 9875Date: 2024-02-02 01:38:51 +0800 9876 9877 liblzma: Update Authors list in crc32_arm64.h. 9878 9879 src/liblzma/check/crc32_arm64.h | 1 + 9880 1 file changed, 1 insertion(+) 9881 9882commit 97f9ba50b84e67b3dcb5b17dd5d3e1d14f9ad1d0 9883Author: Jia Tan <jiat0218@gmail.com> 9884Date: 2024-02-01 16:07:03 +0800 9885 9886 liblzma: Check HAVE_USABLE_CLMUL before omitting CRC32 table. 9887 9888 This was split from the prior commit so it could be easily applied to 9889 the 5.4 branch. 9890 9891 Closes: https://github.com/tukaani-project/xz/pull/77 9892 9893 src/liblzma/check/crc32_table.c | 4 ++-- 9894 1 file changed, 2 insertions(+), 2 deletions(-) 9895 9896commit ca9015f4dead2c97b48f5a6933631b0a448b65b9 9897Author: Jia Tan <jiat0218@gmail.com> 9898Date: 2024-02-01 16:06:29 +0800 9899 9900 liblzma: Check HAVE_USABLE_CLMUL before omitting CRC64 table. 9901 9902 If liblzma is configured with --disable-clmul-crc 9903 CFLAGS="-msse4.1 -mpclmul", then it will fail to compile because the 9904 generic version must be used but the CRC tables were not included. 9905 9906 src/liblzma/check/crc64_table.c | 4 ++-- 9907 1 file changed, 2 insertions(+), 2 deletions(-) 9908 9909commit 2f1552a91c825e87013925e1a67a0930e7aef592 9910Author: Jia Tan <jiat0218@gmail.com> 9911Date: 2024-01-23 18:02:13 +0800 9912 9913 liblzma: Only use ifunc in crcXX_fast.c if its needed. 9914 9915 The code was using HAVE_FUNC_ATTRIBUTE_IFUNC instead of CRC_USE_IFUNC. 9916 With ARM64, ifunc is incompatible because it requires non-inline 9917 function calls for runtime detection. 9918 9919 src/liblzma/check/crc32_fast.c | 6 +++--- 9920 src/liblzma/check/crc64_fast.c | 6 +++--- 9921 2 files changed, 6 insertions(+), 6 deletions(-) 9922 9923commit 30a25f3742287697bc57a1bef86c19ecf5129322 9924Author: Jia Tan <jiat0218@gmail.com> 9925Date: 2024-01-22 22:08:45 +0800 9926 9927 Docs: Add --disable-arm64-crc32 description to INSTALL. 9928 9929 INSTALL | 12 +++++++++++- 9930 1 file changed, 11 insertions(+), 1 deletion(-) 9931 9932commit 1940f0ec28f08c0ac72c1413d9706fb82eabe6ad 9933Author: Jia Tan <jiat0218@gmail.com> 9934Date: 2024-01-22 21:36:09 +0800 9935 9936 liblzma: Omit CRC tables when not needed with ARM64 optimizations. 9937 9938 This is similar to the existing x86-64 CLMUL conditions to omit the 9939 tables. They were slightly refactored to improve readability. 9940 9941 src/liblzma/check/crc32_table.c | 18 +++++++++++++++--- 9942 src/liblzma/check/crc64_table.c | 7 ++++++- 9943 src/liblzma/check/crc_common.h | 5 ++++- 9944 3 files changed, 25 insertions(+), 5 deletions(-) 9945 9946commit 761f5b69a4c778c8bcb09279b845b07c28790575 9947Author: Jia Tan <jiat0218@gmail.com> 9948Date: 2024-01-22 20:54:56 +0800 9949 9950 liblzma: Rename crc32_aarch64.h to crc32_arm64.h. 9951 9952 Even though the proper name for the architecture is aarch64, this 9953 project uses ARM64 throughout. So the rename is for consistency. 9954 9955 Additionally, crc32_arm64.h was slightly refactored for the following 9956 changes: 9957 9958 * Added MSVC, FreeBSD, and macOS support in 9959 is_arch_extension_supported(). 9960 9961 * crc32_arch_optimized() now checks the size when aligning the 9962 buffer. 9963 9964 * crc32_arch_optimized() loop conditions were slightly modified to 9965 avoid both decrementing the size and incrementing the buffer 9966 pointer. 9967 9968 * Use the intrinsic wrappers defined in <arm_acle.h> because GCC and 9969 Clang name them differently. 9970 9971 * Minor spacing and comment changes. 9972 9973 CMakeLists.txt | 2 +- 9974 src/liblzma/check/Makefile.inc | 2 +- 9975 src/liblzma/check/crc32_aarch64.h | 109 ---------------------------------- 9976 src/liblzma/check/crc32_arm64.h | 119 ++++++++++++++++++++++++++++++++++++++ 9977 src/liblzma/check/crc32_fast.c | 3 +- 9978 src/liblzma/check/crc64_fast.c | 3 - 9979 6 files changed, 122 insertions(+), 116 deletions(-) 9980 9981commit 455a08609caa3223066a717fb01bfa42c5dba47d 9982Author: Jia Tan <jiat0218@gmail.com> 9983Date: 2024-01-22 20:49:30 +0800 9984 9985 liblzma: Refactor crc_common.h. 9986 9987 The CRC_GENERIC is now split into CRC32_GENERIC and CRC64_GENERIC, since 9988 the ARM64 optimizations will be different between CRC32 and CRC64. 9989 9990 For the same reason, CRC_ARCH_OPTIMIZED is split into 9991 CRC32_ARCH_OPTIMIZED and CRC64_ARCH_OPTIMIZED. 9992 9993 ifunc will only be used with x86-64 CLMUL because the runtime detection 9994 methods needed with ARM64 are not compatible with ifunc. 9995 9996 src/liblzma/check/crc32_fast.c | 8 +-- 9997 src/liblzma/check/crc64_fast.c | 8 +-- 9998 src/liblzma/check/crc_common.h | 108 ++++++++++++++++++++++++++++------------- 9999 3 files changed, 82 insertions(+), 42 deletions(-) 10000 10001commit 61908e816049af7a9f43ea804a57ee8570e2e644 10002Author: Jia Tan <jiat0218@gmail.com> 10003Date: 2024-01-22 00:42:28 +0800 10004 10005 CMake: Add support for ARM64 CRC32 instruction detection. 10006 10007 CMakeLists.txt | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 10008 1 file changed, 50 insertions(+) 10009 10010commit c5f6d79cc9515a7f22d7ea4860c6cc394b295732 10011Author: Jia Tan <jiat0218@gmail.com> 10012Date: 2024-01-22 00:36:47 +0800 10013 10014 Build: Add support for ARM64 CRC32 instruction detection. 10015 10016 This adds --enable-arm64-crc32/--disable-arm64-crc32 (enabled by 10017 default) for using the ARM64 CRC32 instruction. This can be disabled if 10018 one knows the binary will never need to run on an ARM64 machine 10019 with this instruction extension. 10020 10021 configure.ac | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 10022 1 file changed, 52 insertions(+) 10023 10024commit 849d0f282a6a890c5cf5a0e0f02980b12d9ebb0f 10025Author: Chenxi Mao <chenxi.mao2013@gmail.com> 10026Date: 2024-01-09 17:23:11 +0800 10027 10028 Speed up CRC32 calculation on ARM64 10029 10030 The CRC32 instructions in ARM64 can calculate the CRC32 result 10031 for 8 bytes in a single operation, making the use of ARM64 10032 instructions much faster compared to the general CRC32 algorithm. 10033 10034 Optimized CRC32 will be enabled if ARM64 has CRC extension 10035 running on Linux. 10036 10037 Signed-off-by: Chenxi Mao <chenxi.mao2013@gmail.com> 10038 10039 CMakeLists.txt | 1 + 10040 src/liblzma/check/Makefile.inc | 3 +- 10041 src/liblzma/check/crc32_aarch64.h | 109 ++++++++++++++++++++++++++++++++++++++ 10042 src/liblzma/check/crc32_fast.c | 5 +- 10043 src/liblzma/check/crc64_fast.c | 5 +- 10044 src/liblzma/check/crc_common.h | 16 +++--- 10045 6 files changed, 130 insertions(+), 9 deletions(-) 10046 10047commit b43c3e48bf6097095eef36d44cdbec811074940a 10048Author: Jia Tan <jiat0218@gmail.com> 10049Date: 2024-01-26 19:05:51 +0800 10050 10051 Bump version number for 5.5.1alpha. 10052 10053 src/liblzma/api/lzma/version.h | 2 +- 10054 src/liblzma/liblzma_generic.map | 2 +- 10055 src/liblzma/liblzma_linux.map | 2 +- 10056 3 files changed, 3 insertions(+), 3 deletions(-) 10057 10058commit c7a7ae1500ea90bd3c2d54533e4f433933eb598f 10059Author: Jia Tan <jiat0218@gmail.com> 10060Date: 2024-01-26 19:00:52 +0800 10061 10062 Add NEWS for 5.5.1alpha 10063 10064 NEWS | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 10065 1 file changed, 80 insertions(+) 10066 10067commit 0ef8192e8d5af4e6200d5d4aee22d1f177f7a2df 10068Author: Jia Tan <jiat0218@gmail.com> 10069Date: 2024-01-26 18:54:24 +0800 10070 10071 Add NEWS for 5.4.6. 10072 10073 NEWS | 22 ++++++++++++++++++++++ 10074 1 file changed, 22 insertions(+) 10075 10076commit 93de7e751d17731315a899264f2a7239d7d2d316 10077Author: Lasse Collin <lasse.collin@tukaani.org> 10078Date: 2024-01-24 20:00:57 +0200 10079 10080 Move doc/logo/xz-logo.png to "doc" and Doxygen footer to "doxygen". 10081 10082 The footer isn't a complete HTML file so having it in the doxygen 10083 directory is a tiny bit clearer. 10084 10085 Makefile.am | 2 +- 10086 doc/{logo => }/xz-logo.png | Bin 10087 doxygen/Doxyfile | 4 ++-- 10088 doc/logo/copyright.html => doxygen/footer.html | 0 10089 4 files changed, 3 insertions(+), 3 deletions(-) 10090 10091commit 00fa01698df51c58ae2acf8c7fa4e1fb159f75a9 10092Author: Jia Tan <jiat0218@gmail.com> 10093Date: 2024-01-09 17:05:01 +0800 10094 10095 README: Add COPYING.CC-BY-SA-4.0 entry to section 1.1. 10096 10097 The Overall documentation section (1.1) table spacing had to be adjusted 10098 since the filename was very long. 10099 10100 README | 38 ++++++++++++++++++++------------------ 10101 1 file changed, 20 insertions(+), 18 deletions(-) 10102 10103commit e280470040b27c5e58d78b25b9e2bb71fc6c3882 10104Author: Jia Tan <jiat0218@gmail.com> 10105Date: 2024-01-09 16:56:16 +0800 10106 10107 Build: Add the logo and license to the release. 10108 10109 Makefile.am | 2 ++ 10110 1 file changed, 2 insertions(+) 10111 10112commit b1ee6cf259bb49ce91abe9f622294524e37edf4c 10113Author: Jia Tan <jiat0218@gmail.com> 10114Date: 2024-01-09 16:44:42 +0800 10115 10116 COPYING: Add the license for the XZ logo. 10117 10118 COPYING | 5 + 10119 COPYING.CC-BY-SA-4.0 | 427 +++++++++++++++++++++++++++++++++++++++++++++++++++ 10120 2 files changed, 432 insertions(+) 10121 10122commit 31293ae7074802cc7286089a89c7b552d930c97f 10123Author: Jia Tan <jiat0218@gmail.com> 10124Date: 2024-01-09 16:40:56 +0800 10125 10126 Doxygen: Added the XZ logo and copyright information. 10127 10128 The PROJECT_LOGO field is now used to include the XZ logo. The footer 10129 of each page now lists the copyright information instead of the default 10130 footer. The license is also copied to statisfy the copyright and so the 10131 link in the documentation can be local. 10132 10133 doc/logo/copyright.html | 11 +++++++++++ 10134 doc/logo/xz-logo.png | Bin 0 -> 6771 bytes 10135 doxygen/Doxyfile | 6 +++--- 10136 3 files changed, 14 insertions(+), 3 deletions(-) 10137 10138commit 6daa4d0ea46a8441f21f609149f3633158bf4704 10139Author: Lasse Collin <lasse.collin@tukaani.org> 10140Date: 2024-01-23 18:29:28 +0200 10141 10142 xz: Use threaded mode by defaut (as if --threads=0 was used). 10143 10144 This hopefully does more good than bad: 10145 10146 + It's faster by default. 10147 10148 + Only the threaded compressor creates files that 10149 can be decompressed in threaded mode. 10150 10151 - Compression ratio is worse, usually not too much though. 10152 When it matters, -T1 must be used. 10153 10154 - Memory usage increases. 10155 10156 - Scripts that assume single-threaded mode but don't use -T1 will 10157 possibly use too much resources, for example, if they run 10158 multiple xz processes in parallel to compress multiple files. 10159 10160 - Output from single-threaded and multi-threaded compressors 10161 differ but such changes could happen for other reasons too 10162 (they just haven't happened since 5.0.0). 10163 10164 src/xz/hardware.c | 6 +++++- 10165 src/xz/message.c | 4 ++-- 10166 src/xz/xz.1 | 9 +++++++++ 10167 3 files changed, 16 insertions(+), 3 deletions(-) 10168 10169commit a2dd2dc8e5307a7280bb99868bc478560facba2c 10170Author: Jia Tan <jiat0218@gmail.com> 10171Date: 2024-01-23 23:52:49 +0800 10172 10173 CI: Use RISC-V filter when building with BCJ support. 10174 10175 build-aux/ci_build.sh | 4 ++-- 10176 1 file changed, 2 insertions(+), 2 deletions(-) 10177 10178commit 3060e1070b2421b26c0e17794c1307ec5622f11d 10179Author: Jia Tan <jiat0218@gmail.com> 10180Date: 2024-01-23 23:52:14 +0800 10181 10182 Tests: Use smaller dictionary size in RISC-V test files. 10183 10184 tests/files/good-1-riscv-lzma2-1.xz | Bin 7512 -> 7512 bytes 10185 tests/files/good-1-riscv-lzma2-2.xz | Bin 7516 -> 7512 bytes 10186 2 files changed, 0 insertions(+), 0 deletions(-) 10187 10188commit 44ff2fa5c94dc345c4dd69195a19fc5238df60b3 10189Author: Jia Tan <jiat0218@gmail.com> 10190Date: 2024-01-23 23:50:57 +0800 10191 10192 Tests: Skip RISC-V test files if decoder was not built. 10193 10194 tests/test_files.sh | 5 +++++ 10195 1 file changed, 5 insertions(+) 10196 10197commit 6133a3f30049d3beaf7d22535b1e5d38e109be4e 10198Author: Lasse Collin <lasse.collin@tukaani.org> 10199Date: 2024-01-23 16:11:54 +0200 10200 10201 xz: Man page: Add more examples of LZMA2 options with BCJ filters. 10202 10203 src/xz/xz.1 | 38 +++++++++++++++++++++++++++++++------- 10204 1 file changed, 31 insertions(+), 7 deletions(-) 10205 10206commit 50255feeaabcc7e7db22b858a6bd64a9b5b4f16d 10207Author: Lasse Collin <lasse.collin@tukaani.org> 10208Date: 2024-01-23 00:09:48 +0200 10209 10210 liblzma: RISC-V filter: Use byte-by-byte access. 10211 10212 Not all RISC-V processors support fast unaligned access so 10213 it's better to read only one byte in the main loop. This can 10214 be faster even on x86-64 when compared to reading 32 bits at 10215 a time as half the time the address is only 16-bit aligned. 10216 10217 The downside is larger code size on archs that do support 10218 fast unaligned access. 10219 10220 src/liblzma/simple/riscv.c | 114 +++++++++++++++++++++++++++++++++------------ 10221 1 file changed, 84 insertions(+), 30 deletions(-) 10222 10223commit db5eb5f563e8baa8d912ecf576f53391ff861596 10224Author: Jia Tan <jiat0218@gmail.com> 10225Date: 2024-01-22 23:33:39 +0800 10226 10227 xz: Update xz -lvv for RISC-V filter. 10228 10229 Version 5.6.0 will be shown, even though upcoming alphas and betas 10230 will be able to support this filter. 5.6.0 looks nicer in the output and 10231 people shouldn't be encouraged to use an unstable version in production 10232 in any way. 10233 10234 src/xz/list.c | 10 ++++++++++ 10235 1 file changed, 10 insertions(+) 10236 10237commit e2870db5be1503e6a489fc3d47daf950d6f62723 10238Author: Jia Tan <jiat0218@gmail.com> 10239Date: 2024-01-22 23:33:39 +0800 10240 10241 Tests: Add two RISC-V Filter test files. 10242 10243 These test files achieve 100% code coverage in 10244 src/liblzma/simple/riscv.c. They contain all of the instructions that 10245 should be filtered and a few cases that should not. 10246 10247 tests/files/README | 8 ++++++++ 10248 tests/files/good-1-riscv-lzma2-1.xz | Bin 0 -> 7512 bytes 10249 tests/files/good-1-riscv-lzma2-2.xz | Bin 0 -> 7516 bytes 10250 3 files changed, 8 insertions(+) 10251 10252commit b26a89869315ece2f6d9d10d32d45f672550f245 10253Author: Jia Tan <jiat0218@gmail.com> 10254Date: 2024-01-22 23:33:39 +0800 10255 10256 xz: Update message in --long-help for RISC-V Filter. 10257 10258 src/xz/message.c | 1 + 10259 1 file changed, 1 insertion(+) 10260 10261commit 283f778908873eca61388029fc418fa800c9d7d7 10262Author: Jia Tan <jiat0218@gmail.com> 10263Date: 2024-01-22 23:33:39 +0800 10264 10265 xz: Update the man page for the RISC-V Filter. 10266 10267 A special note was added to suggest using four-byte alignment when the 10268 compressed instruction extension is not present in a RISC-V binary. 10269 10270 src/xz/xz.1 | 3 ++- 10271 1 file changed, 2 insertions(+), 1 deletion(-) 10272 10273commit ac3691ccca051d67f60b4a3b05b88e511d0b1b28 10274Author: Jia Tan <jiat0218@gmail.com> 10275Date: 2024-01-22 23:33:39 +0800 10276 10277 Tests: Add RISC-V Filter test in test_compress.sh. 10278 10279 tests/test_compress.sh | 1 + 10280 1 file changed, 1 insertion(+) 10281 10282commit 2959dbc7358efcf421ce51bc9cd7eae8fdd8fec4 10283Author: Jia Tan <jiat0218@gmail.com> 10284Date: 2024-01-22 23:33:39 +0800 10285 10286 liblzma: Update string_conversion.c to support RISC-V Filter. 10287 10288 src/liblzma/common/string_conversion.c | 5 +++++ 10289 1 file changed, 5 insertions(+) 10290 10291commit 34372a5adbe5a7f6bf29498410ba3a463a720966 10292Author: Jia Tan <jiat0218@gmail.com> 10293Date: 2024-01-22 23:33:39 +0800 10294 10295 CMake: Support RISC-V BCJ Filter for encoding and decoding. 10296 10297 CMakeLists.txt | 1 + 10298 1 file changed, 1 insertion(+) 10299 10300commit 440a2eccb082dc13400c09e22308a58fef85146c 10301Author: Jia Tan <jiat0218@gmail.com> 10302Date: 2024-01-22 23:33:39 +0800 10303 10304 liblzma: Add RISC-V BCJ filter. 10305 10306 The new Filter ID is 0x0B. 10307 10308 Thanks to Chien Wong <m@xv97.com> for the initial version of the Filter, 10309 the xz CLI updates, and the Autotools build system modifications. 10310 10311 Thanks to Igor Pavlov for his many contributions to the design of 10312 the filter. 10313 10314 configure.ac | 4 +- 10315 src/liblzma/api/lzma/bcj.h | 5 + 10316 src/liblzma/common/filter_common.c | 9 + 10317 src/liblzma/common/filter_decoder.c | 8 + 10318 src/liblzma/common/filter_encoder.c | 10 + 10319 src/liblzma/simple/Makefile.inc | 4 + 10320 src/liblzma/simple/riscv.c | 688 ++++++++++++++++++++++++++++++++++++ 10321 src/liblzma/simple/simple_coder.h | 9 + 10322 src/xz/args.c | 7 + 10323 9 files changed, 742 insertions(+), 2 deletions(-) 10324 10325commit 5540f4329bbdb4deb4850d4af48b18ad074bba19 10326Author: Jia Tan <jiat0218@gmail.com> 10327Date: 2024-01-19 23:08:14 +0800 10328 10329 Docs: Update .xz file format specification to 1.2.0. 10330 10331 The new RISC-V filter was added to the specification, in addition to 10332 updating the specification URL. 10333 10334 doc/xz-file-format.txt | 29 +++++++++++++++++------------ 10335 1 file changed, 17 insertions(+), 12 deletions(-) 10336 10337commit 22d86192f8cf00902a1f90ee2a83ca600794459b 10338Author: Jia Tan <jiat0218@gmail.com> 10339Date: 2024-01-19 23:08:14 +0800 10340 10341 xz: Update website URLs in the man pages. 10342 10343 src/xz/xz.1 | 6 +++--- 10344 src/xzdec/xzdec.1 | 4 ++-- 10345 2 files changed, 5 insertions(+), 5 deletions(-) 10346 10347commit 6b63c4c6139fa1bb21b570521d3d2b4a608bc34d 10348Author: Jia Tan <jiat0218@gmail.com> 10349Date: 2024-01-19 23:08:14 +0800 10350 10351 liblzma: Update website URL. 10352 10353 dos/config.h | 2 +- 10354 src/liblzma/api/lzma.h | 6 +++--- 10355 2 files changed, 4 insertions(+), 4 deletions(-) 10356 10357commit fce4758018f3a3589236f3fe7999fd9dd08c77e9 10358Author: Jia Tan <jiat0218@gmail.com> 10359Date: 2024-01-19 23:08:14 +0800 10360 10361 Docs: Update website URLs. 10362 10363 .github/SECURITY.md | 2 +- 10364 COPYING | 3 ++- 10365 README | 4 ++-- 10366 doc/faq.txt | 2 +- 10367 doc/lzma-file-format.txt | 18 +++++++++--------- 10368 windows/README-Windows.txt | 3 ++- 10369 6 files changed, 17 insertions(+), 15 deletions(-) 10370 10371commit c26812c5b2c8a2a47f43214afe6b0b840c73e4f5 10372Author: Jia Tan <jiat0218@gmail.com> 10373Date: 2024-01-19 23:08:14 +0800 10374 10375 Build: Update website URL. 10376 10377 CMakeLists.txt | 2 +- 10378 configure.ac | 2 +- 10379 2 files changed, 2 insertions(+), 2 deletions(-) 10380 10381commit fbb3ce541ef79cad1710e88a27a5babb5f6f8e5b 10382Author: Lasse Collin <lasse.collin@tukaani.org> 10383Date: 2024-01-11 15:01:50 +0200 10384 10385 liblzma: CRC: Add a comment to crc_x86_clmul.h about BUILDING_ macros. 10386 10387 src/liblzma/check/crc_x86_clmul.h | 6 ++++++ 10388 1 file changed, 6 insertions(+) 10389 10390commit 4f518c1b6b7b7ce5dcefea81acd44d7a086a8882 10391Author: Lasse Collin <lasse.collin@tukaani.org> 10392Date: 2024-01-11 15:22:36 +0200 10393 10394 liblzma: CRC: Remove crc_always_inline, use lzma_always_inline instead. 10395 10396 Now crc_simd_body() in crc_x86_clmul.h is only called once 10397 in a translation unit, we no longer need to be so cautious 10398 about ensuring the always-inline behavior. 10399 10400 src/liblzma/check/crc_common.h | 20 -------------------- 10401 src/liblzma/check/crc_x86_clmul.h | 2 +- 10402 2 files changed, 1 insertion(+), 21 deletions(-) 10403 10404commit 35c03ec6bf66f1b159964c9721a2dce0e2859b20 10405Author: Lasse Collin <lasse.collin@tukaani.org> 10406Date: 2024-01-11 14:39:46 +0200 10407 10408 liblzma: CRC: Update CLMUL comments to more generic wording. 10409 10410 src/liblzma/check/crc32_fast.c | 16 ++++++++-------- 10411 src/liblzma/check/crc64_fast.c | 10 +++++----- 10412 2 files changed, 13 insertions(+), 13 deletions(-) 10413 10414commit 66f080e8016129576536482ac377e2ecac7a2b90 10415Author: Lasse Collin <lasse.collin@tukaani.org> 10416Date: 2024-01-10 18:23:31 +0200 10417 10418 liblzma: Rename arch-specific CRC functions and macros. 10419 10420 CRC_CLMUL was split to CRC_ARCH_OPTIMIZED and CRC_X86_CLMUL. 10421 CRC_ARCH_OPTIMIZED is defined when an arch-optimized version is used. 10422 Currently the x86 CLMUL implementations are the only arch-optimized 10423 versions, and these also use the CRC_x86_CLMUL macro to tell when 10424 crc_x86_clmul.h needs to be included. 10425 10426 is_clmul_supported() was renamed to is_arch_extension_supported(). 10427 crc32_clmul() and crc64_clmul() were renamed to 10428 crc32_arch_optimized() and crc64_arch_optimized(). 10429 This way the names make sense with arch-specific non-CLMUL 10430 implementations as well. 10431 10432 src/liblzma/check/crc32_fast.c | 13 +++++++------ 10433 src/liblzma/check/crc64_fast.c | 13 +++++++------ 10434 src/liblzma/check/crc_common.h | 9 ++++++--- 10435 src/liblzma/check/crc_x86_clmul.h | 21 +++++++++++---------- 10436 4 files changed, 31 insertions(+), 25 deletions(-) 10437 10438commit 3dbed75b0b9c7087c76fe687acb5cf582cd57b99 10439Author: Lasse Collin <lasse.collin@tukaani.org> 10440Date: 2024-01-10 18:19:21 +0200 10441 10442 liblzma: Fix a comment in crc_common.h. 10443 10444 src/liblzma/check/crc_common.h | 3 ++- 10445 1 file changed, 2 insertions(+), 1 deletion(-) 10446 10447commit 419f55f9dfc2df8792902b8953d50690121afeea 10448Author: Lasse Collin <lasse.collin@tukaani.org> 10449Date: 2023-10-20 23:35:10 +0300 10450 10451 liblzma: Avoid extern lzma_crc32_clmul() and lzma_crc64_clmul(). 10452 10453 A CLMUL-only build will have the crcxx_clmul() inlined into 10454 lzma_crcxx(). Previously a jump to the extern lzma_crcxx_clmul() 10455 was needed. Notes about shared liblzma on ELF platforms: 10456 10457 - On platforms that support ifunc and -fvisibility=hidden, this 10458 was silly because CLMUL-only build would have that single extra 10459 jump instruction of extra overhead. 10460 10461 - On platforms that support neither -fvisibility=hidden nor linker 10462 version script (liblzma*.map), jumping to lzma_crcxx_clmul() 10463 would go via PLT so a few more instructions of overhead (still 10464 not a big issue but silly nevertheless). 10465 10466 There was a downside with static liblzma too: if an application only 10467 needs lzma_crc64(), static linking would make the linker include the 10468 CLMUL code for both CRC32 and CRC64 from crc_x86_clmul.o even though 10469 the CRC32 code wouldn't be needed, thus increasing code size of the 10470 executable (assuming that -ffunction-sections isn't used). 10471 10472 Also, now compilers are likely to inline crc_simd_body() 10473 even if they don't support the always_inline attribute 10474 (or MSVC's __forceinline). Quite possibly all compilers 10475 that build the code do support such an attribute. But now 10476 it likely isn't a problem even if the attribute wasn't supported. 10477 10478 Now all x86-specific stuff is in crc_x86_clmul.h. If other archs 10479 The other archs can then have their own headers with their own 10480 is_clmul_supported() and crcxx_clmul(). 10481 10482 Another bonus is that the build system doesn't need to care if 10483 crc_clmul.c is needed. 10484 10485 is_clmul_supported() stays as inline function as it's not needed 10486 when doing a CLMUL-only build (avoids a warning about unused function). 10487 10488 CMakeLists.txt | 7 +- 10489 configure.ac | 1 - 10490 src/liblzma/check/Makefile.inc | 6 +- 10491 src/liblzma/check/crc32_fast.c | 9 ++- 10492 src/liblzma/check/crc64_fast.c | 9 ++- 10493 src/liblzma/check/crc_common.h | 64 ---------------- 10494 src/liblzma/check/{crc_clmul.c => crc_x86_clmul.h} | 86 ++++++++++++++++++---- 10495 7 files changed, 91 insertions(+), 91 deletions(-) 10496 10497commit e3833e297dfb5021a197bda34ba2a795e30aaf8a 10498Author: Lasse Collin <lasse.collin@tukaani.org> 10499Date: 2023-10-21 00:06:52 +0300 10500 10501 liblzma: crc_clmul.c: Add crc_attr_target macro. 10502 10503 This reduces the number of the complex #if directives. 10504 10505 src/liblzma/check/crc_clmul.c | 30 ++++++++++++++++-------------- 10506 1 file changed, 16 insertions(+), 14 deletions(-) 10507 10508commit d164ac0e62904126f7920c25f9a2875c8cd28b97 10509Author: Lasse Collin <lasse.collin@tukaani.org> 10510Date: 2023-10-20 22:49:48 +0300 10511 10512 liblzma: Simplify existing cases with lzma_attr_no_sanitize_address. 10513 10514 src/liblzma/check/crc_clmul.c | 12 +++--------- 10515 1 file changed, 3 insertions(+), 9 deletions(-) 10516 10517commit 9523c1300d22fa715765c181cf991d14d6112fb1 10518Author: Lasse Collin <lasse.collin@tukaani.org> 10519Date: 2023-10-20 21:53:35 +0300 10520 10521 liblzma: #define crc_attr_no_sanitize_address in crc_common.h. 10522 10523 src/liblzma/check/crc_common.h | 10 ++++++++++ 10524 1 file changed, 10 insertions(+) 10525 10526commit 93d144f0930821590524247bd174afd38003d7f0 10527Author: Lasse Collin <lasse.collin@tukaani.org> 10528Date: 2023-10-20 23:25:14 +0300 10529 10530 liblzma: CRC: Add empty lines. 10531 10532 And remove one too. 10533 10534 src/liblzma/check/crc32_fast.c | 2 ++ 10535 src/liblzma/check/crc64_fast.c | 3 +++ 10536 src/liblzma/check/crc_clmul.c | 1 - 10537 3 files changed, 5 insertions(+), 1 deletion(-) 10538 10539commit 0c7e854ffd27f1cec2e9b0e61601d6f90bfa10ae 10540Author: Lasse Collin <lasse.collin@tukaani.org> 10541Date: 2023-10-20 23:19:33 +0300 10542 10543 liblzma: crc_clmul.c: Tidy up the location of MSVC pragma. 10544 10545 It makes no difference in practice. 10546 10547 src/liblzma/check/crc_clmul.c | 4 ++-- 10548 1 file changed, 2 insertions(+), 2 deletions(-) 10549 10550commit 15cf3f04f270d707a5c91cc0208b23b6db42b774 10551Author: Lasse Collin <lasse.collin@tukaani.org> 10552Date: 2023-12-20 21:16:24 +0200 10553 10554 Update THANKS. 10555 10556 THANKS | 1 + 10557 1 file changed, 1 insertion(+) 10558 10559commit cd64dd70d5665b6048829c45772d08606f44672e 10560Author: Lasse Collin <lasse.collin@tukaani.org> 10561Date: 2023-12-20 21:15:16 +0200 10562 10563 liblzma: Use 8-byte method in memcmplen.h on ARM64. 10564 10565 It requires fast unaligned access to 64-bit integers 10566 and a fast instruction to count leading zeros in 10567 a 64-bit integer (__builtin_ctzll()). This perhaps 10568 should be enabled on some other archs too. 10569 10570 Thanks to Chenxi Mao for the original patch: 10571 https://github.com/tukaani-project/xz/pull/75 (the first commit) 10572 According to the numbers there, this may improve encoding 10573 speed by about 3-5 %. 10574 10575 This enables the 8-byte method on MSVC ARM64 too which 10576 should work but wasn't tested. 10577 10578 src/liblzma/common/memcmplen.h | 18 ++++++++++-------- 10579 1 file changed, 10 insertions(+), 8 deletions(-) 10580 10581commit 12c90c00f05e19da3c0c91d8cd8e0d0d45965606 10582Author: Lasse Collin <lasse.collin@tukaani.org> 10583Date: 2023-12-20 21:01:06 +0200 10584 10585 liblzma: Check also for __clang__ in memcmplen.h. 10586 10587 This change hopefully makes no practical difference as Clang 10588 likely was detected via __GNUC__ or _MSC_VER already. 10589 10590 src/liblzma/common/memcmplen.h | 3 ++- 10591 1 file changed, 2 insertions(+), 1 deletion(-) 10592 10593commit 133c5851eb917c6d99d0b623c1689c8518e65f38 10594Author: Jia Tan <jiat0218@gmail.com> 10595Date: 2023-12-21 21:39:08 +0800 10596 10597 Translations: Update the French translation. 10598 10599 po/fr.po | 632 +++++++++++++++++++++++++++++++++++++-------------------------- 10600 1 file changed, 370 insertions(+), 262 deletions(-) 10601 10602commit 710cbc186cad0ac601c38bd6bf31167648a5581e 10603Author: Jia Tan <jiat0218@gmail.com> 10604Date: 2023-12-21 16:39:53 +0800 10605 10606 xz: Add a comment to Capsicum sandbox setup. 10607 10608 This comment is repeated in xzdec.c to help remind us why all the 10609 capabilities are removed from stdin in certain situations. 10610 10611 src/xz/file_io.c | 1 + 10612 1 file changed, 1 insertion(+) 10613 10614commit 4e1c695676bafbaecc9fb307f6ee94138ae72c12 10615Author: Jia Tan <jiat0218@gmail.com> 10616Date: 2023-12-20 22:19:19 +0800 10617 10618 Docs: Update --enable-sandbox option in INSTALL. 10619 10620 xzdec now also uses the sandbox when its configured. 10621 10622 INSTALL | 17 ++++++++++------- 10623 1 file changed, 10 insertions(+), 7 deletions(-) 10624 10625commit ebddf20214143a8e002ab897e95e880bb4c5ac44 10626Author: Jia Tan <jiat0218@gmail.com> 10627Date: 2023-12-20 22:39:13 +0800 10628 10629 CMake: Move sandbox detection outside of xz section. 10630 10631 The sandbox is now enabled for xzdec as well, so it no longer belongs 10632 in just the xz section. xz and xzdec are always built, except for older 10633 MSVC versions, so there isn't a need to conditionally show the sandbox 10634 configuration. CMake will do a little unecessary work on older MSVC 10635 versions that can't build xz or xzdec, but this is a very small 10636 downside. 10637 10638 CMakeLists.txt | 178 +++++++++++++++++++++++++++++++-------------------------- 10639 1 file changed, 98 insertions(+), 80 deletions(-) 10640 10641commit 5feb09266fd2928ec0a4dcb98c1dc7f053111316 10642Author: Jia Tan <jiat0218@gmail.com> 10643Date: 2023-12-20 22:43:44 +0800 10644 10645 Build: Allow sandbox to be configured for just xzdec. 10646 10647 If xz is disabled, then xzdec can still use the sandbox. 10648 10649 configure.ac | 10 +++++----- 10650 1 file changed, 5 insertions(+), 5 deletions(-) 10651 10652commit d74fb5f060b76db709b50f5fd37490394e52f975 10653Author: Jia Tan <jiat0218@gmail.com> 10654Date: 2023-12-19 21:18:28 +0800 10655 10656 xzdec: Add sandbox support for Pledge, Capsicum, and Landlock. 10657 10658 A very strict sandbox is used when the last file is decompressed. The 10659 likely most common use case of xzdec is to decompress a single file. 10660 The Pledge sandbox is applied to the entire process with slightly more 10661 relaxed promises, until the last file is processed. 10662 10663 Thanks to Christian Weisgerber for the initial patch adding Pledge 10664 sandboxing. 10665 10666 src/xzdec/xzdec.c | 146 +++++++++++++++++++++++++++++++++++++++++++++++++++--- 10667 1 file changed, 139 insertions(+), 7 deletions(-) 10668 10669commit b34b6a9912d6165e34ba0db151b7f9941d2e06d5 10670Author: Jia Tan <jiat0218@gmail.com> 10671Date: 2023-12-20 21:31:34 +0800 10672 10673 liblzma: Initialize lzma_lz_encoder pointers with NULL. 10674 10675 This fixes the recent change to lzma_lz_encoder that used memzero 10676 instead of the NULL constant. On some compilers the NULL constant 10677 (always 0) may not equal the NULL pointer (this only needs to guarentee 10678 to not point to valid memory address). 10679 10680 Later code compares the pointers to the NULL pointer so we must 10681 initialize them with the NULL pointer instead of 0 to guarentee 10682 code correctness. 10683 10684 src/liblzma/lz/lz_encoder.c | 6 +++++- 10685 1 file changed, 5 insertions(+), 1 deletion(-) 10686 10687commit 183a62f0b540ff4d23cc19b2b6bc2525f0bd64df 10688Author: Jia Tan <jiat0218@gmail.com> 10689Date: 2023-12-16 20:51:38 +0800 10690 10691 liblzma: Set all values in lzma_lz_encoder to NULL after allocation. 10692 10693 The first member of lzma_lz_encoder doesn't necessarily need to be set 10694 to NULL since it will always be set before anything tries to use it. 10695 However the function pointer members must be set to NULL since other 10696 functions rely on this NULL value to determine if this behavior is 10697 supported or not. 10698 10699 This fixes a somewhat serious bug, where the options_update() and 10700 set_out_limit() function pointers are not set to NULL. This seems to 10701 have been forgotten since these function pointers were added many years 10702 after the original two (code() and end()). 10703 10704 The problem is that by not setting this to NULL we are relying on the 10705 memory allocation to zero things out if lzma_filters_update() is called 10706 on a LZMA1 encoder. The function pointer for set_out_limit() is less 10707 serious because there is not an API function that could call this in an 10708 incorrect way. set_out_limit() is only called by the MicroLZMA encoder, 10709 which must use LZMA1 where set_out_limit() is always set. Its currently 10710 not possible to call set_out_limit() on an LZMA2 encoder at this time. 10711 10712 So calling lzma_filters_update() on an LZMA1 encoder had undefined 10713 behavior since its possible that memory could be manipulated so the 10714 options_update member pointed to a different instruction sequence. 10715 10716 This is unlikely to be a bug in an existing application since it relies 10717 on calling lzma_filters_update() on an LZMA1 encoder in the first place. 10718 For instance, it does not affect xz because lzma_filters_update() can 10719 only be used when encoding to the .xz format. 10720 10721 This is fixed by using memzero() to set all members of lzma_lz_encoder 10722 to NULL after it is allocated. This ensures this mistake will not occur 10723 here in the future if any additional function pointers are added. 10724 10725 src/liblzma/lz/lz_encoder.c | 4 +--- 10726 1 file changed, 1 insertion(+), 3 deletions(-) 10727 10728commit 1a1bb381db7a20cf86cb45a350e5cca35224d017 10729Author: Jia Tan <jiat0218@gmail.com> 10730Date: 2023-12-16 20:30:55 +0800 10731 10732 liblzma: Tweak a comment. 10733 10734 src/liblzma/lz/lz_encoder.c | 2 +- 10735 1 file changed, 1 insertion(+), 1 deletion(-) 10736 10737commit 55810780e04f759747b02683fb8020b8cd022a85 10738Author: Jia Tan <jiat0218@gmail.com> 10739Date: 2023-12-16 20:28:21 +0800 10740 10741 liblzma: Make parameter names in function definition match declaration. 10742 10743 lzma_raw_encoder() and lzma_raw_encoder_init() used "options" as the 10744 parameter name instead of "filters" (used by the declaration). "filters" 10745 is more clear since the parameter represents the list of filters passed 10746 to the raw encoder, each of which contains filter options. 10747 10748 src/liblzma/common/filter_encoder.c | 8 ++++---- 10749 1 file changed, 4 insertions(+), 4 deletions(-) 10750 10751commit 5dad6f628af742bab826819760deb677597445f7 10752Author: Jia Tan <jiat0218@gmail.com> 10753Date: 2023-12-16 20:18:47 +0800 10754 10755 liblzma: Improve lzma encoder init function consistency. 10756 10757 lzma_encoder_init() did not check for NULL options, but 10758 lzma2_encoder_init() did. This is more of a code style improvement than 10759 anything else to help make lzma_encoder_init() and lzma2_encoder_init() 10760 more similar. 10761 10762 src/liblzma/lzma/lzma_encoder.c | 3 +++ 10763 1 file changed, 3 insertions(+) 10764 10765commit e1b1a9d6370b788bd6078952c6c201e12bc27cbf 10766Author: Jia Tan <jiat0218@gmail.com> 10767Date: 2023-12-16 11:20:20 +0800 10768 10769 Docs: Update repository URL in Changelog. 10770 10771 ChangeLog | 2 +- 10772 1 file changed, 1 insertion(+), 1 deletion(-) 10773 10774commit f9b82bc64a9405e486575c65c1729229eb0a8198 10775Author: Jia Tan <jiat0218@gmail.com> 10776Date: 2023-12-15 16:56:31 +0800 10777 10778 CI: Update Upload Artifact Action. 10779 10780 .github/workflows/ci.yml | 2 +- 10781 .github/workflows/windows-ci.yml | 2 +- 10782 2 files changed, 2 insertions(+), 2 deletions(-) 10783 10784commit d0b24efe6cdc47db5b0fdf6306f70a2e0e63e49e 10785Author: Jia Tan <jiat0218@gmail.com> 10786Date: 2023-12-07 21:48:07 +0800 10787 10788 Tests: Silence -Wsign-conversion warning on GCC version < 10. 10789 10790 Since GCC version 10, GCC no longer complains about simple implicit 10791 integer conversions with Arithmetic operators. 10792 10793 For instance: 10794 10795 uint8_t a = 5; 10796 uint32_t b = a + 5; 10797 10798 Give a warning on GCC 9 and earlier but this: 10799 10800 uint8_t a = 5; 10801 uint32_t b = (a + 5) * 2; 10802 10803 Gives a warning with GCC 10+. 10804 10805 tests/test_block_header.c | 2 +- 10806 1 file changed, 1 insertion(+), 1 deletion(-) 10807 10808commit 4a972a8ee3ed88ac14067c1d2f15b78988e5dae8 10809Author: Jia Tan <jiat0218@gmail.com> 10810Date: 2023-12-06 18:39:03 +0800 10811 10812 Update THANKS. 10813 10814 THANKS | 1 + 10815 1 file changed, 1 insertion(+) 10816 10817commit ee2f48350099201694a7586e41d7aa2f09fc74da 10818Author: Jia Tan <jiat0218@gmail.com> 10819Date: 2023-12-06 18:30:25 +0800 10820 10821 Tests: Minor cleanups to OSS-Fuzz files. 10822 10823 Most of these fixes are small typos and tweaks. A few were caused by bad 10824 advice from me. Here is the summary of what is changed: 10825 10826 - Author line edits 10827 10828 - Small comment changes/additions 10829 10830 - Using the return value in the error messages in the fuzz targets' 10831 coder initialization code 10832 10833 - Removed fuzz_encode_stream.options. This set a max length, which may 10834 prevent some worthwhile code paths from being properly exercised. 10835 10836 - Removed the max_len option from fuzz_decode_stream.options for the 10837 same reason as fuzz_encode_stream. The alone decoder fuzz target still 10838 has this restriction. 10839 10840 - Altered the dictionary contents for fuzz_lzma.dict. Instead of keeping 10841 the properties static and varying the dictionary size, the properties 10842 are varied and the dictionary size is kept small. The dictionary size 10843 doesn't have much impact on the code paths but the properties do. 10844 10845 Closes: https://github.com/tukaani-project/xz/pull/73 10846 10847 tests/ossfuzz/Makefile | 3 ++ 10848 tests/ossfuzz/config/fuzz_decode_stream.options | 1 - 10849 tests/ossfuzz/config/fuzz_lzma.dict | 34 +++++++++++----------- 10850 tests/ossfuzz/fuzz_common.h | 16 +++++------ 10851 tests/ossfuzz/fuzz_decode_alone.c | 15 +++++----- 10852 tests/ossfuzz/fuzz_decode_stream.c | 15 +++++----- 10853 tests/ossfuzz/fuzz_encode_stream.c | 38 +++++++++++++++---------- 10854 7 files changed, 66 insertions(+), 56 deletions(-) 10855 10856commit 483bb90eec7c83e1c2bcd06287714afd62d8c17d 10857Author: Maksym Vatsyk <maksym.vatsyk@leviathansecurity.com> 10858Date: 2023-12-05 16:31:09 +0100 10859 10860 Tests: Add fuzz_encode_stream ossfuzz target. 10861 10862 This fuzz target handles .xz stream encoding. The first byte of input 10863 is used to dynamically set the preset level in order to increase the 10864 fuzz coverage of complex critical code paths. 10865 10866 tests/ossfuzz/config/fuzz_encode_stream.options | 2 + 10867 tests/ossfuzz/fuzz_encode_stream.c | 79 +++++++++++++++++++++++++ 10868 2 files changed, 81 insertions(+) 10869 10870commit 7ca8c9869df82756c3128c4fcf1058da4d18aa48 10871Author: Maksym Vatsyk <maksym.vatsyk@leviathansecurity.com> 10872Date: 2023-12-04 17:23:24 +0100 10873 10874 Tests: Add fuzz_decode_alone OSS-Fuzz target 10875 10876 This fuzz target that handles LZMA alone decoding. A new fuzz 10877 dictionary .dict was also created with common LZMA header values to 10878 help speed up the discovery of valid headers. 10879 10880 tests/ossfuzz/config/fuzz_decode_alone.options | 3 ++ 10881 tests/ossfuzz/config/fuzz_lzma.dict | 22 ++++++++++++++ 10882 tests/ossfuzz/fuzz_decode_alone.c | 41 ++++++++++++++++++++++++++ 10883 3 files changed, 66 insertions(+) 10884 10885commit 37581a77ad5a49615325b1d1925fdc402b1e1d5a 10886Author: Maksym Vatsyk <maksym.vatsyk@leviathansecurity.com> 10887Date: 2023-12-04 17:21:29 +0100 10888 10889 Tests: Update OSS-Fuzz Makefile. 10890 10891 All .c files can be built as separate fuzz targets. This simplifies 10892 the Makefile by allowing us to use wildcards instead of having a 10893 Makefile target for each fuzz target. 10894 10895 tests/ossfuzz/Makefile | 13 +++++++++---- 10896 1 file changed, 9 insertions(+), 4 deletions(-) 10897 10898commit 28ce6a1c2a74866c51f7996a6869679c236d3c94 10899Author: Maksym Vatsyk <maksym.vatsyk@leviathansecurity.com> 10900Date: 2023-12-04 17:20:08 +0100 10901 10902 Tests: Move common OSS-Fuzz target code to .h file. 10903 10904 tests/ossfuzz/fuzz_common.h | 56 ++++++++++++++++++++++++++++++++++++ 10905 tests/ossfuzz/fuzz_decode_stream.c | 59 ++++++++++---------------------------- 10906 2 files changed, 71 insertions(+), 44 deletions(-) 10907 10908commit bf0521ea1591c25b9d510c1b8be86073e9d847c6 10909Author: Maksym Vatsyk <maksym.vatsyk@leviathansecurity.com> 10910Date: 2023-12-04 17:18:20 +0100 10911 10912 Tests: Rename OSS-Fuzz files. 10913 10914 tests/ossfuzz/config/fuzz.options | 2 -- 10915 tests/ossfuzz/config/fuzz_decode_stream.options | 3 +++ 10916 tests/ossfuzz/config/{fuzz.dict => fuzz_xz.dict} | 0 10917 tests/ossfuzz/{fuzz.c => fuzz_decode_stream.c} | 0 10918 4 files changed, 3 insertions(+), 2 deletions(-) 10919 10920commit 685094b8e1c1aa1bf934de0366ca42ef599d25f7 10921Author: Jia Tan <jiat0218@gmail.com> 10922Date: 2023-11-30 23:10:43 +0800 10923 10924 Update THANKS. 10925 10926 THANKS | 1 + 10927 1 file changed, 1 insertion(+) 10928 10929commit 3b3023e00b0071e10f589bbc3674e0ec432b8add 10930Author: Kian-Meng Ang <kianmeng@cpan.org> 10931Date: 2023-11-30 23:01:19 +0800 10932 10933 Tests: Fix typos 10934 10935 tests/test_index.c | 2 +- 10936 tests/test_lzip_decoder.c | 4 ++-- 10937 2 files changed, 3 insertions(+), 3 deletions(-) 10938 10939commit 424d46ead8cbc0da57f406b76926ec4ed47437f5 10940Author: Kian-Meng Ang <kianmeng@cpan.org> 10941Date: 2023-11-30 22:59:47 +0800 10942 10943 xz: Fix typo 10944 10945 src/xz/file_io.c | 2 +- 10946 1 file changed, 1 insertion(+), 1 deletion(-) 10947 10948commit 35558adf9c45e5597f2c8dbd969885dd484038d2 10949Author: Jia Tan <jiat0218@gmail.com> 10950Date: 2023-11-30 20:41:00 +0800 10951 10952 Update THANKS. 10953 10954 THANKS | 1 + 10955 1 file changed, 1 insertion(+) 10956 10957commit fd170e8557727bed6bec0518c16415064d972e4e 10958Author: Jia Tan <jiat0218@gmail.com> 10959Date: 2023-11-22 21:20:12 +0800 10960 10961 CI: Test musl libc builds on Ubuntu runner. 10962 10963 .github/workflows/ci.yml | 19 +++++++++++++++++-- 10964 1 file changed, 17 insertions(+), 2 deletions(-) 10965 10966commit db2b4aa068a492c0013279a4ed43803e8ff9bb3e 10967Author: Jia Tan <jiat0218@gmail.com> 10968Date: 2023-11-22 21:12:15 +0800 10969 10970 CI: Allow ci_build.sh to set a different C compiler. 10971 10972 build-aux/ci_build.sh | 11 ++++++++++- 10973 1 file changed, 10 insertions(+), 1 deletion(-) 10974 10975commit ff7badef53c2cd698d4b72b945f34dfd0835e13c 10976Author: Jia Tan <jiat0218@gmail.com> 10977Date: 2023-11-24 21:19:12 +0800 10978 10979 CMake: Use consistent indentation with check_c_source_compiles(). 10980 10981 CMakeLists.txt | 4 ++-- 10982 1 file changed, 2 insertions(+), 2 deletions(-) 10983 10984commit d4af167570f2c14b002ee18a39d5b1e7e5a892b1 10985Author: Jia Tan <jiat0218@gmail.com> 10986Date: 2023-11-22 20:33:36 +0800 10987 10988 CMake: Change __attribute__((__ifunc__())) detection. 10989 10990 This renames ALLOW_ATTR_IFUNC to USE_ATTR_IFUNC and applies the ifunc 10991 detection changes that were made to the Autotools build. 10992 10993 Fixes: https://github.com/tukaani-project/xz/issues/70 10994 10995 CMakeLists.txt | 53 +++++++++++++++++++++++++++++++++++++++++++++-------- 10996 1 file changed, 45 insertions(+), 8 deletions(-) 10997 10998commit 20ecee40a0053fd16371ef0628046bf45e548d72 10999Author: Jia Tan <jiat0218@gmail.com> 11000Date: 2023-11-24 20:19:11 +0800 11001 11002 Docs: Update INSTALL for --enable_ifunc change. 11003 11004 INSTALL | 16 ++++++++-------- 11005 1 file changed, 8 insertions(+), 8 deletions(-) 11006 11007commit ffb456593d695d70052a2f71c7a2e6269217d194 11008Author: Jia Tan <jiat0218@gmail.com> 11009Date: 2023-11-21 20:56:55 +0800 11010 11011 Build: Change --enable-ifunc handling. 11012 11013 Some compilers support __attribute__((__ifunc__())) even though the 11014 dynamic linker does not. The compiler is able to create the binary 11015 but it will fail on startup. So it is not enough to just test if 11016 the attribute is supported. 11017 11018 The default value for enable_ifunc is now auto, which will attempt 11019 to compile a program using __attribute__((__ifunc__())). There are 11020 additional checks in this program if glibc is being used or if it 11021 is running on FreeBSD. 11022 11023 Setting --enable-ifunc will skip this test and always enable 11024 __attribute__((__ifunc__())), even if is not supported. 11025 11026 configure.ac | 61 +++++++++++++++++++++++++++++++++++++++++++----------------- 11027 1 file changed, 44 insertions(+), 17 deletions(-) 11028 11029commit 12b89bcc9915090eb42ae638e565af44b6832a23 11030Author: Lasse Collin <lasse.collin@tukaani.org> 11031Date: 2023-11-23 17:39:10 +0200 11032 11033 xz: Tweak a comment. 11034 11035 src/xz/util.c | 4 ++-- 11036 1 file changed, 2 insertions(+), 2 deletions(-) 11037 11038commit 2ab2e4b5a542eab93902985ce4e642719a8b7a4e 11039Author: Jia Tan <jiat0218@gmail.com> 11040Date: 2023-11-23 22:13:39 +0800 11041 11042 xz: Use is_tty() in message.c. 11043 11044 src/xz/message.c | 7 +------ 11045 1 file changed, 1 insertion(+), 6 deletions(-) 11046 11047commit 584e3a258f32d579b1d07f99b4dc6e856c10ac7e 11048Author: Jia Tan <jiat0218@gmail.com> 11049Date: 2023-11-23 22:04:35 +0800 11050 11051 xz: Create separate is_tty() function. 11052 11053 The new is_tty() will report if a file descriptor is a terminal or not. 11054 On POSIX systems, it is a wrapper around isatty(). However, the native 11055 Windows implementation of isatty() will return true for all character 11056 devices, not just terminals. So is_tty() has a special case for Windows 11057 so it can use alternative Windows API functions to determine if a file 11058 descriptor is a terminal. 11059 11060 This fixes a bug with MSVC and MinGW-w64 builds that refused to read from 11061 or write to non-terminal character devices because xz thought it was a 11062 terminal. For instance: 11063 11064 xz foo -c > /dev/null 11065 11066 would fail because /dev/null was assumed to be a terminal. 11067 11068 src/xz/util.c | 30 +++++++++++++++++++++++------- 11069 src/xz/util.h | 14 ++++++++++++++ 11070 2 files changed, 37 insertions(+), 7 deletions(-) 11071 11072commit 6b05f827f50e686537e9a23c49c5aa4c0aa6b23d 11073Author: Jia Tan <jiat0218@gmail.com> 11074Date: 2023-11-22 20:39:41 +0800 11075 11076 tuklib_integer: Fix typo discovered by codespell. 11077 11078 Based on internet dictionary searches, 'choise' is an outdated spelling 11079 of 'choice'. 11080 11081 src/common/tuklib_integer.h | 2 +- 11082 1 file changed, 1 insertion(+), 1 deletion(-) 11083 11084commit 659aca0d695807c0762d4101765189e4e33d1e2c 11085Author: Lasse Collin <lasse.collin@tukaani.org> 11086Date: 2023-11-17 19:35:19 +0200 11087 11088 xz: Move the check for --suffix with --format=raw a few lines earlier. 11089 11090 Now it reads from argv[] instead of args->arg_names. 11091 11092 src/xz/args.c | 44 ++++++++++++++++++++++---------------------- 11093 1 file changed, 22 insertions(+), 22 deletions(-) 11094 11095commit ca278eb2b7f5a4940f5ab18955297b398d423824 11096Author: Jia Tan <jiat0218@gmail.com> 11097Date: 2023-11-17 20:35:11 +0800 11098 11099 Tests: Create test_suffix.sh. 11100 11101 This tests some complicated interactions with the --suffix= option. 11102 The suffix option must be used with --format=raw, but can optionally 11103 be used to override the default .xz suffix. 11104 11105 This test also verifies some recent bugs have been correctly solved 11106 and to hopefully avoid further regressions in the future. 11107 11108 tests/Makefile.am | 2 + 11109 tests/test_suffix.sh | 189 +++++++++++++++++++++++++++++++++++++++++++++++++++ 11110 2 files changed, 191 insertions(+) 11111 11112commit 2a732aba22da1b0d4a1241cb32280ed010ba03ce 11113Author: Jia Tan <jiat0218@gmail.com> 11114Date: 2023-11-17 20:19:26 +0800 11115 11116 xz: Fix a bug with --files and --files0 in raw mode without a suffix. 11117 11118 The following command caused a segmentation fault: 11119 11120 xz -Fraw --lzma1 --files=foo 11121 11122 when foo was a valid file. The usage of --files or --files0 was not 11123 being checked when compressing or decompressing in raw mode without a 11124 suffix. The suffix checking code was meant to validate that all files 11125 to be processed are "-" (if not writing to standard out), meaning the 11126 data is only coming from standard in. In this case, there were no file 11127 names to check since --files and --files0 store their file name in a 11128 different place. 11129 11130 Later code assumed the suffix was set and caused a segmentation fault. 11131 Now, the above command results in an error. 11132 11133 src/xz/args.c | 5 +++++ 11134 1 file changed, 5 insertions(+) 11135 11136commit 299920bab9ae258a247366339264e8aefca9e3ce 11137Author: Jia Tan <jiat0218@gmail.com> 11138Date: 2023-11-17 20:04:58 +0800 11139 11140 Tests: Fix typo in a comment. 11141 11142 tests/test_files.sh | 2 +- 11143 1 file changed, 1 insertion(+), 1 deletion(-) 11144 11145commit f481523baac946fa3bc13d79186ffaf0c0b818a7 11146Author: Jia Tan <jiat0218@gmail.com> 11147Date: 2023-11-15 23:40:13 +0800 11148 11149 xz: Refactor suffix test with raw format. 11150 11151 The previous version set opt_stdout, but this caused an issue with 11152 copying an input file to standard out when decompressing an unknown file 11153 type. The following needs to result in an error: 11154 11155 echo foo | xz -df 11156 11157 since -c, --stdout is not used. This fixes the previous error by not 11158 setting opt_stdout. 11159 11160 src/xz/args.c | 38 +++++++++++++------------------------- 11161 1 file changed, 13 insertions(+), 25 deletions(-) 11162 11163commit 837ea40b1c9d4998cac4500b55171bf33e0c31a6 11164Author: Jia Tan <jiat0218@gmail.com> 11165Date: 2023-11-14 20:27:46 +0800 11166 11167 xz: Move suffix check after stdout mode is detected. 11168 11169 This fixes a bug introduced in cc5aa9ab138beeecaee5a1e81197591893ee9ca0 11170 when the suffix check was initially moved. This caused a situation that 11171 previously worked: 11172 11173 echo foo | xz -Fraw --lzma1 | wc -c 11174 11175 to fail because the old code knew that this would write to standard out 11176 so a suffix was not needed. 11177 11178 src/xz/args.c | 16 ++++++++-------- 11179 1 file changed, 8 insertions(+), 8 deletions(-) 11180 11181commit d4f4a4d040ef47a5e82dffd0f067e92716606ddf 11182Author: Jia Tan <jiat0218@gmail.com> 11183Date: 2023-11-14 20:27:04 +0800 11184 11185 xz: Detect when all data will be written to standard out earlier. 11186 11187 If the -c, --stdout argument is not used, then we can still detect when 11188 the data will be written to standard out if all of the provided 11189 filenames are "-" (denoting standard in) or if no filenames are 11190 provided. 11191 11192 src/xz/args.c | 21 +++++++++++++++++++++ 11193 1 file changed, 21 insertions(+) 11194 11195commit 2ade7246e7ba729a91460d2fab0f4c7b89d3998b 11196Author: Jia Tan <jiat0218@gmail.com> 11197Date: 2023-11-09 01:21:53 +0800 11198 11199 liblzma: Add missing comments to lz_encoder.h. 11200 11201 src/liblzma/lz/lz_encoder.h | 6 +++++- 11202 1 file changed, 5 insertions(+), 1 deletion(-) 11203 11204commit 5fe1450603dc625340b8b7866fb4a83ff748ad06 11205Author: Jia Tan <jiat0218@gmail.com> 11206Date: 2023-11-01 20:18:30 +0800 11207 11208 Add NEWS for 5.4.5. 11209 11210 NEWS | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 11211 1 file changed, 74 insertions(+) 11212 11213commit 46007049cd42e606543dbe650feb17bdf4469c29 11214Author: Lasse Collin <lasse.collin@tukaani.org> 11215Date: 2023-10-31 21:41:09 +0200 11216 11217 liblzma: Fix compilation of fastpos_tablegen.c. 11218 11219 The macro lzma_attr_visibility_hidden has to be defined to make 11220 fastpos.h usable. The visibility attribute is irrelevant to 11221 fastpos_tablegen.c so simply #define the macro to an empty value. 11222 11223 fastpos_tablegen.c is never built by the included build systems 11224 and so the problem wasn't noticed earlier. It's just a standalone 11225 program for generating fastpos_table.c. 11226 11227 Fixes: https://github.com/tukaani-project/xz/pull/69 11228 Thanks to GitHub user Jamaika1. 11229 11230 src/liblzma/lzma/fastpos_tablegen.c | 2 ++ 11231 1 file changed, 2 insertions(+) 11232 11233commit 148e20607e95781558bdfc823ecba07b7af4b590 11234Author: Jia Tan <jiat0218@gmail.com> 11235Date: 2023-10-31 21:51:40 +0800 11236 11237 Build: Fix text wrapping in an output message. 11238 11239 configure.ac | 9 +++++---- 11240 1 file changed, 5 insertions(+), 4 deletions(-) 11241 11242commit 8c36ab79cbf23104ce7a3d533d5ac98cd492e57c 11243Author: Lasse Collin <lasse.collin@tukaani.org> 11244Date: 2023-10-30 18:09:53 +0200 11245 11246 liblzma: Add a note why crc_always_inline exists for now. 11247 11248 Solaris Studio is a possible example (not tested) which 11249 supports the always_inline attribute but might not get 11250 detected by the common.h #ifdefs. 11251 11252 src/liblzma/check/crc_common.h | 5 +++++ 11253 1 file changed, 5 insertions(+) 11254 11255commit e7a86b94cd247435ac96bc79ba528b690b9ca388 11256Author: Lasse Collin <lasse.collin@tukaani.org> 11257Date: 2023-10-22 17:59:11 +0300 11258 11259 liblzma: Use lzma_always_inline in memcmplen.h. 11260 11261 src/liblzma/common/memcmplen.h | 3 +-- 11262 1 file changed, 1 insertion(+), 2 deletions(-) 11263 11264commit dcfe5632992fb7f06f921da13fcdd84f83d0d285 11265Author: Lasse Collin <lasse.collin@tukaani.org> 11266Date: 2023-10-30 17:43:03 +0200 11267 11268 liblzma: #define lzma_always_inline in common.h. 11269 11270 src/liblzma/common/common.h | 17 +++++++++++++++++ 11271 1 file changed, 17 insertions(+) 11272 11273commit 41113fe30a47f6fd3e30cb4494dd538e86212edf 11274Author: Lasse Collin <lasse.collin@tukaani.org> 11275Date: 2023-10-22 17:15:32 +0300 11276 11277 liblzma: Use lzma_attr_visibility_hidden on private extern declarations. 11278 11279 These variables are internal to liblzma and not exposed in the API. 11280 11281 src/liblzma/check/check.h | 7 +++++++ 11282 src/liblzma/common/stream_flags_common.h | 3 +++ 11283 src/liblzma/lz/lz_encoder_hash.h | 1 + 11284 src/liblzma/lzma/fastpos.h | 1 + 11285 src/liblzma/rangecoder/price.h | 1 + 11286 5 files changed, 13 insertions(+) 11287 11288commit a2f5ca706acc6f7715b8d260a8c6ed50d7717478 11289Author: Lasse Collin <lasse.collin@tukaani.org> 11290Date: 2023-10-22 17:08:39 +0300 11291 11292 liblzma: #define lzma_attr_visibility_hidden in common.h. 11293 11294 In ELF shared libs: 11295 11296 -fvisibility=hidden affects definitions of symbols but not 11297 declarations.[*] This doesn't affect direct calls to functions 11298 inside liblzma as a linker can replace a call to lzma_foo@plt 11299 with a call directly to lzma_foo when -fvisibility=hidden is used. 11300 11301 [*] It has to be like this because otherwise every installed 11302 header file would need to explictly set the symbol visibility 11303 to default. 11304 11305 When accessing extern variables that aren't defined in the 11306 same translation unit, compiler assumes that the variable has 11307 the default visibility and thus indirection is needed. Unlike 11308 function calls, linker cannot optimize this. 11309 11310 Using __attribute__((__visibility__("hidden"))) with the extern 11311 variable declarations tells the compiler that indirection isn't 11312 needed because the definition is in the same shared library. 11313 11314 About 15+ years ago, someone told me that it would be good if 11315 the CRC tables would be defined in the same translation unit 11316 as the C code of the CRC functions. While I understood that it 11317 could help a tiny amount, I didn't want to change the code because 11318 a separate translation unit for the CRC tables was needed for the 11319 x86 assembly code anyway. But when visibility attributes are 11320 supported, simply marking the extern declaration with the 11321 hidden attribute will get identical result. When there are only 11322 a few affected variables, this is trivial to do. I wish I had 11323 understood this back then already. 11324 11325 src/liblzma/common/common.h | 11 +++++++++++ 11326 1 file changed, 11 insertions(+) 11327 11328commit 2c7ee92e44e1e66f0a427555233eb22c78f6c4f8 11329Author: Lasse Collin <lasse.collin@tukaani.org> 11330Date: 2023-09-30 22:54:28 +0300 11331 11332 liblzma: Refer to MinGW-w64 instead of MinGW in the API headers. 11333 11334 MinGW (formely a MinGW.org Project, later the MinGW.OSDN Project 11335 at <https://osdn.net/projects/mingw/>) has GCC 9.2.0 as the 11336 most recent GCC package (released 2021-02-02). The project might 11337 still be alive but majority of people have switched to MinGW-w64. 11338 Thus it seems clearer to refer to MinGW-w64 in our API headers too. 11339 Building with MinGW is likely to still work but I haven't tested it 11340 in the recent years. 11341 11342 src/liblzma/api/lzma.h | 4 ++-- 11343 src/liblzma/api/lzma/version.h | 2 +- 11344 2 files changed, 3 insertions(+), 3 deletions(-) 11345 11346commit 597f49b61475438a43a417236989b2acc968a686 11347Author: Lasse Collin <lasse.collin@tukaani.org> 11348Date: 2023-09-27 00:58:17 +0300 11349 11350 CMake: Use -D_FILE_OFFSET_BITS=64 if (and only if) needed. 11351 11352 A CMake option LARGE_FILE_SUPPORT is created if and only if 11353 -D_FILE_OFFSET_BITS=64 affects sizeof(off_t). 11354 11355 This is needed on many 32-bit platforms and even with 64-bit builds 11356 with MinGW-w64 to get support for files larger than 2 GiB. 11357 11358 CMakeLists.txt | 7 ++++- 11359 cmake/tuklib_large_file_support.cmake | 52 +++++++++++++++++++++++++++++++++++ 11360 2 files changed, 58 insertions(+), 1 deletion(-) 11361 11362commit 1bc548b8210366e44ba35b0b11577a8e328c1228 11363Author: Lasse Collin <lasse.collin@tukaani.org> 11364Date: 2023-09-30 02:14:25 +0300 11365 11366 CMake: Generate and install liblzma.pc if not using MSVC. 11367 11368 Autotools based build uses -pthread and thus adds it to Libs.private 11369 in liblzma.pc. CMake doesn't use -pthread at all if pthread functions 11370 are available in libc so Libs.private doesn't get -pthread either. 11371 11372 CMakeLists.txt | 21 +++++++++++++++++++++ 11373 1 file changed, 21 insertions(+) 11374 11375commit 2add71966f891d315105d6245f724ed4f43a4eff 11376Author: Lasse Collin <lasse.collin@tukaani.org> 11377Date: 2023-09-30 01:13:13 +0300 11378 11379 CMake: Rearrange the PACKAGE_ variables. 11380 11381 The windres workaround now replaces spaces with \x20 so 11382 the package name isn't repeated. 11383 11384 These changes will help with creation of liblzma.pc. 11385 11386 CMakeLists.txt | 26 +++++++++++++++----------- 11387 1 file changed, 15 insertions(+), 11 deletions(-) 11388 11389commit a7d1b2825c49dc83f1910eeb8ba0f1dfbd886d91 11390Author: Lasse Collin <lasse.collin@tukaani.org> 11391Date: 2023-09-29 20:46:11 +0300 11392 11393 liblzma: Add Cflags.private to liblzma.pc.in for MSYS2. 11394 11395 It properly adds -DLZMA_API_STATIC when compiling code that 11396 will be linked against static liblzma. Having it there on 11397 systems other than Windows does no harm. 11398 11399 See: https://www.msys2.org/docs/pkgconfig/ 11400 11401 src/liblzma/liblzma.pc.in | 1 + 11402 1 file changed, 1 insertion(+) 11403 11404commit 80e0750e3996c1c659e972ce9cf789ca2e99f702 11405Author: Lasse Collin <lasse.collin@tukaani.org> 11406Date: 2023-09-27 22:46:20 +0300 11407 11408 CMake: Create liblzma.def when building liblzma.dll with MinGW-w64. 11409 11410 CMakeLists.txt | 20 ++++++++++++++++++++ 11411 cmake/remove-ordinals.cmake | 26 ++++++++++++++++++++++++++ 11412 2 files changed, 46 insertions(+) 11413 11414commit 08d12595f486890cf601b87f36ee0ddbce57728e 11415Author: Lasse Collin <lasse.collin@tukaani.org> 11416Date: 2023-10-26 21:44:42 +0300 11417 11418 CMake: Change one CMAKE_CURRENT_SOURCE_DIR to CMAKE_CURRENT_LIST_DIR. 11419 11420 In this case they have identical values. 11421 11422 CMakeLists.txt | 2 +- 11423 1 file changed, 1 insertion(+), 1 deletion(-) 11424 11425commit e67aaf698de75c73443a5ec786781cbf2034461d 11426Author: Lasse Collin <lasse.collin@tukaani.org> 11427Date: 2023-10-01 19:10:57 +0300 11428 11429 CMake/Windows: Fix the import library filename. 11430 11431 Both PREFIX and IMPORT_PERFIX have to be set to "" to get 11432 liblzma.dll and liblzma.dll.a. 11433 11434 CMakeLists.txt | 1 + 11435 1 file changed, 1 insertion(+) 11436 11437commit 88588b1246d8c26ffbc138b3e5c413c5f14c3179 11438Author: Lasse Collin <lasse.collin@tukaani.org> 11439Date: 2023-10-25 19:13:25 +0300 11440 11441 Build: Detect -fsanitize= in CFLAGS and incompatible build options. 11442 11443 Now configure will fail if -fsanitize= is found in CFLAGS 11444 and sanitizer-incompatible ifunc or Landlock sandboxing 11445 would be used. These are incompatible with one or more sanitizers. 11446 It's simpler to reject all -fsanitize= uses instead of trying to 11447 pass those that might not cause problems. 11448 11449 CMake-based build was updated similarly. It lets the configuration 11450 finish (SEND_ERROR instead of FATAL_ERROR) so that both error 11451 messages can be seen at once. 11452 11453 CMakeLists.txt | 29 +++++++++++++++++++++++++++++ 11454 configure.ac | 37 +++++++++++++++++++++++++++++++++---- 11455 2 files changed, 62 insertions(+), 4 deletions(-) 11456 11457commit 5e3d890f8862a7d4fbef5e38e11b6c9fbd98f468 11458Author: Jia Tan <jiat0218@gmail.com> 11459Date: 2023-10-24 00:50:08 +0800 11460 11461 CI: Disable sandboxing in fsanitize=address,undefined job. 11462 11463 The sandboxing on Linux now supports Landlock, which restricts all 11464 supported filesystem actions after xz opens the files it needs. The 11465 sandbox is only enabled when one file is input and we are writing to 11466 standard out. With fsanitize=address,undefined, the instrumentation 11467 needs to read additional files after the sandbox is in place. This 11468 forces all xz based test to fail, so the sandbox must instead be 11469 disabled. 11470 11471 .github/workflows/ci.yml | 8 ++++++-- 11472 1 file changed, 6 insertions(+), 2 deletions(-) 11473 11474commit b1408987ea832e2760e478ae960a636df17a1363 11475Author: Jia Tan <jiat0218@gmail.com> 11476Date: 2023-10-24 00:15:39 +0800 11477 11478 CI: Allow disabling the sandbox in ci_build.sh. 11479 11480 build-aux/ci_build.sh | 5 ++++- 11481 1 file changed, 4 insertions(+), 1 deletion(-) 11482 11483commit 91c435cf1c7a1e893706d4d716dfd361621ed824 11484Author: Lasse Collin <lasse.collin@tukaani.org> 11485Date: 2023-10-11 19:47:44 +0300 11486 11487 CMake: Don't shadow the cache entry ENABLE_THREADS with a normal variable. 11488 11489 Using set(ENABLE_THREADS "posix") is confusing because it sets 11490 a new normal variable and leaves the cache entry with the same 11491 name unchanged. The intent wasn't to change the cache entry so 11492 this switches to a different variable name. 11493 11494 CMakeLists.txt | 10 +++++++--- 11495 1 file changed, 7 insertions(+), 3 deletions(-) 11496 11497commit fa1609eb9393ecd30decfed4891c907829f06710 11498Author: Lasse Collin <lasse.collin@tukaani.org> 11499Date: 2023-10-09 22:28:49 +0300 11500 11501 Docs: Update INSTALL about sandboxing support. 11502 11503 INSTALL | 7 ++++++- 11504 1 file changed, 6 insertions(+), 1 deletion(-) 11505 11506commit 8276c7f41c671eee4aa3239490658b23dcfd3021 11507Author: Lasse Collin <lasse.collin@tukaani.org> 11508Date: 2023-10-09 22:07:52 +0300 11509 11510 xz: Support basic sandboxing with Linux Landlock (ABI versions 1-3). 11511 11512 It is enabled only when decompressing one file to stdout, 11513 similar to how Capsicum is used. 11514 11515 Landlock was added in Linux 5.13. 11516 11517 CMakeLists.txt | 12 +++++++++++- 11518 configure.ac | 11 ++++++++--- 11519 src/xz/file_io.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 11520 src/xz/main.c | 19 +++++++++++++++++++ 11521 src/xz/private.h | 3 ++- 11522 5 files changed, 98 insertions(+), 5 deletions(-) 11523 11524commit 3a1e9fd031b9320d769d63b503ef4e82e1b6ea8c 11525Author: Lasse Collin <lasse.collin@tukaani.org> 11526Date: 2023-10-09 21:12:31 +0300 11527 11528 CMake: Edit threading related messages. 11529 11530 It's mostly to change from "thread method" to "threading method". 11531 11532 CMakeLists.txt | 19 ++++++++++--------- 11533 1 file changed, 10 insertions(+), 9 deletions(-) 11534 11535commit bf011352528ae3539ea7b780b45b96736ee57a99 11536Author: Lasse Collin <lasse.collin@tukaani.org> 11537Date: 2023-10-09 20:59:24 +0300 11538 11539 CMake: Use FATAL_ERROR if user-supplied options aren't understood. 11540 11541 This way typos are caught quickly and compounding error messages 11542 are avoided (a single typo could cause more than one error). 11543 11544 This keeps using SEND_ERROR when the system is lacking a feature 11545 (like threading library or sandboxing method). This way the whole 11546 configuration log will be generated in case someone wishes to 11547 report a problem upstream. 11548 11549 CMakeLists.txt | 28 ++++++++++++++-------------- 11550 1 file changed, 14 insertions(+), 14 deletions(-) 11551 11552commit 3f53870c249945d657ca3d75e0993e6267d71f75 11553Author: Lasse Collin <lasse.collin@tukaani.org> 11554Date: 2023-10-09 18:37:32 +0300 11555 11556 CMake: Add sandboxing support. 11557 11558 CMakeLists.txt | 50 +++++++++++++++++++++++++++++++++++++++++++++++++- 11559 1 file changed, 49 insertions(+), 1 deletion(-) 11560 11561commit 2e2cd11535ad77364cf021297e0b3f162fa3a3d0 11562Author: Lasse Collin <lasse.collin@tukaani.org> 11563Date: 2023-10-09 18:13:08 +0300 11564 11565 Simplify detection of Capsicum support. 11566 11567 This removes support for FreeBSD 10.0 and 10.1 which used 11568 <sys/capability.h> instead of <sys/capsicum.h>. Support for 11569 FreeBSD 10.1 ended on 2016-12-31. So now FreeBSD >= 10.2 is 11570 required to enable Capsicum support. 11571 11572 This also removes support for Capsicum on Linux (libcaprights) 11573 which seems to have been unmaintained since 2017 and Linux 4.11: 11574 https://github.com/google/capsicum-linux 11575 11576 configure.ac | 4 +-- 11577 m4/ax_check_capsicum.m4 | 85 ------------------------------------------------- 11578 src/xz/Makefile.am | 2 +- 11579 src/xz/file_io.c | 14 +++----- 11580 src/xz/private.h | 2 +- 11581 5 files changed, 9 insertions(+), 98 deletions(-) 11582 11583commit c57858b60e186d020b2dbaf7aabd9b32c71da824 11584Author: Lasse Collin <lasse.collin@tukaani.org> 11585Date: 2023-09-25 01:46:36 +0300 11586 11587 xz/Windows: Allow clock_gettime with POSIX threads. 11588 11589 If winpthreads are used for threading, it's OK to use clock_gettime() 11590 from winpthreads too. 11591 11592 src/xz/mytime.c | 9 ++++++--- 11593 1 file changed, 6 insertions(+), 3 deletions(-) 11594 11595commit dd32f628bb5541ef4e8ce66966ef456a1934084c 11596Author: Lasse Collin <lasse.collin@tukaani.org> 11597Date: 2023-09-25 01:39:26 +0300 11598 11599 mythread.h: Make MYTHREAD_POSIX compatible with MinGW-w64's winpthreads. 11600 11601 This might be almost useless but it doesn't need much extra code either. 11602 11603 src/common/mythread.h | 23 ++++++++++++++++++++++- 11604 1 file changed, 22 insertions(+), 1 deletion(-) 11605 11606commit 680e52cdd086e92691d8a0bca2c98815565f60ca 11607Author: Lasse Collin <lasse.collin@tukaani.org> 11608Date: 2023-09-23 03:06:36 +0300 11609 11610 CMake: Check for clock_gettime() even on Windows. 11611 11612 This mirrors configure.ac although currently MinGW-w64 builds 11613 don't use clock_gettime() even if it is found. 11614 11615 CMakeLists.txt | 44 +++++++++++++++++++++----------------------- 11616 1 file changed, 21 insertions(+), 23 deletions(-) 11617 11618commit 1c1a8c3ee4dad0064dbe63b8dbc4ac4bc679f419 11619Author: Lasse Collin <lasse.collin@tukaani.org> 11620Date: 2023-09-23 03:23:32 +0300 11621 11622 Build: Check for clock_gettime() even if not using POSIX threads. 11623 11624 See the new comment in the code. 11625 11626 This also makes the check for clock_gettime() run with MinGW-w64 11627 with which we don't want to use clock_gettime(). The previous 11628 commit already took care of this situation. 11629 11630 configure.ac | 31 ++++++++++++++++++------------- 11631 1 file changed, 18 insertions(+), 13 deletions(-) 11632 11633commit 46fd991cd2808ef62554853864c946232e7547f0 11634Author: Lasse Collin <lasse.collin@tukaani.org> 11635Date: 2023-09-24 22:58:53 +0300 11636 11637 xz/Windows: Ensure that clock_gettime() isn't used with MinGW-w64. 11638 11639 This commit alone doesn't change anything in the real-world: 11640 11641 - configure.ac currently checks for clock_gettime() only 11642 when using pthreads. 11643 11644 - CMakeLists.txt doesn't check for clock_gettime() on Windows. 11645 11646 So clock_gettime() wasn't used with MinGW-w64 before either. 11647 11648 clock_gettime() provides monotonic time and it's better than 11649 gettimeofday() in this sense. But clock_gettime() is defined 11650 in winpthreads, and liblzma or xz needs nothing else from 11651 winpthreads. By avoiding clock_gettime(), we avoid the dependency on 11652 libwinpthread-1.dll or the need to link against the static version. 11653 11654 As a bonus, GetTickCount64() and MinGW-w64's gettimeofday() can be 11655 faster than clock_gettime(CLOCK_MONOTONIC, &tv). The resolution 11656 is more than good enough for the progress indicator in xz. 11657 11658 src/xz/mytime.c | 9 +++++++-- 11659 1 file changed, 7 insertions(+), 2 deletions(-) 11660 11661commit cdb4d91f2464b50c985ef7b9517314ea237ddda7 11662Author: Lasse Collin <lasse.collin@tukaani.org> 11663Date: 2023-09-24 00:21:22 +0300 11664 11665 xz/Windows: Use GetTickCount64() with MinGW-w64 if using Vista threads. 11666 11667 src/xz/mytime.c | 14 +++++++++++--- 11668 1 file changed, 11 insertions(+), 3 deletions(-) 11669 11670commit 988e09f27b9b04a43d45d10f92782e0092ee27a9 11671Author: Jia Tan <jiat0218@gmail.com> 11672Date: 2023-10-20 19:17:46 +0800 11673 11674 liblzma: Move is_clmul_supported() back to crc_common.h. 11675 11676 This partially reverts creating crc_clmul.c 11677 (8c0f9376f58c0696d5d6719705164d35542dd891) where is_clmul_supported() 11678 was moved, extern'ed, and renamed to lzma_is_clmul_supported(). This 11679 caused a problem when the function call to lzma_is_clmul_supported() 11680 results in a call through the PLT. ifunc resolvers run very early in 11681 the dynamic loading sequence, so the PLT may not be setup properly at 11682 this point. Whether the PLT is used or not for 11683 lzma_is_clmul_supported() depened upon the compiler-toolchain used and 11684 flags. 11685 11686 In liblzma compiled with GCC, for instance, GCC will go through the PLT 11687 for function calls internal to liblzma if the version scripts and 11688 symbol visibility hiding are not used. If lazy-binding is disabled, 11689 then it would have made any program linked with liblzma fail during 11690 dynamic loading in the ifunc resolver. 11691 11692 src/liblzma/check/crc32_fast.c | 2 +- 11693 src/liblzma/check/crc64_fast.c | 2 +- 11694 src/liblzma/check/crc_clmul.c | 45 ------------------------------------ 11695 src/liblzma/check/crc_common.h | 52 +++++++++++++++++++++++++++++++++++++++--- 11696 4 files changed, 51 insertions(+), 50 deletions(-) 11697 11698commit 105c7ca90d4152942e0798580a37f736d02faa22 11699Author: Jia Tan <jiat0218@gmail.com> 11700Date: 2023-10-19 16:23:32 +0800 11701 11702 Build: Remove check for COND_CHECK_CRC32 in check/Makefile.inc. 11703 11704 Currently crc32 is always enabled, so COND_CHECK_CRC32 must always be 11705 set. Because of this, it makes the recent change to conditionally 11706 compile check/crc_clmul.c appear wrong since that file has CLMUL 11707 implementations for both CRC32 and CRC64. 11708 11709 src/liblzma/check/Makefile.inc | 4 ++-- 11710 1 file changed, 2 insertions(+), 2 deletions(-) 11711 11712commit 139757170468f0f1fafdf0a8ffa74363d1ea1d0c 11713Author: Jia Tan <jiat0218@gmail.com> 11714Date: 2023-10-19 16:09:01 +0800 11715 11716 CMake: Add ALLOW_CLMUL_CRC option to enable/disable CLMUL. 11717 11718 The option is enabled by default, but will only be visible to a user 11719 listing cache variables or using a CMake GUI application if the 11720 immintrin.h header file is found. 11721 11722 This mirrors our Autotools build --disable-clmul-crc functionality. 11723 11724 CMakeLists.txt | 44 +++++++++++++++++++++++++------------------- 11725 1 file changed, 25 insertions(+), 19 deletions(-) 11726 11727commit c60b25569d414bb73b705977a4dd342f8f9f1965 11728Author: Jia Tan <jiat0218@gmail.com> 11729Date: 2023-10-19 00:22:50 +0800 11730 11731 liblzma: Fix -fsanitize=address failure with crc_clmul functions. 11732 11733 After forcing crc_simd_body() to always be inlined it caused 11734 -fsanitize=address to fail for lzma_crc32_clmul() and 11735 lzma_crc64_clmul(). The __no_sanitize_address__ attribute was added 11736 to lzma_crc32_clmul() and lzma_crc64_clmul(), but not removed from 11737 crc_simd_body(). ASAN and inline functions behavior has changed over 11738 the years for GCC specifically, so while strictly required we will 11739 keep __attribute__((__no_sanitize_address__)) on crc_simd_body() in 11740 case this becomes a requirement in the future. 11741 11742 Older GCC versions refuse to inline a function with ASAN if the 11743 caller and callee do not agree on sanitization flags 11744 (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89124#c3). If the 11745 function was forced to be inlined, it will not compile if the callee 11746 function has __no_sanitize_address__ but the caller doesn't. 11747 11748 src/liblzma/check/crc_clmul.c | 6 ++++++ 11749 1 file changed, 6 insertions(+) 11750 11751commit 9a78971261bc67622cbd7dae02f6966968ac1393 11752Author: Lasse Collin <lasse.collin@tukaani.org> 11753Date: 2023-10-14 20:16:13 +0300 11754 11755 tuklib_integer: Update the CMake test for fast unaligned access. 11756 11757 cmake/tuklib_integer.cmake | 69 ++++++++++++++++++++++++++++++++++++---------- 11758 1 file changed, 54 insertions(+), 15 deletions(-) 11759 11760commit 2f81ac852bc5aafc91c8e2adc66b5114761703c4 11761Author: Lasse Collin <lasse.collin@tukaani.org> 11762Date: 2023-09-23 23:28:48 +0300 11763 11764 Build: Enabled unaligned access by default on PowerPC64LE and some RISC-V. 11765 11766 PowerPC64LE wasn't tested but it seems like a safe change. 11767 POWER8 supports unaligned access in little endian mode. Testing 11768 on godbolt.org shows that GCC uses unaligned access by default. 11769 11770 The RISC-V macro __riscv_misaligned_fast is very new and not 11771 in any stable compiler release yet. 11772 11773 Documentation in INSTALL was updated to match. 11774 11775 Documentation about an autodetection bug when using ARM64 GCC 11776 with -mstrict-align was added to INSTALL. 11777 11778 CMake files weren't updated yet. 11779 11780 INSTALL | 39 +++++++++++++++++++++++++++++++++++++-- 11781 m4/tuklib_integer.m4 | 34 +++++++++++++++++++++++++++------- 11782 2 files changed, 64 insertions(+), 9 deletions(-) 11783 11784commit c8f715f1bca4c30db814fcf1fd2fe88b8992ede2 11785Author: Lasse Collin <lasse.collin@tukaani.org> 11786Date: 2023-10-14 17:56:59 +0300 11787 11788 tuklib_integer: Revise unaligned reads and writes on strict-align archs. 11789 11790 In XZ Utils context this doesn't matter much because 11791 unaligned reads and writes aren't used in hot code 11792 when TUKLIB_FAST_UNALIGNED_ACCESS isn't #defined. 11793 11794 src/common/tuklib_integer.h | 256 ++++++++++++++++++++++++++++++++------------ 11795 1 file changed, 189 insertions(+), 67 deletions(-) 11796 11797commit 6828242735cbf61b93d140383336e1e51a006f2d 11798Author: Lasse Collin <lasse.collin@tukaani.org> 11799Date: 2023-09-23 02:21:49 +0300 11800 11801 tuklib_integer: Add missing write64be and write64le fallback functions. 11802 11803 src/common/tuklib_integer.h | 34 ++++++++++++++++++++++++++++++++++ 11804 1 file changed, 34 insertions(+) 11805 11806commit 1c8884f0af28b3a4690bb573cdf3240a8ec73416 11807Author: Jia Tan <jiat0218@gmail.com> 11808Date: 2023-10-18 19:57:10 +0800 11809 11810 liblzma: Set the MSVC optimization fix to only cover lzma_crc64_clmul(). 11811 11812 After testing a 32-bit Release build on MSVC, only lzma_crc64_clmul() 11813 has the bug. crc_simd_body() and lzma_crc32_clmul() do not need the 11814 optimizations disabled. 11815 11816 src/liblzma/check/crc_clmul.c | 30 +++++++++++++++--------------- 11817 1 file changed, 15 insertions(+), 15 deletions(-) 11818 11819commit 5ce0f7a48bdf5c3b45430850a4487307afac6143 11820Author: Lasse Collin <lasse.collin@tukaani.org> 11821Date: 2023-10-18 14:30:00 +0300 11822 11823 liblzma: CRC_USE_GENERIC_FOR_SMALL_INPUTS cannot be used with ifunc. 11824 11825 src/liblzma/check/crc_common.h | 4 +++- 11826 1 file changed, 3 insertions(+), 1 deletion(-) 11827 11828commit 27735380491bb5ce0d0f41d5244d89c1d0825f6b 11829Author: Lasse Collin <lasse.collin@tukaani.org> 11830Date: 2023-10-17 21:53:11 +0300 11831 11832 liblzma: Include common.h in crc_common.h. 11833 11834 crc_common.h depends on common.h. The headers include common.h except 11835 when there is a reason to not do so. 11836 11837 src/liblzma/check/crc_clmul.c | 1 - 11838 src/liblzma/check/crc_common.h | 3 +++ 11839 2 files changed, 3 insertions(+), 1 deletion(-) 11840 11841commit e13b7947b92355c334edd594295d3a2c99c4bca1 11842Author: Jia Tan <jiat0218@gmail.com> 11843Date: 2023-10-18 01:23:26 +0800 11844 11845 liblzma: Add include guards to crc_common.h. 11846 11847 src/liblzma/check/crc_common.h | 5 +++++ 11848 1 file changed, 5 insertions(+) 11849 11850commit 40abd88afcc61a8157fcd12d78d491caeb8e12be 11851Author: Jia Tan <jiat0218@gmail.com> 11852Date: 2023-10-18 22:50:25 +0800 11853 11854 liblzma: Add the crc_always_inline macro to crc_simd_body(). 11855 11856 Forcing this to be inline has a significant speed improvement at the 11857 cost of a few repeated instructions. The compilers tested on did not 11858 inline this function since it is large and is used twice in the same 11859 translation unit. 11860 11861 src/liblzma/check/crc_clmul.c | 2 +- 11862 1 file changed, 1 insertion(+), 1 deletion(-) 11863 11864commit a5966c276bd6fa975f0389f8a8dc61393de750b0 11865Author: Jia Tan <jiat0218@gmail.com> 11866Date: 2023-10-18 22:48:19 +0800 11867 11868 liblzma: Create crc_always_inline macro. 11869 11870 This macro must be used instead of the inline keyword. On MSVC, it is 11871 a replacement for __forceinline which is an MSVC specific keyword that 11872 should not be used with inline (it will issue a warning if it is). 11873 11874 It does not use a build system check to determine if 11875 __attribute__((__always_inline__)) since all compilers that can use 11876 CLMUL extensions (except the special case for MSVC) should support this 11877 attribute. If this assumption is incorrect then it will result in a bug 11878 report instead of silently producing slow code. 11879 11880 src/liblzma/check/crc_common.h | 15 +++++++++++++++ 11881 1 file changed, 15 insertions(+) 11882 11883commit 96b663f67c0e738a99ba8f35d9f4ced9add74544 11884Author: Jia Tan <jiat0218@gmail.com> 11885Date: 2023-10-14 13:23:23 +0800 11886 11887 liblzma: Refactor CRC comments. 11888 11889 A detailed description of the three dispatch methods was added. Also, 11890 duplicated comments now only appear in crc32_fast.c or were removed from 11891 both crc32_fast.c and crc64_fast.c if they appeared in crc_clmul.c. 11892 11893 src/liblzma/check/crc32_fast.c | 64 +++++++++++++++++++++++++++++------------- 11894 src/liblzma/check/crc64_fast.c | 61 ++++++---------------------------------- 11895 2 files changed, 53 insertions(+), 72 deletions(-) 11896 11897commit 8c0f9376f58c0696d5d6719705164d35542dd891 11898Author: Jia Tan <jiat0218@gmail.com> 11899Date: 2023-10-14 12:17:57 +0800 11900 11901 liblzma: Create crc_clmul.c. 11902 11903 Both crc32_clmul() and crc64_clmul() are now exported from 11904 crc32_clmul.c as lzma_crc32_clmul() and lzma_crc64_clmul(). This 11905 ensures that is_clmul_supported() (now lzma_is_clmul_supported()) is 11906 not duplicated between crc32_fast.c and crc64_fast.c. 11907 11908 Also, it encapsulates the complexity of the CLMUL implementations into a 11909 single file and reduces the complexity of crc32_fast.c and crc64_fast.c. 11910 Before, CLMUL code was present in crc32_fast.c, crc64_fast.c, and 11911 crc_common.h. 11912 11913 During the conversion, various cleanups were applied to code (thanks to 11914 Lasse Collin) including: 11915 11916 - Require using semicolons with MASK_/L/H/LH macros. 11917 - Variable typing and const handling improvements. 11918 - Improvements to comments. 11919 - Fixes to the pragmas used. 11920 - Removed unneeded variables. 11921 - Whitespace improvements. 11922 - Fixed CRC_USE_GENERIC_FOR_SMALL_INPUTS handling. 11923 - Silenced warnings and removed the need for some #pragmas 11924 11925 CMakeLists.txt | 6 +- 11926 configure.ac | 6 +- 11927 src/liblzma/check/Makefile.inc | 3 + 11928 src/liblzma/check/crc32_fast.c | 120 +----------- 11929 src/liblzma/check/crc64_fast.c | 128 +------------ 11930 src/liblzma/check/crc_clmul.c | 414 +++++++++++++++++++++++++++++++++++++++++ 11931 src/liblzma/check/crc_common.h | 190 +------------------ 11932 7 files changed, 444 insertions(+), 423 deletions(-) 11933 11934commit a3ebc2c516b09616638060806c841bd4bcf7bce3 11935Author: Jia Tan <jiat0218@gmail.com> 11936Date: 2023-10-14 10:23:03 +0800 11937 11938 liblzma: Define CRC_USE_IFUNC in crc_common.h. 11939 11940 When ifunc is supported, we can define a simpler macro instead of 11941 repeating the more complex check in both crc32_fast.c and crc64_fast.c. 11942 11943 src/liblzma/check/crc32_fast.c | 3 +-- 11944 src/liblzma/check/crc64_fast.c | 3 +-- 11945 src/liblzma/check/crc_common.h | 5 +++++ 11946 3 files changed, 7 insertions(+), 4 deletions(-) 11947 11948commit f1cd9d7194f005cd66ec03c6635ceae75f90ef17 11949Author: Hans Jansen <hansjansen162@outlook.com> 11950Date: 2023-10-12 19:37:01 +0200 11951 11952 liblzma: Added crc32_clmul to crc32_fast.c. 11953 11954 src/liblzma/check/crc32_fast.c | 247 ++++++++++++++++++++++++++++++++++++++-- 11955 src/liblzma/check/crc32_table.c | 19 +++- 11956 2 files changed, 255 insertions(+), 11 deletions(-) 11957 11958commit 93e6fb08b22c7c13be2dd1e7274fe78413436254 11959Author: Hans Jansen <hansjansen162@outlook.com> 11960Date: 2023-10-12 19:23:40 +0200 11961 11962 liblzma: Moved CLMUL CRC logic to crc_common.h. 11963 11964 crc64_fast.c was updated to use the code from crc_common.h instead. 11965 11966 src/liblzma/check/crc64_fast.c | 257 ++--------------------------------------- 11967 src/liblzma/check/crc_common.h | 230 +++++++++++++++++++++++++++++++++++- 11968 2 files changed, 240 insertions(+), 247 deletions(-) 11969 11970commit 233885a437f8b55a5c8442984ebc0aaa579e92de 11971Author: Hans Jansen <hansjansen162@outlook.com> 11972Date: 2023-10-12 19:07:50 +0200 11973 11974 liblzma: Rename crc_macros.h to crc_common.h. 11975 11976 CMakeLists.txt | 2 +- 11977 src/liblzma/check/Makefile.inc | 2 +- 11978 src/liblzma/check/crc32_fast.c | 2 +- 11979 src/liblzma/check/crc64_fast.c | 2 +- 11980 src/liblzma/check/{crc_macros.h => crc_common.h} | 2 +- 11981 5 files changed, 5 insertions(+), 5 deletions(-) 11982 11983commit 37947d4a7565b87e4cec8b89229d35b0a3f8d2cd 11984Author: Gabriela Gutierrez <gabigutierrez@google.com> 11985Date: 2023-09-26 15:55:13 +0000 11986 11987 CI: Bump and ref actions by commit SHA in windows-ci.yml 11988 11989 Referencing actions by commit SHA in GitHub workflows guarantees you are using an immutable version. Actions referenced by tags and branches are more vulnerable to attacks, such as the tag being moved to a malicious commit or a malicious commit being pushed to the branch. 11990 11991 It's important to make sure the SHA's are from the original repositories and not forks. 11992 11993 For reference: 11994 11995 https://github.com/msys2/setup-msys2/releases/tag/v2.20.1 11996 https://github.com/msys2/setup-msys2/commit/27b3aa77f672cb6b3054121cfd80c3d22ceebb1d 11997 11998 https://github.com/actions/checkout/releases/tag/v4.1.0 11999 https://github.com/actions/checkout/commit/8ade135a41bc03ea155e62e844d188df1ea18608 12000 12001 https://github.com/actions/upload-artifact/releases/tag/v3.1.3 12002 https://github.com/actions/upload-artifact/commit/a8a3f3ad30e3422c9c7b888a15615d19a852ae32 12003 12004 Signed-off-by: Gabriela Gutierrez <gabigutierrez@google.com> 12005 12006 .github/workflows/windows-ci.yml | 6 +++--- 12007 1 file changed, 3 insertions(+), 3 deletions(-) 12008 12009commit f28cc9bd481ce493da11f98c18526d324211599a 12010Author: Gabriela Gutierrez <gabigutierrez@google.com> 12011Date: 2023-09-26 14:35:08 +0000 12012 12013 CI: Bump and ref actions by commit SHA in ci.yml 12014 12015 Referencing actions by commit SHA in GitHub workflows guarantees you are using an immutable version. Actions referenced by tags and branches are more vulnerable to attacks, such as the tag being moved to a malicious commit or a malicious commit being pushed to the branch. 12016 12017 It's important to make sure the SHA's are from the original repositories and not forks. 12018 12019 For reference: 12020 12021 https://github.com/actions/checkout/releases/tag/v4.1.0 12022 https://github.com/actions/checkout/commit/8ade135a41bc03ea155e62e844d188df1ea18608 12023 12024 https://github.com/actions/upload-artifact/releases/tag/v3.1.3 12025 https://github.com/actions/upload-artifact/commit/a8a3f3ad30e3422c9c7b888a15615d19a852ae32 12026 12027 Signed-off-by: Gabriela Gutierrez <gabigutierrez@google.com> 12028 12029 .github/workflows/ci.yml | 4 ++-- 12030 1 file changed, 2 insertions(+), 2 deletions(-) 12031 12032commit f74f1740067b75042497edbfa6ea457ff75484b9 12033Author: Jia Tan <jiat0218@gmail.com> 12034Date: 2023-10-12 20:12:18 +0800 12035 12036 Build: Update visibility.m4 from Gnulib. 12037 12038 Updating from version 6 -> 8 from upstream. Declarations for variables 12039 and function bodies were added to avoid unnecessary failures with 12040 -Werror. 12041 12042 m4/visibility.m4 | 9 +++++++-- 12043 1 file changed, 7 insertions(+), 2 deletions(-) 12044 12045commit 5c4bca521e6fb435898a0012b3276eee70a6dadf 12046Author: Lasse Collin <lasse.collin@tukaani.org> 12047Date: 2023-10-06 19:36:35 +0300 12048 12049 Update THANKS. 12050 12051 THANKS | 1 + 12052 1 file changed, 1 insertion(+) 12053 12054commit d91cb6e884c73d0b05d7e7d68ad4e6eb29f4b44b 12055Author: Lasse Collin <lasse.collin@tukaani.org> 12056Date: 2023-10-06 18:55:57 +0300 12057 12058 CMake/Windows: Fix when the windres workaround is applied. 12059 12060 CMake doesn't set WIN32 on CYGWIN but the workaround is 12061 probably needed on Cygwin too. Same for MSYS and MSYS2. 12062 12063 The workaround must not be used with Clang that is acting in 12064 MSVC mode. This fixes it by checking for the known environments 12065 that need the workaround instead of using "NOT MSVC". 12066 12067 Thanks to Martin Storsjö. 12068 https://github.com/tukaani-project/xz/commit/0570308ddd9c0e39e85597ebc0e31d4fc81d436f#commitcomment-129098431 12069 12070 CMakeLists.txt | 6 +++--- 12071 1 file changed, 3 insertions(+), 3 deletions(-) 12072 12073commit 01e34aa1171b04f8b28960b1cc6135a903e0c13d 12074Author: Jia Tan <jiat0218@gmail.com> 12075Date: 2023-09-29 22:11:54 +0800 12076 12077 CI: Disable CLANG64 MSYS2 environment until bug is resolved. 12078 12079 lld 17.0.1 searches for libraries to link first in the toolchain 12080 directories before the local directory when building. The is a problem 12081 for us because liblzma.a is installed in MSYS2 CLANG64 by default and 12082 xz.exe will thus use the installed library instead of the one being 12083 built. 12084 12085 This causes tests to fail when they are expecting features to be 12086 disabled. More importantly, it will compile xz.exe with an incorrect 12087 liblzma and could cause unexpected behavior by being unable to update 12088 liblzma code in static builds. The CLANG64 environment can be tested 12089 again once this is fixed. 12090 12091 Link to bug: https://github.com/llvm/llvm-project/issues/67779. 12092 12093 .github/workflows/windows-ci.yml | 8 +++++--- 12094 1 file changed, 5 insertions(+), 3 deletions(-) 12095 12096commit 30d0c35327f3639cb11224872aa58fdbf0b1526e 12097Author: Jia Tan <jiat0218@gmail.com> 12098Date: 2023-09-29 20:14:39 +0800 12099 12100 CMake: Rename xz and man page symlink custom targets. 12101 12102 The Ninja Generator for CMake cannot have a custom target and its 12103 BYPRODUCTS have the same name. This has prevented Ninja builds on 12104 Unix-like systems since the xz symlinks were introduced in 12105 80a1a8bb838842a2be343bd88ad1462c21c5e2c9. 12106 12107 CMakeLists.txt | 6 +++--- 12108 1 file changed, 3 insertions(+), 3 deletions(-) 12109 12110commit 506d03127a8565442b028ec991e1578124fd3025 12111Author: Jia Tan <jiat0218@gmail.com> 12112Date: 2023-09-29 19:58:44 +0800 12113 12114 CMake: Specify LINKER_LANGUAGE for libgnu target to fix Ninja Generator. 12115 12116 CMake is unable to guess the linker language for just a header file so 12117 it must be explicitly set. 12118 12119 CMakeLists.txt | 6 ++++++ 12120 1 file changed, 6 insertions(+) 12121 12122commit 0570308ddd9c0e39e85597ebc0e31d4fc81d436f 12123Author: Lasse Collin <lasse.collin@tukaani.org> 12124Date: 2023-09-27 19:54:35 +0300 12125 12126 CMake: Fix Windows build with Clang/LLVM 17. 12127 12128 llvm-windres 17.0.0 has more accurate emulation of GNU windres, so 12129 the hack for GNU windres must now be used with llvm-windres too. 12130 12131 LLVM 16.0.6 has the old behavior and there likely won't be more 12132 16.x releases. So we can simply check for >= 17.0.0. 12133 12134 See also: 12135 https://github.com/llvm/llvm-project/commit/2bcc0fdc58a220cb9921b47ec8a32c85f2511a47 12136 12137 CMakeLists.txt | 26 ++++++++++++++------------ 12138 1 file changed, 14 insertions(+), 12 deletions(-) 12139 12140commit 5a9af95f85a7e5d4f9c10cb8cf737651a921f1d1 12141Author: Lasse Collin <lasse.collin@tukaani.org> 12142Date: 2023-09-26 21:47:13 +0300 12143 12144 liblzma: Update a comment. 12145 12146 The C standards don't allow an empty translation unit which can be 12147 avoided by declaring something, without exporting any symbols. 12148 12149 When I committed f644473a211394447824ea00518d0a214ff3f7f2 I had 12150 a feeling that some specific toolchain somewhere didn't like 12151 empty object files (assembler or maybe "ar" complained) but 12152 I cannot find anything to confirm this now. Quite likely I 12153 remembered nonsense. I leave this here as a note to my future self. :-) 12154 12155 src/liblzma/check/crc64_table.c | 3 +-- 12156 1 file changed, 1 insertion(+), 2 deletions(-) 12157 12158commit 8ebaf3f665ddc7e4f19c613005050dde5ccbe499 12159Author: Jia Tan <jiat0218@gmail.com> 12160Date: 2023-09-27 00:02:11 +0800 12161 12162 liblzma: Avoid compiler warning without creating extra symbol. 12163 12164 When the generic fast crc64 method is used, then we omit 12165 lzma_crc64_table[][]. Similar to 12166 d9166b52cf3458a4da3eb92224837ca8fc208d79, we can avoid compiler warnings 12167 with -Wempty-translation-unit (Clang) or -pedantic (GCC) by creating a 12168 never used typedef instead of an extra symbol. 12169 12170 src/liblzma/check/crc64_table.c | 3 +-- 12171 1 file changed, 1 insertion(+), 2 deletions(-) 12172 12173commit 092d21db2e5eea19fe079264ce48c178989c7606 12174Author: Lasse Collin <lasse.collin@tukaani.org> 12175Date: 2023-09-26 17:24:15 +0300 12176 12177 Build: Update the comment about -Werror usage in checks. 12178 12179 configure.ac | 10 ++++++++-- 12180 1 file changed, 8 insertions(+), 2 deletions(-) 12181 12182commit a37a2763383e6c204fe878e1416dd35e7711d3a9 12183Author: Lasse Collin <lasse.collin@tukaani.org> 12184Date: 2023-09-26 15:00:43 +0300 12185 12186 Build: Fix __attribute__((ifunc(...))) detection with clang -Wall. 12187 12188 Now if user-supplied CFLAGS contains -Wall -Wextra -Wpedantic 12189 the two checks that need -Werror will still work. 12190 12191 At CMake side there is add_compile_options(-Wall -Wextra) 12192 but it didn't affect the -Werror tests. So with both Autotools 12193 and CMake only user-supplied CFLAGS could make the checks fail 12194 when they shouldn't. 12195 12196 This is not a full fix as things like -Wunused-macros in 12197 user-supplied CFLAGS will still cause problems with both 12198 GCC and Clang. 12199 12200 CMakeLists.txt | 8 ++++++++ 12201 configure.ac | 8 ++++++++ 12202 2 files changed, 16 insertions(+) 12203 12204commit 9c42f936939b813f25d0ff4e99c3eb9c2d17a0d2 12205Author: Lasse Collin <lasse.collin@tukaani.org> 12206Date: 2023-09-26 13:51:31 +0300 12207 12208 Build: Fix underquoted AC_LANG_SOURCE. 12209 12210 It made no practical difference in this case. 12211 12212 configure.ac | 2 +- 12213 1 file changed, 1 insertion(+), 1 deletion(-) 12214 12215commit 9f1444a8a5c0e724b2c7ef83424f642f07a95982 12216Author: Lasse Collin <lasse.collin@tukaani.org> 12217Date: 2023-09-26 13:14:37 +0300 12218 12219 Build: Silence two Autoconf warnings. 12220 12221 There were two uses of AC_COMPILE_IFELSE that didn't use 12222 AC_LANG_SOURCE and Autoconf warned about these. The omission 12223 had been intentional but it turned out that this didn't do 12224 what I thought it would. 12225 12226 Autoconf 2.71 manual gives an impression that AC_LANG_SOURCE 12227 inserts all #defines that have been made with AC_DEFINE so 12228 far (confdefs.h). The idea was that omitting AC_LANG_SOURCE 12229 would mean that only the exact code included in the 12230 AC_COMPILE_IFELSE call would be compiled. 12231 12232 With C programs this is not true: the #defines get added without 12233 AC_LANG_SOURCE too. There seems to be no neat way to avoid this. 12234 Thus, with the C language at least, adding AC_LANG_SOURCE makes 12235 no other difference than silencing a warning from Autoconf. The 12236 generated "configure" remains identical. (Docs of AC_LANG_CONFTEST 12237 say that the #defines have been inserted since Autoconf 2.63b and 12238 that AC_COMPILE_IFELSE uses AC_LANG_CONFTEST. So the behavior is 12239 documented if one also reads the docs of macros that one isn't 12240 calling directly.) 12241 12242 Any extra code, including #defines, can cause problems for 12243 these two tests because these tests must use -Werror. 12244 CC=clang CFLAGS=-Weverything is the most extreme example. 12245 It enables -Wreserved-macro-identifier which warns about 12246 #define __EXTENSIONS__ 1 because it begins with two underscores. 12247 It's possible to write a test file that passes -Weverything but 12248 it becomes impossible when Autoconf inserts confdefs.h. 12249 12250 So this commit adds AC_LANG_SOURCE to silence Autoconf warnings. 12251 A different solution is needed for -Werror tests. 12252 12253 configure.ac | 9 ++++----- 12254 1 file changed, 4 insertions(+), 5 deletions(-) 12255 12256commit 519e47c2818acde571fadc79551294527fe6cc22 12257Author: Jia Tan <jiat0218@gmail.com> 12258Date: 2023-09-26 01:17:11 +0800 12259 12260 CMake: Remove accidental extra newline. 12261 12262 CMakeLists.txt | 1 - 12263 1 file changed, 1 deletion(-) 12264 12265commit bbb42412da6a02705ba3e668e90840c2683e4e67 12266Author: Jia Tan <jiat0218@gmail.com> 12267Date: 2023-09-26 00:47:26 +0800 12268 12269 Build: Remove Gnulib dependency from tests. 12270 12271 The tests do not use any Gnulib replacements so they do not need to link 12272 libgnu.a or have /lib in the include path. 12273 12274 tests/Makefile.am | 7 +------ 12275 1 file changed, 1 insertion(+), 6 deletions(-) 12276 12277commit d265f6b75691c6c8fa876eb5320c3ff5aed17dfa 12278Author: Jia Tan <jiat0218@gmail.com> 12279Date: 2023-09-26 00:43:43 +0800 12280 12281 CMake: Remove /lib from tests include path. 12282 12283 The tests never included anything from /lib, so this was not needed. 12284 12285 CMakeLists.txt | 1 - 12286 1 file changed, 1 deletion(-) 12287 12288commit 9fb5de41f2fb654ca952d4bda15cf3777c2b720f 12289Author: Jia Tan <jiat0218@gmail.com> 12290Date: 2023-09-24 22:10:41 +0800 12291 12292 Scripts: Change quoting style from `...' to '...'. 12293 12294 src/scripts/xzdiff.in | 2 +- 12295 src/scripts/xzgrep.in | 2 +- 12296 2 files changed, 2 insertions(+), 2 deletions(-) 12297 12298commit eaebdef4d4de3c088b0905f42626b74e0d23abf3 12299Author: Jia Tan <jiat0218@gmail.com> 12300Date: 2023-09-24 22:10:18 +0800 12301 12302 xz: Change quoting style from `...' to '...'. 12303 12304 src/xz/args.c | 6 +++--- 12305 src/xz/file_io.c | 2 +- 12306 src/xz/main.c | 4 ++-- 12307 src/xz/message.c | 14 +++++++------- 12308 src/xz/options.c | 2 +- 12309 src/xz/suffix.c | 2 +- 12310 src/xz/util.c | 6 +++--- 12311 7 files changed, 18 insertions(+), 18 deletions(-) 12312 12313commit f6667702bf075a05fbe336dbf3576ad1a82ec645 12314Author: Jia Tan <jiat0218@gmail.com> 12315Date: 2023-09-24 22:09:47 +0800 12316 12317 liblzma: Change quoting style from `...' to '...'. 12318 12319 This was done for both internal and API headers. 12320 12321 src/liblzma/api/lzma/base.h | 18 +++++++++--------- 12322 src/liblzma/api/lzma/container.h | 10 +++++----- 12323 src/liblzma/api/lzma/filter.h | 6 +++--- 12324 src/liblzma/api/lzma/index.h | 8 ++++---- 12325 src/liblzma/api/lzma/lzma12.h | 2 +- 12326 src/liblzma/lz/lz_encoder.h | 2 +- 12327 src/liblzma/rangecoder/range_decoder.h | 2 +- 12328 7 files changed, 24 insertions(+), 24 deletions(-) 12329 12330commit be012b8097a4eaee335b51357d6befa745f753ce 12331Author: Jia Tan <jiat0218@gmail.com> 12332Date: 2023-09-24 22:09:16 +0800 12333 12334 Build: Change quoting style from `...' to '...'. 12335 12336 configure.ac | 18 +++++++++--------- 12337 dos/config.h | 6 +++--- 12338 m4/getopt.m4 | 2 +- 12339 m4/tuklib_progname.m4 | 2 +- 12340 windows/build.bash | 2 +- 12341 5 files changed, 15 insertions(+), 15 deletions(-) 12342 12343commit ce162db07f03495bd333696e66883c8f36abdc1e 12344Author: Jia Tan <jiat0218@gmail.com> 12345Date: 2023-09-24 22:05:02 +0800 12346 12347 Docs: Change quoting style from `...' to '...'. 12348 12349 These days the ` and ' do not look symmetric. This quoting style has 12350 been changed in various apps over the years including the GNU tools. 12351 12352 INSTALL | 6 +++--- 12353 doc/examples/01_compress_easy.c | 2 +- 12354 doc/examples/11_file_info.c | 16 ++++++++-------- 12355 3 files changed, 12 insertions(+), 12 deletions(-) 12356 12357commit db17656721e43939bfa4ec13506e7c76f4b86da6 12358Author: Jia Tan <jiat0218@gmail.com> 12359Date: 2023-09-24 21:25:01 +0800 12360 12361 lib: Silence -Wsign-conversion in getopt.c. 12362 12363 lib/getopt.c | 6 +++--- 12364 1 file changed, 3 insertions(+), 3 deletions(-) 12365 12366commit a6234f677d66888f435010bc0b67de6a32fefcf6 12367Author: Jia Tan <jiat0218@gmail.com> 12368Date: 2023-09-24 20:48:52 +0800 12369 12370 Build: Update getopt.m4 from Gnulib. 12371 12372 This file was modified from upstream since we do not need to replace 12373 getopt() and can avoid complexity and feature tests. 12374 12375 m4/getopt.m4 | 79 ++++++++++++++++++++++++++++++------------------------------ 12376 1 file changed, 39 insertions(+), 40 deletions(-) 12377 12378commit 84808b68f1075e8603a8ef95d361a61fdc6a5b10 12379Author: Jia Tan <jiat0218@gmail.com> 12380Date: 2023-09-26 00:09:53 +0800 12381 12382 CMake: Add /lib to include path. 12383 12384 CMakeLists.txt | 5 +++++ 12385 1 file changed, 5 insertions(+) 12386 12387commit 01804a0b4b64e0f33568e947e0579263808c59d3 12388Author: Jia Tan <jiat0218@gmail.com> 12389Date: 2023-09-24 20:36:34 +0800 12390 12391 CMake: Update libgnu target with new header files. 12392 12393 CMakeLists.txt | 5 +++++ 12394 1 file changed, 5 insertions(+) 12395 12396commit d34558388fe1d8929f6478d61dc322eb4f2900af 12397Author: Jia Tan <jiat0218@gmail.com> 12398Date: 2023-09-23 00:47:52 +0800 12399 12400 lib: Update Makefile.am for new header files. 12401 12402 lib/Makefile.am | 12 +++++++++++- 12403 1 file changed, 11 insertions(+), 1 deletion(-) 12404 12405commit 52bf644bdf536e20fcc743b712cede135e05eec5 12406Author: Jia Tan <jiat0218@gmail.com> 12407Date: 2023-09-24 20:34:03 +0800 12408 12409 lib: Update getopt1.c from Gnulib. 12410 12411 The only difference was maintaining the conditional inclusion for 12412 config.h. 12413 12414 lib/getopt1.c | 56 ++++++++++++++++++++++---------------------------------- 12415 1 file changed, 22 insertions(+), 34 deletions(-) 12416 12417commit 7e884c00d0093c38339f17fb1d280eec493f42ca 12418Author: Jia Tan <jiat0218@gmail.com> 12419Date: 2023-09-23 03:27:00 +0800 12420 12421 lib: Update getopt.in.h from Gnulib with modifications. 12422 12423 We can still avoid modifying the contents of this file during 12424 configuration to simplify the build systems. Gnulib added replacements 12425 for inclusions guards for Cygwin. Cygwin should not need getopt_long 12426 replacement so this feature can be omitted. 12427 12428 <unistd.h> is conditionally included to avoid MSVC since it is not 12429 available. 12430 12431 The definition for _GL_ARG_NONNULL was also copied into this file from 12432 Gnulib since this stage is usually done during gnulib-tool. 12433 12434 lib/getopt.in.h | 228 +++++++------------------------------------------------- 12435 1 file changed, 29 insertions(+), 199 deletions(-) 12436 12437commit cff05f82066ca3ce9425dafdb086325a8eef8de3 12438Author: Jia Tan <jiat0218@gmail.com> 12439Date: 2023-09-23 00:31:55 +0800 12440 12441 lib: Update getopt_int.h from Gnulib. 12442 12443 lib/getopt_int.h | 109 ++++++++++++++++++++++++------------------------------- 12444 1 file changed, 48 insertions(+), 61 deletions(-) 12445 12446commit 04bd86a4b010d43c6a016a3857ecb38dc1d5b024 12447Author: Jia Tan <jiat0218@gmail.com> 12448Date: 2023-09-23 00:27:23 +0800 12449 12450 lib: Update getopt.c from Gnulib with modifications. 12451 12452 The code maintains the prior modifications of conditionally including 12453 config.h and disabling NLS support. 12454 12455 _GL_UNUSED is repalced with the simple cast to void trick. _GL_UNUSED 12456 is only used for these two parameters so its simpler than having to 12457 define it. 12458 12459 lib/getopt.c | 1134 +++++++++++++++++++--------------------------------------- 12460 1 file changed, 377 insertions(+), 757 deletions(-) 12461 12462commit 56b42be7287844db20b3a3bc1372c6ae8c040d63 12463Author: Jia Tan <jiat0218@gmail.com> 12464Date: 2023-09-23 00:18:56 +0800 12465 12466 lib: Add getopt-cdefs.h for getopt_long update. 12467 12468 This was modified slightly from Gnulib. In Gnulib, it expects the 12469 @HAVE_SYS_CDEFS_H@ to be replaced. Instead, we can set HAVE_SYS_CDEFS_H 12470 on systems that have it and avoid copying another file into the build 12471 directory. Since we are not using gnulib-tool, copying extra files 12472 requires extra build system updates (and special handling with CMake) so 12473 we should avoid when possible. 12474 12475 lib/getopt-cdefs.h | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 12476 1 file changed, 70 insertions(+) 12477 12478commit 9834e591a4cf9dc2f49e42e26bf28d1d247bc196 12479Author: Jia Tan <jiat0218@gmail.com> 12480Date: 2023-09-23 00:15:25 +0800 12481 12482 lib: Copy new header files from Gnulib without modification. 12483 12484 The getopt related files have changed from Gnulib by splitting up 12485 getopt.in.h into more modular header files. We could have kept 12486 everything in just getopt.in.h, but this will help us continue to update 12487 in the future. 12488 12489 lib/getopt-core.h | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++ 12490 lib/getopt-ext.h | 77 +++++++++++++++++++++++++++++++++++++++++ 12491 lib/getopt-pfx-core.h | 66 +++++++++++++++++++++++++++++++++++ 12492 lib/getopt-pfx-ext.h | 70 +++++++++++++++++++++++++++++++++++++ 12493 4 files changed, 309 insertions(+) 12494 12495commit 5b7a6f06e93d99d6635a740fd2e12fab66096c93 12496Author: Lasse Collin <lasse.collin@tukaani.org> 12497Date: 2023-09-22 21:16:52 +0300 12498 12499 Windows: Update the version requirement comments from Win95 to W2k. 12500 12501 windows/README-Windows.txt | 10 ++++------ 12502 windows/build.bash | 6 +++--- 12503 2 files changed, 7 insertions(+), 9 deletions(-) 12504 12505commit e582f8e0fee46e7cd967f42f465d6bb608b73bc1 12506Author: Lasse Collin <lasse.collin@tukaani.org> 12507Date: 2023-09-22 21:12:54 +0300 12508 12509 tuklib_physmem: Comment out support for Windows versions older than 2000. 12510 12511 src/common/tuklib_physmem.c | 20 +++++++++----------- 12512 1 file changed, 9 insertions(+), 11 deletions(-) 12513 12514commit 7d73d1f0e08f96c4ab7aac91b958e37a3dadf07a 12515Author: Lasse Collin <lasse.collin@tukaani.org> 12516Date: 2023-09-24 16:32:32 +0300 12517 12518 sysdefs.h: Update the comment about __USE_MINGW_ANSI_STDIO. 12519 12520 src/common/sysdefs.h | 10 +++++++++- 12521 1 file changed, 9 insertions(+), 1 deletion(-) 12522 12523commit 2a9929af0ab7e6c0ab725565034afe3293e51d71 12524Author: Lasse Collin <lasse.collin@tukaani.org> 12525Date: 2023-09-22 02:33:29 +0300 12526 12527 xz: Windows: Don't (de)compress to special files like "con" or "nul". 12528 12529 Before this commit, the following writes "foo" to the 12530 console and deletes the input file: 12531 12532 echo foo | xz > con_xz 12533 xz --suffix=_xz --decompress con_xz 12534 12535 It cannot happen without --suffix because names like con.xz 12536 are also special and so attempting to decompress con.xz 12537 (or compress con to con.xz) will already fail when opening 12538 the input file. 12539 12540 Similar thing is possible when compressing. The following 12541 writes to "nul" and the input file "n" is deleted. 12542 12543 echo foo | xz > n 12544 xz --suffix=ul n 12545 12546 Now xz checks if the destination is a special file before 12547 continuing. DOS/DJGPP version had a check for this but 12548 Windows (and OS/2) didn't. 12549 12550 src/xz/file_io.c | 35 ++++++++++++++++++++++++++++------- 12551 1 file changed, 28 insertions(+), 7 deletions(-) 12552 12553commit 01311b81f03cce1c0ce847a3d556f84dbd439343 12554Author: Lasse Collin <lasse.collin@tukaani.org> 12555Date: 2023-09-21 20:42:52 +0300 12556 12557 CMake: Wrap two overlong lines that are possible to wrap. 12558 12559 CMakeLists.txt | 6 ++++-- 12560 1 file changed, 4 insertions(+), 2 deletions(-) 12561 12562commit 152d0771ddd0cffcac9042ad1a66f110d228eee2 12563Author: Lasse Collin <lasse.collin@tukaani.org> 12564Date: 2023-09-21 20:36:31 +0300 12565 12566 CMake: Add a comment about threads on Cygwin. 12567 12568 CMakeLists.txt | 1 + 12569 1 file changed, 1 insertion(+) 12570 12571commit 6df988cceffaa3100b428ed816fad334935b27bf 12572Author: Lasse Collin <lasse.collin@tukaani.org> 12573Date: 2023-09-12 23:53:25 +0300 12574 12575 MSVC: Remove Visual Studio project files and update INSTALL-MSVC.txt. 12576 12577 CMake is now the preferred build file generator when building 12578 with MSVC. 12579 12580 windows/INSTALL-MSVC.txt | 37 ++-- 12581 windows/vs2013/config.h | 157 --------------- 12582 windows/vs2013/liblzma.vcxproj | 363 --------------------------------- 12583 windows/vs2013/liblzma_dll.vcxproj | 398 ------------------------------------ 12584 windows/vs2013/xz_win.sln | 48 ----- 12585 windows/vs2017/config.h | 157 --------------- 12586 windows/vs2017/liblzma.vcxproj | 363 --------------------------------- 12587 windows/vs2017/liblzma_dll.vcxproj | 398 ------------------------------------ 12588 windows/vs2017/xz_win.sln | 48 ----- 12589 windows/vs2019/config.h | 157 --------------- 12590 windows/vs2019/liblzma.vcxproj | 364 --------------------------------- 12591 windows/vs2019/liblzma_dll.vcxproj | 399 ------------------------------------- 12592 windows/vs2019/xz_win.sln | 51 ----- 12593 13 files changed, 12 insertions(+), 2928 deletions(-) 12594 12595commit edd563daf0da1d00018684614803c77ab62efcd6 12596Author: Lasse Collin <lasse.collin@tukaani.org> 12597Date: 2023-09-21 19:17:40 +0300 12598 12599 CMake: Require VS2015 or later for building xzdec. 12600 12601 xzdec might build with VS2013 but it hasn't been tested. 12602 It was never supported before and VS2013 is old anyway 12603 so for simplicity only liblzma is supported with VS2013. 12604 12605 CMakeLists.txt | 2 +- 12606 1 file changed, 1 insertion(+), 1 deletion(-) 12607 12608commit daea64d158a7151ca6c255a0e4554c6d521cd589 12609Author: Lasse Collin <lasse.collin@tukaani.org> 12610Date: 2023-09-12 23:43:49 +0300 12611 12612 CMake: Allow building xz with Visual Studio 2015 and later. 12613 12614 Building the command line tools xz and xzdec with the combination 12615 of CMake + Visual Studio 2015/2017/2019/2022 works now. 12616 12617 VS2013 update 2 should still be able to build liblzma. 12618 VS2013 cannot build the xz command line tool because xz 12619 needs snprintf() that roughly conforms to C99. 12620 VS2013 is old and no extra code will be added to support it. 12621 12622 Thanks to Kelvin Lee and Jia Tan for testing. 12623 12624 CMakeLists.txt | 2 +- 12625 1 file changed, 1 insertion(+), 1 deletion(-) 12626 12627commit 8c2d197c940d246849b2ec48109bb22e54036927 12628Author: Lasse Collin <lasse.collin@tukaani.org> 12629Date: 2023-09-12 23:34:31 +0300 12630 12631 MSVC: #define inline and restrict only when needed. 12632 12633 This also drops the check for _WIN32 as that shouldn't be needed. 12634 12635 src/common/sysdefs.h | 13 ++++++++----- 12636 1 file changed, 8 insertions(+), 5 deletions(-) 12637 12638commit af66cd585902045e5689a0418103ec81f19f1d0a 12639Author: Lasse Collin <lasse.collin@tukaani.org> 12640Date: 2023-09-12 22:16:56 +0300 12641 12642 CMake: Add support for replacement getopt_long (lib/getopt*). 12643 12644 Thanks to Jia Tan for the initial work. I added the libgnu target 12645 and made a few related minor edits. 12646 12647 CMakeLists.txt | 54 +++++++++++++++++++++++++++++++++++++++++++++++------- 12648 1 file changed, 47 insertions(+), 7 deletions(-) 12649 12650commit e3288fdb45c580cb849f6799cf419c4922004ae5 12651Author: Lasse Collin <lasse.collin@tukaani.org> 12652Date: 2023-09-12 21:12:34 +0300 12653 12654 CMake: Bump maximum policy version to 3.27. 12655 12656 There are several new policies. CMP0149 may affect the Windows SDK 12657 version that CMake will choose by default. The new behavior is more 12658 predictable, always choosing the latest SDK version by default. 12659 12660 The other new policies shouldn't affect this package. 12661 12662 CMakeLists.txt | 2 +- 12663 1 file changed, 1 insertion(+), 1 deletion(-) 12664 12665commit aff1b479c7b168652bd20305ceed4317d5db6661 12666Author: Lasse Collin <lasse.collin@tukaani.org> 12667Date: 2023-09-12 20:55:10 +0300 12668 12669 lib/getopt*.c: Include <config.h> only HAVE_CONFIG_H is defined. 12670 12671 The CMake-based build doesn't use config.h. 12672 12673 Up-to-date getopt_long in Gnulib is LGPLv2 so at some 12674 point it could be included in XZ Utils too but for now 12675 this commit is enough to make CMake-based build possible. 12676 12677 lib/getopt.c | 4 +++- 12678 lib/getopt1.c | 4 +++- 12679 2 files changed, 6 insertions(+), 2 deletions(-) 12680 12681commit aa0cd585d2ed1455d35732798e0d90e3520e8ba5 12682Author: Lasse Collin <lasse.collin@tukaani.org> 12683Date: 2023-09-08 19:08:57 +0300 12684 12685 Doxygen: Add more C macro names to PREDEFINED. 12686 12687 doxygen/Doxyfile | 7 +++++-- 12688 1 file changed, 5 insertions(+), 2 deletions(-) 12689 12690commit ee7709bae53637e1765ce142ef102914f1423cb5 12691Author: Lasse Collin <lasse.collin@tukaani.org> 12692Date: 2023-09-11 18:47:26 +0300 12693 12694 liblzma: Move a few __attribute__ uses in function declarations. 12695 12696 The API headers have many attributes but these were left 12697 as is for now. 12698 12699 src/liblzma/common/common.c | 6 ++++-- 12700 src/liblzma/common/common.h | 8 ++++---- 12701 src/liblzma/common/memcmplen.h | 3 ++- 12702 3 files changed, 10 insertions(+), 7 deletions(-) 12703 12704commit 217958d88713b5dc73d366d24dd64b2b311b86fe 12705Author: Lasse Collin <lasse.collin@tukaani.org> 12706Date: 2023-09-11 19:03:35 +0300 12707 12708 xz, xzdec, lzmainfo: Use tuklib_attr_noreturn. 12709 12710 For compatibility with C23's [[noreturn]], tuklib_attr_noreturn 12711 must be at the beginning of declaration (before "extern" or 12712 "static", and even before any GNU C's __attribute__). 12713 12714 This commit also moves all other function attributes to 12715 the beginning of function declarations. "extern" is kept 12716 at the beginning of a line so the attributes are listed on 12717 separate lines before "extern" or "static". 12718 12719 src/lzmainfo/lzmainfo.c | 6 ++++-- 12720 src/xz/coder.c | 3 ++- 12721 src/xz/hardware.h | 3 ++- 12722 src/xz/message.h | 30 +++++++++++++++++------------- 12723 src/xz/options.c | 3 ++- 12724 src/xz/util.h | 8 ++++---- 12725 src/xzdec/xzdec.c | 9 ++++++--- 12726 7 files changed, 37 insertions(+), 25 deletions(-) 12727 12728commit 18a66fbac031c98f9c2077fc88846e4d07849197 12729Author: Lasse Collin <lasse.collin@tukaani.org> 12730Date: 2023-09-11 18:53:31 +0300 12731 12732 Remove incorrect uses of __attribute__((__malloc__)). 12733 12734 xrealloc() is obviously incorrect, modern GCC docs even 12735 mention realloc() as an example where this attribute 12736 cannot be used. 12737 12738 liblzma's lzma_alloc() and lzma_alloc_zero() would be 12739 correct uses most of the time but custom allocators 12740 may use a memory pool or otherwise hold the pointer 12741 so aliasing issues could happen in theory. 12742 12743 The xstrdup() case likely was correct but I removed it anyway. 12744 Now there are no __malloc__ attributes left in the code. 12745 The allocations aren't in hot paths so this should make 12746 no practical difference. 12747 12748 src/liblzma/common/common.c | 4 ++-- 12749 src/liblzma/common/common.h | 4 ++-- 12750 src/xz/util.h | 4 ++-- 12751 3 files changed, 6 insertions(+), 6 deletions(-) 12752 12753commit 74b0e900c92d5b222b36f474f1efa431f8e262f7 12754Author: Lasse Collin <lasse.collin@tukaani.org> 12755Date: 2023-09-08 18:41:25 +0300 12756 12757 Build: Omit -Wc99-c11-compat since it warns about _Noreturn. 12758 12759 configure.ac | 1 - 12760 1 file changed, 1 deletion(-) 12761 12762commit 90c94dddfd57b7d744bfad64c54e10d15778144b 12763Author: Lasse Collin <lasse.collin@tukaani.org> 12764Date: 2023-09-08 18:19:26 +0300 12765 12766 tuklib: Update tuklib_attr_noreturn for C11/C17 and C23. 12767 12768 This makes no difference for GCC or Clang as they support 12769 GNU C's __attribute__((__noreturn__)) but this helps with MSVC: 12770 12771 - VS 2019 version 16.7 and later support _Noreturn if the 12772 options /std:c11 or /std:c17 are used. This gets handled 12773 with the check for __STDC_VERSION__ >= 201112. 12774 12775 - When MSVC isn't in C11/C17 mode, __declspec(noreturn) is used. 12776 12777 C23 will deprecate _Noreturn (and <stdnoreturn.h>) 12778 for [[noreturn]]. This commit anticipates that but 12779 the final __STDC_VERSION__ value isn't known yet. 12780 12781 src/common/tuklib_common.h | 22 +++++++++++++++++++++- 12782 src/common/tuklib_exit.h | 4 ++-- 12783 2 files changed, 23 insertions(+), 3 deletions(-) 12784 12785commit 189f72581329ab281ad6af37f60135910cb1b146 12786Author: Lasse Collin <lasse.collin@tukaani.org> 12787Date: 2023-09-11 17:22:44 +0300 12788 12789 Update THANKS. 12790 12791 THANKS | 1 + 12792 1 file changed, 1 insertion(+) 12793 12794commit 79334e7f20f2bf9e0de095835b48868f1238f584 12795Author: Lasse Collin <lasse.collin@tukaani.org> 12796Date: 2023-09-05 22:42:10 +0300 12797 12798 MSVC: xz: Make file_io.c and file_io.h compatible with MSVC. 12799 12800 Thanks to Kelvin Lee for the original patches 12801 and testing the modifications I made. 12802 12803 src/xz/file_io.c | 26 ++++++++++++++++++++++++++ 12804 src/xz/file_io.h | 10 ++++++++++ 12805 2 files changed, 36 insertions(+) 12806 12807commit c660b8d78b7bda43b12b285550d8c70e8ccec698 12808Author: Lasse Collin <lasse.collin@tukaani.org> 12809Date: 2023-09-05 21:33:35 +0300 12810 12811 MSVC: xz: Use GetTickCount64() to implement mytime_now(). 12812 12813 It's available since Windows Vista. 12814 12815 src/xz/mytime.c | 11 +++++++++-- 12816 1 file changed, 9 insertions(+), 2 deletions(-) 12817 12818commit 5c6f892d411670e3060f4bc309402617a209e57c 12819Author: Kelvin Lee <kiyolee@gmail.com> 12820Date: 2023-09-05 15:05:09 +0300 12821 12822 MSVC: xz: Use _stricmp() instead of strcasecmp() in suffix.c. 12823 12824 src/xz/suffix.c | 10 ++++++++-- 12825 1 file changed, 8 insertions(+), 2 deletions(-) 12826 12827commit e241051f50044259d174e8b4633dd9a1c4478408 12828Author: Kelvin Lee <kiyolee@gmail.com> 12829Date: 2023-09-05 15:01:10 +0300 12830 12831 MSVC: xz: Use _isatty() from <io.h> to implement isatty(). 12832 12833 src/xz/message.c | 5 +++++ 12834 src/xz/util.c | 5 +++++ 12835 2 files changed, 10 insertions(+) 12836 12837commit d14bba8fc2be02a9fed8c9bcaaf61103451755f8 12838Author: Kelvin Lee <kiyolee@gmail.com> 12839Date: 2023-09-05 15:10:31 +0300 12840 12841 MSVC: xz: Use _fileno() instead of fileno(). 12842 12843 src/xz/private.h | 4 ++++ 12844 1 file changed, 4 insertions(+) 12845 12846commit c4edd367678e6a38c42b149856159bf417da7fe1 12847Author: Kelvin Lee <kiyolee@gmail.com> 12848Date: 2023-09-05 15:00:07 +0300 12849 12850 MSVC: xzdec: Use _fileno and _setmode. 12851 12852 src/xzdec/xzdec.c | 4 ++++ 12853 1 file changed, 4 insertions(+) 12854 12855commit cfd1054b9b539ee92524901e95d7bb5a1fe670a0 12856Author: Kelvin Lee <kiyolee@gmail.com> 12857Date: 2023-09-05 14:37:50 +0300 12858 12859 MSVC: Don't #include <unistd.h>. 12860 12861 lib/getopt.c | 4 +++- 12862 lib/getopt.in.h | 4 +++- 12863 src/xz/private.h | 5 ++++- 12864 src/xzdec/xzdec.c | 5 ++++- 12865 4 files changed, 14 insertions(+), 4 deletions(-) 12866 12867commit adef92f23563a2cc088b31ddee9040ecc96bc996 12868Author: Lasse Collin <lasse.collin@tukaani.org> 12869Date: 2023-09-19 14:03:45 +0300 12870 12871 Update THANKS. 12872 12873 THANKS | 1 + 12874 1 file changed, 1 insertion(+) 12875 12876commit 953e775941a25bfcfa353f802b13e66acb1edf2c 12877Author: Jia Tan <jiat0218@gmail.com> 12878Date: 2023-09-14 21:13:23 +0800 12879 12880 CI: Enable CLMUL in address sanitization test. 12881 12882 The crc64_clmul() function should be ignored by the address sanitizer 12883 now so these builds should still pass. 12884 12885 .github/workflows/ci.yml | 12 ++++-------- 12886 1 file changed, 4 insertions(+), 8 deletions(-) 12887 12888commit f167e79bc98f3f56af2e767b83aa81c2d2b9ed77 12889Author: Lasse Collin <lasse.collin@tukaani.org> 12890Date: 2023-09-14 16:35:46 +0300 12891 12892 Update THANKS. 12893 12894 THANKS | 1 + 12895 1 file changed, 1 insertion(+) 12896 12897commit 4f44ef86758a41a8ec814096f4cb6ee6de04c82e 12898Author: Lasse Collin <lasse.collin@tukaani.org> 12899Date: 2023-09-14 16:34:07 +0300 12900 12901 liblzma: Mark crc64_clmul() with __attribute__((__no_sanitize_address__)). 12902 12903 Thanks to Agostino Sarubbo. 12904 Fixes: https://github.com/tukaani-project/xz/issues/62 12905 12906 src/liblzma/check/crc64_fast.c | 8 ++++++++ 12907 1 file changed, 8 insertions(+) 12908 12909commit 7379bb3eed428c0ae734d0cc4a1fd04359d53f08 12910Author: Jia Tan <jiat0218@gmail.com> 12911Date: 2023-09-12 22:36:12 +0800 12912 12913 CMake: Fix time.h checks not running on second CMake run. 12914 12915 If CMake was configured more than once, HAVE_CLOCK_GETTIME and 12916 HAVE_CLOCK_MONOTONIC would not be set as compile definitions. The check 12917 for librt being needed to provide HAVE_CLOCK_GETTIME was also 12918 simplified. 12919 12920 CMakeLists.txt | 18 ++++++++++-------- 12921 1 file changed, 10 insertions(+), 8 deletions(-) 12922 12923commit 5d691fe58286b92d704c0dc5cd0c4df22881c6c6 12924Author: Jia Tan <jiat0218@gmail.com> 12925Date: 2023-09-12 22:34:06 +0800 12926 12927 CMake: Fix unconditionally defining HAVE_CLOCK_MONOTONIC. 12928 12929 If HAVE_CLOCK_GETTIME was defined, then HAVE_CLOCK_MONOTONIC was always 12930 added as a compile definition even if the check for it failed. 12931 12932 CMakeLists.txt | 8 +++----- 12933 1 file changed, 3 insertions(+), 5 deletions(-) 12934 12935commit eccf12866527b8d24c7d7f92f755142be8ef9b11 12936Author: Lasse Collin <lasse.collin@tukaani.org> 12937Date: 2023-08-31 19:50:05 +0300 12938 12939 xz: Refactor thousand separator detection and disable it on MSVC. 12940 12941 Now the two variations of the format strings are created with 12942 a macro, and the whole detection code can be easily disabled 12943 on platforms where thousand separator formatting is known to 12944 not work (MSVC has no support, and on DJGPP 2.05 it can have 12945 problems in some cases). 12946 12947 src/xz/util.c | 89 ++++++++++++++++++++++++++++++----------------------------- 12948 1 file changed, 45 insertions(+), 44 deletions(-) 12949 12950commit f7093cd9d130477c234b40aeda613964171f8f21 12951Author: Lasse Collin <lasse.collin@tukaani.org> 12952Date: 2023-08-31 18:14:43 +0300 12953 12954 xz: Fix a too relaxed assertion and remove uses of SSIZE_MAX. 12955 12956 SSIZE_MAX isn't readily available on MSVC. Removing it means 12957 that there is one thing less to worry when porting to MSVC. 12958 12959 src/xz/file_io.c | 5 ++--- 12960 src/xz/file_io.h | 4 ++-- 12961 2 files changed, 4 insertions(+), 5 deletions(-) 12962 12963commit 74c3449d8b816a724b12ebce7417e00fb597309a 12964Author: Jia Tan <jiat0218@gmail.com> 12965Date: 2023-08-28 23:14:45 +0800 12966 12967 Tests: Improve invalid unpadded size check in test_lzma_index_append(). 12968 12969 This check was extended to test the code added to fix a failing assert 12970 in ae5c07b22a6b3766b84f409f1b6b5c100469068a. 12971 12972 tests/test_index.c | 26 +++++++++++++++++++++++--- 12973 1 file changed, 23 insertions(+), 3 deletions(-) 12974 12975commit 2544274a8b8a27f4ea6c457d2c4c32eb1e4cd336 12976Author: Jia Tan <jiat0218@gmail.com> 12977Date: 2023-08-28 21:54:41 +0800 12978 12979 Tests: Improve comments in test_index.c. 12980 12981 tests/test_index.c | 6 +++--- 12982 1 file changed, 3 insertions(+), 3 deletions(-) 12983 12984commit 49be29d6380b94e6fb26e511dd2cdbd9afce0f8b 12985Author: Jia Tan <jiat0218@gmail.com> 12986Date: 2023-08-28 21:52:54 +0800 12987 12988 Update THANKS. 12989 12990 THANKS | 1 + 12991 1 file changed, 1 insertion(+) 12992 12993commit 721e3d9f7a82f59f32795d5fb97e0210d1aa839a 12994Author: Jia Tan <jiat0218@gmail.com> 12995Date: 2023-08-28 21:50:16 +0800 12996 12997 liblzma: Update assert in vli_ceil4(). 12998 12999 The argument to vli_ceil4() should always guarantee the return value 13000 is also a valid lzma_vli. Thus the highest three valid lzma_vli values 13001 are invalid arguments. All uses of the function ensure this so the 13002 assert is updated to match this. 13003 13004 src/liblzma/common/index.h | 2 +- 13005 1 file changed, 1 insertion(+), 1 deletion(-) 13006 13007commit ae5c07b22a6b3766b84f409f1b6b5c100469068a 13008Author: Jia Tan <jiat0218@gmail.com> 13009Date: 2023-08-28 21:31:25 +0800 13010 13011 liblzma: Add overflow check for Unpadded size in lzma_index_append(). 13012 13013 This was not a security bug since there was no path to overflow 13014 UINT64_MAX in lzma_index_append() or when it calls index_file_size(). 13015 The bug was discovered by a failing assert() in vli_ceil4() when called 13016 from index_file_size() when unpadded_sum (the sum of the compressed size 13017 of current Stream and the unpadded_size parameter) exceeds LZMA_VLI_MAX. 13018 13019 Previously, the unpadded_size parameter was checked to be not greater 13020 than UNPADDED_SIZE_MAX, but no check was done once compressed_base was 13021 added. 13022 13023 This could not have caused an integer overflow in index_file_size() when 13024 called by lzma_index_append(). The calculation for file_size breaks down 13025 into the sum of: 13026 13027 - Compressed base from all previous Streams 13028 - 2 * LZMA_STREAM_HEADER_SIZE (size of the current Streams header and 13029 footer) 13030 - stream_padding (can be set by lzma_index_stream_padding()) 13031 - Compressed base from the current Stream 13032 - Unpadded size (parameter to lzma_index_append()) 13033 13034 The sum of everything except for Unpadded size must be less than 13035 LZMA_VLI_MAX. This is guarenteed by overflow checks in the functions 13036 that can set these values including lzma_index_stream_padding(), 13037 lzma_index_append(), and lzma_index_cat(). The maximum value for 13038 Unpadded size is enforced by lzma_index_append() to be less than or 13039 equal UNPADDED_SIZE_MAX. Thus, the sum cannot exceed UINT64_MAX since 13040 LZMA_VLI_MAX is half of UINT64_MAX. 13041 13042 Thanks to Joona Kannisto for reporting this. 13043 13044 src/liblzma/common/index.c | 6 ++++++ 13045 1 file changed, 6 insertions(+) 13046 13047commit 1057765aaabfe0f1397b8094531846655376ae38 13048Author: Jia Tan <jiat0218@gmail.com> 13049Date: 2023-08-28 22:18:29 +0800 13050 13051 Translations: Update the Esperanto translation. 13052 13053 po/eo.po | 4 ++-- 13054 1 file changed, 2 insertions(+), 2 deletions(-) 13055 13056commit f2e94d064f305bb8ad77ca70f91d93e55f5cf856 13057Author: Jia Tan <jiat0218@gmail.com> 13058Date: 2023-08-26 20:10:23 +0800 13059 13060 Translations: Update the Esperanto translation. 13061 13062 po/eo.po | 47 +++++++++++++++++++++++++++++------------------ 13063 1 file changed, 29 insertions(+), 18 deletions(-) 13064 13065commit 2b871f4dbffe3801d0da3f89806b5935f758d5f3 13066Author: Jia Tan <jiat0218@gmail.com> 13067Date: 2023-08-09 20:55:36 +0800 13068 13069 Docs: Update INSTALL for --enable-threads method win95. 13070 13071 The Autotools build allows win95 threads and --enable-small together now 13072 if the compiler supports __attribute__((__constructor__)). 13073 13074 INSTALL | 6 ++++-- 13075 1 file changed, 4 insertions(+), 2 deletions(-) 13076 13077commit 356ad5b26b4196f085ce3afa1869154ca81faad8 13078Author: Jia Tan <jiat0218@gmail.com> 13079Date: 2023-08-09 20:54:15 +0800 13080 13081 CMake: Conditionally allow win95 threads and --enable-small. 13082 13083 CMakeLists.txt | 28 ++++++++++++++++++++-------- 13084 1 file changed, 20 insertions(+), 8 deletions(-) 13085 13086commit de574404c4c2f87aca049f232c38526e3ce092aa 13087Author: Jia Tan <jiat0218@gmail.com> 13088Date: 2023-08-09 20:35:16 +0800 13089 13090 Build: Conditionally allow win95 threads and --enable-small. 13091 13092 When the compiler supports __attribute__((__constructor__)) 13093 mythread_once() is never used, even with --enable-small. A configuration 13094 with win95 threads and --enable-small will compile and be thread safe so 13095 it can be allowed. 13096 13097 This isn't a very common configuration since MSVC does not support 13098 __attribute__((__constructor__)), but MINGW32 and CLANG32 environments 13099 for MSYS2 can use win95 threads and have 13100 __attribute__((__constructor__)) support. 13101 13102 configure.ac | 21 +++++++++++++-------- 13103 1 file changed, 13 insertions(+), 8 deletions(-) 13104 13105commit 6bf33b704cd31dccf25e68480464aa22d3fcad5a 13106Author: Jamaika1 <lukaszcz18@wp.pl> 13107Date: 2023-08-08 14:07:59 +0200 13108 13109 mythread.h: Fix typo error in Vista threads mythread_once(). 13110 13111 The "once_" variable was accidentally referred to as just "once". This 13112 prevented building with Vista threads when 13113 HAVE_FUNC_ATTRIBUTE_CONSTRUCTOR was not defined. 13114 13115 src/common/mythread.h | 2 +- 13116 1 file changed, 1 insertion(+), 1 deletion(-) 13117 13118commit 80cb961e5380a3878246d41341ff91378ca59e05 13119Author: Jia Tan <jiat0218@gmail.com> 13120Date: 2023-08-04 22:17:11 +0800 13121 13122 codespell: Add .codespellrc to set default options. 13123 13124 The .codespellrc allows setting default options to avoid false positive 13125 matches, set additional dictionaries, etc. For now, codespell can be 13126 used locally before committing doc and comment changes. 13127 13128 It should help prevent silly errors and fix up commits in the future. 13129 13130 .codespellrc | 24 ++++++++++++++++++++++++ 13131 1 file changed, 24 insertions(+) 13132 13133commit cd678a6077358935249b64a4a16fe8d17434f9c9 13134Author: Jia Tan <jiat0218@gmail.com> 13135Date: 2023-08-03 20:10:21 +0800 13136 13137 Tests: Style fixes to test_lzip_decoder.c. 13138 13139 tests/test_lzip_decoder.c | 36 ++++++++++++++++++++++++------------ 13140 1 file changed, 24 insertions(+), 12 deletions(-) 13141 13142commit 1cac5ed4fa45c9861d745b02d80575cb2ff01d81 13143Author: Jia Tan <jiat0218@gmail.com> 13144Date: 2023-08-03 15:56:20 +0800 13145 13146 Translations: Update the Chinese (simplified) translation. 13147 13148 po/zh_CN.po | 2 +- 13149 1 file changed, 1 insertion(+), 1 deletion(-) 13150 13151commit 16068f6c30b888cdb873f6285af941d00f95741d 13152Author: Lasse Collin <lasse.collin@tukaani.org> 13153Date: 2023-08-02 17:15:12 +0300 13154 13155 xz: Omit an empty paragraph on the man page. 13156 13157 src/xz/xz.1 | 1 - 13158 1 file changed, 1 deletion(-) 13159 13160commit 9ae4371b5106189486e850ce777e40f7b6021c0b 13161Author: Jia Tan <jiat0218@gmail.com> 13162Date: 2023-08-02 20:30:07 +0800 13163 13164 Add NEWS for 5.4.4. 13165 13166 NEWS | 43 +++++++++++++++++++++++++++++++++++++++++++ 13167 1 file changed, 43 insertions(+) 13168 13169commit e8c2203b2c76466d8d3387c5212b46151de8e605 13170Author: Lasse Collin <lasse.collin@tukaani.org> 13171Date: 2023-08-02 15:19:43 +0300 13172 13173 build-aux/manconv.sh: Fix US-ASCII and UTF-8 output. 13174 13175 groff defaults to SGR escapes. Using -P-c passes -c to grotty 13176 which restores the old behavior. Perhaps there is a better way to 13177 get pure plain text output but this works for now. 13178 13179 build-aux/manconv.sh | 4 ++-- 13180 1 file changed, 2 insertions(+), 2 deletions(-) 13181 13182commit 9a706167b0d903d92fd134895acb4bc6a5e3e688 13183Author: Lasse Collin <lasse.collin@tukaani.org> 13184Date: 2023-08-01 19:10:43 +0300 13185 13186 Update THANKS. 13187 13188 THANKS | 1 + 13189 1 file changed, 1 insertion(+) 13190 13191commit 33e25a0f5650754c38bed640deedefe3b4fec5ef 13192Author: Lasse Collin <lasse.collin@tukaani.org> 13193Date: 2023-08-01 18:22:24 +0300 13194 13195 Update THANKS. 13196 13197 THANKS | 1 + 13198 1 file changed, 1 insertion(+) 13199 13200commit 81db3b889830132334d1f2129bdc93177ac2ca7d 13201Author: ChanTsune <41658782+ChanTsune@users.noreply.github.com> 13202Date: 2023-08-01 18:17:17 +0300 13203 13204 mythread.h: Disable signal functions in builds targeting Wasm + WASI. 13205 13206 signal.h in WASI SDK doesn't currently provide sigprocmask() 13207 or sigset_t. liblzma doesn't need them so this change makes 13208 liblzma and xzdec build against WASI SDK. xz doesn't build yet 13209 and the tests don't either as tuktest needs setjmp() which 13210 isn't (yet?) implemented in WASI SDK. 13211 13212 Closes: https://github.com/tukaani-project/xz/pull/57 13213 See also: https://github.com/tukaani-project/xz/pull/56 13214 13215 (The original commit was edited a little by Lasse Collin.) 13216 13217 src/common/mythread.h | 2 +- 13218 1 file changed, 1 insertion(+), 1 deletion(-) 13219 13220commit 71c638c611324e606d324c8189fef8fe79db6991 13221Author: Jia Tan <jiat0218@gmail.com> 13222Date: 2023-08-01 21:58:51 +0800 13223 13224 Add newline to end of .gitignore. 13225 13226 Newline was accidentally removed in commit 13227 01cbb7f023ee7fda8ddde04bd17cf7d3c2418706. 13228 13229 .gitignore | 2 +- 13230 1 file changed, 1 insertion(+), 1 deletion(-) 13231 13232commit 42df7c7aa1cca385e509eb33c65136e61890f0bf 13233Author: Dimitri Papadopoulos Orfanos <3234522+DimitriPapadopoulos@users.noreply.github.com> 13234Date: 2023-07-31 14:02:21 +0200 13235 13236 Docs: Fix typos found by codespell 13237 13238 CMakeLists.txt | 4 ++-- 13239 NEWS | 2 +- 13240 configure.ac | 2 +- 13241 src/liblzma/api/lzma/container.h | 4 ++-- 13242 src/liblzma/api/lzma/filter.h | 2 +- 13243 src/liblzma/api/lzma/lzma12.h | 4 ++-- 13244 src/liblzma/common/block_buffer_encoder.c | 2 +- 13245 src/liblzma/common/common.h | 2 +- 13246 src/liblzma/common/file_info.c | 2 +- 13247 src/liblzma/common/lzip_decoder.c | 2 +- 13248 src/liblzma/common/stream_decoder_mt.c | 8 ++++---- 13249 src/liblzma/common/string_conversion.c | 6 +++--- 13250 src/liblzma/lz/lz_encoder.h | 2 +- 13251 src/liblzma/lzma/lzma_encoder.c | 4 ++-- 13252 src/xz/hardware.c | 4 ++-- 13253 tests/test_filter_flags.c | 4 ++-- 13254 tests/test_index.c | 2 +- 13255 tests/test_vli.c | 2 +- 13256 18 files changed, 29 insertions(+), 29 deletions(-) 13257 13258commit 01cbb7f023ee7fda8ddde04bd17cf7d3c2418706 13259Author: Jia Tan <jiat0218@gmail.com> 13260Date: 2023-07-26 20:26:23 +0800 13261 13262 Update .gitignore. 13263 13264 .gitignore | 4 ++++ 13265 1 file changed, 4 insertions(+) 13266 13267commit f97a1afd564c48ad9cb94682e10972a72e11fa08 13268Author: Jia Tan <jiat0218@gmail.com> 13269Date: 2023-07-28 22:03:08 +0800 13270 13271 CMake: Conditionally allow the creation of broken symlinks. 13272 13273 The CMake build will try to create broken symlinks on Unix and Unix-like 13274 platforms. Cygwin and MSYS2 are Unix-like, but may not be able to create 13275 broken symlinks. The value of the CYGWIN or MSYS environment variables 13276 determine if broken symlinks are valid. 13277 13278 The default for MSYS2 does not allow for broken symlinks, so the CMake 13279 build has been broken for MSYS2 since commit 13280 80a1a8bb838842a2be343bd88ad1462c21c5e2c9. 13281 13282 CMakeLists.txt | 82 +++++++++++++++++++++++++++++++++++++++++++++++++++++----- 13283 1 file changed, 75 insertions(+), 7 deletions(-) 13284 13285commit 7190f4cc7c9ade5b9b3675d0cbfa3b6d6ec9cb4f 13286Author: Jia Tan <jiat0218@gmail.com> 13287Date: 2023-07-28 21:56:48 +0800 13288 13289 CI: Fix windows-ci dependency installation. 13290 13291 All of the MSYS2 environments need make, and it does not come with the 13292 toolchain package. The toolchain package will install the needed 13293 compiler toolchains since without this package CMake cannot properly 13294 generate the Makefiles. 13295 13296 .github/workflows/windows-ci.yml | 6 +++--- 13297 1 file changed, 3 insertions(+), 3 deletions(-) 13298 13299commit a048f472cd9a2245265cb292853cbbcdd4f02001 13300Author: Jia Tan <jiat0218@gmail.com> 13301Date: 2023-07-28 21:54:22 +0800 13302 13303 CI: Update ci_build.sh CMake to always make Unix Makefiles. 13304 13305 The default for many of the MSYS2 environments is for CMake to create 13306 Ninja build files. This would complicate the build script since we would 13307 need a different command to run the tests. Its simpler to always use 13308 Unix Makefiles so that "make test" is always a usable target for 13309 testing. 13310 13311 build-aux/ci_build.sh | 4 ++-- 13312 1 file changed, 2 insertions(+), 2 deletions(-) 13313 13314commit 7870396a0ca945473aa0d1d790f4cbef456610bd 13315Author: Jia Tan <jiat0218@gmail.com> 13316Date: 2023-07-25 20:17:23 +0800 13317 13318 CI: Test CMake builds and test framework with MSYS2. 13319 13320 .github/workflows/windows-ci.yml | 32 ++++++++++++++++++++------------ 13321 1 file changed, 20 insertions(+), 12 deletions(-) 13322 13323commit 6497d1f8875cb7e3007f714336cc09c06fed235b 13324Author: Jia Tan <jiat0218@gmail.com> 13325Date: 2023-07-25 20:14:53 +0800 13326 13327 CI: Windows CI rename system matrix variable -> msys2_env. 13328 13329 Calling the MSYS2 environment "system" was a bit vague and should be 13330 more specific. 13331 13332 .github/workflows/windows-ci.yml | 15 +++++---------- 13333 1 file changed, 5 insertions(+), 10 deletions(-) 13334 13335commit 785e4121d9b2921ad36bd3af1cf61fa20a9265bd 13336Author: Jia Tan <jiat0218@gmail.com> 13337Date: 2023-07-24 23:11:45 +0800 13338 13339 CI: Add Clang64 MSYS2 environment to Windows CI. 13340 13341 .github/workflows/windows-ci.yml | 1 + 13342 1 file changed, 1 insertion(+) 13343 13344commit d9166b52cf3458a4da3eb92224837ca8fc208d79 13345Author: Jia Tan <jiat0218@gmail.com> 13346Date: 2023-07-24 21:43:44 +0800 13347 13348 liblzma: Prevent an empty translation unit in Windows builds. 13349 13350 To workaround Automake lacking Windows resource compiler support, an 13351 empty source file is compiled to overwrite the resource files for static 13352 library builds. Translation units without an external declaration are 13353 not allowed by the C standard and result in a warning when used with 13354 -Wempty-translation-unit (Clang) or -pedantic (GCC). 13355 13356 src/liblzma/Makefile.am | 6 +++++- 13357 1 file changed, 5 insertions(+), 1 deletion(-) 13358 13359commit db5019d691f980d622fb56fdcf383af2c3519c98 13360Author: Jia Tan <jiat0218@gmail.com> 13361Date: 2023-07-22 18:37:56 +0800 13362 13363 Translations: Update the Vietnamese translation. 13364 13365 po/vi.po | 45 ++++++++++++++++++++++++++++----------------- 13366 1 file changed, 28 insertions(+), 17 deletions(-) 13367 13368commit f3a055f762ba5b71b746fc2d44a6ababde2c61b5 13369Author: Jia Tan <jiat0218@gmail.com> 13370Date: 2023-07-22 14:55:42 +0800 13371 13372 CI: Add Windows runner for Autotools builds with MSYS2. 13373 13374 Only a subset of the tests run by the Linux and MacOS Autotools builds 13375 are run. The most interesting tests are the ones that disable threads, 13376 encoders, and decoders. 13377 13378 The Windows runner will only be run manually since these tests will 13379 likely take much longer than the Linux and MacOS runners. This runner 13380 should be used before merging any large features and before releases. 13381 13382 Currently the clang64 environment fails to due to a warning and 13383 -Werror is enabled for the CI tests. This is still an early version 13384 since the CMake build can be done for MSVC and optionally each of the 13385 MSYS2 environments. GitHub does not allow manually running the CI tests 13386 unless the workflow is checked on the default branch so checking in a 13387 minimum version is a good idea. 13388 13389 Thanks to Arthur S for the original proposing the original patch. 13390 13391 Closes: https://github.com/tukaani-project/xz/pull/34 13392 13393 .github/workflows/windows-ci.yml | 119 +++++++++++++++++++++++++++++++++++++++ 13394 1 file changed, 119 insertions(+) 13395 13396commit 556536a3525df9e5ed78b8c7057991cfa9edfac8 13397Author: Jia Tan <jiat0218@gmail.com> 13398Date: 2023-07-21 22:11:01 +0800 13399 13400 CI: Add argument to ci_build.sh to pass flags to autogen.sh. 13401 13402 build-aux/ci_build.sh | 9 +++++++-- 13403 1 file changed, 7 insertions(+), 2 deletions(-) 13404 13405commit 39a32d36fc465c4e70f13192eea380e518ba6e8a 13406Author: Jia Tan <jiat0218@gmail.com> 13407Date: 2023-07-21 18:05:44 +0800 13408 13409 Tests: Skip .lz files in test_files.sh if not configured. 13410 13411 Previously if the lzip decoder was not configured then test_files.sh 13412 would pass the lzip tests instead of skipping them. 13413 13414 tests/test_files.sh | 2 +- 13415 1 file changed, 1 insertion(+), 1 deletion(-) 13416 13417commit 194d12724b30fe42789d12a0184f9d412c449347 13418Author: Jia Tan <jiat0218@gmail.com> 13419Date: 2023-07-20 22:11:13 +0800 13420 13421 Tests: Add ARM64 filter test to test_compress.sh. 13422 13423 tests/test_compress.sh | 1 + 13424 1 file changed, 1 insertion(+) 13425 13426commit d850365c444368102c69beaddf849ed463c33467 13427Author: Jia Tan <jiat0218@gmail.com> 13428Date: 2023-07-20 20:30:05 +0800 13429 13430 Translations: Update the Croatian translation. 13431 13432 po/hr.po | 49 ++++++++++++++++++++++++++++++------------------- 13433 1 file changed, 30 insertions(+), 19 deletions(-) 13434 13435commit 24049eb7acf6d42a60f00efe4e7289fe8e1797fe 13436Author: Jia Tan <jiat0218@gmail.com> 13437Date: 2023-07-20 20:28:32 +0800 13438 13439 Translations: Update the Korean man page translations. 13440 13441 po4a/ko.po | 1255 ++++++++++++++++++++++++++++++------------------------------ 13442 1 file changed, 629 insertions(+), 626 deletions(-) 13443 13444commit 4d4a4fa07de6cb9d913fb2f97712fddda2527b49 13445Author: Jia Tan <jiat0218@gmail.com> 13446Date: 2023-07-20 20:25:24 +0800 13447 13448 Translations: Update the Korean translation. 13449 13450 po/ko.po | 45 ++++++++++++++++++++++++++++----------------- 13451 1 file changed, 28 insertions(+), 17 deletions(-) 13452 13453commit 237f06d9c55cf438a7538a598354bcf103f23711 13454Author: Jia Tan <jiat0218@gmail.com> 13455Date: 2023-07-20 20:24:05 +0800 13456 13457 Translations: Update the Polish translation. 13458 13459 po/pl.po | 47 +++++++++++++++++++++++++++++------------------ 13460 1 file changed, 29 insertions(+), 18 deletions(-) 13461 13462commit 80c2c832136656d5ac7a1bca8bc42d95e13d281a 13463Author: Jia Tan <jiat0218@gmail.com> 13464Date: 2023-07-20 20:22:23 +0800 13465 13466 Translations: Update the German man page translations. 13467 13468 po4a/de.po | 1255 ++++++++++++++++++++++++++++++------------------------------ 13469 1 file changed, 629 insertions(+), 626 deletions(-) 13470 13471commit fdbde14503ca03069d3649aa51926f5f796b89d8 13472Author: Jia Tan <jiat0218@gmail.com> 13473Date: 2023-07-20 20:18:44 +0800 13474 13475 Translations: Update the German translation. 13476 13477 po/de.po | 47 +++++++++++++++++++++++++++++------------------ 13478 1 file changed, 29 insertions(+), 18 deletions(-) 13479 13480commit 9f3bf5ff5b2b5cf0b252a2bf381238ca49dc4101 13481Author: Jia Tan <jiat0218@gmail.com> 13482Date: 2023-07-20 20:17:10 +0800 13483 13484 Translations: Update the Chinese (simplified) translation. 13485 13486 po/zh_CN.po | 47 +++++++++++++++++++++++++++++------------------ 13487 1 file changed, 29 insertions(+), 18 deletions(-) 13488 13489commit 376938c588011567c74f1d5a160c0ccce6336d46 13490Author: Jia Tan <jiat0218@gmail.com> 13491Date: 2023-07-20 20:15:47 +0800 13492 13493 Translations: Update the Swedish translation. 13494 13495 po/sv.po | 47 +++++++++++++++++++++++++++++------------------ 13496 1 file changed, 29 insertions(+), 18 deletions(-) 13497 13498commit 26b0bc6eb82c84559936a7c7080de5c71c8276f8 13499Author: Jia Tan <jiat0218@gmail.com> 13500Date: 2023-07-20 20:14:00 +0800 13501 13502 Translations: Update the Ukrainian man page translations. 13503 13504 po4a/uk.po | 1253 ++++++++++++++++++++++++++++++------------------------------ 13505 1 file changed, 628 insertions(+), 625 deletions(-) 13506 13507commit 2d02c8b7640b54f3c5aa1c8b5990ba56f322393b 13508Author: Jia Tan <jiat0218@gmail.com> 13509Date: 2023-07-20 20:09:15 +0800 13510 13511 Translations: Update the Ukrainian translation. 13512 13513 po/uk.po | 45 ++++++++++++++++++++++++++++----------------- 13514 1 file changed, 28 insertions(+), 17 deletions(-) 13515 13516commit f881018b503fd334331c24a09075429558abbce1 13517Author: Jia Tan <jiat0218@gmail.com> 13518Date: 2023-07-20 20:06:57 +0800 13519 13520 Translations: Update the Spanish translation. 13521 13522 po/es.po | 47 +++++++++++++++++++++++++++++------------------ 13523 1 file changed, 29 insertions(+), 18 deletions(-) 13524 13525commit 791fe6d3ffd6877fa5f852be69d9251397dfaa31 13526Author: Jia Tan <jiat0218@gmail.com> 13527Date: 2023-07-20 20:05:19 +0800 13528 13529 Translations: Update the Romanian translation. 13530 13531 po/ro.po | 48 ++++++++++++++++++++++++++++++------------------ 13532 1 file changed, 30 insertions(+), 18 deletions(-) 13533 13534commit 8827e90704f699fe08bb5bed56b1717a2bc0eb77 13535Author: Jia Tan <jiat0218@gmail.com> 13536Date: 2023-07-20 20:02:56 +0800 13537 13538 Translations: Update the Romanian man page translations. 13539 13540 po4a/ro.po | 1254 ++++++++++++++++++++++++++++++------------------------------ 13541 1 file changed, 629 insertions(+), 625 deletions(-) 13542 13543commit 0184d344fa4f215cd345bb131db9068e077c69b8 13544Author: Jia Tan <jiat0218@gmail.com> 13545Date: 2023-07-19 23:36:00 +0800 13546 13547 liblzma: Suppress -Wunused-function warning. 13548 13549 Clang 16.0.0 and earlier have a bug that the ifunc resolver function 13550 triggers the -Wunused-function warning. The resolver function is static 13551 and only "used" by the __attribute__((__ifunc()__)). 13552 13553 At this time, the bug is still unresolved, but has been reported: 13554 https://github.com/llvm/llvm-project/issues/63957 13555 13556 This is not a problem in GCC. 13557 13558 src/liblzma/check/crc64_fast.c | 10 ++++++++++ 13559 1 file changed, 10 insertions(+) 13560 13561commit 43845fa70fc751736c44c18f4cee42d49bfd1392 13562Author: Jia Tan <jiat0218@gmail.com> 13563Date: 2023-07-18 22:52:25 +0800 13564 13565 liblzma: Reword lzma_str_list_filters() documentation. 13566 13567 This further improves the documentation from commit 13568 f36ca7982f6bd5e9827219ed4f3c5a1fbf5d7bdf. The previous wording of 13569 "supported options" was slightly misleading since the options that are 13570 printed are the ones that are relevant for encoding/decoding. It is not 13571 about which options can or must be specified. 13572 13573 src/liblzma/api/lzma/filter.h | 2 +- 13574 1 file changed, 1 insertion(+), 1 deletion(-) 13575 13576commit 818701ba1c9dff780b7fbf28f9ab8eb11a25dd67 13577Author: Jia Tan <jiat0218@gmail.com> 13578Date: 2023-07-18 22:49:57 +0800 13579 13580 liblzma: Improve comment in string_conversion.c. 13581 13582 The comment used "flag" when referring to decoder options. Just 13583 referring to them as options is more clear and consistent. 13584 13585 src/liblzma/common/string_conversion.c | 4 ++-- 13586 1 file changed, 2 insertions(+), 2 deletions(-) 13587 13588commit b6b7d065853cd4c3f5b8d9be8aea0b6dcb0fe090 13589Author: Lasse Collin <lasse.collin@tukaani.org> 13590Date: 2023-07-18 17:37:33 +0300 13591 13592 xz: Translate the second "%s: " in message.c since French needs "%s : ". 13593 13594 This string is used to print a filename when using "xz -v" and 13595 stderr isn't a terminal. 13596 13597 src/xz/message.c | 2 +- 13598 1 file changed, 1 insertion(+), 1 deletion(-) 13599 13600commit be644042c3066d8e7a2834f989671ba74d27f749 13601Author: Lasse Collin <lasse.collin@tukaani.org> 13602Date: 2023-07-18 14:35:33 +0300 13603 13604 xz: Make "%s: %s" translatable because French needs "%s : %s". 13605 13606 src/xz/args.c | 5 ++++- 13607 src/xz/coder.c | 8 ++++---- 13608 src/xz/file_io.c | 8 ++++---- 13609 src/xz/list.c | 11 ++++++----- 13610 4 files changed, 18 insertions(+), 14 deletions(-) 13611 13612commit 97fd5cb669ee0afc48d2087675ab166aff89eaa2 13613Author: Lasse Collin <lasse.collin@tukaani.org> 13614Date: 2023-07-18 13:57:54 +0300 13615 13616 liblzma: Tweak #if condition in memcmplen.h. 13617 13618 Maybe ICC always #defines _MSC_VER on Windows but now 13619 it's very clear which code will get used. 13620 13621 src/liblzma/common/memcmplen.h | 4 ++-- 13622 1 file changed, 2 insertions(+), 2 deletions(-) 13623 13624commit 40392c19f71985852d75997f109dea97177d6f3f 13625Author: Lasse Collin <lasse.collin@tukaani.org> 13626Date: 2023-07-18 13:49:43 +0300 13627 13628 liblzma: Omit unnecessary parenthesis in a preprocessor directive. 13629 13630 src/liblzma/common/memcmplen.h | 4 ++-- 13631 1 file changed, 2 insertions(+), 2 deletions(-) 13632 13633commit abc1d5601b7e419ebc28a1ab4b268613b52e6f98 13634Author: Jia Tan <jiat0218@gmail.com> 13635Date: 2023-07-18 00:51:48 +0800 13636 13637 xz: Update Authors list in a few files. 13638 13639 src/xz/args.c | 3 ++- 13640 src/xz/args.h | 3 ++- 13641 src/xz/coder.c | 3 ++- 13642 src/xz/coder.h | 3 ++- 13643 src/xz/message.c | 3 ++- 13644 5 files changed, 10 insertions(+), 5 deletions(-) 13645 13646commit 289034a168878baa9df6ff6e159110aade69cba5 13647Author: Jia Tan <jiat0218@gmail.com> 13648Date: 2023-07-14 23:20:33 +0800 13649 13650 Docs: Add a new section to INSTALL for Tests. 13651 13652 The new Tests section describes basic information about the tests, how 13653 to run them, and important details when cross compiling. We have had a 13654 few questions about how to compile the tests without running them, so 13655 hopefully this information will help others with the same question in the 13656 future. 13657 13658 Fixes: https://github.com/tukaani-project/xz/issues/54 13659 13660 INSTALL | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++-------------- 13661 1 file changed, 64 insertions(+), 17 deletions(-) 13662 13663commit 1119e5f5a519b0ab71c81fc4dc84c0cc72abe513 13664Author: Jia Tan <jiat0218@gmail.com> 13665Date: 2023-07-14 21:10:27 +0800 13666 13667 Docs: Update README. 13668 13669 This adds an entry to "Other implementations of the .xz format" for 13670 XZ for Java. 13671 13672 README | 4 ++++ 13673 1 file changed, 4 insertions(+) 13674 13675commit f99e2e4e53b7ea89e4eef32ddd4882e0416357c9 13676Author: Jia Tan <jiat0218@gmail.com> 13677Date: 2023-07-13 23:32:10 +0800 13678 13679 xz: Fix typo in man page. 13680 13681 The Memory limit information section described three output 13682 columns when it actually has six. This was reworded to 13683 "multiple" to make it more future proof. 13684 13685 src/xz/xz.1 | 2 +- 13686 1 file changed, 1 insertion(+), 1 deletion(-) 13687 13688commit f907705eb1f6c5edaafc9668a34c51a989932f1d 13689Author: Jia Tan <jiat0218@gmail.com> 13690Date: 2023-07-13 21:46:12 +0800 13691 13692 xz: Minor clean up for coder.c 13693 13694 * Moved max_block_list_size from a global to local variable. 13695 * Reworded error message in validate_block_list_filter(). 13696 * Removed helper function filter_chain_error(). 13697 * Changed 1 << X to 1U << X in many places 13698 13699 src/xz/coder.c | 53 +++++++++++++++++++++-------------------------------- 13700 1 file changed, 21 insertions(+), 32 deletions(-) 13701 13702commit 9adc9e56157ecbf2948e5036df8567809b9ae177 13703Author: Jia Tan <jiat0218@gmail.com> 13704Date: 2023-07-13 21:26:47 +0800 13705 13706 xz: Update man page Authors and date. 13707 13708 src/xz/xz.1 | 5 +++-- 13709 1 file changed, 3 insertions(+), 2 deletions(-) 13710 13711commit c12e429f2635da8d8f5749e5f733f451baca6945 13712Author: Jia Tan <jiat0218@gmail.com> 13713Date: 2023-06-20 20:32:59 +0800 13714 13715 xz: Add a section to man page for robot mode --filters-help. 13716 13717 src/xz/xz.1 | 32 ++++++++++++++++++++++++++++++-- 13718 1 file changed, 30 insertions(+), 2 deletions(-) 13719 13720commit e10f2db5d10300c16fa482a136ed31c1aa6e8e8d 13721Author: Jia Tan <jiat0218@gmail.com> 13722Date: 2023-06-19 23:11:41 +0800 13723 13724 xz: Slight reword in xz man page for consistency. 13725 13726 Changed will print => prints in xz --robot --version description to 13727 match --robot --info-memory description. 13728 13729 src/xz/xz.1 | 2 +- 13730 1 file changed, 1 insertion(+), 1 deletion(-) 13731 13732commit f5dc172a402fa946f3c45a16929d7fe14c9f5e81 13733Author: Jia Tan <jiat0218@gmail.com> 13734Date: 2023-06-19 23:07:10 +0800 13735 13736 xz: Reorder robot mode subsections in the man page. 13737 13738 The order is now consistent with the order the command line arguments 13739 are documented earlier in the man page. The new order is: 13740 1. --list 13741 2. --info-memory 13742 3. --version 13743 13744 Instead of the previous order: 13745 1. --version 13746 2. --info-memory 13747 3. --list 13748 13749 src/xz/xz.1 | 192 ++++++++++++++++++++++++++++++------------------------------ 13750 1 file changed, 96 insertions(+), 96 deletions(-) 13751 13752commit 9628be23aef2784249fd9f3199799d785d2ec5cc 13753Author: Jia Tan <jiat0218@gmail.com> 13754Date: 2023-05-13 00:46:50 +0800 13755 13756 xz: Update man page for new --filters-help option. 13757 13758 src/xz/xz.1 | 10 ++++++++++ 13759 1 file changed, 10 insertions(+) 13760 13761commit a165d7df1964121eb9df715e6f836a31c865beef 13762Author: Jia Tan <jiat0218@gmail.com> 13763Date: 2023-05-13 00:44:41 +0800 13764 13765 xz: Add a new --filters-help option. 13766 13767 The --filters-help can be used to help create filter chains with the 13768 --filters and --filtersX options. The message in --long-help is too 13769 short to fully explain the syntax to construct complex filter chains. 13770 13771 In --robot mode, xz will only print the output from liblzma function 13772 lzma_str_list_filters. 13773 13774 src/xz/args.c | 8 ++++++++ 13775 src/xz/message.c | 30 ++++++++++++++++++++++++++++++ 13776 src/xz/message.h | 5 +++++ 13777 3 files changed, 43 insertions(+) 13778 13779commit 95f1a414b156ee35d3e71862a14915fdd138f913 13780Author: Jia Tan <jiat0218@gmail.com> 13781Date: 2023-04-21 20:28:11 +0800 13782 13783 xz: Update the man page for --block-list and --filtersX 13784 13785 The --block-list option description needed updating since the new 13786 --filtersX option changes how it can be used. The new entry for 13787 --filters1=FILTERS ... --filter9=FILTERS was created right after 13788 the --filters option. 13789 13790 src/xz/xz.1 | 106 +++++++++++++++++++++++++++++++++++++++++++++--------------- 13791 1 file changed, 80 insertions(+), 26 deletions(-) 13792 13793commit 47a63cad2aa778280e0c1926b7159427ea028cb1 13794Author: Jia Tan <jiat0218@gmail.com> 13795Date: 2023-04-21 19:50:14 +0800 13796 13797 xz: Update --long-help for the new --filtersX option. 13798 13799 src/xz/message.c | 12 ++++++++++-- 13800 1 file changed, 10 insertions(+), 2 deletions(-) 13801 13802commit 8b9913a13daca2550d02dfdcdc9be15f55ca4d13 13803Author: Jia Tan <jiat0218@gmail.com> 13804Date: 2023-06-17 20:46:21 +0800 13805 13806 xz: Ignore filter chains that are set but never used in --block-list. 13807 13808 If a filter chain is set but not used in --block-list, it introduced 13809 unexpected behavior such as requiring an unneeded amount of memory to 13810 compress, reducing the number of threads in multi-threaded encoding, and 13811 printing an incorrect amount of memory needed to decompress. 13812 13813 This also renames filters_init_mask => filters_used_mask. A filter is 13814 assumed to be used if it is specified in --filtersX until 13815 coder_set_compression_settings() determines which filters are referenced 13816 in --block-list. 13817 13818 src/xz/coder.c | 66 ++++++++++++++++++++++++++++++++++++++++++---------------- 13819 1 file changed, 48 insertions(+), 18 deletions(-) 13820 13821commit 183819bfd9efac8c184d9bf123325719b7eee30f 13822Author: Jia Tan <jiat0218@gmail.com> 13823Date: 2023-05-13 20:11:13 +0800 13824 13825 xz: Set the Block size for mt encoding correctly. 13826 13827 When opt_block_size is not used, the Block size for mt encoder is 13828 derived from the minimum of the largest Block specified by 13829 --block-list and the recommended Block size on all filter chains 13830 calculated by lzma_mt_block_size(). This avoids using unnecessary 13831 memory and ensures that all Blocks are large enough for the most memory 13832 needy filter chain. 13833 13834 src/xz/coder.c | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 13835 1 file changed, 67 insertions(+), 1 deletion(-) 13836 13837commit afb2dbec3d857b026486b75e42a4728e12d234cb 13838Author: Jia Tan <jiat0218@gmail.com> 13839Date: 2023-05-11 00:09:41 +0800 13840 13841 xz: Validate --flush-timeout for all specified filter chains. 13842 13843 src/xz/coder.c | 24 ++++++++++++++++-------- 13844 1 file changed, 16 insertions(+), 8 deletions(-) 13845 13846commit 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a 13847Author: Jia Tan <jiat0218@gmail.com> 13848Date: 2023-05-13 19:54:33 +0800 13849 13850 xz: Allows --block-list filters to scale down memory usage. 13851 13852 Previously, only the default filter chain could have its memory usage 13853 adjusted. The filter chains specified with --filtersX were not checked 13854 for memory usage. Now, all used filter chains will be adjusted if 13855 necessary. 13856 13857 src/xz/coder.c | 269 +++++++++++++++++++++++++++++++++++++++++++++------------ 13858 1 file changed, 214 insertions(+), 55 deletions(-) 13859 13860commit 479fd58d60622331fcbe48fddf756927b9f80d9a 13861Author: Jia Tan <jiat0218@gmail.com> 13862Date: 2023-05-10 21:50:33 +0800 13863 13864 xz: Do not include block splitting if encoders are disabled. 13865 13866 The block splitting logic and split_block() function are not needed if 13867 encoders are disabled. This will help slightly reduce the binary size 13868 when built without encoders and allow split_block() to use functions 13869 that require encoders being enabled. 13870 13871 src/xz/coder.c | 29 ++++++++++++++++++++--------- 13872 1 file changed, 20 insertions(+), 9 deletions(-) 13873 13874commit f86ede22500f7ae024ec3ec3f3489ab5a857a3b3 13875Author: Jia Tan <jiat0218@gmail.com> 13876Date: 2023-05-10 22:38:59 +0800 13877 13878 xz: Free filters[] in debug mode. 13879 13880 This will only free filter chains created with --filters1-9 since the 13881 default filter chain may be set from a static function variable. The 13882 complexity to free the default filter chain is not worth the burden on 13883 code maintenance. 13884 13885 src/xz/coder.c | 10 ++++++++++ 13886 1 file changed, 10 insertions(+) 13887 13888commit f281cd0d692ac0c70fc7669b80dddb863ea947e1 13889Author: Jia Tan <jiat0218@gmail.com> 13890Date: 2023-05-13 19:28:23 +0800 13891 13892 xz: Add a message if --block-list is used outside of xz compresssion. 13893 13894 --block-list is only supported with compression in xz format. This avoids 13895 silently ignoring when --block-list is unused. 13896 13897 src/xz/args.c | 11 +++++++++++ 13898 1 file changed, 11 insertions(+) 13899 13900commit d6af7f347077b22403133239592e478931307759 13901Author: Jia Tan <jiat0218@gmail.com> 13902Date: 2023-04-18 20:29:09 +0800 13903 13904 xz: Create command line options for filters[1-9]. 13905 13906 The new command line options are meant to be combined with --block-list. 13907 They work as an optional extension to --block-list to specify a custom 13908 filter chain for each block listed. The new options allow the creation 13909 of up to 9 reusable filter chains. For instance: 13910 13911 xz --block-list=1:10MiB,3:5MiB,,2:5MiB,1:0 --filters1=delta--lzma2 \ 13912 --filters2=x86--lzma2 --filters3=arm64--lzma2 13913 13914 Will create the following blocks: 13915 1. A block of size 10 MiB with filter chain delta, lzma2. 13916 2. A block of size 5 MiB with filter chain arm64, lzma2. 13917 3. A block of size 5 MiB with filter chain arm64, lzma2. 13918 4. A block of size 5 MiB with filter chain x86, lzma2. 13919 5. A block containing the rest of the file contents with filter chain 13920 delta, lzma2. 13921 13922 src/xz/args.c | 82 ++++++++++++++++++++++--- 13923 src/xz/coder.c | 188 ++++++++++++++++++++++++++++++++++++++++++--------------- 13924 src/xz/coder.h | 20 +++++- 13925 3 files changed, 230 insertions(+), 60 deletions(-) 13926 13927commit 072d29250113268536719ad0e040ab8a66fb6435 13928Author: Jia Tan <jiat0218@gmail.com> 13929Date: 2023-05-13 19:36:09 +0800 13930 13931 xz: Use lzma_filters_free() in forget_filter_chain(). 13932 13933 This is a little cleaner than the previous implementation of 13934 forget_filter_chain(). It is also more consistent since 13935 lzma_str_to_filters() will always terminate the filter chain so there 13936 is no need to terminate it later in coder_set_compression_settings(). 13937 13938 src/xz/coder.c | 18 ++++++++++-------- 13939 1 file changed, 10 insertions(+), 8 deletions(-) 13940 13941commit 3d21da5cff4b511633cb6e0d8a1090485c0c1059 13942Author: Jia Tan <jiat0218@gmail.com> 13943Date: 2023-04-17 22:22:45 +0800 13944 13945 xz: Separate string to filter conversion into a helper function. 13946 13947 Converting from string to filter will also need to be done for block 13948 specific filter chains. 13949 13950 src/xz/coder.c | 33 ++++++++++++++++++++------------- 13951 1 file changed, 20 insertions(+), 13 deletions(-) 13952 13953commit a6583726e5f950278f96abcf79c04f1056810be6 13954Author: Jia Tan <jiat0218@gmail.com> 13955Date: 2023-01-06 00:03:35 +0800 13956 13957 Tests: Use new --filters option in test_compress.sh 13958 13959 tests/test_compress.sh | 20 ++++++++++---------- 13960 1 file changed, 10 insertions(+), 10 deletions(-) 13961 13962commit 5f3b898d07cc9b7160c7c88b3120b7edabb8a5b0 13963Author: Jia Tan <jiat0218@gmail.com> 13964Date: 2023-01-06 00:03:06 +0800 13965 13966 xz: Update --long-help and man page for new --filters option. 13967 13968 src/xz/message.c | 6 ++++++ 13969 src/xz/xz.1 | 41 ++++++++++++++++++++++++++++++++++++----- 13970 2 files changed, 42 insertions(+), 5 deletions(-) 13971 13972commit 9ded880a0221f4d1256845fc4ab957ffd377c760 13973Author: Jia Tan <jiat0218@gmail.com> 13974Date: 2023-01-06 00:02:29 +0800 13975 13976 xz: Add --filters option to CLI. 13977 13978 The --filters option uses the new lzma_str_to_filters() function 13979 to convert a string into a full filter chain. Using this option 13980 will reset all previous filters set by --preset, --[filter], or 13981 --filters. 13982 13983 src/xz/args.c | 9 +++++++-- 13984 src/xz/coder.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++-- 13985 src/xz/coder.h | 3 +++ 13986 3 files changed, 58 insertions(+), 4 deletions(-) 13987 13988commit 2c189bb00af73dc7ba1a67a9d274d5be03ee3a88 13989Author: Jia Tan <jiat0218@gmail.com> 13990Date: 2023-07-14 21:30:25 +0800 13991 13992 Tests: Improve feature testing for skipping. 13993 13994 Fixed a bug where test_compress_* would all fail if arm64 or armthumb 13995 filters were enabled for compression but arm was disabled. Since the 13996 grep tests only checked for "define HAVE_ENCODER_ARM", this would match 13997 on HAVE_ENCODER_ARM64 or HAVE_ENCODER_ARMTHUMB. 13998 13999 Now the config.h feature test requires " 1" at the end to prevent the 14000 prefix problem. have_feature() was also updated for this even though 14001 there were known current bugs affecting it. This is just in case future 14002 features have a similar prefix problem. 14003 14004 tests/test_compress.sh | 4 ++-- 14005 tests/test_files.sh | 2 +- 14006 2 files changed, 3 insertions(+), 3 deletions(-) 14007 14008commit 80a6b9bcad016c99c9ba3f3eeb4a619fcadfd357 14009Author: Jia Tan <jiat0218@gmail.com> 14010Date: 2023-07-10 20:56:28 +0800 14011 14012 Translations: Update the Chinese (traditional) translation. 14013 14014 po/zh_TW.po | 659 ++++++++++++++++++++++++++++++++++-------------------------- 14015 1 file changed, 377 insertions(+), 282 deletions(-) 14016 14017commit 17f8844e6fc355abf997d77637a7447c4f7bbcbd 14018Author: Jia Tan <jiat0218@gmail.com> 14019Date: 2023-07-08 21:24:19 +0800 14020 14021 liblzma: Remove non-portable empty initializer. 14022 14023 Commit 78704f36e74205857c898a351c757719a6c8b666 added an empty 14024 initializer {} to prevent a warning. The empty initializer is a GNU 14025 extension and results in a build failure on MSVC. The -wpedantic flag 14026 warns about empty initializers. 14027 14028 src/liblzma/common/stream_encoder_mt.c | 2 +- 14029 1 file changed, 1 insertion(+), 1 deletion(-) 14030 14031commit 3aca4f629cd577f0c54f594d5d88722edf0b0413 14032Author: Jia Tan <jiat0218@gmail.com> 14033Date: 2023-07-08 20:03:59 +0800 14034 14035 Translations: Update the Vietnamese translation. 14036 14037 po/vi.po | 620 +++++++++++++++++++++++++++++++++++---------------------------- 14038 1 file changed, 349 insertions(+), 271 deletions(-) 14039 14040commit 66bdcfa85fef2911cc80f5f30fed3f9610faccb4 14041Author: Jia Tan <jiat0218@gmail.com> 14042Date: 2023-06-28 20:46:31 +0800 14043 14044 Tests: Fix memory leaks in test_index. 14045 14046 Several tests were missing calls to lzma_index_end() to clean up the 14047 lzma_index structs. The memory leaks were discovered by using 14048 -fsanitize=address with GCC. 14049 14050 tests/test_index.c | 11 +++++++++++ 14051 1 file changed, 11 insertions(+) 14052 14053commit fe3bd438fb119f9bad3f08dc29d331e4956196e1 14054Author: Jia Tan <jiat0218@gmail.com> 14055Date: 2023-06-28 20:43:29 +0800 14056 14057 Tests: Fix memory leaks in test_block_header. 14058 14059 test_block_header was not properly freeing the filter options between 14060 calls to lzma_block_header_decode(). The memory leaks were discovered by 14061 using -fsanitize=address with GCC. 14062 14063 tests/test_block_header.c | 38 ++++++++++++++++++++++---------------- 14064 1 file changed, 22 insertions(+), 16 deletions(-) 14065 14066commit 78704f36e74205857c898a351c757719a6c8b666 14067Author: Jia Tan <jiat0218@gmail.com> 14068Date: 2023-06-28 20:31:11 +0800 14069 14070 liblzma: Prevent uninitialzed warning in mt stream encoder. 14071 14072 This change only impacts the compiler warning since it was impossible 14073 for the wait_abs struct in stream_encode_mt() to be used before it was 14074 initialized since mythread_condtime_set() will always be called before 14075 mythread_cond_timedwait(). 14076 14077 Since the mythread.h code is different between the POSIX and 14078 Windows versions, this warning was only present on Windows builds. 14079 14080 Thanks to Arthur S for reporting the warning and providing an initial 14081 patch. 14082 14083 src/liblzma/common/stream_encoder_mt.c | 2 +- 14084 1 file changed, 1 insertion(+), 1 deletion(-) 14085 14086commit e3356a204c5ae02db3ec4552b6c1be354e9b6142 14087Author: Jia Tan <jiat0218@gmail.com> 14088Date: 2023-06-28 20:22:38 +0800 14089 14090 liblzma: Prevent warning for MSYS2 Windows build. 14091 14092 In lzma_memcmplen(), the <intrin.h> header file is only included if 14093 _MSC_VER and _M_X64 are both defined but _BitScanForward64() was 14094 previously used if _M_X64 was defined. GCC for MSYS2 defines _M_X64 but 14095 not _MSC_VER so _BitScanForward64() was used without including 14096 <intrin.h>. 14097 14098 Now, lzma_memcmplen() will use __builtin_ctzll() for MSYS2 GCC builds as 14099 expected. 14100 14101 src/liblzma/common/memcmplen.h | 6 ++++-- 14102 1 file changed, 4 insertions(+), 2 deletions(-) 14103 14104commit 45e250a9e9f3c3e8e8af2983366b170bf54f890e 14105Author: Jia Tan <jiat0218@gmail.com> 14106Date: 2023-06-28 21:01:22 +0800 14107 14108 CI: Add test with -fsanitize=address,undefined. 14109 14110 ci_build.sh was updated to accept disabling of __attribute__ ifunc 14111 and CLMUL. This will allow -fsanitize=address to pass because ifunc 14112 is incompatible with -fsanitize=address. The CLMUL implementation has 14113 optimizations that potentially read past the buffer and mask out the 14114 unwanted bytes. 14115 14116 This test will only run on Autotools Linux. 14117 14118 .github/workflows/ci.yml | 23 +++++++++++++++++++---- 14119 build-aux/ci_build.sh | 8 +++++++- 14120 2 files changed, 26 insertions(+), 5 deletions(-) 14121 14122commit 596ee722cd7ddf0afae584fc06365adc0e735977 14123Author: Jia Tan <jiat0218@gmail.com> 14124Date: 2023-06-28 20:16:04 +0800 14125 14126 CI: Upgrade checkout action from v2 to v3. 14127 14128 .github/workflows/ci.yml | 2 +- 14129 1 file changed, 1 insertion(+), 1 deletion(-) 14130 14131commit 86118ea320f867e09e98a8682cc08cbbdfd640e2 14132Author: Jia Tan <jiat0218@gmail.com> 14133Date: 2023-06-27 23:38:32 +0800 14134 14135 Update THANKS. 14136 14137 THANKS | 1 + 14138 1 file changed, 1 insertion(+) 14139 14140commit 3d1fdddf92321b516d55651888b9c669e254634e 14141Author: Jia Tan <jiat0218@gmail.com> 14142Date: 2023-06-27 17:27:09 +0300 14143 14144 Docs: Document the configure option --disable-ifunc in INSTALL. 14145 14146 INSTALL | 8 ++++++++ 14147 1 file changed, 8 insertions(+) 14148 14149commit b4cf7a2822e8d30eb2b12a1a07fd04383b10ade3 14150Author: Lasse Collin <lasse.collin@tukaani.org> 14151Date: 2023-06-27 17:24:49 +0300 14152 14153 Minor tweaks to style and comments. 14154 14155 CMakeLists.txt | 8 ++++---- 14156 configure.ac | 9 +++++---- 14157 2 files changed, 9 insertions(+), 8 deletions(-) 14158 14159commit 23fb9e3a329117c2968c1e7388b6ef07c782dba1 14160Author: Lasse Collin <lasse.collin@tukaani.org> 14161Date: 2023-06-27 17:19:49 +0300 14162 14163 CMake: Rename CHECK_ATTR_IFUNC to ALLOW_ATTR_IFUNC. 14164 14165 It's so that there's a clear difference in wording compared 14166 to liblzma's integrity check types. 14167 14168 CMakeLists.txt | 6 +++--- 14169 1 file changed, 3 insertions(+), 3 deletions(-) 14170 14171commit ee44863ae88e377a5df10db007ba9bfadde3d314 14172Author: Lasse Collin <lasse.collin@tukaani.org> 14173Date: 2023-06-27 17:05:23 +0300 14174 14175 liblzma: Add ifunc implementation to crc64_fast.c. 14176 14177 The ifunc method avoids indirection via the function pointer 14178 crc64_func. This works on GNU/Linux and probably on FreeBSD too. 14179 The previous __attribute((__constructor__)) method is kept for 14180 compatibility with ELF platforms which do support ifunc. 14181 14182 The ifunc method has some limitations, for example, building 14183 liblzma with -fsanitize=address will result in segfaults. 14184 The configure option --disable-ifunc must be used for such builds. 14185 14186 Thanks to Hans Jansen for the original patch. 14187 Closes: https://github.com/tukaani-project/xz/pull/53 14188 14189 src/liblzma/check/crc64_fast.c | 35 ++++++++++++++++++++++++++--------- 14190 1 file changed, 26 insertions(+), 9 deletions(-) 14191 14192commit b72d21202402a603db6d512fb9271cfa83249639 14193Author: Hans Jansen <hansjansen162@outlook.com> 14194Date: 2023-06-22 19:49:30 +0200 14195 14196 Add ifunc check to CMakeLists.txt 14197 14198 CMake build system will now verify if __attribute__((__ifunc__())) can be 14199 used in the build system. If so, HAVE_FUNC_ATTRIBUTE_IFUNC will be 14200 defined to 1. 14201 14202 CMakeLists.txt | 19 +++++++++++++++++++ 14203 1 file changed, 19 insertions(+) 14204 14205commit 23b5c36fb71904bfbe16bb20f976da38dadf6c3b 14206Author: Hans Jansen <hansjansen162@outlook.com> 14207Date: 2023-06-22 19:46:55 +0200 14208 14209 Add ifunc check to configure.ac 14210 14211 configure.ac will now verify if __attribute__((__ifunc__())) can be used in 14212 the build system. If so, HAVE_FUNC_ATTRIBUTE_IFUNC will be defined to 1. 14213 14214 configure.ac | 28 ++++++++++++++++++++++++++++ 14215 1 file changed, 28 insertions(+) 14216 14217commit dbb3a536ed9873ffa0870321f6873e564c6a9da8 14218Author: Jia Tan <jiat0218@gmail.com> 14219Date: 2023-06-07 00:18:30 +0800 14220 14221 CI: Add apt update command before installing dependencies. 14222 14223 Without the extra command, all of the CI tests were automatically 14224 failing because the Ubuntu servers could not be reached properly. 14225 14226 .github/workflows/ci.yml | 8 ++++++-- 14227 1 file changed, 6 insertions(+), 2 deletions(-) 14228 14229commit 6bcd516812331de42b347922913230895bebad34 14230Author: Jia Tan <jiat0218@gmail.com> 14231Date: 2023-06-07 00:10:38 +0800 14232 14233 Update THANKS. 14234 14235 THANKS | 1 + 14236 1 file changed, 1 insertion(+) 14237 14238commit 0d94ba69220d894d2a86081821d2d7a89df5a10b 14239Author: Benjamin Buch <bebuch@users.noreply.github.com> 14240Date: 2023-06-06 15:32:45 +0200 14241 14242 CMake: Protects against double find_package 14243 14244 Boost iostream uses `find_package` in quiet mode and then again uses 14245 `find_package` with required. This second call triggers a 14246 `add_library cannot create imported target "ZLIB::ZLIB" because another 14247 target with the same name already exists.` 14248 14249 This can simply be fixed by skipping the alias part on secondary 14250 `find_package` runs. 14251 14252 CMakeLists.txt | 16 +++++++++------- 14253 1 file changed, 9 insertions(+), 7 deletions(-) 14254 14255commit 045d7aae286ecd2ce163be9e0d9041343a03f89a 14256Author: Jia Tan <jiat0218@gmail.com> 14257Date: 2023-05-31 20:26:42 +0800 14258 14259 Translations: Update the Esperanto translation. 14260 14261 po/eo.po | 185 +++++++++++++++++++++++++++++++-------------------------------- 14262 1 file changed, 92 insertions(+), 93 deletions(-) 14263 14264commit b0cc7c2dcefe4cbc4e1e697598c14fb687ed0b78 14265Author: Jia Tan <jiat0218@gmail.com> 14266Date: 2023-05-31 20:25:00 +0800 14267 14268 Translations: Update the Croatian translation. 14269 14270 po/hr.po | 2 +- 14271 1 file changed, 1 insertion(+), 1 deletion(-) 14272 14273commit af045ef6f848f02cd14c9ad195a5f87bb0c02dce 14274Author: Jia Tan <jiat0218@gmail.com> 14275Date: 2023-05-31 20:15:53 +0800 14276 14277 Translations: Update the Chinese (simplified) translation. 14278 14279 po/zh_CN.po | 317 ++++++++++++++++++++++++++++++------------------------------ 14280 1 file changed, 157 insertions(+), 160 deletions(-) 14281 14282commit e6b92d5817fe91ad27a0f7f57bd0f2144311e383 14283Author: Jia Tan <jiat0218@gmail.com> 14284Date: 2023-05-17 23:12:13 +0800 14285 14286 Translations: Update German translation of man pages. 14287 14288 po4a/de.po | 52 ++++++++++++---------------------------------------- 14289 1 file changed, 12 insertions(+), 40 deletions(-) 14290 14291commit 592961ccdbba39c7d60fe37e36764232feb57c60 14292Author: Jia Tan <jiat0218@gmail.com> 14293Date: 2023-05-17 23:09:18 +0800 14294 14295 Translations: Update the German translation. 14296 14297 po/de.po | 189 +++++++++++++++++++++++++++++++-------------------------------- 14298 1 file changed, 94 insertions(+), 95 deletions(-) 14299 14300commit 13572cb2c391f5b7503e333c6e05b20bd5bbb524 14301Author: Jia Tan <jiat0218@gmail.com> 14302Date: 2023-05-17 20:30:01 +0800 14303 14304 Translations: Update the Croatian translation. 14305 14306 po/hr.po | 187 +++++++++++++++++++++++++++++++-------------------------------- 14307 1 file changed, 93 insertions(+), 94 deletions(-) 14308 14309commit 4e6e425ea8f097c6fb43e69cc9540294dca3680d 14310Author: Jia Tan <jiat0218@gmail.com> 14311Date: 2023-05-17 20:26:54 +0800 14312 14313 Translations: Update Korean translation of man pages. 14314 14315 po4a/ko.po | 3015 ++++++++++++------------------------------------------------ 14316 1 file changed, 568 insertions(+), 2447 deletions(-) 14317 14318commit d5ef1f6faf7c270f60093629257150085ecf19ca 14319Author: Jia Tan <jiat0218@gmail.com> 14320Date: 2023-05-17 20:13:01 +0800 14321 14322 Translations: Update the Korean translation. 14323 14324 po/ko.po | 319 +++++++++++++++++++++++++++++++-------------------------------- 14325 1 file changed, 158 insertions(+), 161 deletions(-) 14326 14327commit e22d0b0f2e301e7906d0106689d967ed84362028 14328Author: Jia Tan <jiat0218@gmail.com> 14329Date: 2023-05-16 23:49:09 +0800 14330 14331 Translations: Update the Spanish translation. 14332 14333 po/es.po | 319 +++++++++++++++++++++++++++++++-------------------------------- 14334 1 file changed, 158 insertions(+), 161 deletions(-) 14335 14336commit f50da74d52d01f6cfd826a921249e289cf671678 14337Author: Jia Tan <jiat0218@gmail.com> 14338Date: 2023-05-16 23:47:23 +0800 14339 14340 Translations: Update the Romanian translation. 14341 14342 po/ro.po | 195 ++++++++++++++++++++++++++++++++------------------------------- 14343 1 file changed, 98 insertions(+), 97 deletions(-) 14344 14345commit 4b9ad60a7305e9841b7cb4ea611bdf5fa7271696 14346Author: Jia Tan <jiat0218@gmail.com> 14347Date: 2023-05-16 23:45:43 +0800 14348 14349 Translations: Update Romanian translation of man pages. 14350 14351 po4a/ro.po | 19 ++++++++++--------- 14352 1 file changed, 10 insertions(+), 9 deletions(-) 14353 14354commit cb6fd57f889c5d9fab36ae8c9e10083a5fe32dea 14355Author: Jia Tan <jiat0218@gmail.com> 14356Date: 2023-05-16 23:43:51 +0800 14357 14358 Translations: Update Ukrainian translation of man pages. 14359 14360 po4a/uk.po | 12 ++++++------ 14361 1 file changed, 6 insertions(+), 6 deletions(-) 14362 14363commit c3e8fcbc2db4861f92ad15606c995bd255803c52 14364Author: Jia Tan <jiat0218@gmail.com> 14365Date: 2023-05-16 23:37:54 +0800 14366 14367 Translations: Update the Ukrainian translation. 14368 14369 po/uk.po | 321 +++++++++++++++++++++++++++++++-------------------------------- 14370 1 file changed, 159 insertions(+), 162 deletions(-) 14371 14372commit 27b81b84fcedbc55aa6e6b21004c44070b15b038 14373Author: Jia Tan <jiat0218@gmail.com> 14374Date: 2023-05-16 23:07:35 +0800 14375 14376 Translations: Update the Polish translation. 14377 14378 po/pl.po | 316 +++++++++++++++++++++++++++++++-------------------------------- 14379 1 file changed, 155 insertions(+), 161 deletions(-) 14380 14381commit 8024ad636a65ed6ea95c94d57255be4c6724d6ed 14382Author: Jia Tan <jiat0218@gmail.com> 14383Date: 2023-05-16 22:52:14 +0800 14384 14385 Translations: Update the Swedish translation. 14386 14387 po/sv.po | 319 +++++++++++++++++++++++++++++++-------------------------------- 14388 1 file changed, 158 insertions(+), 161 deletions(-) 14389 14390commit 6699a29673f227c4664826db485ed9f7596320d2 14391Author: Jia Tan <jiat0218@gmail.com> 14392Date: 2023-05-16 21:21:38 +0800 14393 14394 Translations: Update the Esperanto translation. 14395 14396 po/eo.po | 34 +++++++++++++++++----------------- 14397 1 file changed, 17 insertions(+), 17 deletions(-) 14398 14399commit f36ca7982f6bd5e9827219ed4f3c5a1fbf5d7bdf 14400Author: Jia Tan <jiat0218@gmail.com> 14401Date: 2023-05-13 21:21:54 +0800 14402 14403 liblzma: Slightly rewords lzma_str_list_filters() documentation. 14404 14405 Reword "options required" to "supported options". The previous may have 14406 suggested that the options listed were all required anytime a filter is 14407 used for encoding or decoding. The reword makes this more clear that 14408 adjusting the options is optional. 14409 14410 src/liblzma/api/lzma/filter.h | 2 +- 14411 1 file changed, 1 insertion(+), 1 deletion(-) 14412 14413commit 3374a5359e52f1671d8f831d65827d5020fe2595 14414Author: Jia Tan <jiat0218@gmail.com> 14415Date: 2023-05-11 23:49:23 +0800 14416 14417 liblzma: Adds lzma_nothrow to MicroLZMA API functions. 14418 14419 None of the liblzma functions may throw an exception, so this 14420 attribute should be applied to all liblzma API functions. 14421 14422 src/liblzma/api/lzma/container.h | 5 +++-- 14423 1 file changed, 3 insertions(+), 2 deletions(-) 14424 14425commit 8f236574986e7c414c0ea059f441982d1387e6a4 14426Author: Jia Tan <jiat0218@gmail.com> 14427Date: 2023-05-09 20:20:06 +0800 14428 14429 liblzma: Exports lzma_mt_block_size() as an API function. 14430 14431 The lzma_mt_block_size() was previously just an internal function for 14432 the multithreaded .xz encoder. It is used to provide a recommended Block 14433 size for a given filter chain. 14434 14435 This function is helpful to determine the maximum Block size for the 14436 multithreaded .xz encoder when one wants to change the filters between 14437 blocks. Then, this determined Block size can be provided to 14438 lzma_stream_encoder_mt() in the lzma_mt options parameter when 14439 intializing the coder. This requires one to know all the filter chains 14440 they are using before starting to encode (or at least the filter chain 14441 that will need the largest Block size), but that isn't a bad limitation. 14442 14443 src/liblzma/api/lzma/container.h | 28 ++++++++++++++++++++++++++++ 14444 src/liblzma/common/filter_encoder.c | 16 ++++++++++------ 14445 src/liblzma/common/filter_encoder.h | 6 +----- 14446 src/liblzma/common/stream_encoder_mt.c | 20 +++++++++----------- 14447 src/liblzma/liblzma_generic.map | 5 +++++ 14448 src/liblzma/liblzma_linux.map | 5 +++++ 14449 src/liblzma/lzma/lzma2_encoder.c | 3 +++ 14450 7 files changed, 61 insertions(+), 22 deletions(-) 14451 14452commit d0f33d672a4da7985ebb5ba8d829f885de49c171 14453Author: Jia Tan <jiat0218@gmail.com> 14454Date: 2023-05-08 22:58:09 +0800 14455 14456 liblzma: Creates IS_ENC_DICT_SIZE_VALID() macro. 14457 14458 This creates an internal liblzma macro to test if the dictionary size 14459 is valid for encoding. 14460 14461 src/liblzma/lz/lz_encoder.c | 4 +--- 14462 src/liblzma/lz/lz_encoder.h | 8 ++++++++ 14463 2 files changed, 9 insertions(+), 3 deletions(-) 14464 14465commit c247d06e1f6cada9a76f4f6225cbd97ea760f52f 14466Author: Jia Tan <jiat0218@gmail.com> 14467Date: 2023-05-02 20:39:56 +0800 14468 14469 Add NEWS for 5.4.3. 14470 14471 NEWS | 10 ++++++++++ 14472 1 file changed, 10 insertions(+) 14473 14474commit 77050b78364ffb6b0f129e742b7c31602d725c08 14475Author: Jia Tan <jiat0218@gmail.com> 14476Date: 2023-05-02 20:39:37 +0800 14477 14478 Add NEWS for 5.2.12. 14479 14480 NEWS | 14 ++++++++++++++ 14481 1 file changed, 14 insertions(+) 14482 14483commit 713e15e43eb6279a7ab4bbad3d1325ebfdcf09a0 14484Author: Jia Tan <jiat0218@gmail.com> 14485Date: 2023-05-04 20:38:52 +0800 14486 14487 Translations: Update the Croatian translation. 14488 14489 po/hr.po | 6 +++--- 14490 1 file changed, 3 insertions(+), 3 deletions(-) 14491 14492commit 9ad64bdf309844b6ca6c3e8a4dfb6dbaedda0ca9 14493Author: Jia Tan <jiat0218@gmail.com> 14494Date: 2023-05-04 20:30:25 +0800 14495 14496 tuklib_integer.h: Reverts previous commit. 14497 14498 Previous commit 6be460dde07113fe3f08f814b61ddc3264125a96 would cause an 14499 error if the integer size was 32 bit. 14500 14501 src/common/tuklib_integer.h | 4 ++-- 14502 1 file changed, 2 insertions(+), 2 deletions(-) 14503 14504commit 6be460dde07113fe3f08f814b61ddc3264125a96 14505Author: Jia Tan <jiat0218@gmail.com> 14506Date: 2023-05-04 19:25:20 +0800 14507 14508 tuklib_integer.h: Changes two other UINT_MAX == UINT32_MAX to >=. 14509 14510 src/common/tuklib_integer.h | 4 ++-- 14511 1 file changed, 2 insertions(+), 2 deletions(-) 14512 14513commit 44c0c5eae990a22ef04e9b88c1a15838a0d00878 14514Author: Lasse Collin <lasse.collin@tukaani.org> 14515Date: 2023-05-03 22:46:42 +0300 14516 14517 tuklib_integer.h: Fix a recent copypaste error in Clang detection. 14518 14519 Wrong line was changed in 7062348bf35c1e4cbfee00ad9fffb4a21aa6eff7. 14520 Also, this has >= instead of == since ints larger than 32 bits would 14521 work too even if not relevant in practice. 14522 14523 src/common/tuklib_integer.h | 4 ++-- 14524 1 file changed, 2 insertions(+), 2 deletions(-) 14525 14526commit 2cf5ae5b5b279b0b2e69ca4724e7bd705865fe68 14527Author: Jia Tan <jiat0218@gmail.com> 14528Date: 2023-04-25 20:06:15 +0800 14529 14530 CI: Adds a build and test for small configuration. 14531 14532 .github/workflows/ci.yml | 5 +++++ 14533 1 file changed, 5 insertions(+) 14534 14535commit 16b81a057a87c2f18e6ed6447f003af0cbdcfe43 14536Author: Jia Tan <jiat0218@gmail.com> 14537Date: 2023-04-25 20:05:26 +0800 14538 14539 CI: ci_build.sh allows configuring small build. 14540 14541 build-aux/ci_build.sh | 7 ++++++- 14542 1 file changed, 6 insertions(+), 1 deletion(-) 14543 14544commit 78ccd93951f9e988d447bcdd70b24f6df5448d1d 14545Author: Jia Tan <jiat0218@gmail.com> 14546Date: 2023-04-20 20:15:00 +0800 14547 14548 Update THANKS. 14549 14550 THANKS | 1 + 14551 1 file changed, 1 insertion(+) 14552 14553commit f41df2ac2fed347d3f107f3533e76e000d29c6cb 14554Author: Jia Tan <jiat0218@gmail.com> 14555Date: 2023-04-19 22:22:16 +0800 14556 14557 Windows: Include <intrin.h> when needed. 14558 14559 Legacy Windows did not need to #include <intrin.h> to use the MSVC 14560 intrinsics. Newer versions likely just issue a warning, but the MSVC 14561 documentation says to include the header file for the intrinsics we use. 14562 14563 GCC and Clang can "pretend" to be MSVC on Windows, so extra checks are 14564 needed in tuklib_integer.h to only include <intrin.h> when it will is 14565 actually needed. 14566 14567 src/common/tuklib_integer.h | 6 ++++++ 14568 src/liblzma/common/memcmplen.h | 10 ++++++++++ 14569 2 files changed, 16 insertions(+) 14570 14571commit 7062348bf35c1e4cbfee00ad9fffb4a21aa6eff7 14572Author: Jia Tan <jiat0218@gmail.com> 14573Date: 2023-04-19 21:59:03 +0800 14574 14575 tuklib_integer: Use __builtin_clz() with Clang. 14576 14577 Clang has support for __builtin_clz(), but previously Clang would 14578 fallback to either the MSVC intrinsic or the regular C code. This was 14579 discovered due to a bug where a new version of Clang required the 14580 <intrin.h> header file in order to use the MSVC intrinsics. 14581 14582 Thanks to Anton Kochkov for notifying us about the bug. 14583 14584 src/common/tuklib_integer.h | 6 +++--- 14585 1 file changed, 3 insertions(+), 3 deletions(-) 14586 14587commit 3938718ce3773c90755785c0df8777f133b7ae29 14588Author: Lasse Collin <lasse.collin@tukaani.org> 14589Date: 2023-04-14 18:42:33 +0300 14590 14591 liblzma: Update project maintainers in lzma.h. 14592 14593 AUTHORS was updated earlier, lzma.h was simply forgotten. 14594 14595 src/liblzma/api/lzma.h | 2 +- 14596 1 file changed, 1 insertion(+), 1 deletion(-) 14597 14598commit 2a89670ab295e377f8b44f5bda6d198deb8ea285 14599Author: Jia Tan <jiat0218@gmail.com> 14600Date: 2023-04-13 20:45:19 +0800 14601 14602 liblzma: Cleans up old commented out code. 14603 14604 src/liblzma/common/alone_encoder.c | 11 ----------- 14605 1 file changed, 11 deletions(-) 14606 14607commit 0fbb2b87a7b5a1dd9d0f4a5e84ac7919557dbe81 14608Author: Jia Tan <jiat0218@gmail.com> 14609Date: 2023-04-07 20:46:41 +0800 14610 14611 Docs: Add missing word to SECURITY.md. 14612 14613 .github/SECURITY.md | 2 +- 14614 1 file changed, 1 insertion(+), 1 deletion(-) 14615 14616commit fb9c50f38a17bf37581de4034b36c8df8ec90a87 14617Author: Jia Tan <jiat0218@gmail.com> 14618Date: 2023-04-07 20:43:22 +0800 14619 14620 Update THANKS. 14621 14622 THANKS | 1 + 14623 1 file changed, 1 insertion(+) 14624 14625commit 537c6cd8a9db0dd6b13683e64ddac2943190d715 14626Author: Jia Tan <jiat0218@gmail.com> 14627Date: 2023-04-07 20:42:12 +0800 14628 14629 Docs: Minor edits to SECURITY.md. 14630 14631 .github/SECURITY.md | 25 ++++++++++++++++++++----- 14632 1 file changed, 20 insertions(+), 5 deletions(-) 14633 14634commit 6549df8dd53f358345957e232648fdb699930074 14635Author: Gabriela Gutierrez <gabigutierrez@google.com> 14636Date: 2023-04-07 12:08:30 +0000 14637 14638 Docs: Create SECURITY.md 14639 14640 Signed-off-by: Gabriela Gutierrez <gabigutierrez@google.com> 14641 14642 .github/SECURITY.md | 14 ++++++++++++++ 14643 1 file changed, 14 insertions(+) 14644 14645commit d0faa85df5a5d253a4625d45313cf5e9277e6cd2 14646Author: Jia Tan <jiat0218@gmail.com> 14647Date: 2023-03-28 22:48:24 +0800 14648 14649 CI: Tests for disabling threading on CMake builds. 14650 14651 .github/workflows/ci.yml | 3 --- 14652 build-aux/ci_build.sh | 4 ++-- 14653 2 files changed, 2 insertions(+), 5 deletions(-) 14654 14655commit 8be5cc3b1359d88b4b30a39067466c0ae0bfbc4d 14656Author: Jia Tan <jiat0218@gmail.com> 14657Date: 2023-03-28 22:45:42 +0800 14658 14659 CI: Removes CMakeCache.txt between builds. 14660 14661 If the cache file is not removed, CMake will not reset configurations 14662 back to their default values. In order to make the tests independent, it 14663 is simplest to purge the cache. Unfortunatly, this will slow down the 14664 tests a little and repeat some checks. 14665 14666 build-aux/ci_build.sh | 2 ++ 14667 1 file changed, 2 insertions(+) 14668 14669commit 2cb6028fc31de082b7f927632363bb1426b61aaa 14670Author: Jia Tan <jiat0218@gmail.com> 14671Date: 2023-03-28 22:32:40 +0800 14672 14673 CMake: Update liblzma-config.cmake generation. 14674 14675 Now that the threading is configurable, the liblzma CMake package only 14676 needs the threading library when using POSIX threads. 14677 14678 CMakeLists.txt | 33 ++++++++++++++++++++++----------- 14679 1 file changed, 22 insertions(+), 11 deletions(-) 14680 14681commit 4d7fac0b07cc722825ba8d7838c558827e635611 14682Author: Jia Tan <jiat0218@gmail.com> 14683Date: 2023-03-28 22:25:33 +0800 14684 14685 CMake: Allows setting thread method. 14686 14687 The thread method is now configurable for the CMake build. It matches 14688 the Autotools build by allowing ON (pick the best threading method), 14689 OFF (no threading), posix, win95, and vista. If both Windows and 14690 posix threading are both available, then ON will choose Windows 14691 threading. Windows threading will also not use: 14692 14693 target_link_libraries(liblzma Threads::Threads) 14694 14695 since on systems like MinGW-w64 it would link the posix threads 14696 without purpose. 14697 14698 CMakeLists.txt | 144 +++++++++++++++++++++++++++++++++++++++++---------------- 14699 1 file changed, 104 insertions(+), 40 deletions(-) 14700 14701commit 20cd905d898c1494dee42b78530769bb9c9f8076 14702Author: Jia Tan <jiat0218@gmail.com> 14703Date: 2023-03-24 23:05:48 +0800 14704 14705 CI: Runs CMake feature tests. 14706 14707 Now, CMake will run similar feature disable tests that the Autotools 14708 version did before. In order to do this without repeating lines in 14709 ci.yml, it now makes sense to use the GitHub Workflow matrix to create 14710 a loop. 14711 14712 .github/workflows/ci.yml | 169 +++++++++++++++-------------------------------- 14713 1 file changed, 55 insertions(+), 114 deletions(-) 14714 14715commit 4fabdb269f1fc5624b3b94a170c4efb329d1d229 14716Author: Jia Tan <jiat0218@gmail.com> 14717Date: 2023-03-24 20:35:11 +0800 14718 14719 CI: ci_build.sh allows CMake features to be configured. 14720 14721 Also included various clean ups for style and helper functions for 14722 repeated work. 14723 14724 build-aux/ci_build.sh | 233 +++++++++++++++++++++++++++++++------------------- 14725 1 file changed, 143 insertions(+), 90 deletions(-) 14726 14727commit cf3d1f130e50cf63da4bb1031771605f6f443b6a 14728Author: Jia Tan <jiat0218@gmail.com> 14729Date: 2023-03-24 20:06:33 +0800 14730 14731 CI: Change ci_build.sh to use bash instead of sh. 14732 14733 This script is only meant to be run as part of the CI build/test process 14734 on machines that are known to have bash (Ubuntu and MacOS). If this 14735 assumption changes in the future, then the bash specific commands will 14736 need to be replaced with a more portable option. For now, it is 14737 convenient to use bash commands. 14738 14739 build-aux/ci_build.sh | 2 +- 14740 1 file changed, 1 insertion(+), 1 deletion(-) 14741 14742commit ddfe164368e779c40d061aa4ccc376129e92f8e1 14743Author: Jia Tan <jiat0218@gmail.com> 14744Date: 2023-03-24 20:05:59 +0800 14745 14746 CMake: Only build xzdec if decoders are enabled. 14747 14748 CMakeLists.txt | 2 +- 14749 1 file changed, 1 insertion(+), 1 deletion(-) 14750 14751commit 116e81f002c503d3c3cd12726db8f9116e58ef25 14752Author: Jia Tan <jiat0218@gmail.com> 14753Date: 2023-03-22 15:42:04 +0800 14754 14755 Build: Removes redundant check for LZMA1 filter support. 14756 14757 src/liblzma/lzma/Makefile.inc | 5 +---- 14758 1 file changed, 1 insertion(+), 4 deletions(-) 14759 14760commit 0ba234f692772595329d225462d391fe2c199d0a 14761Author: Lasse Collin <lasse.collin@tukaani.org> 14762Date: 2023-03-23 15:14:29 +0200 14763 14764 CMake: Bump maximum policy version to 3.26. 14765 14766 It adds only one new policy related to FOLDERS which we don't use. 14767 This makes it clear that the code is compatible with the policies 14768 up to 3.26. 14769 14770 CMakeLists.txt | 2 +- 14771 1 file changed, 1 insertion(+), 1 deletion(-) 14772 14773commit b0891684b4436aed31510fddcbb218d513bd5489 14774Author: Jia Tan <jiat0218@gmail.com> 14775Date: 2023-03-21 23:36:00 +0800 14776 14777 CMake: Conditionally build xz list.* files if decoders are enabled. 14778 14779 CMakeLists.txt | 9 +++++++-- 14780 1 file changed, 7 insertions(+), 2 deletions(-) 14781 14782commit 2c1a830efb61d9d65906a09c9ee3ce27c2c49227 14783Author: Jia Tan <jiat0218@gmail.com> 14784Date: 2023-02-25 11:46:50 +0800 14785 14786 CMake: Allow configuring features as cache variables. 14787 14788 This allows users to change the features they build either in 14789 CMakeCache.txt or by using a CMake GUI. The sources built for 14790 liblzma are affected by this too, so only the necessary files 14791 will be compiled. 14792 14793 CMakeLists.txt | 528 ++++++++++++++++++++++++++++++++++++++++++--------------- 14794 1 file changed, 391 insertions(+), 137 deletions(-) 14795 14796commit 8be136f667aaeb8f9e16fbd57a83cb282f0c27ff 14797Author: Lasse Collin <lasse.collin@tukaani.org> 14798Date: 2023-03-21 14:07:51 +0200 14799 14800 Build: Add a comment that AC_PROG_CC_C99 is needed for Autoconf 2.69. 14801 14802 It's obsolete in Autoconf >= 2.70 and just an alias for AC_PROG_CC 14803 but Autoconf 2.69 requires AC_PROG_CC_C99 to get a C99 compiler. 14804 14805 configure.ac | 3 +++ 14806 1 file changed, 3 insertions(+) 14807 14808commit 53cc475f2652d9e390ca002018dfd0af0626ef80 14809Author: Lasse Collin <lasse.collin@tukaani.org> 14810Date: 2023-03-21 14:04:37 +0200 14811 14812 Build: configure.ac: Use AS_IF and AS_CASE where required. 14813 14814 This makes no functional difference in the generated configure 14815 (at least with the Autotools versions I have installed) but this 14816 change might prevent future bugs like the one that was just 14817 fixed in the commit 5a5bd7f871818029d5ccbe189f087f591258c294. 14818 14819 configure.ac | 30 +++++++++++++++--------------- 14820 1 file changed, 15 insertions(+), 15 deletions(-) 14821 14822commit 3b8890a40233b6c783bb101ec14405e786871775 14823Author: Lasse Collin <lasse.collin@tukaani.org> 14824Date: 2023-03-21 13:12:03 +0200 14825 14826 Update THANKS. 14827 14828 THANKS | 1 + 14829 1 file changed, 1 insertion(+) 14830 14831commit 5a5bd7f871818029d5ccbe189f087f591258c294 14832Author: Lasse Collin <lasse.collin@tukaani.org> 14833Date: 2023-03-21 13:11:49 +0200 14834 14835 Build: Fix --disable-threads breaking the building of shared libs. 14836 14837 This is broken in the releases 5.2.6 to 5.4.2. A workaround 14838 for these releases is to pass EGREP='grep -E' as an argument 14839 to configure in addition to --disable-threads. 14840 14841 The problem appeared when m4/ax_pthread.m4 was updated in 14842 the commit 6629ed929cc7d45a11e385f357ab58ec15e7e4ad which 14843 introduced the use of AC_EGREP_CPP. AC_EGREP_CPP calls 14844 AC_REQUIRE([AC_PROG_EGREP]) to set the shell variable EGREP 14845 but this was only executed if POSIX threads were enabled. 14846 Libtool code also has AC_REQUIRE([AC_PROG_EGREP]) but Autoconf 14847 omits it as AC_PROG_EGREP has already been required earlier. 14848 Thus, if not using POSIX threads, the shell variable EGREP 14849 would be undefined in the Libtool code in configure. 14850 14851 ax_pthread.m4 is fine. The bug was in configure.ac which called 14852 AX_PTHREAD conditionally in an incorrect way. Using AS_CASE 14853 ensures that all AC_REQUIREs get always run. 14854 14855 Thanks to Frank Busse for reporting the bug. 14856 Fixes: https://github.com/tukaani-project/xz/issues/45 14857 14858 configure.ac | 16 ++++++++-------- 14859 1 file changed, 8 insertions(+), 8 deletions(-) 14860 14861commit dfe1710784c0a3c3a90c17b80c9e1fe19b5fce06 14862Author: Lasse Collin <lasse.collin@tukaani.org> 14863Date: 2023-03-19 22:45:59 +0200 14864 14865 liblzma: Silence -Wsign-conversion in SSE2 code in memcmplen.h. 14866 14867 Thanks to Christian Hesse for reporting the issue. 14868 Fixes: https://github.com/tukaani-project/xz/issues/44 14869 14870 src/liblzma/common/memcmplen.h | 3 ++- 14871 1 file changed, 2 insertions(+), 1 deletion(-) 14872 14873commit f0c580c5fc38bf49a184b48d76c1d8c057d499ce 14874Author: Jia Tan <jiat0218@gmail.com> 14875Date: 2023-03-18 22:10:57 +0800 14876 14877 Add NEWS for 5.4.2. 14878 14879 NEWS | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 14880 1 file changed, 48 insertions(+) 14881 14882commit af4925e6043113ec9b5f9c0cf13abf2a18ccb1f6 14883Author: Jia Tan <jiat0218@gmail.com> 14884Date: 2023-03-18 22:10:12 +0800 14885 14886 Add NEWS for 5.2.11. 14887 14888 NEWS | 27 +++++++++++++++++++++++++++ 14889 1 file changed, 27 insertions(+) 14890 14891commit 5a7b930efa7f9849d8da8397e8e5d8638f92be40 14892Author: Lasse Collin <lasse.collin@tukaani.org> 14893Date: 2023-03-18 16:00:54 +0200 14894 14895 Update the copy of GNU GPLv3 from gnu.org to COPYING.GPLv3. 14896 14897 COPYING.GPLv3 | 8 ++++---- 14898 1 file changed, 4 insertions(+), 4 deletions(-) 14899 14900commit b473a92891f7e991398a3b5eff305f6f2b6d7293 14901Author: Lasse Collin <lasse.collin@tukaani.org> 14902Date: 2023-03-18 15:51:57 +0200 14903 14904 Change a few HTTP URLs to HTTPS. 14905 14906 The xz man page timestamp was intentionally left unchanged. 14907 14908 INSTALL | 2 +- 14909 README | 8 ++++---- 14910 configure.ac | 2 +- 14911 dos/INSTALL.txt | 4 ++-- 14912 src/liblzma/api/lzma.h | 8 ++++---- 14913 src/liblzma/check/sha256.c | 2 +- 14914 src/xz/xz.1 | 2 +- 14915 windows/INSTALL-MinGW.txt | 10 +++++----- 14916 8 files changed, 19 insertions(+), 19 deletions(-) 14917 14918commit 8b2f6001b4f412c259a7883427f2f2c8cea98ea8 14919Author: Jia Tan <jiat0218@gmail.com> 14920Date: 2023-03-18 00:40:28 +0800 14921 14922 CMake: Fix typo in a comment. 14923 14924 CMakeLists.txt | 2 +- 14925 1 file changed, 1 insertion(+), 1 deletion(-) 14926 14927commit 76e2315e14c399c15cc90e7930fd4d3d086b0227 14928Author: Lasse Collin <lasse.collin@tukaani.org> 14929Date: 2023-03-17 18:36:22 +0200 14930 14931 Windows: build.bash: Copy liblzma API docs to the output package. 14932 14933 windows/build.bash | 3 ++- 14934 1 file changed, 2 insertions(+), 1 deletion(-) 14935 14936commit 133cf55edc5ce92952d2709abd992e48ef1f45ee 14937Author: Lasse Collin <lasse.collin@tukaani.org> 14938Date: 2023-03-17 08:53:38 +0200 14939 14940 Windows: Add microlzma_*.c to the VS project files. 14941 14942 These should have been included in 5.3.2alpha already. 14943 14944 windows/vs2013/liblzma.vcxproj | 2 ++ 14945 windows/vs2013/liblzma_dll.vcxproj | 2 ++ 14946 windows/vs2017/liblzma.vcxproj | 2 ++ 14947 windows/vs2017/liblzma_dll.vcxproj | 2 ++ 14948 windows/vs2019/liblzma.vcxproj | 2 ++ 14949 windows/vs2019/liblzma_dll.vcxproj | 2 ++ 14950 6 files changed, 12 insertions(+) 14951 14952commit 75c9ca450fab6982fda9286b168081c9d54126cd 14953Author: Lasse Collin <lasse.collin@tukaani.org> 14954Date: 2023-03-17 08:43:51 +0200 14955 14956 CMake: Add microlzma_*.c to the build. 14957 14958 These should have been included in 5.3.2alpha already. 14959 14960 CMakeLists.txt | 2 ++ 14961 1 file changed, 2 insertions(+) 14962 14963commit 0cc3313bd4e569c51e686e5aab8c40c35241d34b 14964Author: Lasse Collin <lasse.collin@tukaani.org> 14965Date: 2023-03-17 08:41:36 +0200 14966 14967 Build: Update comments about unaligned access to mention 64-bit. 14968 14969 cmake/tuklib_integer.cmake | 7 +++---- 14970 m4/tuklib_integer.m4 | 4 ++-- 14971 2 files changed, 5 insertions(+), 6 deletions(-) 14972 14973commit 5e57e3301319f20c35f8111dea73fa58403b96b1 14974Author: Lasse Collin <lasse.collin@tukaani.org> 14975Date: 2023-03-17 00:02:30 +0200 14976 14977 Tests: Update .gitignore. 14978 14979 .gitignore | 3 ++- 14980 1 file changed, 2 insertions(+), 1 deletion(-) 14981 14982commit 0007394d54e21bf30abb9a5e09cbc1e8d44a73ac 14983Author: Lasse Collin <lasse.collin@tukaani.org> 14984Date: 2023-03-14 20:04:03 +0200 14985 14986 po4a/update-po: Display the script name consistently in error messages. 14987 14988 po4a/update-po | 2 +- 14989 1 file changed, 1 insertion(+), 1 deletion(-) 14990 14991commit 509157c80c500426ec853bd992d684ebafc8500c 14992Author: Jia Tan <jiat0218@gmail.com> 14993Date: 2023-03-17 01:30:36 +0800 14994 14995 Doc: Rename Doxygen HTML doc directory name liblzma => api. 14996 14997 When the docs are installed, calling the directory "liblzma" is 14998 confusing since multiple other files in the doc directory are for 14999 liblzma. This should also make it more natural for distros when they 15000 package the documentation. 15001 15002 .gitignore | 2 +- 15003 Makefile.am | 18 +++++++++--------- 15004 PACKAGERS | 4 ++-- 15005 doxygen/Doxyfile | 2 +- 15006 doxygen/update-doxygen | 18 +++++++++--------- 15007 5 files changed, 22 insertions(+), 22 deletions(-) 15008 15009commit fd90e2f4c29180b44e33c7ef726f94e4eae54ed3 15010Author: Jia Tan <jiat0218@gmail.com> 15011Date: 2023-03-16 22:07:15 +0800 15012 15013 liblzma: Remove note from lzma_options_bcj about the ARM64 exception. 15014 15015 This was left in by mistake since an early version of the ARM64 filter 15016 used a different struct for its options. 15017 15018 src/liblzma/api/lzma/bcj.h | 2 +- 15019 1 file changed, 1 insertion(+), 1 deletion(-) 15020 15021commit 4f50763b981f9056c5f1763dfb26cfa4a26a181d 15022Author: Jia Tan <jiat0218@gmail.com> 15023Date: 2023-03-16 21:44:02 +0800 15024 15025 CI: Add doxygen as a dependency. 15026 15027 Autogen now requires --no-doxygen or having doxygen installed to run 15028 without errors. 15029 15030 .github/workflows/ci.yml | 5 ++--- 15031 1 file changed, 2 insertions(+), 3 deletions(-) 15032 15033commit f68f4b27f62f53fdac570885a1f4f23367ce6599 15034Author: Lasse Collin <lasse.collin@tukaani.org> 15035Date: 2023-03-15 19:19:13 +0200 15036 15037 COPYING: Add a note about the included Doxygen-generated HTML. 15038 15039 COPYING | 11 +++++++++++ 15040 1 file changed, 11 insertions(+) 15041 15042commit 8979308528c1f45cb9ee52d511f05232b4ad90a1 15043Author: Jia Tan <jiat0218@gmail.com> 15044Date: 2023-03-16 21:41:09 +0800 15045 15046 Doc: Update PACKAGERS with details about liblzma API docs install. 15047 15048 PACKAGERS | 22 ++++++++++++++++------ 15049 1 file changed, 16 insertions(+), 6 deletions(-) 15050 15051commit 55ba6e93004842ae0a0792214a23504267ad8f43 15052Author: Jia Tan <jiat0218@gmail.com> 15053Date: 2023-03-16 21:38:32 +0800 15054 15055 liblzma: Add set lzma.h as the main page for Doxygen documentation. 15056 15057 The \mainpage command is used in the first block of comments in lzma.h. 15058 This changes the previously nearly empty index.html to use the first 15059 comment block in lzma.h for its contents. 15060 15061 lzma.h is no longer documented separately, but this is for the better 15062 since lzma.h only defined a few macros that users do not need to use. 15063 The individual API header files all have a disclaimer that they should 15064 not be #included directly, so there should be no confusion on the fact 15065 that lzma.h should be the only header used by applications. 15066 15067 Additionally, the note "See ../lzma.h for information about liblzma as 15068 a whole." was removed since lzma.h is now the main page of the 15069 generated HTML and does not have its own page anymore. So it would be 15070 confusing in the HTML version and was only a "nice to have" when 15071 browsing the source files. 15072 15073 src/liblzma/api/lzma.h | 1 + 15074 src/liblzma/api/lzma/base.h | 2 -- 15075 src/liblzma/api/lzma/bcj.h | 2 -- 15076 src/liblzma/api/lzma/block.h | 2 -- 15077 src/liblzma/api/lzma/check.h | 2 -- 15078 src/liblzma/api/lzma/container.h | 2 -- 15079 src/liblzma/api/lzma/delta.h | 2 -- 15080 src/liblzma/api/lzma/filter.h | 2 -- 15081 src/liblzma/api/lzma/hardware.h | 2 -- 15082 src/liblzma/api/lzma/index.h | 2 -- 15083 src/liblzma/api/lzma/index_hash.h | 4 +--- 15084 src/liblzma/api/lzma/lzma12.h | 2 -- 15085 src/liblzma/api/lzma/stream_flags.h | 2 -- 15086 src/liblzma/api/lzma/version.h | 2 -- 15087 src/liblzma/api/lzma/vli.h | 2 -- 15088 15 files changed, 2 insertions(+), 29 deletions(-) 15089 15090commit 16f21255597f6a57e5692780f962cdc090f62b8c 15091Author: Jia Tan <jiat0218@gmail.com> 15092Date: 2023-03-16 21:37:32 +0800 15093 15094 Build: Generate doxygen documentation in autogen.sh. 15095 15096 Another command line option (--no-doxygen) was added to disable 15097 creating the doxygen documenation in cases where it not wanted or 15098 if the doxygen tool is not installed. 15099 15100 autogen.sh | 35 +++++++++++++++++++++++++++++------ 15101 1 file changed, 29 insertions(+), 6 deletions(-) 15102 15103commit 1321852a3be7196bd7fcfd146221a5669e46407c 15104Author: Jia Tan <jiat0218@gmail.com> 15105Date: 2023-03-16 21:35:55 +0800 15106 15107 Build: Create doxygen/update-doxygen script. 15108 15109 This is a helper script to generate the Doxygen documentation. It can be 15110 run in 'liblzma' or 'internal' mode by setting the first argument. It 15111 will default to 'liblzma' mode and only generate documentation for the 15112 liblzma API header files. 15113 15114 The helper script will be run during the custom mydist hook when we 15115 create releases. This hook already alters the source directory, so its 15116 fine to do it here too. This way, we can include the Doxygen generated 15117 files in the distrubtion and when installing. 15118 15119 In 'liblzma' mode, the JavaScript is stripped from the .html files and 15120 the .js files are removed. This avoids license hassle from jQuery and 15121 other libraries that Doxygen 1.9.6 puts into jquery.js in minified form. 15122 15123 Makefile.am | 1 + 15124 doxygen/update-doxygen | 111 +++++++++++++++++++++++++++++++++++++++++++++++++ 15125 2 files changed, 112 insertions(+) 15126 15127commit b1216a7772952d2fe7fe9c6acfcbd98d30abbc7b 15128Author: Jia Tan <jiat0218@gmail.com> 15129Date: 2023-03-16 21:34:36 +0800 15130 15131 Build: Install Doxygen docs and include in distribution if generated. 15132 15133 Added a install-data-local target to install the Doxygen documentation 15134 only when it has been generated. In order to correctly remove the docs, 15135 a corresponding uninstall-local target was added. 15136 15137 If the doxygen docs exist in the source tree, they will also be included 15138 in the distribution now too. 15139 15140 Makefile.am | 18 ++++++++++++++++++ 15141 1 file changed, 18 insertions(+) 15142 15143commit c97d12f300b2a94c9f54a44c8931c8bc08cf0a73 15144Author: Lasse Collin <lasse.collin@tukaani.org> 15145Date: 2023-03-16 21:23:48 +0800 15146 15147 Doxygen: Refactor Doxyfile.in to doxygen/Doxyfile. 15148 15149 Instead of having Doxyfile.in configured by Autoconf, the Doxyfile 15150 can have the tags that need to be configured piped into the doxygen 15151 command through stdin with the overrides after Doxyfile's contents. 15152 15153 Going forward, the documentation should be generated in two different 15154 modes: liblzma or internal. 15155 15156 liblzma is useful for most users. It is the documentation for just 15157 the liblzma API header files. This is the default. 15158 15159 internal is for people who want to understand how xz and liblzma work. 15160 It might be useful for people who want to contribute to the project. 15161 15162 .gitignore | 3 +- 15163 Makefile.am | 1 - 15164 configure.ac | 40 --- 15165 Doxyfile.in => doxygen/Doxyfile | 721 +++++++++++++++++++++++++--------------- 15166 4 files changed, 456 insertions(+), 309 deletions(-) 15167 15168commit 1b7661faa4bbf4a54c6b75900b5059835c382a0f 15169Author: Jia Tan <jiat0218@gmail.com> 15170Date: 2023-02-28 23:22:36 +0800 15171 15172 Tests: Remove unused macros and functions. 15173 15174 tests/tests.h | 75 ----------------------------------------------------------- 15175 1 file changed, 75 deletions(-) 15176 15177commit af55191102f01e76de658c881299f0909ca0feda 15178Author: Jia Tan <jiat0218@gmail.com> 15179Date: 2022-12-29 21:52:15 +0800 15180 15181 liblzma: Defines masks for return values from lzma_index_checks(). 15182 15183 src/liblzma/api/lzma/index.h | 23 +++++++++++++++++++++++ 15184 tests/test_index.c | 22 +++++++++++----------- 15185 2 files changed, 34 insertions(+), 11 deletions(-) 15186 15187commit 8f38cdd9ab71e2a9d5a9787550222b7578243b73 15188Author: Jia Tan <jiat0218@gmail.com> 15189Date: 2023-01-12 22:29:07 +0800 15190 15191 Tests: Refactors existing lzma_index tests. 15192 15193 Converts the existing lzma_index tests into tuktests and covers every 15194 API function from index.h except for lzma_file_info_decoder, which can 15195 be tested in the future. 15196 15197 tests/test_index.c | 2036 ++++++++++++++++++++++++++++++++++++++-------------- 15198 1 file changed, 1492 insertions(+), 544 deletions(-) 15199 15200commit 717aa3651ce582807f379d8654c2516e1594df77 15201Author: Lasse Collin <lasse.collin@tukaani.org> 15202Date: 2023-03-11 18:42:08 +0200 15203 15204 xz: Simplify the error-label in Capsicum sandbox code. 15205 15206 Also remove unneeded "sandbox_allowed = false;" as this code 15207 will never be run more than once (making it work with multiple 15208 input files isn't trivial). 15209 15210 src/xz/file_io.c | 27 ++++++++++++--------------- 15211 1 file changed, 12 insertions(+), 15 deletions(-) 15212 15213commit a0eecc235d3ba8ad3453da98b46c7bc3e644de75 15214Author: Lasse Collin <lasse.collin@tukaani.org> 15215Date: 2023-03-07 19:59:23 +0200 15216 15217 xz: Make Capsicum sandbox more strict with stdin and stdout. 15218 15219 src/xz/file_io.c | 8 ++++++++ 15220 1 file changed, 8 insertions(+) 15221 15222commit 916448d624aaf55cef0fc3e53754affb8c4f309d 15223Author: Jia Tan <jiat0218@gmail.com> 15224Date: 2023-03-08 23:08:46 +0800 15225 15226 Revert: "Add warning if Capsicum sandbox system calls are unsupported." 15227 15228 The warning causes the exit status to be 2, so this will cause problems 15229 for many scripted use cases for xz. The sandbox usage is already very 15230 limited already, so silently disabling this allows it to be more usable. 15231 15232 src/xz/file_io.c | 10 ++++------ 15233 1 file changed, 4 insertions(+), 6 deletions(-) 15234 15235commit 01587dda2a8f13fef7e12fd624e6d05da5f9624f 15236Author: Jia Tan <jiat0218@gmail.com> 15237Date: 2023-03-07 20:02:22 +0800 15238 15239 xz: Fix -Wunused-label in io_sandbox_enter(). 15240 15241 Thanks to Xin Li for recommending the fix. 15242 15243 src/xz/file_io.c | 4 ++-- 15244 1 file changed, 2 insertions(+), 2 deletions(-) 15245 15246commit 5fb936786601a1cd013a5d436adde65982b1e13c 15247Author: Jia Tan <jiat0218@gmail.com> 15248Date: 2023-03-06 21:37:45 +0800 15249 15250 xz: Add warning if Capsicum sandbox system calls are unsupported. 15251 15252 The warning is only used when errno == ENOSYS. Otherwise, xz still 15253 issues a fatal error. 15254 15255 src/xz/file_io.c | 2 ++ 15256 1 file changed, 2 insertions(+) 15257 15258commit 61ee82cb1232a402c82282bbae42821f2b952b0d 15259Author: Jia Tan <jiat0218@gmail.com> 15260Date: 2023-03-06 21:27:53 +0800 15261 15262 xz: Skip Capsicum sandbox system calls when they are unsupported. 15263 15264 If a system has the Capsicum header files but does not actually 15265 implement the system calls, then this would render xz unusable. Instead, 15266 we can check if errno == ENOSYS and not issue a fatal error. 15267 15268 src/xz/file_io.c | 22 +++++++++++++++++----- 15269 1 file changed, 17 insertions(+), 5 deletions(-) 15270 15271commit f070722b57ba975a0dff36492d766f03026b1d21 15272Author: Jia Tan <jiat0218@gmail.com> 15273Date: 2023-03-06 21:08:26 +0800 15274 15275 xz: Reorder cap_enter() to beginning of capsicum sandbox code. 15276 15277 cap_enter() puts the process into the sandbox. If later calls to 15278 cap_rights_limit() fail, then the process can still have some extra 15279 protections. 15280 15281 src/xz/file_io.c | 6 +++--- 15282 1 file changed, 3 insertions(+), 3 deletions(-) 15283 15284commit f1ab1f6b339d16a53ac53efeb97779ecd2bae70f 15285Author: Jia Tan <jiat0218@gmail.com> 15286Date: 2023-02-24 23:46:23 +0800 15287 15288 liblzma: Clarify lzma_lzma_preset() documentation in lzma12.h. 15289 15290 lzma_lzma_preset() does not guarentee that the lzma_options_lzma are 15291 usable in an encoder even if it returns false (success). If liblzma 15292 is built with default configurations, then the options will always be 15293 usable. However if the match finders hc3, hc4, or bt4 are disabled, then 15294 the options may not be usable depending on the preset level requested. 15295 15296 The documentation was updated to reflect this complexity, since this 15297 behavior was unclear before. 15298 15299 src/liblzma/api/lzma/lzma12.h | 5 +++++ 15300 1 file changed, 5 insertions(+) 15301 15302commit 4b7fb3bf41a0ca4c97fad3799949a2aa61b13b99 15303Author: Lasse Collin <lasse.collin@tukaani.org> 15304Date: 2023-02-27 18:38:35 +0200 15305 15306 CMake: Require that the C compiler supports C99 or a newer standard. 15307 15308 Thanks to autoantwort for reporting the issue and suggesting 15309 a different patch: 15310 https://github.com/tukaani-project/xz/pull/42 15311 15312 CMakeLists.txt | 8 ++++++++ 15313 1 file changed, 8 insertions(+) 15314 15315commit 9aa7fdeb04c486d2700967090956af88fdccab7e 15316Author: Jia Tan <jiat0218@gmail.com> 15317Date: 2023-02-24 18:10:37 +0800 15318 15319 Tests: Small tweak to test-vli.c. 15320 15321 The static global variables can be disabled if encoders and decoders 15322 are not built. If they are not disabled and -Werror is used, it will 15323 cause an usused warning as an error. 15324 15325 tests/test_vli.c | 2 ++ 15326 1 file changed, 2 insertions(+) 15327 15328commit 3cf72c4bcba5370f07477c9b9b62ae33069ef9a9 15329Author: Jia Tan <jiat0218@gmail.com> 15330Date: 2023-02-06 21:46:43 +0800 15331 15332 liblzma: Replace '\n' -> newline in filter.h documentation. 15333 15334 The '\n' renders as a newline when the comments are converted to html 15335 by Doxygen. 15336 15337 src/liblzma/api/lzma/filter.h | 2 +- 15338 1 file changed, 1 insertion(+), 1 deletion(-) 15339 15340commit 002006be62d77c706565fa6ec828bea64be302da 15341Author: Jia Tan <jiat0218@gmail.com> 15342Date: 2023-02-06 21:45:37 +0800 15343 15344 liblzma: Shorten return description for two functions in filter.h. 15345 15346 Shorten the description for lzma_raw_encoder_memusage() and 15347 lzma_raw_decoder_memusage(). 15348 15349 src/liblzma/api/lzma/filter.h | 8 ++------ 15350 1 file changed, 2 insertions(+), 6 deletions(-) 15351 15352commit 463d9359b8595f01d44ada1739d75aeb87f36524 15353Author: Jia Tan <jiat0218@gmail.com> 15354Date: 2023-02-06 21:44:45 +0800 15355 15356 liblzma: Reword a few lines in filter.h 15357 15358 src/liblzma/api/lzma/filter.h | 10 +++++----- 15359 1 file changed, 5 insertions(+), 5 deletions(-) 15360 15361commit 01441df92c0fd6a6c02fe5ac27982a54ce887cc0 15362Author: Jia Tan <jiat0218@gmail.com> 15363Date: 2023-02-06 21:35:06 +0800 15364 15365 liblzma: Improve documentation in filter.h. 15366 15367 All functions now explicitly specify parameter and return values. 15368 The notes and code annotations were moved before the parameter and 15369 return value descriptions for consistency. 15370 15371 Also, the description above lzma_filter_encoder_is_supported() about 15372 not being able to list available filters was removed since 15373 lzma_str_list_filters() will do this. 15374 15375 src/liblzma/api/lzma/filter.h | 226 ++++++++++++++++++++++++++---------------- 15376 1 file changed, 143 insertions(+), 83 deletions(-) 15377 15378commit 805b45cd60bfd5da3d3d89077de3789df179b324 15379Author: Lasse Collin <lasse.collin@tukaani.org> 15380Date: 2023-02-23 20:46:16 +0200 15381 15382 Update THANKS. 15383 15384 THANKS | 1 + 15385 1 file changed, 1 insertion(+) 15386 15387commit 30e95bb44c36ae26b2ab12a94343b215fec285e7 15388Author: Lasse Collin <lasse.collin@tukaani.org> 15389Date: 2023-02-21 22:57:10 +0200 15390 15391 liblzma: Avoid null pointer + 0 (undefined behavior in C). 15392 15393 In the C99 and C17 standards, section 6.5.6 paragraph 8 means that 15394 adding 0 to a null pointer is undefined behavior. As of writing, 15395 "clang -fsanitize=undefined" (Clang 15) diagnoses this. However, 15396 I'm not aware of any compiler that would take advantage of this 15397 when optimizing (Clang 15 included). It's good to avoid this anyway 15398 since compilers might some day infer that pointer arithmetic implies 15399 that the pointer is not NULL. That is, the following foo() would then 15400 unconditionally return 0, even for foo(NULL, 0): 15401 15402 void bar(char *a, char *b); 15403 15404 int foo(char *a, size_t n) 15405 { 15406 bar(a, a + n); 15407 return a == NULL; 15408 } 15409 15410 In contrast to C, C++ explicitly allows null pointer + 0. So if 15411 the above is compiled as C++ then there is no undefined behavior 15412 in the foo(NULL, 0) call. 15413 15414 To me it seems that changing the C standard would be the sane 15415 thing to do (just add one sentence) as it would ensure that a huge 15416 amount of old code won't break in the future. Based on web searches 15417 it seems that a large number of codebases (where null pointer + 0 15418 occurs) are being fixed instead to be future-proof in case compilers 15419 will some day optimize based on it (like making the above foo(NULL, 0) 15420 return 0) which in the worst case will cause security bugs. 15421 15422 Some projects don't plan to change it. For example, gnulib and thus 15423 many GNU tools currently require that null pointer + 0 is defined: 15424 15425 https://lists.gnu.org/archive/html/bug-gnulib/2021-11/msg00000.html 15426 15427 https://www.gnu.org/software/gnulib/manual/html_node/Other-portability-assumptions.html 15428 15429 In XZ Utils null pointer + 0 issue should be fixed after this 15430 commit. This adds a few if-statements and thus branches to avoid 15431 null pointer + 0. These check for size > 0 instead of ptr != NULL 15432 because this way bugs where size > 0 && ptr == NULL will likely 15433 get caught quickly. None of them are in hot spots so it shouldn't 15434 matter for performance. 15435 15436 A little less readable version would be replacing 15437 15438 ptr + offset 15439 15440 with 15441 15442 offset != 0 ? ptr + offset : ptr 15443 15444 or creating a macro for it: 15445 15446 #define my_ptr_add(ptr, offset) \ 15447 ((offset) != 0 ? ((ptr) + (offset)) : (ptr)) 15448 15449 Checking for offset != 0 instead of ptr != NULL allows GCC >= 8.1, 15450 Clang >= 7, and Clang-based ICX to optimize it to the very same code 15451 as ptr + offset. That is, it won't create a branch. So for hot code 15452 this could be a good solution to avoid null pointer + 0. Unfortunately 15453 other compilers like ICC 2021 or MSVC 19.33 (VS2022) will create a 15454 branch from my_ptr_add(). 15455 15456 Thanks to Marcin Kowalczyk for reporting the problem: 15457 https://github.com/tukaani-project/xz/issues/36 15458 15459 src/liblzma/common/block_decoder.c | 5 ++++- 15460 src/liblzma/common/block_encoder.c | 7 +++++-- 15461 src/liblzma/common/common.c | 20 ++++++++++++++------ 15462 src/liblzma/common/index_decoder.c | 13 ++++++++++--- 15463 src/liblzma/common/index_encoder.c | 11 +++++++++-- 15464 src/liblzma/common/index_hash.c | 13 ++++++++++--- 15465 src/liblzma/common/lzip_decoder.c | 6 +++++- 15466 src/liblzma/delta/delta_decoder.c | 7 ++++++- 15467 src/liblzma/delta/delta_encoder.c | 12 ++++++++++-- 15468 src/liblzma/simple/simple_coder.c | 6 ++++-- 15469 10 files changed, 77 insertions(+), 23 deletions(-) 15470 15471commit fa9065fac54194fe0407fc7f0cc9633fdce13c21 15472Author: Jia Tan <jiat0218@gmail.com> 15473Date: 2023-02-07 00:00:44 +0800 15474 15475 liblzma: Adjust container.h for consistency with filter.h. 15476 15477 src/liblzma/api/lzma/container.h | 20 +++++++++----------- 15478 1 file changed, 9 insertions(+), 11 deletions(-) 15479 15480commit 00a721b63d82dfb658dca8d8cb599d8a245c663f 15481Author: Jia Tan <jiat0218@gmail.com> 15482Date: 2023-02-07 00:00:09 +0800 15483 15484 liblzma: Fix small typos and reword a few things in filter.h. 15485 15486 src/liblzma/api/lzma/container.h | 13 ++++++------- 15487 1 file changed, 6 insertions(+), 7 deletions(-) 15488 15489commit 5b1c171d4ffe89ef18fa31509bb0185d6fd11d39 15490Author: Jia Tan <jiat0218@gmail.com> 15491Date: 2023-02-06 23:42:08 +0800 15492 15493 liblzma: Convert list of flags in lzma_mt to bulleted list. 15494 15495 src/liblzma/api/lzma/container.h | 9 ++++++--- 15496 1 file changed, 6 insertions(+), 3 deletions(-) 15497 15498commit dbd47622eb99fefb3538a22baec3def002aa56f5 15499Author: Jia Tan <jiat0218@gmail.com> 15500Date: 2023-01-26 23:17:41 +0800 15501 15502 liblzma: Fix typo in documentation in container.h 15503 15504 lzma_microlzma_decoder -> lzma_microlzma_encoder 15505 15506 src/liblzma/api/lzma/container.h | 2 +- 15507 1 file changed, 1 insertion(+), 1 deletion(-) 15508 15509commit 14cd30806d69e55906073745bcce3ee50e0ec942 15510Author: Jia Tan <jiat0218@gmail.com> 15511Date: 2023-01-26 23:16:34 +0800 15512 15513 liblzma: Improve documentation for container.h 15514 15515 Standardizing each function to always specify parameters and return 15516 values. Also moved the parameters and return values to the end of each 15517 function description. 15518 15519 src/liblzma/api/lzma/container.h | 146 +++++++++++++++++++++++++-------------- 15520 1 file changed, 93 insertions(+), 53 deletions(-) 15521 15522commit c9c8bfae3502842dcead85eeb2b951b437c2cd88 15523Author: Jia Tan <jiat0218@gmail.com> 15524Date: 2023-02-22 20:59:41 +0800 15525 15526 CMake: Add LZIP decoder test to list of tests. 15527 15528 CMakeLists.txt | 1 + 15529 1 file changed, 1 insertion(+) 15530 15531commit b9f171dd00a3cc32b6d41ea8e082cf545640ec2a 15532Author: Lasse Collin <lasse.collin@tukaani.org> 15533Date: 2023-02-17 20:56:49 +0200 15534 15535 Update THANKS. 15536 15537 THANKS | 1 + 15538 1 file changed, 1 insertion(+) 15539 15540commit 2ee86d20e49985b903b78ebcfa3fa672e73e93aa 15541Author: Lasse Collin <lasse.collin@tukaani.org> 15542Date: 2023-02-17 20:48:28 +0200 15543 15544 Build: Use only the generic symbol versioning on MicroBlaze. 15545 15546 On MicroBlaze, GCC 12 is broken in sense that 15547 __has_attribute(__symver__) returns true but it still doesn't 15548 support the __symver__ attribute even though the platform is ELF 15549 and symbol versioning is supported if using the traditional 15550 __asm__(".symver ...") method. Avoiding the traditional method is 15551 good because it breaks LTO (-flto) builds with GCC. 15552 15553 See also: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101766 15554 15555 For now the only extra symbols in liblzma_linux.map are the 15556 compatibility symbols with the patch that spread from RHEL/CentOS 7. 15557 These require the use of __symver__ attribute or __asm__(".symver ...") 15558 in the C code. Compatibility with the patch from CentOS 7 doesn't 15559 seem valuable on MicroBlaze so use liblzma_generic.map on MicroBlaze 15560 instead. It doesn't require anything special in the C code and thus 15561 no LTO issues either. 15562 15563 An alternative would be to detect support for __symver__ 15564 attribute in configure.ac and CMakeLists.txt and fall back 15565 to __asm__(".symver ...") but then LTO would be silently broken 15566 on MicroBlaze. It sounds likely that MicroBlaze is a special 15567 case so let's treat it as a such because that is simpler. If 15568 a similar issue exists on some other platform too then hopefully 15569 someone will report it and this can be reconsidered. 15570 15571 (This doesn't do the same fix in CMakeLists.txt. Perhaps it should 15572 but perhaps CMake build of liblzma doesn't matter much on MicroBlaze. 15573 The problem breaks the build so it's easy to notice and can be fixed 15574 later.) 15575 15576 Thanks to Vincent Fazio for reporting the problem and proposing 15577 a patch (in the end that solution wasn't used): 15578 https://github.com/tukaani-project/xz/pull/32 15579 15580 configure.ac | 12 ++++++++++-- 15581 1 file changed, 10 insertions(+), 2 deletions(-) 15582 15583commit d831072cceca458d94d2d5da201862f6d43a417b 15584Author: Lasse Collin <lasse.collin@tukaani.org> 15585Date: 2023-02-16 21:09:00 +0200 15586 15587 liblzma: Very minor API doc tweaks. 15588 15589 Use "member" to refer to struct members as that's the term used 15590 by the C standard. 15591 15592 Use lzma_options_delta.dist and such in docs so that in Doxygen's 15593 HTML output they will link to the doc of the struct member. 15594 15595 Clean up a few trailing white spaces too. 15596 15597 src/liblzma/api/lzma/block.h | 6 +++--- 15598 src/liblzma/api/lzma/delta.h | 6 +++--- 15599 src/liblzma/api/lzma/index.h | 10 +++++----- 15600 src/liblzma/api/lzma/stream_flags.h | 6 +++--- 15601 4 files changed, 14 insertions(+), 14 deletions(-) 15602 15603commit f029daea39c215fd7d5cb6b6798818b055cf5b22 15604Author: Jia Tan <jiat0218@gmail.com> 15605Date: 2023-02-17 00:54:33 +0800 15606 15607 liblzma: Adjust spacing in doc headers in bcj.h. 15608 15609 src/liblzma/api/lzma/bcj.h | 14 +++++++------- 15610 1 file changed, 7 insertions(+), 7 deletions(-) 15611 15612commit a5de68bac2bb7e1b9119e6cea7d761a22ea73e9c 15613Author: Jia Tan <jiat0218@gmail.com> 15614Date: 2023-02-17 00:44:44 +0800 15615 15616 liblzma: Adjust documentation in bcj.h for consistent style. 15617 15618 src/liblzma/api/lzma/bcj.h | 43 ++++++++++++++++++++++--------------------- 15619 1 file changed, 22 insertions(+), 21 deletions(-) 15620 15621commit efa498c13b883810497e0ea8a169efd6f48f5026 15622Author: Jia Tan <jiat0218@gmail.com> 15623Date: 2023-02-17 00:36:05 +0800 15624 15625 liblzma: Rename field => member in documentation. 15626 15627 Also adjusted preset value => preset level. 15628 15629 src/liblzma/api/lzma/base.h | 18 +++++++-------- 15630 src/liblzma/api/lzma/block.h | 44 ++++++++++++++++++------------------- 15631 src/liblzma/api/lzma/container.h | 26 +++++++++++----------- 15632 src/liblzma/api/lzma/delta.h | 12 +++++----- 15633 src/liblzma/api/lzma/index.h | 30 ++++++++++++------------- 15634 src/liblzma/api/lzma/lzma12.h | 28 +++++++++++------------ 15635 src/liblzma/api/lzma/stream_flags.h | 32 +++++++++++++-------------- 15636 7 files changed, 95 insertions(+), 95 deletions(-) 15637 15638commit 718b22a6c5e3ee5de123323ea798872381f9320e 15639Author: Lasse Collin <lasse.collin@tukaani.org> 15640Date: 2023-02-16 17:59:50 +0200 15641 15642 liblzma: Silence a warning from MSVC. 15643 15644 It gives C4146 here since unary minus with unsigned integer 15645 is still unsigned (which is the intention here). Doing it 15646 with substraction makes it clearer and avoids the warning. 15647 15648 Thanks to Nathan Moinvaziri for reporting this. 15649 15650 src/liblzma/check/crc64_fast.c | 2 +- 15651 1 file changed, 1 insertion(+), 1 deletion(-) 15652 15653commit 87c53553fa7d50f777b4edfa99f2083628f590fe 15654Author: Jia Tan <jiat0218@gmail.com> 15655Date: 2023-02-16 21:04:54 +0800 15656 15657 liblzma: Improve documentation for stream_flags.h 15658 15659 Standardizing each function to always specify parameters and return 15660 values. Also moved the parameters and return values to the end of each 15661 function description. 15662 15663 A few small things were reworded and long sentences broken up. 15664 15665 src/liblzma/api/lzma/stream_flags.h | 76 ++++++++++++++++++++++--------------- 15666 1 file changed, 46 insertions(+), 30 deletions(-) 15667 15668commit 13d99e75a543e9e5f8633cc241eae55b91a3b242 15669Author: Jia Tan <jiat0218@gmail.com> 15670Date: 2023-02-14 21:50:16 +0800 15671 15672 liblzma: Improve documentation in lzma12.h. 15673 15674 All functions now explicitly specify parameter and return values. 15675 15676 src/liblzma/api/lzma/lzma12.h | 32 +++++++++++++++++++++++--------- 15677 1 file changed, 23 insertions(+), 9 deletions(-) 15678 15679commit 43ec344c868f930e96879eb9e49212cce92a9884 15680Author: Jia Tan <jiat0218@gmail.com> 15681Date: 2023-01-27 22:44:06 +0800 15682 15683 liblzma: Improve documentation in check.h. 15684 15685 All functions now explicitly specify parameter and return values. 15686 Also moved the note about SHA-256 functions not being exported to the 15687 top of the file. 15688 15689 src/liblzma/api/lzma/check.h | 41 ++++++++++++++++++++++++++++------------- 15690 1 file changed, 28 insertions(+), 13 deletions(-) 15691 15692commit 9c71db4e884fd49aea3d1e711036bff45ca66487 15693Author: Jia Tan <jiat0218@gmail.com> 15694Date: 2023-02-08 21:33:52 +0800 15695 15696 liblzma: Improve documentation in index.h 15697 15698 All functions now explicitly specify parameter and return values. 15699 15700 src/liblzma/api/lzma/index.h | 177 ++++++++++++++++++++++++++++++------------- 15701 1 file changed, 126 insertions(+), 51 deletions(-) 15702 15703commit 421f2f2e160720f6009e3b6a125cafe2feaa9419 15704Author: Jia Tan <jiat0218@gmail.com> 15705Date: 2023-02-08 20:35:32 +0800 15706 15707 liblzma: Reword a comment in index.h. 15708 15709 src/liblzma/api/lzma/index.h | 4 ++-- 15710 1 file changed, 2 insertions(+), 2 deletions(-) 15711 15712commit b67539484981351d501b68de5e925425e50c59b1 15713Author: Jia Tan <jiat0218@gmail.com> 15714Date: 2023-02-08 20:30:23 +0800 15715 15716 liblzma: Omit lzma_index_iter's internal field from Doxygen docs. 15717 15718 Add \private above this field and its sub-fields since it is not meant 15719 to be modified by users. 15720 15721 src/liblzma/api/lzma/index.h | 9 ++++++++- 15722 1 file changed, 8 insertions(+), 1 deletion(-) 15723 15724commit 0c9e4fc2ad6d88d54f299240fcc5a2ce7d695d96 15725Author: Jia Tan <jiat0218@gmail.com> 15726Date: 2023-01-21 21:32:03 +0800 15727 15728 liblzma: Fix documentation for LZMA_MEMLIMIT_ERROR. 15729 15730 LZMA_MEMLIMIT_ERROR was missing the "<" character needed to put 15731 documentation after a member. 15732 15733 src/liblzma/api/lzma/base.h | 2 +- 15734 1 file changed, 1 insertion(+), 1 deletion(-) 15735 15736commit 816fec125aa74bcef46512c73acc6d9e5a700d15 15737Author: Jia Tan <jiat0218@gmail.com> 15738Date: 2023-01-21 00:29:38 +0800 15739 15740 liblzma: Improve documentation for base.h. 15741 15742 Standardizing each function to always specify params and return values. 15743 Also fixed a small grammar mistake. 15744 15745 src/liblzma/api/lzma/base.h | 30 +++++++++++++++++++++++++----- 15746 1 file changed, 25 insertions(+), 5 deletions(-) 15747 15748commit 862dacef1a4e7e1b28d465956fa4244ed01df154 15749Author: Jia Tan <jiat0218@gmail.com> 15750Date: 2023-02-14 00:12:34 +0800 15751 15752 liblzma: Add one more missing [out] annotation in vli.h 15753 15754 src/liblzma/api/lzma/vli.h | 2 +- 15755 1 file changed, 1 insertion(+), 1 deletion(-) 15756 15757commit 867b08ae4254bf55dd1f7fd502cc618231b92f75 15758Author: Jia Tan <jiat0218@gmail.com> 15759Date: 2023-02-14 00:08:33 +0800 15760 15761 liblzma: Minor improvements to vli.h. 15762 15763 Added [out] annotations to parameters that are pointers and can have 15764 their value changed. Also added a clarification to lzma_vli_is_valid. 15765 15766 src/liblzma/api/lzma/vli.h | 13 +++++++------ 15767 1 file changed, 7 insertions(+), 6 deletions(-) 15768 15769commit 90d0e628ff11e5030bcc4fc000bca056adda6603 15770Author: Jia Tan <jiat0218@gmail.com> 15771Date: 2023-02-10 21:38:02 +0800 15772 15773 liblzma: Add comments for macros in delta.h. 15774 15775 Document LZMA_DELTA_DIST_MIN and LZMA_DELTA_DIST_MAX for completeness 15776 and to avoid Doxygen warnings. 15777 15778 src/liblzma/api/lzma/delta.h | 8 ++++++++ 15779 1 file changed, 8 insertions(+) 15780 15781commit 9255fffdb13e59874bf7f95c370c410ad3a7e114 15782Author: Jia Tan <jiat0218@gmail.com> 15783Date: 2023-02-10 21:35:23 +0800 15784 15785 liblzma: Improve documentation in index_hash.h. 15786 15787 All functions now explicitly specify parameter and return values. 15788 Also reworded the description of lzma_index_hash_init() for readability. 15789 15790 src/liblzma/api/lzma/index_hash.h | 36 +++++++++++++++++++++++++++--------- 15791 1 file changed, 27 insertions(+), 9 deletions(-) 15792 15793commit 1dbe12b90cff79bb51923733ac0840747b4b4131 15794Author: Lasse Collin <lasse.collin@tukaani.org> 15795Date: 2023-02-07 19:07:45 +0200 15796 15797 xz: Improve the comment about start_time in mytime.c. 15798 15799 start_time is relative to an arbitary point in time, it's not 15800 time of day, so using it for anything else than time differences 15801 wouldn't make sense. 15802 15803 src/xz/mytime.c | 15 ++++++++++----- 15804 1 file changed, 10 insertions(+), 5 deletions(-) 15805 15806commit 7673ef5aa80c1af7fb693360dd82f527b46c2c56 15807Author: Jia Tan <jiat0218@gmail.com> 15808Date: 2023-02-04 21:06:35 +0800 15809 15810 Build: Adjust CMake version search regex. 15811 15812 Now, the LZMA_VERSION_MAJOR, LZMA_VERSION_MINOR, and LZMA_VERSION_PATCH 15813 macros do not need to be on consecutive lines in version.h. They can be 15814 separated by more whitespace, comments, or even other content, as long 15815 as they appear in the proper order (major, minor, patch). 15816 15817 CMakeLists.txt | 2 ++ 15818 1 file changed, 2 insertions(+) 15819 15820commit b8bce89be7fb5bffe5fef4a2782ca9b2b107eaac 15821Author: Jia Tan <jiat0218@gmail.com> 15822Date: 2023-02-04 12:01:23 +0800 15823 15824 xz: Add a comment clarifying the use of start_time in mytime.c. 15825 15826 src/xz/mytime.c | 5 +++++ 15827 1 file changed, 5 insertions(+) 15828 15829commit 912af91b10a18fb9bb3167247ecaaefca8248ee9 15830Author: Jia Tan <jiat0218@gmail.com> 15831Date: 2023-01-26 09:50:21 +0800 15832 15833 liblzma: Improve documentation for version.h. 15834 15835 Specified parameter and return values for API functions and documented 15836 a few more of the macros. 15837 15838 src/liblzma/api/lzma/version.h | 29 ++++++++++++++++++++++------- 15839 1 file changed, 22 insertions(+), 7 deletions(-) 15840 15841commit 850adec171203cd22b57d016084d713f72ae5307 15842Author: Jia Tan <jiat0218@gmail.com> 15843Date: 2023-02-03 22:52:55 +0800 15844 15845 Docs: Omit SIGTSTP not handled from TODO. 15846 15847 TODO | 4 ---- 15848 1 file changed, 4 deletions(-) 15849 15850commit 2c78a83c6faec70154d9eb78022a618ed62cdcb3 15851Author: Jia Tan <jiat0218@gmail.com> 15852Date: 2023-02-03 00:33:32 +0800 15853 15854 liblzma: Fix bug in lzma_str_from_filters() not checking filters[] length. 15855 15856 The bug is only a problem in applications that do not properly terminate 15857 the filters[] array with LZMA_VLI_UNKNOWN or have more than 15858 LZMA_FILTERS_MAX filters. This bug does not affect xz. 15859 15860 src/liblzma/common/string_conversion.c | 7 +++++++ 15861 1 file changed, 7 insertions(+) 15862 15863commit e01f01b9af1c074463b92694a16ecc16a31907c0 15864Author: Jia Tan <jiat0218@gmail.com> 15865Date: 2023-02-03 00:32:47 +0800 15866 15867 Tests: Create test_filter_str.c. 15868 15869 Tests lzma_str_to_filters(), lzma_str_from_filters(), and 15870 lzma_str_list_filters() API functions. 15871 15872 CMakeLists.txt | 1 + 15873 tests/Makefile.am | 2 + 15874 tests/test_filter_str.c | 593 ++++++++++++++++++++++++++++++++++++++++++++++++ 15875 3 files changed, 596 insertions(+) 15876 15877commit 8dfc029e7a4ce45809c30313dc0e502f0d22be26 15878Author: Jia Tan <jiat0218@gmail.com> 15879Date: 2023-01-22 08:49:00 +0800 15880 15881 liblzma: Fix typos in comments in string_conversion.c. 15882 15883 src/liblzma/common/string_conversion.c | 4 ++-- 15884 1 file changed, 2 insertions(+), 2 deletions(-) 15885 15886commit 54ad83c1ae2180dcc0cb2445b181dc1e9732a5d6 15887Author: Jia Tan <jiat0218@gmail.com> 15888Date: 2023-02-03 00:20:20 +0800 15889 15890 liblzma: Clarify block encoder and decoder documentation. 15891 15892 Added a few sentences to the description for lzma_block_encoder() and 15893 lzma_block_decoder() to highlight that the Block Header must be coded 15894 before calling these functions. 15895 15896 src/liblzma/api/lzma/block.h | 15 +++++++++++---- 15897 1 file changed, 11 insertions(+), 4 deletions(-) 15898 15899commit f680e771b3eb2a46310fe85b3e000ac3a1a0640f 15900Author: Jia Tan <jiat0218@gmail.com> 15901Date: 2023-02-03 00:12:24 +0800 15902 15903 Update lzma_block documentation for lzma_block_uncomp_encode(). 15904 15905 src/liblzma/api/lzma/block.h | 3 +++ 15906 1 file changed, 3 insertions(+) 15907 15908commit 504cf4af895fd45aad0c56eb3b49d90acd54465b 15909Author: Jia Tan <jiat0218@gmail.com> 15910Date: 2023-02-03 00:11:37 +0800 15911 15912 liblzma: Minor edits to lzma_block header_size documentation. 15913 15914 src/liblzma/api/lzma/block.h | 3 ++- 15915 1 file changed, 2 insertions(+), 1 deletion(-) 15916 15917commit 115b720fb521f99aa832d06b2c12b7f8c6c50680 15918Author: Jia Tan <jiat0218@gmail.com> 15919Date: 2023-02-03 00:11:07 +0800 15920 15921 liblzma: Enumerate functions that read version in lzma_block. 15922 15923 src/liblzma/api/lzma/block.h | 13 +++++++++++-- 15924 1 file changed, 11 insertions(+), 2 deletions(-) 15925 15926commit 85ea0979adcf808a3830aefbe7a4ec884e542ea1 15927Author: Jia Tan <jiat0218@gmail.com> 15928Date: 2023-02-03 00:10:34 +0800 15929 15930 liblzma: Clarify comment in block.h. 15931 15932 src/liblzma/api/lzma/block.h | 3 ++- 15933 1 file changed, 2 insertions(+), 1 deletion(-) 15934 15935commit 1f7ab90d9ce224230a04de6b921ad6e2029023a8 15936Author: Jia Tan <jiat0218@gmail.com> 15937Date: 2023-02-03 00:07:23 +0800 15938 15939 liblzma: Improve documentation for block.h. 15940 15941 Standardizing each function to always specify params and return values. 15942 Output pointer parameters are also marked with doxygen style [out] to 15943 make it clear. Any note sections were also moved above the parameter and 15944 return sections for consistency. 15945 15946 src/liblzma/api/lzma/block.h | 96 ++++++++++++++++++++++++++++++++++---------- 15947 1 file changed, 75 insertions(+), 21 deletions(-) 15948 15949commit c563a4bc554a96bd0b6aab3c139715b7ec8f6ca3 15950Author: Jia Tan <jiat0218@gmail.com> 15951Date: 2023-02-01 23:38:30 +0800 15952 15953 liblzma: Clarify a comment about LZMA_STR_NO_VALIDATION. 15954 15955 The flag description for LZMA_STR_NO_VALIDATION was previously confusing 15956 about the treatment for filters than cannot be used with .xz format 15957 (lzma1) without using LZMA_STR_ALL_FILTERS. Now, it is clear that 15958 LZMA_STR_NO_VALIDATION is not a super set of LZMA_STR_ALL_FILTERS. 15959 15960 src/liblzma/api/lzma/filter.h | 5 +++-- 15961 1 file changed, 3 insertions(+), 2 deletions(-) 15962 15963commit 315c64c7e18acc59a745b68148188a73e998252b 15964Author: Jia Tan <jiat0218@gmail.com> 15965Date: 2023-02-01 21:43:33 +0800 15966 15967 CI: Update .gitignore for artifacts directory in build-aux. 15968 15969 The workflow action for our CI pipeline can only reference artifacts in 15970 the source directory, so we should ignore these files if the ci_build.sh 15971 is run locally. 15972 15973 .gitignore | 1 + 15974 1 file changed, 1 insertion(+) 15975 15976commit 2c1341f4fa06e7f487d61142aa354c433e17ec7f 15977Author: Jia Tan <jiat0218@gmail.com> 15978Date: 2023-02-01 21:36:46 +0800 15979 15980 CI: Add quotes around variables in a few places. 15981 15982 build-aux/ci_build.sh | 6 +++--- 15983 1 file changed, 3 insertions(+), 3 deletions(-) 15984 15985commit 3a401b0e0c7a2658af7801dd0690256ef24149e0 15986Author: Jia Tan <jiat0218@gmail.com> 15987Date: 2023-02-01 21:36:22 +0800 15988 15989 CI: Upload test logs as artifacts if a test fails. 15990 15991 .github/workflows/ci.yml | 60 ++++++++++++++++++++++++++++++++++-------------- 15992 build-aux/ci_build.sh | 31 ++++++++++++++++++++----- 15993 2 files changed, 68 insertions(+), 23 deletions(-) 15994 15995commit 610dde15a88f12cc540424eb3eb3ed61f3876f74 15996Author: Lasse Collin <lasse.collin@tukaani.org> 15997Date: 2023-01-27 20:02:49 +0200 15998 15999 xz: Use clock_gettime() even if CLOCK_MONOTONIC isn't available. 16000 16001 mythread.h and thus liblzma already does it. 16002 16003 src/xz/mytime.c | 11 ++++++++--- 16004 src/xz/private.h | 3 +-- 16005 2 files changed, 9 insertions(+), 5 deletions(-) 16006 16007commit 2e02877288f6576cd4595e9ac7684f867cd47d68 16008Author: Lasse Collin <lasse.collin@tukaani.org> 16009Date: 2023-01-27 19:41:19 +0200 16010 16011 po4a/po4a.conf: Sort the language identifiers in alphabetical order. 16012 16013 po4a/po4a.conf | 2 +- 16014 1 file changed, 1 insertion(+), 1 deletion(-) 16015 16016commit ff592c616eda274215b485cf1b8d34f060c9f3be 16017Author: Lasse Collin <lasse.collin@tukaani.org> 16018Date: 2023-01-26 18:29:17 +0200 16019 16020 xz: Add SIGTSTP handler for progress indicator time keeping. 16021 16022 This way, if xz is stopped the elapsed time and estimated time 16023 remaining won't get confused by the amount of time spent in 16024 the stopped state. 16025 16026 This raises SIGSTOP. It's not clear to me if this is the correct way. 16027 POSIX and glibc docs say that SIGTSTP shouldn't stop the process if 16028 it is orphaned but this commit doesn't attempt to handle that. 16029 16030 Search for SIGTSTP in section 2.4.3: 16031 16032 https://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html 16033 16034 src/xz/mytime.c | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- 16035 src/xz/mytime.h | 6 ++++++ 16036 src/xz/private.h | 12 ++++++++++++ 16037 src/xz/signals.c | 17 ++++++++++++++++- 16038 4 files changed, 89 insertions(+), 2 deletions(-) 16039 16040commit 3b1c8ac8d1d553cbb1fb22b545d2b1424c752b76 16041Author: Jia Tan <jiat0218@gmail.com> 16042Date: 2023-01-27 20:14:51 +0800 16043 16044 Translations: Add Brazilian Portuguese translation of man pages. 16045 16046 Thanks to Rafael Fontenelle. 16047 16048 po4a/po4a.conf | 2 +- 16049 po4a/pt_BR.po | 3677 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 16050 2 files changed, 3678 insertions(+), 1 deletion(-) 16051 16052commit a15a7552f9f67c4e402f5d2967324e0ccfd6fccc 16053Author: Lasse Collin <lasse.collin@tukaani.org> 16054Date: 2023-01-26 17:51:06 +0200 16055 16056 Build: Avoid different quoting style in --enable-doxygen doc. 16057 16058 configure.ac | 10 +++++----- 16059 1 file changed, 5 insertions(+), 5 deletions(-) 16060 16061commit af5a4bd5afc089d9697756dded38feafaa987ae4 16062Author: Lasse Collin <lasse.collin@tukaani.org> 16063Date: 2023-01-26 17:39:46 +0200 16064 16065 tuklib_physmem: Check for __has_warning before GCC version. 16066 16067 Clang can be configured to fake a too high GCC version so 16068 this way it's more robust. 16069 16070 src/common/tuklib_physmem.c | 6 +++--- 16071 1 file changed, 3 insertions(+), 3 deletions(-) 16072 16073commit f35d98e20609e0be6a04ae2604bfb7cb9d5bd5e4 16074Author: Jia Tan <jiat0218@gmail.com> 16075Date: 2023-01-24 20:48:50 +0800 16076 16077 liblzma: Fix documentation in filter.h for lzma_str_to_filters() 16078 16079 The previous documentation for lzma_str_to_filters() was technically 16080 correct, but misleading. lzma_str_to_filters() returns NULL on success, 16081 which is in practice always defined to 0. This is the same value as 16082 LZMA_OK, but lzma_str_to_filters() does not return lzma_ret so we should 16083 be more clear. 16084 16085 src/liblzma/api/lzma/filter.h | 2 +- 16086 1 file changed, 1 insertion(+), 1 deletion(-) 16087 16088commit 2f78ecc5939b3d97ddfc2a6bd31b50108a28d0a2 16089Author: Lasse Collin <lasse.collin@tukaani.org> 16090Date: 2023-01-23 23:44:58 +0200 16091 16092 Revert "tuklib_common: Define __has_warning if it is not defined." 16093 16094 This reverts commit 82e3c968bfa10e3ff13333bd9cbbadb5988d6766. 16095 16096 Macros in the reserved namespace (_foo or __foo) shouldn't be #defined 16097 without a very good reason. Here the alternative would have been 16098 to #define tuklib_has_warning(str) to an approriate value. 16099 16100 Also the tuklib_* files should stay namespace clean if possible. 16101 16102 src/common/tuklib_common.h | 7 ------- 16103 1 file changed, 7 deletions(-) 16104 16105commit 8366cf8738e8b7bb74c967d07bf0fd2a1878e575 16106Author: Lasse Collin <lasse.collin@tukaani.org> 16107Date: 2023-01-23 23:38:34 +0200 16108 16109 tuklib_physmem: Clean up the way -Wcast-function-type is silenced on Windows. 16110 16111 __has_warning and other __has_foo macros are meant to become 16112 compiler-agnostic so it's not good to check for __clang__ with it. 16113 16114 This also relied on tuklib_common.h for #defining __has_warning 16115 which was confusing as #defining reserved macros is generally 16116 not a good idea. 16117 16118 src/common/tuklib_physmem.c | 17 +++++++++++++---- 16119 1 file changed, 13 insertions(+), 4 deletions(-) 16120 16121commit 683a3c7e2fcd922200c31078e5c9dd1348e90941 16122Author: Lasse Collin <lasse.collin@tukaani.org> 16123Date: 2023-01-24 00:05:38 +0200 16124 16125 xz: Flip the return value of suffix_is_set to match the documentation. 16126 16127 Also edit style to match the existing coding style in the project. 16128 16129 src/xz/args.c | 6 +++--- 16130 src/xz/suffix.c | 2 +- 16131 src/xz/suffix.h | 1 + 16132 3 files changed, 5 insertions(+), 4 deletions(-) 16133 16134commit cc5aa9ab138beeecaee5a1e81197591893ee9ca0 16135Author: Jia Tan <jiat0218@gmail.com> 16136Date: 2023-01-07 21:55:06 +0800 16137 16138 xz: Refactor duplicated check for custom suffix when using --format=raw 16139 16140 src/xz/args.c | 8 ++++++++ 16141 src/xz/suffix.c | 26 ++++++++------------------ 16142 src/xz/suffix.h | 7 +++++++ 16143 3 files changed, 23 insertions(+), 18 deletions(-) 16144 16145commit 9663141274e01592a281a7f2df5d7a31a1dac8bf 16146Author: Jia Tan <jiat0218@gmail.com> 16147Date: 2023-01-20 21:53:14 +0800 16148 16149 liblzma: Set documentation on all reserved fields to private. 16150 16151 This prevents the reserved fields from being part of the generated 16152 Doxygen documentation. 16153 16154 src/liblzma/api/lzma/base.h | 17 +++++++++++++++ 16155 src/liblzma/api/lzma/block.h | 43 +++++++++++++++++++++++++++++++++++++ 16156 src/liblzma/api/lzma/container.h | 24 +++++++++++++++++++++ 16157 src/liblzma/api/lzma/delta.h | 12 +++++++++++ 16158 src/liblzma/api/lzma/index.h | 27 +++++++++++++++++++++++ 16159 src/liblzma/api/lzma/lzma12.h | 22 +++++++++++++++++++ 16160 src/liblzma/api/lzma/stream_flags.h | 28 ++++++++++++++++++++++++ 16161 7 files changed, 173 insertions(+) 16162 16163commit 6327a045f34d48fc5afc58ba0d32a82c94403049 16164Author: Jia Tan <jiat0218@gmail.com> 16165Date: 2022-12-20 21:39:59 +0800 16166 16167 Doxygen: Update Doxyfile.in from 1.4.7 to 1.8.17. 16168 16169 A few Doxygen tags were obsolete from 1.4.7. Version 1.8.17 released 16170 in 2019, so this should be compatible with resonable modern distros. 16171 The purpose of Doxygen these days is for docs on the website, so it 16172 doesn't necessarily have to work for everyone. Just when the maintainers 16173 want to update the docs. 16174 16175 Doxyfile.in | 2523 ++++++++++++++++++++++++++++++++++++++++++++--------------- 16176 1 file changed, 1893 insertions(+), 630 deletions(-) 16177 16178commit bbf71b69ebf9d0d62a0af150a5c37d193b8159ad 16179Author: Jia Tan <jiat0218@gmail.com> 16180Date: 2023-01-03 20:37:30 +0800 16181 16182 Doxygen: Make Doxygen only produce liblzma API documentation by default. 16183 16184 Doxygen is now configurable in autotools only with 16185 --enable-doxygen=[api|all]. The default is "api", which will only 16186 generate HTML output for liblzma API functions. The LaTex documentation 16187 output was also disabled. 16188 16189 Doxyfile.in | 18 +++++++++--------- 16190 configure.ac | 39 +++++++++++++++++++++++++++++++++++++++ 16191 2 files changed, 48 insertions(+), 9 deletions(-) 16192 16193commit 6fcf4671b6047113c583a0919fc850987a4ec5f4 16194Author: Jia Tan <jiat0218@gmail.com> 16195Date: 2022-12-21 23:59:43 +0800 16196 16197 liblzma: Highlight liblzma API headers should not be included directly. 16198 16199 This improves the generated Doxygen HTML files to better highlight 16200 how to properly use the liblzma API header files. 16201 16202 src/liblzma/api/lzma/base.h | 5 +++-- 16203 src/liblzma/api/lzma/bcj.h | 5 +++-- 16204 src/liblzma/api/lzma/block.h | 5 +++-- 16205 src/liblzma/api/lzma/check.h | 5 +++-- 16206 src/liblzma/api/lzma/container.h | 5 +++-- 16207 src/liblzma/api/lzma/delta.h | 5 +++-- 16208 src/liblzma/api/lzma/filter.h | 5 +++-- 16209 src/liblzma/api/lzma/hardware.h | 5 +++-- 16210 src/liblzma/api/lzma/index.h | 5 +++-- 16211 src/liblzma/api/lzma/index_hash.h | 5 +++-- 16212 src/liblzma/api/lzma/lzma12.h | 5 +++-- 16213 src/liblzma/api/lzma/stream_flags.h | 5 +++-- 16214 src/liblzma/api/lzma/version.h | 5 +++-- 16215 src/liblzma/api/lzma/vli.h | 5 +++-- 16216 14 files changed, 42 insertions(+), 28 deletions(-) 16217 16218commit b43ff180fb2e372adce876bfa155fc9bcf0c3db4 16219Author: Jia Tan <jiat0218@gmail.com> 16220Date: 2023-01-19 20:35:09 +0800 16221 16222 tuklib_physmem: Silence warning from -Wcast-function-type on MinGW-w64. 16223 16224 tuklib_physmem depends on GetProcAddress() for both MSVC and MinGW-w64 16225 to retrieve a function address. The proper way to do this is to cast the 16226 return value to the type of function pointer retrieved. Unfortunately, 16227 this causes a cast-function-type warning, so the best solution is to 16228 simply ignore the warning. 16229 16230 src/common/tuklib_physmem.c | 9 +++++++++ 16231 1 file changed, 9 insertions(+) 16232 16233commit 82e3c968bfa10e3ff13333bd9cbbadb5988d6766 16234Author: Jia Tan <jiat0218@gmail.com> 16235Date: 2023-01-19 20:32:40 +0800 16236 16237 tuklib_common: Define __has_warning if it is not defined. 16238 16239 clang supports the __has_warning macro to determine if the version of 16240 clang compiling the code supports a given warning. If we do not define 16241 it for other compilers, it may cause a preprocessor error. 16242 16243 src/common/tuklib_common.h | 7 +++++++ 16244 1 file changed, 7 insertions(+) 16245 16246commit b2ba1a489df451cdcd93b2334e319dd06778de19 16247Author: Jia Tan <jiat0218@gmail.com> 16248Date: 2023-01-18 22:11:05 +0800 16249 16250 CI: Reorder 32-bit build first for Linux autotool builds. 16251 16252 The 32-bit build needs to be first so the configure cache only needs to 16253 be reset one time. The 32-bit build sets the CFLAGS env variable, so any 16254 build using that flag after will fail unless the cache is reset. 16255 16256 .github/workflows/ci.yml | 17 ++++++++++++----- 16257 1 file changed, 12 insertions(+), 5 deletions(-) 16258 16259commit dd1c1135741057c91e8d018be9ec4d43968b0e64 16260Author: Jia Tan <jiat0218@gmail.com> 16261Date: 2023-01-18 21:51:43 +0800 16262 16263 CI: Enable --config-cache in autotool builds. 16264 16265 If CFLAGS are set in a build, the cache must be cleared with 16266 "make distclean", or by deleting the cache file. 16267 16268 build-aux/ci_build.sh | 2 +- 16269 1 file changed, 1 insertion(+), 1 deletion(-) 16270 16271commit d3e11477053764c003eec2daa5198c747d70ff69 16272Author: Jia Tan <jiat0218@gmail.com> 16273Date: 2023-01-16 21:35:45 +0800 16274 16275 xz: Add missing comment for coder_set_compression_settings() 16276 16277 src/xz/coder.h | 3 ++- 16278 1 file changed, 2 insertions(+), 1 deletion(-) 16279 16280commit 123255b6ed15f4428b2aa92e4962015a5362f6bf 16281Author: Jia Tan <jiat0218@gmail.com> 16282Date: 2023-01-16 20:55:10 +0800 16283 16284 xz: Do not set compression settings with raw format in list mode. 16285 16286 Calling coder_set_compression_settings() in list mode with verbose mode 16287 on caused the filter chain and memory requirements to print. This was 16288 unnecessary since the command results in an error and not consistent 16289 with other formats like lzma and alone. 16290 16291 src/xz/args.c | 3 ++- 16292 1 file changed, 2 insertions(+), 1 deletion(-) 16293 16294commit 571919c47b9ff5171ede84378620ed0a9aeb98c0 16295Author: Jia Tan <jiat0218@gmail.com> 16296Date: 2023-01-13 20:37:06 +0800 16297 16298 Translations: Update the Brazilian Portuguese translation. 16299 16300 po/pt_BR.po | 603 ++++++++++++++++++++++++++++++++++-------------------------- 16301 1 file changed, 344 insertions(+), 259 deletions(-) 16302 16303commit 81cb02e2c22bbc036cdfaa2d2c4176f6bd60d3cf 16304Author: Jia Tan <jiat0218@gmail.com> 16305Date: 2023-01-12 23:43:06 +0800 16306 16307 CI: Disable shared and nls from various jobs in autotool runners. 16308 16309 Disabling shared library generation and linking should help speed up the 16310 runners. The shared library is still being tested in the 32 bit build 16311 and the full feature. 16312 16313 Disabling nls is to check for any unexpected warnings or errors. 16314 16315 .github/workflows/ci.yml | 56 ++++++++++++++++++++++++------------------------ 16316 1 file changed, 28 insertions(+), 28 deletions(-) 16317 16318commit 58a052198a7bcaf6e958f87fad72e69e19a2579b 16319Author: Jia Tan <jiat0218@gmail.com> 16320Date: 2023-01-12 23:39:19 +0800 16321 16322 CI: Reorder the 32-bit job in the Ubuntu runner. 16323 16324 Run the 32 bit job sooner since this is a more interesting test than 16325 some of the later jobs. 16326 16327 .github/workflows/ci.yml | 10 +++++----- 16328 1 file changed, 5 insertions(+), 5 deletions(-) 16329 16330commit 4110a998b83459fe2bc9bc1bec30ad68afa8f797 16331Author: Jia Tan <jiat0218@gmail.com> 16332Date: 2023-01-12 23:09:03 +0800 16333 16334 CI: Allow disabling Native Language Support. 16335 16336 build-aux/ci_build.sh | 9 ++++++++- 16337 1 file changed, 8 insertions(+), 1 deletion(-) 16338 16339commit 0dec634e705b5bf89a37c5d62d71e8511d480058 16340Author: Jia Tan <jiat0218@gmail.com> 16341Date: 2023-01-12 23:02:20 +0800 16342 16343 CI: Only run autogen.sh if it has not already run. 16344 16345 build-aux/ci_build.sh | 11 ++++++++--- 16346 1 file changed, 8 insertions(+), 3 deletions(-) 16347 16348commit 32287dc8def94df4546e903495d14c132bd54cc4 16349Author: Jia Tan <jiat0218@gmail.com> 16350Date: 2023-01-12 22:58:36 +0800 16351 16352 CI: Allow disabling shared library in autotools builds. 16353 16354 build-aux/ci_build.sh | 9 ++++++++- 16355 1 file changed, 8 insertions(+), 1 deletion(-) 16356 16357commit 77d1ebcc99ddd82a300d1838f608150221931dcd 16358Author: Jia Tan <jiat0218@gmail.com> 16359Date: 2023-01-12 22:44:18 +0800 16360 16361 CI: Improve Usage readability and add -h option. 16362 16363 build-aux/ci_build.sh | 15 +++++++++++++-- 16364 1 file changed, 13 insertions(+), 2 deletions(-) 16365 16366commit a8bb8358d10b059274f3cf993d9b8f490bafb268 16367Author: Lasse Collin <lasse.collin@tukaani.org> 16368Date: 2023-01-12 13:04:05 +0200 16369 16370 Build: Omit -Wmissing-noreturn from the default warnings. 16371 16372 It's not that important. It can be annoying in builds that 16373 disable many features since in those cases the tests programs 16374 will correctly trigger this warning with Clang. 16375 16376 configure.ac | 1 - 16377 1 file changed, 1 deletion(-) 16378 16379commit 52dc033d0bde0d19e3912303c6c74bae559d6498 16380Author: Lasse Collin <lasse.collin@tukaani.org> 16381Date: 2023-01-12 06:05:58 +0200 16382 16383 xz: Use ssize_t for the to-be-ignored return value from write(fd, ptr, 1). 16384 16385 It makes no difference here as the return value fits into an int 16386 too and it then gets ignored but this looks better. 16387 16388 src/xz/file_io.c | 2 +- 16389 1 file changed, 1 insertion(+), 1 deletion(-) 16390 16391commit b1a6d180a363d57b2b1c89526ff3f0782bf863d3 16392Author: Lasse Collin <lasse.collin@tukaani.org> 16393Date: 2023-01-12 06:01:12 +0200 16394 16395 xz: Silence warnings from -Wsign-conversion in a 32-bit build. 16396 16397 src/common/tuklib_mbstr_fw.c | 2 +- 16398 src/xz/list.c | 4 ++-- 16399 2 files changed, 3 insertions(+), 3 deletions(-) 16400 16401commit 31c21c734b7c7d7428a3da7402a2cb7bc2587339 16402Author: Lasse Collin <lasse.collin@tukaani.org> 16403Date: 2023-01-12 05:38:48 +0200 16404 16405 liblzma: Silence another warning from -Wsign-conversion in a 32-bit build. 16406 16407 It doesn't warn on a 64-bit system because truncating 16408 a ptrdiff_t (signed long) to uint32_t is diagnosed under 16409 -Wconversion by GCC and -Wshorten-64-to-32 by Clang. 16410 16411 src/liblzma/lz/lz_encoder_mf.c | 7 ++++--- 16412 1 file changed, 4 insertions(+), 3 deletions(-) 16413 16414commit 37fbdfb7263522c11c7ad2685413d6295532581d 16415Author: Lasse Collin <lasse.collin@tukaani.org> 16416Date: 2023-01-12 04:46:45 +0200 16417 16418 liblzma: Silence a warning from -Wsign-conversion in a 32-bit build. 16419 16420 src/common/mythread.h | 4 ++-- 16421 1 file changed, 2 insertions(+), 2 deletions(-) 16422 16423commit 5ce6ddc221d0bfb57d810d845bb65fb0aac0b008 16424Author: Lasse Collin <lasse.collin@tukaani.org> 16425Date: 2023-01-12 04:17:24 +0200 16426 16427 Build: Make configure add more warning flags for GCC and Clang. 16428 16429 -Wstrict-aliasing was removed from the list since it is enabled 16430 by -Wall already. 16431 16432 A normal build is clean with these on GNU/Linux x86-64 with 16433 GCC 12.2.0 and Clang 14.0.6. 16434 16435 configure.ac | 36 +++++++++++++++++++++++++++++++----- 16436 1 file changed, 31 insertions(+), 5 deletions(-) 16437 16438commit bfc3a0a8ac16de90049c1b1ba1445a7626d0230c 16439Author: Lasse Collin <lasse.collin@tukaani.org> 16440Date: 2023-01-12 04:14:18 +0200 16441 16442 Tests: Fix warnings from clang --Wassign-enum. 16443 16444 Explicitly casting the integer to lzma_check silences the warning. 16445 Since such an invalid value is needed in multiple tests, a constant 16446 INVALID_LZMA_CHECK_ID was added to tests.h. 16447 16448 The use of 0x1000 for lzma_block.check wasn't optimal as if 16449 the underlying type is a char then 0x1000 will be truncated to 0. 16450 However, in these test cases the value is ignored, thus even with 16451 such truncation the test would have passed. 16452 16453 tests/test_block_header.c | 6 +++--- 16454 tests/test_check.c | 2 +- 16455 tests/test_stream_flags.c | 8 ++++---- 16456 tests/tests.h | 9 +++++++++ 16457 4 files changed, 17 insertions(+), 8 deletions(-) 16458 16459commit 49245bb31e215ad455a1ab85e4ed6783152dc522 16460Author: Lasse Collin <lasse.collin@tukaani.org> 16461Date: 2023-01-12 03:51:07 +0200 16462 16463 Tests: Silence warnings from -Wsign-conversion. 16464 16465 Note that assigning an unsigned int to lzma_check doesn't warn 16466 on GNU/Linux x86-64 since the enum type is unsigned on that 16467 platform. The enum can be signed on some other platform though 16468 so it's best to use enumeration type lzma_check in these situations. 16469 16470 tests/test_check.c | 6 +++--- 16471 tests/test_stream_flags.c | 10 +++++----- 16472 2 files changed, 8 insertions(+), 8 deletions(-) 16473 16474commit 3f13bf6b9e8624cbe6d6e3e82d6c98a3ed1ad571 16475Author: Lasse Collin <lasse.collin@tukaani.org> 16476Date: 2023-01-12 03:19:59 +0200 16477 16478 liblzma: Silence warnings from clang -Wconditional-uninitialized. 16479 16480 This is similar to 2ce4f36f179a81d0c6e182a409f363df759d1ad0. 16481 The actual initialization of the variables is done inside 16482 mythread_sync() macro. Clang doesn't seem to see that 16483 the initialization code inside the macro is always executed. 16484 16485 src/liblzma/common/stream_decoder_mt.c | 8 +++++--- 16486 src/liblzma/common/stream_encoder_mt.c | 2 +- 16487 2 files changed, 6 insertions(+), 4 deletions(-) 16488 16489commit 6c886cc5b3c90c6a75e6be8b1278ec2261e452a6 16490Author: Lasse Collin <lasse.collin@tukaani.org> 16491Date: 2023-01-12 03:11:40 +0200 16492 16493 Fix warnings from clang -Wdocumentation. 16494 16495 src/liblzma/check/check.h | 4 ---- 16496 src/liblzma/lz/lz_encoder_mf.c | 4 ++-- 16497 src/xz/options.c | 4 ++-- 16498 3 files changed, 4 insertions(+), 8 deletions(-) 16499 16500commit a0e7fb1c1ea658b67f30517f5d1975efd0226dba 16501Author: Lasse Collin <lasse.collin@tukaani.org> 16502Date: 2023-01-12 03:04:28 +0200 16503 16504 Tests: test_lzip_decoder: Remove trailing white-space. 16505 16506 tests/test_lzip_decoder.c | 4 ++-- 16507 1 file changed, 2 insertions(+), 2 deletions(-) 16508 16509commit c0f8d6782f29e219fd496dd23f6a033270509d5c 16510Author: Lasse Collin <lasse.collin@tukaani.org> 16511Date: 2023-01-12 03:03:55 +0200 16512 16513 Tests: test_lzip_decoder: Silence warnings from -Wsign-conversion. 16514 16515 tests/test_lzip_decoder.c | 13 +++++++------ 16516 1 file changed, 7 insertions(+), 6 deletions(-) 16517 16518commit 62efd48a825e8f439e84c85e165d8774ddc68fd2 16519Author: Jia Tan <jiat0218@gmail.com> 16520Date: 2023-01-11 23:58:16 +0800 16521 16522 Add NEWS for 5.4.1. 16523 16524 NEWS | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 16525 1 file changed, 70 insertions(+) 16526 16527commit d1561c47ec8cd3844a785d3741dc932f9b9c5790 16528Author: Jia Tan <jiat0218@gmail.com> 16529Date: 2023-01-11 22:46:48 +0800 16530 16531 xz: Fix warning -Wformat-nonliteral on clang in message.c. 16532 16533 clang and gcc differ in how they handle -Wformat-nonliteral. gcc will 16534 allow a non-literal format string as long as the function takes its 16535 format arguments as a va_list. 16536 16537 src/xz/message.c | 9 +++++++++ 16538 1 file changed, 9 insertions(+) 16539 16540commit 8c0f115cc489331c48df77beca92fe378039d919 16541Author: Jia Tan <jiat0218@gmail.com> 16542Date: 2023-01-11 20:58:31 +0800 16543 16544 Tests: Fix test_filter_flags copy/paste error. 16545 16546 tests/test_filter_flags.c | 4 ++-- 16547 1 file changed, 2 insertions(+), 2 deletions(-) 16548 16549commit 25035813d1d596fde692addc33e7f715f1fe55eb 16550Author: Jia Tan <jiat0218@gmail.com> 16551Date: 2023-01-11 20:42:29 +0800 16552 16553 Tests: Fix type-limits warning in test_filter_flags. 16554 16555 This only occurs in test_filter_flags when the BCJ filters are not 16556 configured and built. In this case, ARRAY_SIZE() returns 0 and causes a 16557 type-limits warning with the loop variable since an unsigned number will 16558 always be >= 0. 16559 16560 tests/test_filter_flags.c | 13 ++++++++++--- 16561 1 file changed, 10 insertions(+), 3 deletions(-) 16562 16563commit 0b8fa310cf56fec55663f62340e49e8e1441594f 16564Author: Lasse Collin <lasse.collin@tukaani.org> 16565Date: 2023-01-10 22:14:03 +0200 16566 16567 liblzma: CLMUL CRC64: Work around a bug in MSVC, second attempt. 16568 16569 This affects only 32-bit x86 builds. x86-64 is OK as is. 16570 16571 I still cannot easily test this myself. The reporter has tested 16572 this and it passes the tests included in the CMake build and 16573 performance is good: raw CRC64 is 2-3 times faster than the 16574 C version of the slice-by-four method. (Note that liblzma doesn't 16575 include a MSVC-compatible version of the 32-bit x86 assembly code 16576 for the slice-by-four method.) 16577 16578 Thanks to Iouri Kharon for figuring out a fix, testing, and 16579 benchmarking. 16580 16581 src/liblzma/check/crc64_fast.c | 18 ++++++++++++++++++ 16582 1 file changed, 18 insertions(+) 16583 16584commit 765354b50c2886fc0d294d6be3b207f7ae2ada70 16585Author: Jia Tan <jiat0218@gmail.com> 16586Date: 2023-01-11 01:18:50 +0800 16587 16588 Tests: Fix unused function warning in test_block_header. 16589 16590 One of the global arrays of filters was only used in a test that 16591 required both encoders and decoders to be configured in the build. 16592 16593 tests/test_block_header.c | 4 ++++ 16594 1 file changed, 4 insertions(+) 16595 16596commit 7c23c05befdcc73231c0d6632a7d943dbeaea1aa 16597Author: Jia Tan <jiat0218@gmail.com> 16598Date: 2023-01-11 01:08:03 +0800 16599 16600 Tests: Fix unused function warning in test_index_hash. 16601 16602 test_index_hash does not use fill_index_hash() unless both encoders 16603 and decoders are configured in the build. 16604 16605 tests/test_index_hash.c | 4 +--- 16606 1 file changed, 1 insertion(+), 3 deletions(-) 16607 16608commit 57464bb4ebd6c00dc8b19803f05ea55ddd0826f6 16609Author: Jia Tan <jiat0218@gmail.com> 16610Date: 2023-01-11 00:54:45 +0800 16611 16612 CI/CD: Add 32-bit build and test steps to Ubuntu autotools runner. 16613 16614 If all goes well, Mac autotools and Linux and Mac CMake will be added 16615 later for 32-bit builds. 16616 16617 .github/workflows/ci.yml | 7 ++++++- 16618 1 file changed, 6 insertions(+), 1 deletion(-) 16619 16620commit 923eb689a4b863b6cca8df6360d4962aae994edf 16621Author: Jia Tan <jiat0218@gmail.com> 16622Date: 2023-01-11 00:51:01 +0800 16623 16624 CI/CD: Enables warnings as errors in autotool build. 16625 16626 This will help us catch warnings and potential bugs in builds that are 16627 not often tested by us. 16628 16629 build-aux/ci_build.sh | 2 +- 16630 1 file changed, 1 insertion(+), 1 deletion(-) 16631 16632commit feae5528a30c006b6e2f96a95116e20b983703fc 16633Author: Jia Tan <jiat0218@gmail.com> 16634Date: 2023-01-11 00:48:35 +0800 16635 16636 CI/CD: Add -f argument to set CFLAGS in ci_build.sh. 16637 16638 For now, the suggested option is for -m32 only, but this can be updated 16639 later if other flags are deemed useful. 16640 16641 build-aux/ci_build.sh | 8 ++++++-- 16642 1 file changed, 6 insertions(+), 2 deletions(-) 16643 16644commit cfabb62a4874c146e7d6f30445637602545bc054 16645Author: Lasse Collin <lasse.collin@tukaani.org> 16646Date: 2023-01-10 12:47:16 +0200 16647 16648 Revert "liblzma: CLMUL CRC64: Workaround a bug in MSVC (VS2015-2022)." 16649 16650 This reverts commit 36edc65ab4cf10a131f239acbd423b4510ba52d5. 16651 16652 It was reported that it wasn't a good enough fix and MSVC 16653 still produced (different kind of) bad code when building 16654 for 32-bit x86 if optimizations are enabled. 16655 16656 Thanks to Iouri Kharon. 16657 16658 src/liblzma/check/crc64_fast.c | 6 ------ 16659 1 file changed, 6 deletions(-) 16660 16661commit 0b64215170dd3562f207ef26f794755bcd600526 16662Author: Lasse Collin <lasse.collin@tukaani.org> 16663Date: 2023-01-10 11:56:11 +0200 16664 16665 sysdefs.h: Don't include strings.h anymore. 16666 16667 On some platforms src/xz/suffix.c may need <strings.h> for 16668 strcasecmp() but suffix.c includes the header when it needs it. 16669 16670 Unless there is an old system that otherwise supports enough C99 16671 to build XZ Utils but doesn't have C89/C90-compatible <string.h>, 16672 there should be no need to include <strings.h> in sysdefs.h. 16673 16674 src/common/sysdefs.h | 6 ------ 16675 1 file changed, 6 deletions(-) 16676 16677commit ec2fc39fe4f4e6e242b3a669585049763968cdeb 16678Author: Lasse Collin <lasse.collin@tukaani.org> 16679Date: 2023-01-10 11:23:41 +0200 16680 16681 xz: Include <strings.h> in suffix.c if needed for strcasecmp(). 16682 16683 SUSv2 and POSIX.1‐2017 declare only a few functions in <strings.h>. 16684 Of these, strcasecmp() is used on some platforms in suffix.c. 16685 Nothing else in the project needs <strings.h> (at least if 16686 building on a modern system). 16687 16688 sysdefs.h currently includes <strings.h> if HAVE_STRINGS_H is 16689 defined and suffix.c relied on this. 16690 16691 Note that dos/config.h doesn't #define HAVE_STRINGS_H even though 16692 DJGPP does have strings.h. It isn't needed with DJGPP as strcasecmp() 16693 is also in <string.h> in DJGPP. 16694 16695 src/xz/suffix.c | 3 +++ 16696 1 file changed, 3 insertions(+) 16697 16698commit 7049c4a76c805ad27d6cf4ee119a2ef2a7add59f 16699Author: Lasse Collin <lasse.collin@tukaani.org> 16700Date: 2023-01-10 10:05:13 +0200 16701 16702 sysdefs.h: Fix a comment. 16703 16704 src/common/sysdefs.h | 2 +- 16705 1 file changed, 1 insertion(+), 1 deletion(-) 16706 16707commit 194a5fab69277d9e804a6113b5f676b8666b3a61 16708Author: Lasse Collin <lasse.collin@tukaani.org> 16709Date: 2023-01-10 10:04:06 +0200 16710 16711 sysdefs.h: Don't include memory.h anymore even if it were available. 16712 16713 It quite probably was never needed, that is, any system where memory.h 16714 was required likely couldn't compile XZ Utils for other reasons anyway. 16715 16716 XZ Utils 5.2.6 and later source packages were generated using 16717 Autoconf 2.71 which no longer defines HAVE_MEMORY_H. So the code 16718 being removed is no longer used anyway. 16719 16720 src/common/sysdefs.h | 8 ++------ 16721 1 file changed, 2 insertions(+), 6 deletions(-) 16722 16723commit 5e34774c31d1b7509b5cb77a3be9973adec59ea0 16724Author: Lasse Collin <lasse.collin@tukaani.org> 16725Date: 2023-01-10 08:29:32 +0200 16726 16727 CMake: Fix appending to CMAKE_RC_FLAGS. 16728 16729 It's a string, not a list. It only worked when the variable was empty. 16730 16731 Thanks to Iouri Kharon. 16732 16733 CMakeLists.txt | 2 +- 16734 1 file changed, 1 insertion(+), 1 deletion(-) 16735 16736commit 6e652ceb18c615c578c869db300fa0756788b4e0 16737Author: Lasse Collin <lasse.collin@tukaani.org> 16738Date: 2023-01-10 00:33:14 +0200 16739 16740 Windows: Update INSTALL-MSVC.txt to recommend CMake over project files. 16741 16742 windows/INSTALL-MSVC.txt | 19 ++++++++++++------- 16743 1 file changed, 12 insertions(+), 7 deletions(-) 16744 16745commit 6b117d3b1fe91eb26d533ab16a2e552f84148d47 16746Author: Lasse Collin <lasse.collin@tukaani.org> 16747Date: 2023-01-09 23:41:25 +0200 16748 16749 CMake: Fix windres issues again. 16750 16751 At least on some systems, GNU windres needs --use-temp-file 16752 in addition to the \x20 hack to avoid spaces in the command line 16753 argument. Hovever, that \x20 syntax is broken with llvm-windres 16754 version 15.0.0 (results in "XZx20Utils") but luckily it works 16755 with a regular space. Thus it is best to limit the workarounds 16756 to GNU toolchain on Windows. 16757 16758 CMakeLists.txt | 35 +++++++++++++++++++++++------------ 16759 1 file changed, 23 insertions(+), 12 deletions(-) 16760 16761commit 0c210ca7f489e971e94e1ddc72b0b0806e3c7935 16762Author: Lasse Collin <lasse.collin@tukaani.org> 16763Date: 2023-01-06 22:53:38 +0200 16764 16765 Tests: test_filter_flags: Clean up minor issues. 16766 16767 Here are the list of the most significant issues addressed: 16768 - Avoid using internal common.h header. It's not good to copy the 16769 constants like this but common.h cannot be included for use outside 16770 of liblzma. This is the quickest thing to do that could be fixed later. 16771 16772 - Omit the INIT_FILTER macro. Initialization should be done with just 16773 regular designated initializers. 16774 16775 - Use start_offset = 257 for BCJ tests. It demonstrates that Filter 16776 Flags encoder and decoder don't validate the options thoroughly. 16777 257 is valid only for the x86 filter. This is a bit silly but 16778 not a significant problem in practice because the encoder and 16779 decoder initialization functions will catch bad alignment still. 16780 Perhaps this should be fixed but it's not urgent and doesn't need 16781 to be in 5.4.x. 16782 16783 - Various tweaks to comments such as filter id -> Filter ID 16784 16785 tests/test_filter_flags.c | 153 +++++++++++++++++++++++----------------------- 16786 1 file changed, 78 insertions(+), 75 deletions(-) 16787 16788commit 5c9fdd3bf53a9655f5eb2807d662b3af0d5e1865 16789Author: Jia Tan <jiat0218@gmail.com> 16790Date: 2022-12-29 23:33:33 +0800 16791 16792 Tests: Refactors existing filter flags tests. 16793 16794 Converts the existing filter flags tests into tuktests. 16795 16796 tests/test_filter_flags.c | 655 ++++++++++++++++++++++++++++++++-------------- 16797 1 file changed, 457 insertions(+), 198 deletions(-) 16798 16799commit 36edc65ab4cf10a131f239acbd423b4510ba52d5 16800Author: Lasse Collin <lasse.collin@tukaani.org> 16801Date: 2023-01-09 12:22:05 +0200 16802 16803 liblzma: CLMUL CRC64: Workaround a bug in MSVC (VS2015-2022). 16804 16805 I haven't tested with MSVC myself and there doesn't seem to be 16806 information about the problem online, so I'm relying on the bug report. 16807 16808 Thanks to Iouri Kharon for the bug report and the patch. 16809 16810 src/liblzma/check/crc64_fast.c | 6 ++++++ 16811 1 file changed, 6 insertions(+) 16812 16813commit 790a12a95a78ff82d8c6d4efe3b789851ca9470d 16814Author: Lasse Collin <lasse.collin@tukaani.org> 16815Date: 2023-01-09 11:27:24 +0200 16816 16817 CMake: Fix a copypaste error in xzdec Windows resource file handling. 16818 16819 It was my mistake. Thanks to Iouri Kharon for the bug report. 16820 16821 CMakeLists.txt | 4 ++-- 16822 1 file changed, 2 insertions(+), 2 deletions(-) 16823 16824commit 0e1545fea39c0514c7b7032a0a3592a9a33d2848 16825Author: Lasse Collin <lasse.collin@tukaani.org> 16826Date: 2023-01-08 00:32:29 +0200 16827 16828 Tests: tuktest.h: Support tuktest_malloc(0). 16829 16830 It's not needed in XZ Utils at least for now. It's good to support 16831 it still because if such use is needed later, it wouldn't be 16832 caught on GNU/Linux since malloc(0) from glibc returns non-NULL. 16833 16834 tests/tuktest.h | 4 ++-- 16835 1 file changed, 2 insertions(+), 2 deletions(-) 16836 16837commit 69d5d78c6904668eb09a131da86276beec3281f8 16838Author: Lasse Collin <lasse.collin@tukaani.org> 16839Date: 2023-01-08 00:24:23 +0200 16840 16841 Update THANKS. 16842 16843 THANKS | 1 + 16844 1 file changed, 1 insertion(+) 16845 16846commit dd38655f80c113c9db73b9ed370dc900e1c4dc41 16847Author: Lasse Collin <lasse.collin@tukaani.org> 16848Date: 2023-01-07 21:57:11 +0200 16849 16850 CMake: Update cmake_minimum_required from 3.13...3.16 to 3.13...3.25. 16851 16852 The changes listed on cmake-policies(7) for versions 3.17 to 3.25 16853 shouldn't affect this project. 16854 16855 CMakeLists.txt | 2 +- 16856 1 file changed, 1 insertion(+), 1 deletion(-) 16857 16858commit a890a637bee9193d5b690aefa9a59eba5b8532ae 16859Author: Lasse Collin <lasse.collin@tukaani.org> 16860Date: 2023-01-07 19:50:35 +0200 16861 16862 Update THANKS. 16863 16864 THANKS | 1 + 16865 1 file changed, 1 insertion(+) 16866 16867commit 6e38e595dd56ac1800478cef1f6f754d0eba0d2e 16868Author: Lasse Collin <lasse.collin@tukaani.org> 16869Date: 2023-01-07 19:50:03 +0200 16870 16871 CMake/Windows: Add resource files to xz.exe and xzdec.exe. 16872 16873 The command line tools cannot be built with MSVC for now but 16874 they can be built with MinGW-w64. 16875 16876 Thanks to Iouri Kharon for the bug report and the original patch. 16877 16878 CMakeLists.txt | 16 ++++++++++++++++ 16879 1 file changed, 16 insertions(+) 16880 16881commit 443dfebced041adc88f10d824188eeef5b5821a9 16882Author: Lasse Collin <lasse.collin@tukaani.org> 16883Date: 2023-01-07 19:48:52 +0200 16884 16885 CMake/Windows: Add a workaround for windres from GNU binutils. 16886 16887 Thanks to Iouri Kharon for the bug report and the original patch. 16888 16889 CMakeLists.txt | 21 ++++++++++++++++++++- 16890 1 file changed, 20 insertions(+), 1 deletion(-) 16891 16892commit ceb805011747d04a915f3f39e4bed9eed151c634 16893Author: Lasse Collin <lasse.collin@tukaani.org> 16894Date: 2023-01-07 19:31:15 +0200 16895 16896 Build: Require that _mm_set_epi64x() is usable to enable CLMUL support. 16897 16898 VS2013 doesn't have _mm_set_epi64x() so this way CLMUL gets 16899 disabled with VS2013. 16900 16901 Thanks to Iouri Kharon for the bug report. 16902 16903 CMakeLists.txt | 3 ++- 16904 configure.ac | 8 ++++++-- 16905 2 files changed, 8 insertions(+), 3 deletions(-) 16906 16907commit 8d372bd94066b1a5b0570b2550f83c2868486adf 16908Author: Jia Tan <jiat0218@gmail.com> 16909Date: 2023-01-07 21:05:15 +0800 16910 16911 CI/CD: Split CMake Linux and MacOS build phase to build and test. 16912 16913 The phase split was only done for Autotools before, so should also 16914 apply to CMake. 16915 16916 .github/workflows/ci.yml | 8 ++++++-- 16917 1 file changed, 6 insertions(+), 2 deletions(-) 16918 16919commit 747c7f2b34bd498f6702c6875500a26b06201772 16920Author: Jia Tan <jiat0218@gmail.com> 16921Date: 2023-01-07 11:16:55 +0800 16922 16923 CI/CD: Reduce job runners to 4 instead of using matrix strategy. 16924 16925 The old version used too many runners that resulted in unnecessary 16926 dependency downloads. Now, the runners are reused for the different 16927 configurations for each OS and build system. 16928 16929 .github/workflows/ci.yml | 95 ++++++++++++++++++++++++++++++++++++++++++------ 16930 1 file changed, 83 insertions(+), 12 deletions(-) 16931 16932commit 4de35fd6b58d46fc887c78faf163f6a37b790c45 16933Author: Jia Tan <jiat0218@gmail.com> 16934Date: 2023-01-07 10:07:20 +0800 16935 16936 CI/CD: Add new -p (PHASE) argument to ci_build.sh 16937 16938 The new PHASE argument can be build, test, or all. all is the default. 16939 This way, the CI/CD script can differentiate between the build and test 16940 phases to make it easier to track down errors when they happen. 16941 16942 build-aux/ci_build.sh | 140 +++++++++++++++++++++++++++----------------------- 16943 1 file changed, 76 insertions(+), 64 deletions(-) 16944 16945commit 6fd39664de47801e670a16617863196bfbde4755 16946Merge: 78e0561d fc0c7884 16947Author: Jia Tan <jiat0218@gmail.com> 16948Date: 2023-01-07 00:10:50 +0800 16949 16950 Merge pull request #7 from tukaani-project/tuktest_index_hash 16951 16952 Tuktest index hash 16953 16954commit fc0c788469159f634f09ff23c8cef6925c91da57 16955Author: Lasse Collin <lasse.collin@tukaani.org> 16956Date: 2023-01-06 17:58:48 +0200 16957 16958 Tests: test_index_hash: Add an assert_uint_eq(). 16959 16960 tests/test_index_hash.c | 3 +++ 16961 1 file changed, 3 insertions(+) 16962 16963commit d550304f5343b3a082da265107cd820e0d81dc71 16964Author: Lasse Collin <lasse.collin@tukaani.org> 16965Date: 2023-01-06 17:55:06 +0200 16966 16967 Tests: test_index_hash: Fix a memory leak. 16968 16969 tests/test_index_hash.c | 2 ++ 16970 1 file changed, 2 insertions(+) 16971 16972commit 02608f74ea1f2d2d56585711ff241c34b4ad0937 16973Author: Lasse Collin <lasse.collin@tukaani.org> 16974Date: 2023-01-06 17:53:03 +0200 16975 16976 Tests: test_index_hash: Don't treat pointers as booleans. 16977 16978 tests/test_index_hash.c | 6 +++--- 16979 1 file changed, 3 insertions(+), 3 deletions(-) 16980 16981commit 056766c8601a3808bea1761f6cc833197a35a3e0 16982Author: Lasse Collin <lasse.collin@tukaani.org> 16983Date: 2023-01-06 17:51:41 +0200 16984 16985 Tests: test_index_hash: Fix a typo in a comment. 16986 16987 tests/test_index_hash.c | 2 +- 16988 1 file changed, 1 insertion(+), 1 deletion(-) 16989 16990commit 873e684028ba9738f071c5236db7d452ed797b4c 16991Author: Lasse Collin <lasse.collin@tukaani.org> 16992Date: 2023-01-06 17:44:29 +0200 16993 16994 Tests: test_index_hash: Avoid the variable name "index". 16995 16996 It can trigger warnings from -Wshadow on some systems. 16997 16998 tests/test_index_hash.c | 16 ++++++++-------- 16999 1 file changed, 8 insertions(+), 8 deletions(-) 17000 17001commit d1f24c35874eeba8432d75aa77b06c50375ed937 17002Author: Lasse Collin <lasse.collin@tukaani.org> 17003Date: 2023-01-06 17:35:50 +0200 17004 17005 Tests: test_index_hash: Use the word "Record" instead of "entry". 17006 17007 tests/test_index_hash.c | 102 ++++++++++++++++++++++++------------------------ 17008 1 file changed, 51 insertions(+), 51 deletions(-) 17009 17010commit b93f7c5cbb02b42024ac866fc0af541de3d816e2 17011Author: Lasse Collin <lasse.collin@tukaani.org> 17012Date: 2023-01-06 17:35:05 +0200 17013 17014 Tests: test_index_hash: Tweak comments and style. 17015 17016 The words defined in the .xz file format specification 17017 begin with capital letter to emphasize that they have 17018 a specific meaning. 17019 17020 tests/test_index_hash.c | 62 ++++++++++++++++++++++++++----------------------- 17021 1 file changed, 33 insertions(+), 29 deletions(-) 17022 17023commit c48b24fc06d98569adb72f13c2e8e5ff30bb8036 17024Author: Lasse Collin <lasse.collin@tukaani.org> 17025Date: 2023-01-06 17:17:37 +0200 17026 17027 Tests: test_index_hash: Use INDEX_INDICATOR constant instead of 0. 17028 17029 tests/test_index_hash.c | 2 +- 17030 1 file changed, 1 insertion(+), 1 deletion(-) 17031 17032commit 78e0561dfebaa9d5e34558de537efcda890e0629 17033Author: Jia Tan <jiat0218@gmail.com> 17034Date: 2023-01-06 20:43:31 +0800 17035 17036 Style: Change #if !defined() to #ifndef in mythread.h. 17037 17038 src/common/mythread.h | 2 +- 17039 1 file changed, 1 insertion(+), 1 deletion(-) 17040 17041commit e834e1e934ed0af673598d8c0c34afb2af56bee0 17042Author: Jia Tan <jiat0218@gmail.com> 17043Date: 2023-01-06 20:35:55 +0800 17044 17045 Build: Add missing stream_decoder_mt.c to .vcxproj files. 17046 17047 The line in the .vcxproj files for building with was missing in 5.4.0. 17048 Thank to Hajin Jang for reporting the issue. 17049 17050 windows/vs2013/liblzma.vcxproj | 1 + 17051 windows/vs2013/liblzma_dll.vcxproj | 1 + 17052 windows/vs2017/liblzma.vcxproj | 1 + 17053 windows/vs2017/liblzma_dll.vcxproj | 1 + 17054 windows/vs2019/liblzma.vcxproj | 1 + 17055 windows/vs2019/liblzma_dll.vcxproj | 1 + 17056 6 files changed, 6 insertions(+) 17057 17058commit 84f9687cbae972c2c342e10bf69f8ec8f70ae111 17059Author: Jia Tan <jiat0218@gmail.com> 17060Date: 2023-01-05 20:57:25 +0800 17061 17062 liblzma: Remove common.h include from common/index.h. 17063 17064 common/index.h is needed by liblzma internally and tests. common.h will 17065 include and define many things that are not needed by the tests. Also, 17066 this prevents include order problems because common.h will redefine 17067 LZMA_API resulting in a warning. 17068 17069 src/liblzma/common/index.c | 1 + 17070 src/liblzma/common/index.h | 9 +++++++-- 17071 src/liblzma/common/index_decoder.h | 1 + 17072 src/liblzma/common/stream_buffer_encoder.c | 1 + 17073 4 files changed, 10 insertions(+), 2 deletions(-) 17074 17075commit 7657ce1c3c4abff7560336a7b687d98e0e2bd14f 17076Author: Lasse Collin <lasse.collin@tukaani.org> 17077Date: 2023-01-04 22:40:54 +0200 17078 17079 Update THANKS. 17080 17081 THANKS | 1 + 17082 1 file changed, 1 insertion(+) 17083 17084commit aafd67fba045ab99683971263a5a26fb2a6e8ce2 17085Author: Lasse Collin <lasse.collin@tukaani.org> 17086Date: 2023-01-04 18:40:28 +0200 17087 17088 Tests: Adjust style in test_compress.sh. 17089 17090 tests/test_compress.sh | 12 +++++++----- 17091 1 file changed, 7 insertions(+), 5 deletions(-) 17092 17093commit 52380678f42364daa4510f92f6d3b18ec98c3638 17094Author: Jia Tan <jiat0218@gmail.com> 17095Date: 2023-01-04 23:58:58 +0800 17096 17097 Tests: Replace non portable shell parameter expansion 17098 17099 The shell parameter expansion using # and ## is not supported in 17100 Solaris 10 Bourne shell (/bin/sh). Even though this is POSIX, it is not fully 17101 portable, so we should avoid it. 17102 17103 tests/create_compress_files.c | 2 +- 17104 tests/test_compress.sh | 20 +++++++++++++------- 17105 tests/test_compress_prepared_bcj_sparc | 2 +- 17106 tests/test_compress_prepared_bcj_x86 | 2 +- 17107 4 files changed, 16 insertions(+), 10 deletions(-) 17108 17109commit d0eb345bb7d148a62883ee299adec2b74a0f6f3b 17110Author: Jia Tan <jiat0218@gmail.com> 17111Date: 2023-01-03 21:02:38 +0800 17112 17113 Translations: Add Korean translation of man pages. 17114 17115 Thanks to Seong-ho Cho 17116 17117 po4a/ko.po | 5552 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 17118 po4a/po4a.conf | 2 +- 17119 2 files changed, 5553 insertions(+), 1 deletion(-) 17120 17121commit c4145978d95ebf1690c778d354e15f7c2823d7a8 17122Author: Jia Tan <jiat0218@gmail.com> 17123Date: 2023-01-03 20:47:27 +0800 17124 17125 Translations: Update the Esperanto translation. 17126 17127 po/eo.po | 620 ++++++++++++++++++++++++++++++++++----------------------------- 17128 1 file changed, 332 insertions(+), 288 deletions(-) 17129 17130commit 4103a2e78ac60b00c888485cd967a5fe5d1b917c 17131Author: Lasse Collin <lasse.collin@tukaani.org> 17132Date: 2023-01-02 17:20:47 +0200 17133 17134 Bump version and soname for 5.5.0alpha. 17135 17136 5.5.0alpha won't be released, it's just to mark that 17137 the branch is not for stable 5.4.x. 17138 17139 Once again there is no API/ABI stability for new features 17140 in devel versions. The major soname won't be bumped even 17141 if API/ABI of new features breaks between devel releases. 17142 17143 src/liblzma/Makefile.am | 2 +- 17144 src/liblzma/api/lzma/version.h | 4 ++-- 17145 2 files changed, 3 insertions(+), 3 deletions(-) 17146 17147commit 73c9e6d6b970ccc3d5ad61dcaa21cba050e5df0a 17148Author: Lasse Collin <lasse.collin@tukaani.org> 17149Date: 2023-01-02 17:05:07 +0200 17150 17151 Build: Fix config.h comments. 17152 17153 configure.ac | 2 +- 17154 m4/tuklib_progname.m4 | 2 +- 17155 2 files changed, 2 insertions(+), 2 deletions(-) 17156 17157commit bb740e3b117f1a3c65152d01e5755523a908ecb1 17158Author: Jia Tan <jiat0218@gmail.com> 17159Date: 2023-01-02 22:33:48 +0800 17160 17161 Build: Only define HAVE_PROGRAM_INVOCATION_NAME if it is set to 1. 17162 17163 HAVE_DECL_PROGRAM_INVOCATION_NAME is renamed to 17164 HAVE_PROGRAM_INVOCATION_NAME. Previously, 17165 HAVE_DECL_PROGRAM_INVOCATION_NAME was always set when 17166 building with autotools. CMake would only set this when it was 1, and the 17167 dos/config.h did not define it. The new macro definition is consistent 17168 across build systems. 17169 17170 cmake/tuklib_progname.cmake | 5 ++--- 17171 m4/tuklib_progname.m4 | 5 ++++- 17172 src/common/tuklib_progname.c | 2 +- 17173 src/common/tuklib_progname.h | 2 +- 17174 4 files changed, 8 insertions(+), 6 deletions(-) 17175 17176commit 064cd385a716abc78d93a3612411a82d69ceb221 17177Author: Jia Tan <jiat0218@gmail.com> 17178Date: 2022-12-29 00:30:52 +0800 17179 17180 Adds test_index_hash to .gitignore. 17181 17182 .gitignore | 1 + 17183 1 file changed, 1 insertion(+) 17184 17185commit 3959162baec074511d83ba0fec1284c3ed724799 17186Author: Jia Tan <jiat0218@gmail.com> 17187Date: 2022-12-29 00:25:18 +0800 17188 17189 Tests: Creates test_index_hash.c 17190 17191 Tests all API functions exported from index_hash.h. Does not have a 17192 dedicated test for lzma_index_hash_end. 17193 17194 CMakeLists.txt | 2 + 17195 tests/Makefile.am | 3 + 17196 tests/test_index_hash.c | 379 ++++++++++++++++++++++++++++++++++++++++++++++++ 17197 3 files changed, 384 insertions(+) 17198 17199commit f16e12d5e755d371247202fcccbcccd1ec16b2cf 17200Author: Jia Tan <jiat0218@gmail.com> 17201Date: 2022-08-17 20:20:16 +0800 17202 17203 liblzma: Add NULL check to lzma_index_hash_append. 17204 17205 This is for consistency with lzma_index_append. 17206 17207 src/liblzma/common/index_hash.c | 2 +- 17208 1 file changed, 1 insertion(+), 1 deletion(-) 17209 17210commit 203b008eb220208981902e0db541c02d1c1c9f5e 17211Author: Jia Tan <jiat0218@gmail.com> 17212Date: 2022-08-17 17:59:51 +0800 17213 17214 liblzma: Replaced hardcoded 0x0 index indicator byte with macro 17215 17216 src/liblzma/common/index.h | 3 +++ 17217 src/liblzma/common/index_decoder.c | 2 +- 17218 src/liblzma/common/index_encoder.c | 2 +- 17219 src/liblzma/common/index_hash.c | 2 +- 17220 src/liblzma/common/stream_decoder.c | 3 ++- 17221 src/liblzma/common/stream_decoder_mt.c | 2 +- 17222 6 files changed, 9 insertions(+), 5 deletions(-) 17223 17224commit dfecda875211f737d0db92dc1d3c58a3a2afb0c0 17225Author: Lasse Collin <lasse.collin@tukaani.org> 17226Date: 2022-12-30 20:10:08 +0200 17227 17228 Tests: test_check: Test corner cases of CLMUL CRC64. 17229 17230 tests/test_check.c | 27 +++++++++++++++++++++++++++ 17231 1 file changed, 27 insertions(+) 17232 17233commit ce96bb20435212fe797d6d84738fb9fd4ea13cc7 17234Author: Lasse Collin <lasse.collin@tukaani.org> 17235Date: 2022-12-30 19:36:49 +0200 17236 17237 Tests: Clarify a comment in test_lzip_decoder.c. 17238 17239 tests/test_lzip_decoder.c | 8 ++++++-- 17240 1 file changed, 6 insertions(+), 2 deletions(-) 17241 17242commit 2fcba17fc4d7eda8fc60567169cf2a0e6fcfb2f8 17243Author: Jia Tan <jiat0218@gmail.com> 17244Date: 2022-12-29 01:55:19 +0800 17245 17246 xz: Includes <time.h> and <sys/time.h> conditionally in mytime.c. 17247 17248 Previously, mytime.c depended on mythread.h for <time.h> to be included. 17249 17250 src/xz/mytime.c | 4 +++- 17251 1 file changed, 3 insertions(+), 1 deletion(-) 17252 17253commit f82294c8318a7a0990583d51ac5c7de682ad36ef 17254Author: Jia Tan <jiat0218@gmail.com> 17255Date: 2022-12-29 01:15:27 +0800 17256 17257 liblzma: Includes sys/time.h conditionally in mythread 17258 17259 Previously, <sys/time.h> was always included, even if mythread only used 17260 clock_gettime. <time.h> is still needed even if clock_gettime is not used 17261 though because struct timespec is needed for mythread_condtime. 17262 17263 src/common/mythread.h | 8 +++++++- 17264 1 file changed, 7 insertions(+), 1 deletion(-) 17265 17266commit 74dae7d30091e906d6a92a57952dea4354473f9b 17267Author: Jia Tan <jiat0218@gmail.com> 17268Date: 2022-12-29 01:10:53 +0800 17269 17270 Build: No longer require HAVE_DECL_CLOCK_MONOTONIC to always be set. 17271 17272 Previously, if threading was enabled HAVE_DECL_CLOCK_MONOTONIC would always 17273 be set to 0 or 1. However, this macro was needed in xz so if xz was not 17274 built with threading and HAVE_DECL_CLOCK_MONOTONIC was not defined but 17275 HAVE_CLOCK_GETTIME was, it caused a warning during build. Now, 17276 HAVE_DECL_CLOCK_MONOTONIC has been renamed to HAVE_CLOCK_MONOTONIC and 17277 will only be set if it is 1. 17278 17279 CMakeLists.txt | 8 +++----- 17280 configure.ac | 5 ++++- 17281 src/common/mythread.h | 4 ++-- 17282 src/xz/mytime.c | 5 ++--- 17283 4 files changed, 11 insertions(+), 11 deletions(-) 17284 17285commit 7339e39dc060df6eda74a2c5b69961befc3d5d24 17286Author: Jia Tan <jiat0218@gmail.com> 17287Date: 2022-12-28 01:14:07 +0800 17288 17289 Translations: Add Ukrainian translations of man pages. 17290 17291 Thanks to Yuri Chornoivan 17292 17293 po4a/po4a.conf | 2 +- 17294 po4a/uk.po | 3676 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 17295 2 files changed, 3677 insertions(+), 1 deletion(-) 17296 17297commit 9f05c27a58ce8cd7803079aa295e41c24665ce6e 17298Author: Jia Tan <jiat0218@gmail.com> 17299Date: 2022-12-23 00:34:48 +0800 17300 17301 CI/CD: Create initial version of CI/CD workflow. 17302 17303 The CI/CD workflow will only execute on Ubuntu and MacOS latest version. 17304 The workflow will attempt to build with autotools and CMake and execute 17305 the tests. The workflow will run for all pull requests and pushes done 17306 to the master branch. 17307 17308 .github/workflows/ci.yml | 72 ++++++++++++++++++++++++ 17309 build-aux/ci_build.sh | 141 +++++++++++++++++++++++++++++++++++++++++++++++ 17310 2 files changed, 213 insertions(+) 17311 17312commit 1275ebfba74230dbd028049141423c79c8b83b8f 17313Author: Jia Tan <jiat0218@gmail.com> 17314Date: 2022-12-22 23:14:53 +0800 17315 17316 liblzma: Update documentation for lzma_filter_encoder. 17317 17318 src/liblzma/common/filter_encoder.c | 7 +++++-- 17319 1 file changed, 5 insertions(+), 2 deletions(-) 17320 17321commit 7c9ff5f1667a16733163b75dfd4b509662c387f4 17322Author: Jia Tan <jiat0218@gmail.com> 17323Date: 2022-12-21 21:12:03 +0800 17324 17325 Tests: Adds lzip decoder tests 17326 17327 .gitignore | 1 + 17328 tests/Makefile.am | 2 + 17329 tests/test_lzip_decoder.c | 471 ++++++++++++++++++++++++++++++++++++++++++++++ 17330 3 files changed, 474 insertions(+) 17331 17332commit 799ead162de63b8400733603d3abcd2e1977bdca 17333Author: Jia Cheong Tan <jiat0218@gmail.com> 17334Date: 2022-12-20 22:05:21 +0800 17335 17336 Doxygen: Update .gitignore for generating docs for in source build. 17337 17338 In source builds are not recommended, but we should still ignore 17339 the generated artifacts. 17340 17341 .gitignore | 2 ++ 17342 1 file changed, 2 insertions(+) 17343 17344commit 5f7ce42a16b1e86ca8408b5c670c25e2a12acc4e 17345Author: Jia Tan <jiat0218@gmail.com> 17346Date: 2022-12-20 20:46:44 +0800 17347 17348 liblzma: Fix lzma_microlzma_encoder() return value. 17349 17350 Using return_if_error on lzma_lzma_lclppb_encode was improper because 17351 return_if_error is expecting an lzma_ret value, but 17352 lzma_lzma_lclppb_encode returns a boolean. This could result in 17353 lzma_microlzma_encoder, which would be misleading for applications. 17354 17355 src/liblzma/common/microlzma_encoder.c | 3 ++- 17356 1 file changed, 2 insertions(+), 1 deletion(-) 17357 17358commit 8ace358d65059152d9a1f43f4770170d29d35754 17359Author: Jia Tan <jiat0218@gmail.com> 17360Date: 2022-12-16 20:58:55 +0800 17361 17362 CMake: Update .gitignore for CMake artifacts from in source build. 17363 17364 In source builds are not recommended, but we can make it easier 17365 by ignoring the generated artifacts from CMake. 17366 17367 .gitignore | 23 +++++++++++++++++++++++ 17368 1 file changed, 23 insertions(+) 17369 17370commit 8fd225a2c149f30aeac377e68eb5abf6b28300ad 17371Author: Lasse Collin <lasse.collin@tukaani.org> 17372Date: 2022-12-16 18:30:02 +0200 17373 17374 liblzma: Update authors list in arm64.c. 17375 17376 src/liblzma/simple/arm64.c | 1 + 17377 1 file changed, 1 insertion(+) 17378 17379commit b69da6d4bb6bb11fc0cf066920791990d2b22a06 17380Author: Lasse Collin <lasse.collin@tukaani.org> 17381Date: 2022-12-13 20:37:17 +0200 17382 17383 Bump version to 5.4.0 and soname to 5.4.0. 17384 17385 src/liblzma/Makefile.am | 2 +- 17386 src/liblzma/api/lzma/version.h | 6 +++--- 17387 src/liblzma/liblzma_generic.map | 2 +- 17388 src/liblzma/liblzma_linux.map | 2 +- 17389 4 files changed, 6 insertions(+), 6 deletions(-) 17390