1commit 3d078b52adbff566ccfc51067dfbf742ecf3ef86 2Author: Lasse Collin <lasse.collin@tukaani.org> 3Date: 2025-12-17 13:36:42 +0200 4 5 Bump version and soname for 5.8.2 6 7 src/liblzma/Makefile.am | 2 +- 8 src/liblzma/api/lzma/version.h | 2 +- 9 2 files changed, 2 insertions(+), 2 deletions(-) 10 11commit fb14afd5c9bf14d8c67ee11e4139885072071ddd 12Author: Lasse Collin <lasse.collin@tukaani.org> 13Date: 2025-12-17 13:36:35 +0200 14 15 Add NEWS for 5.8.2 16 17 NEWS | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 18 1 file changed, 72 insertions(+) 19 20commit 590f4713b29f0236ab944487f40069355a515dbc 21Author: Lasse Collin <lasse.collin@tukaani.org> 22Date: 2025-12-16 11:30:35 +0200 23 24 CMake: Bump maximum policy version to 4.2 25 26 CMP0186 is curious but we aren't affected. 27 28 CMakeLists.txt | 2 +- 29 1 file changed, 1 insertion(+), 1 deletion(-) 30 31commit 26d22ed16b6e38ce8ed45cb29076f454cd488762 32Author: Lasse Collin <lasse.collin@tukaani.org> 33Date: 2025-12-10 19:20:05 +0200 34 35 tuklib_integer/CMake: Log a message about unaligned access check 36 37 cmake/tuklib_integer.cmake | 8 ++++++++ 38 1 file changed, 8 insertions(+) 39 40commit f7381cf927576164c17be4e4c1edeec3cdaca7cf 41Author: Lasse Collin <lasse.collin@tukaani.org> 42Date: 2025-12-10 19:11:27 +0200 43 44 tuklib_integer/CMake: Don't run unaligned access checks unnecessarily 45 46 If the cache variable TUKLIB_FAST_UNALIGNED_ACCESS is already set, 47 the autodetection result isn't needed because the option() command 48 does nothing when the cache variable is already set. 49 50 This is largely white space change to indent the if...endif block. 51 52 cmake/tuklib_integer.cmake | 226 +++++++++++++++++++++++---------------------- 53 1 file changed, 117 insertions(+), 109 deletions(-) 54 55commit dc1a421ce35f10b9a0c00d1bd42f1fdac0c3e9eb 56Author: Lasse Collin <lasse.collin@tukaani.org> 57Date: 2025-12-10 16:49:55 +0200 58 59 tuklib_integer: Use CMAKE_C_COMPILER_ARCHITECTURE_ID when available 60 61 CMake >= 4.1 sets CMAKE_<LANG>_COMPILER_ARCHITECTURE_ID on many 62 platforms. The list of possible values are documented. Use this 63 variable when available. On older CMake versions CMAKE_SYSTEM_PROCESSOR 64 is still used, thus the regexes have to include values like ^amd64 still. 65 66 With old CMake versions, checking CMAKE_C_COMPILER_ARCHITECTURE_ID 67 is somewhat useful with MSVC because CMAKE_SYSTEM_PROCESSOR might 68 not match the target architecture. 69 70 cmake/tuklib_integer.cmake | 13 ++++++++++++- 71 1 file changed, 12 insertions(+), 1 deletion(-) 72 73commit c690101dddd784b75224a8935f56cd163d3e90a3 74Author: Lasse Collin <lasse.collin@tukaani.org> 75Date: 2025-12-10 16:49:55 +0200 76 77 tuklib_integer: Autodetect when -mstrict-align is used with GCC on ARM64 78 79 On ARM64, support for fast unaligned memory access was autodetected by 80 checking if __ARM_FEATURE_UNALIGNED is defined. However, at least GCC 81 versions up to 15.2.0 define the macro even when -mstrict-align has 82 been specified. Thus, autodetection with GCC doesn't work correctly, 83 and binaries built using -mstrict-align can be much slower than they 84 need to be, unless the user also passes --disable-unaligned-access 85 to configure or -DTUKLIB_FAST_UNALIGNED_ACCESS=OFF to cmake. 86 87 See the GCC bug: 88 89 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111555 90 91 Workaround the issue by using heuristics with GCC on ARM64. 92 93 With Clang, the detection using __ARM_FEATURE_UNALIGNED works. 94 It also works with GCC on 32-bit ARM. 95 96 Fixes: e5f13a66567b ("tuklib_integer: Autodetect support for unaligned access on ARM.") 97 98 cmake/tuklib_integer.cmake | 63 ++++++++++++++++++++++++++++++------- 99 m4/tuklib_integer.m4 | 78 +++++++++++++++++++++++++++++++++++----------- 100 2 files changed, 110 insertions(+), 31 deletions(-) 101 102commit d9b318f5b8a3524e90ac17471e79db7de012caf5 103Author: Lasse Collin <lasse.collin@tukaani.org> 104Date: 2025-12-09 18:02:23 +0200 105 106 CI: Update MSYS2 107 108 .github/workflows/msys2.yml | 4 ++-- 109 1 file changed, 2 insertions(+), 2 deletions(-) 110 111commit 700e32f1b7dd6d674f12bbdabc35a3bc4a2860f5 112Author: Lasse Collin <lasse.collin@tukaani.org> 113Date: 2025-12-09 18:02:05 +0200 114 115 CI: Update DragonFly BSD 116 117 .github/workflows/dragonflybsd.yml | 2 +- 118 1 file changed, 1 insertion(+), 1 deletion(-) 119 120commit a7b749389c64dfbee1c29d88e61e71186b472784 121Author: Lasse Collin <lasse.collin@tukaani.org> 122Date: 2025-12-09 17:58:52 +0200 123 124 CI: Update Solaris 125 126 .github/workflows/solaris.yml | 2 +- 127 1 file changed, 1 insertion(+), 1 deletion(-) 128 129commit e0b3c6ee0ab3243e48291e5f9b6333c3d052311d 130Author: Lasse Collin <lasse.collin@tukaani.org> 131Date: 2025-12-09 17:56:58 +0200 132 133 CI: Update NetBSD 134 135 .github/workflows/netbsd.yml | 2 +- 136 1 file changed, 1 insertion(+), 1 deletion(-) 137 138commit fbc1046248cfe3c730437ba7d98dde89b0eced3e 139Author: Lasse Collin <lasse.collin@tukaani.org> 140Date: 2025-12-09 17:54:54 +0200 141 142 CI: Update OpenBSD 143 144 .github/workflows/openbsd.yml | 2 +- 145 1 file changed, 1 insertion(+), 1 deletion(-) 146 147commit 8f0579ba5650bbbfa88a04adf8115b8fb4aff476 148Author: Lasse Collin <lasse.collin@tukaani.org> 149Date: 2025-12-09 17:52:01 +0200 150 151 CI: Update FreeBSD 152 153 .github/workflows/freebsd.yml | 4 +++- 154 1 file changed, 3 insertions(+), 1 deletion(-) 155 156commit f8424b0416266c393c84a315e3bdedbc19efa0a8 157Author: Lasse Collin <lasse.collin@tukaani.org> 158Date: 2025-12-09 17:40:05 +0200 159 160 Update THANKS 161 162 THANKS | 1 + 163 1 file changed, 1 insertion(+) 164 165commit c4340692d4490ff80e897d4840fadc033c46d81a 166Author: Lasse Collin <lasse.collin@tukaani.org> 167Date: 2025-12-09 13:01:36 +0200 168 169 Translations: Add src/xz/sandbox.c to POTFILES.in 170 171 There are no strings to translate in that file now, but it's good to 172 list it anyway in case translatable strings are added in the future. 173 174 Fixes: 374868d81d47 ("xz: Move sandboxing code to sandbox.c and improve Landlock sandbox.") 175 176 po/POTFILES.in | 1 + 177 1 file changed, 1 insertion(+) 178 179commit b8af36920b0857c0329f61414df5989093386db1 180Author: Lasse Collin <lasse.collin@tukaani.org> 181Date: 2025-12-09 12:55:45 +0200 182 183 xz: Never translate "Failed to enable the sandbox" 184 185 This was already the case in practice because I had forgotten to list 186 src/xz/sandbox.c in po/POTFILES.in. However, it seems better to never 187 translate this particular error message. It should almost never occur 188 and if it does, an untranslated message is should make it easier to 189 find bug reports about it. 190 191 src/xz/sandbox.c | 24 +++++++++++++++--------- 192 1 file changed, 15 insertions(+), 9 deletions(-) 193 194commit 5a7fc1af3d9ec115f796cba110eb78e63ff1df5c 195Author: Lasse Collin <lasse.collin@tukaani.org> 196Date: 2025-12-09 12:27:15 +0200 197 198 Translations: Update the Swedish man page translations 199 200 po4a/sv.po | 15 +++++---------- 201 1 file changed, 5 insertions(+), 10 deletions(-) 202 203commit 88531e5463d9f028387a11b78d53c9c269e6a3a0 204Author: Lasse Collin <lasse.collin@tukaani.org> 205Date: 2025-12-09 12:26:24 +0200 206 207 Translations: Update the Romanian man page translations 208 209 po4a/ro.po | 18 +++++++----------- 210 1 file changed, 7 insertions(+), 11 deletions(-) 211 212commit 8a817277192e6379a8c6f2eefbaed65c6b7d92fa 213Author: Lasse Collin <lasse.collin@tukaani.org> 214Date: 2025-12-09 12:13:36 +0200 215 216 Update THANKS 217 218 THANKS | 1 + 219 1 file changed, 1 insertion(+) 220 221commit 1ec43aa7810d159ed76a6188b17c0bb474ca5ab5 222Author: Lasse Collin <lasse.collin@tukaani.org> 223Date: 2025-12-09 12:13:36 +0200 224 225 CMake: Autodetect unaligned access support on LoongArch 226 227 This still relies on CMAKE_SYSTEM_PROCESSOR. CMake 4.1 added more 228 CMAKE_<LANG>_COMPILER_ARCHITECTURE_ID values to detect the arch in 229 a more defined manner, but 4.1 is too new to require for now. 230 231 Thanks-to: Li Chenggang <lichenggang@deepin.org> 232 Closes: https://github.com/tukaani-project/xz/pull/186 233 234 cmake/tuklib_integer.cmake | 81 ++++++++++++++++++++++++++++++++++++++++++++++ 235 1 file changed, 81 insertions(+) 236 237commit 7971566247914ec1854b125ff99c2a617f5c1e3a 238Author: Lasse Collin <lasse.collin@tukaani.org> 239Date: 2025-12-09 12:13:36 +0200 240 241 Autotools: Autodetect unaligned access support on LoongArch 242 243 According to [1] sections 7.4, 8.1, and 8.2, desktop and server 244 processors support fast unaligned access, but embedded systems likely 245 don't. 246 247 It's important that TUKLIB_FAST_UNALIGNED_ACCESS isn't defined when 248 -mstrict-align is in use because it will result in slower binaries 249 even if running on a processor that supports fast unaligned access. 250 It's because compilers will translate multibyte memcpy() to multiple 251 byte-by-byte instructions instead of wider loads and stores. The 252 compression times from [2] show this well: 253 254 Unaligned access CFLAGS Compression time 255 enabled -O2 -mno-strict-align 66.1 s 256 disabled -O2 -mno-strict-align 79.5 s 257 disabled -O2 -mstrict-align 79.9 s 258 enabled -O2 -mstrict-align 129.1 s 259 260 There currently (GCC 15.2) is no preprocessor macro on LoongArch 261 to detect if -mstrict-align or -mno-strict-align is in effect (the 262 default is -mno-strict-align). Use heuristics to detect which of the 263 flags is in effect. 264 265 [1] https://github.com/loongson/la-softdev-convention/blob/v0.2/la-softdev-convention.adoc 266 [2] https://github.com/tukaani-project/xz/pull/186#issuecomment-3494570304 267 268 Thanks-to: Li Chenggang <lichenggang@deepin.org> 269 Thanks-to: Xi Ruoyao 270 See: https://github.com/tukaani-project/xz/pull/186 271 272 m4/tuklib_integer.m4 | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 273 1 file changed, 68 insertions(+) 274 275commit 338f952c0039b153a1fbdf6a535c4bd6a61f33cd 276Author: Lasse Collin <lasse.collin@tukaani.org> 277Date: 2025-11-26 13:50:57 +0200 278 279 xz: Silence clang -Wunreachable-code-break 280 281 Fixes: a165d7df1964 ("xz: Add a new --filters-help option.") 282 283 src/xz/args.c | 1 - 284 1 file changed, 1 deletion(-) 285 286commit 723cee44d076281bce9c3d7bd2c17b0680bd8884 287Author: Lasse Collin <lasse.collin@tukaani.org> 288Date: 2025-11-26 13:50:57 +0200 289 290 liblzma: Remove unwanted semicolons 291 292 These didn't affect control flow. 293 294 src/liblzma/common/vli_decoder.c | 2 +- 295 src/liblzma/lzma/lzma_common.h | 4 ++-- 296 src/liblzma/rangecoder/range_decoder.h | 6 +++--- 297 3 files changed, 6 insertions(+), 6 deletions(-) 298 299commit 524f6a7384f15e52ec13c72adbdf18ddeecbc735 300Author: Lasse Collin <lasse.collin@tukaani.org> 301Date: 2025-11-26 13:50:57 +0200 302 303 Tests: Remove an unwanted semicolon from a macro definition 304 305 It didn't affect control flow. 306 307 Fixes: fe3bd438fb11 ("Tests: Fix memory leaks in test_block_header.") 308 309 tests/test_block_header.c | 2 +- 310 1 file changed, 1 insertion(+), 1 deletion(-) 311 312commit 0f41a28bfab98d1f5171ee5c9da6dfdc15f62549 313Author: Lasse Collin <lasse.collin@tukaani.org> 314Date: 2025-11-26 13:50:57 +0200 315 316 Build: Use -Wextra-semi-stmt when supported 317 318 CMakeLists.txt | 1 + 319 configure.ac | 1 + 320 2 files changed, 2 insertions(+) 321 322commit 91170c8cab72b94a697f5228f4df13483ef5be91 323Author: Lasse Collin <lasse.collin@tukaani.org> 324Date: 2025-11-26 13:50:57 +0200 325 326 CI: Add clang-cl 327 328 Fixes: https://github.com/tukaani-project/xz/issues/18#issuecomment-3577456136 329 330 .github/workflows/msvc.yml | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 331 1 file changed, 46 insertions(+) 332 333commit a3c6cb09113de978b971cbdacf5c4890d4237c28 334Author: Lasse Collin <lasse.collin@tukaani.org> 335Date: 2025-11-26 13:50:57 +0200 336 337 xz/Windows: Add a missing #include to fix the build with clang-cl 338 339 Fixes: https://github.com/tukaani-project/xz/issues/18#issuecomment-1986829734 340 Fixes: https://github.com/tukaani-project/xz/issues/18#issuecomment-3577456136 341 342 src/xz/util.c | 4 ++++ 343 1 file changed, 4 insertions(+) 344 345commit c410ccc62511ec95b20639defb10650ef9b75e8c 346Author: Lasse Collin <lasse.collin@tukaani.org> 347Date: 2025-11-25 21:05:37 +0200 348 349 xz: Check return value of sigaction() before calling raise() 350 351 Fixes: Coverity CID 456022 352 353 src/xz/signals.c | 10 ++++++++-- 354 1 file changed, 8 insertions(+), 2 deletions(-) 355 356commit 6cc2da0a4b180b71cb6e781c897052def103ad3e 357Author: Lasse Collin <lasse.collin@tukaani.org> 358Date: 2025-11-02 12:57:00 +0200 359 360 liblzma: Refactor a loop in lzma_filters_copy() 361 362 Arguably it's nicer if i doesn't wrap around when the loop terminates. 363 364 Fixes: Coverity CID 464589 365 Fixes: 6d118a0b9def ("Add lzma_filters_copy().") 366 367 src/liblzma/common/filter_common.c | 4 ++-- 368 1 file changed, 2 insertions(+), 2 deletions(-) 369 370commit 90b67853d57562c5ad4fdb3215ceb9b9bd3958bf 371Author: Lasse Collin <lasse.collin@tukaani.org> 372Date: 2025-11-02 12:17:50 +0200 373 374 liblzma: Silence two Coverity warnings 375 376 lzma_lzma_decoder_memusage() returns UINT64_MAX if lc/lp/pb aren't 377 valid. alone_decoder.c and lzip_decoder.c didn't check the return 378 value because in both it is known that lc/lp/pb are valid. Make them 379 call the _nocheck() variant instead which skips the validation (it 380 already existed for LZMA2's internal use). 381 382 Fixes: Coverity CID 464658 383 Fixes: Coverity CID 897069 384 385 src/liblzma/common/alone_decoder.c | 6 ++++-- 386 src/liblzma/common/lzip_decoder.c | 3 ++- 387 src/liblzma/lzma/lzma_decoder.h | 11 ++++++----- 388 3 files changed, 12 insertions(+), 8 deletions(-) 389 390commit be365b701024b9acbfef4035c6433a0fbb4be823 391Author: Lasse Collin <lasse.collin@tukaani.org> 392Date: 2025-11-02 12:17:50 +0200 393 394 liblzma: Fix a harmless read of shared variable without mutex 395 396 The partial_update_mode enumeration had three states, _DISABLED, 397 _START, and _ENABLED. Main thread changed it from _DISABLED to _START 398 while holding a mutex. Once set to _START, worker thread changed it 399 to _ENABLED without a mutex. Later main thread read it without a mutex, 400 so it could see either _START or _ENABLED. However, it made no 401 difference because the main thread checked for != _DISABLED, so 402 it didn't matter if it saw _START or _ENABLED. 403 404 Nevertheless, such things must not be done. It's clear it was a mistake 405 because there were two comments that directly contradicted each 406 other about how the variable was accessed. 407 408 Split the enumeration into two booleans: 409 410 - partial_update_enabled: A worker thread locks the mutex to read 411 this variable and the main thread locks the mutex to change the 412 value. Because only the main thread modifies the variable, the 413 main thread can read the value without locking the mutex. 414 This variable replaces the _DISABLED -> _START transition. 415 416 - partial_update_started is for worker thread's internal use and thus 417 needs no mutex. This replaces the _START -> _ENABLED transition. 418 419 Fixes: Coverity CID 456025 420 Fixes: bd93b776c1bd ("liblzma: Fix a deadlock in threaded decoder.") 421 422 src/liblzma/common/stream_decoder_mt.c | 79 +++++++++++++++------------------- 423 1 file changed, 34 insertions(+), 45 deletions(-) 424 425commit 2686554da0103580a472919220931c397b1d1f7a 426Author: Lasse Collin <lasse.collin@tukaani.org> 427Date: 2025-11-02 12:17:50 +0200 428 429 CI: Add Coverity Scan 430 431 Co-authored-by: Lasse Collin <lasse.collin@tukaani.org> 432 Fixes: https://github.com/tukaani-project/xz/issues/198 433 434 .github/workflows/coverity.yml | 38 ++++++++++++++++++++++++++++++++++++++ 435 1 file changed, 38 insertions(+) 436 437commit 1b30734c9c08a3f628574d172f1a6034277a2163 438Author: Lasse Collin <lasse.collin@tukaani.org> 439Date: 2025-11-25 13:55:35 +0200 440 441 Change the sorting order in THANKS 442 443 In short, sort the names with this command (-k1,1 isn't needed because 444 the lines with names start with " -"): 445 446 LC_ALL=en_US.UTF-8 sort -k2,2 -k3,3 -k4,4 -k5,5 447 448 When THANKS was created, I wrote the names as "First Last" and attempted 449 to keep them sorted by last name / surname / family name. This works 450 with many names in THANKS, but it becomes complicated with names that 451 don't fit that pattern. For example, names that are written as 452 "Last First" can be manually sorted by family name, but only if one 453 knows which part of the name is the family name.[*] And of course, 454 the concept of first/last name doesn't apply to all names. 455 456 [*] xz had a co-maintainer who could help me with such names, 457 but fortunately he isn't working on the project anymore. 458 459 Adding the names in chronological order could have worked too, although 460 if something is contributed by multiple people, one would still have to 461 decide how to sort the names within the batch. Another downside would 462 be that if THANKS is updated in more than one work-in-progress branch, 463 merge conflicts would occur more often. 464 465 Don't attempt to sort by last name. Let's be happy that people tend to 466 provide names that can be expressed in a reasonable number of printable 467 Unicode characters. In practice, people have been even nicer: if the 468 native language doesn't use a Latin script alphabet, people often provide 469 a transliterated name (only or in addition to the original spelling), 470 which is very much appreciated by those who don't know the native script. 471 472 Treat the names as opaque strings or space-separated strings for sorting 473 purposes. This means that most names will now be sorted by first name. 474 There still are many choices how to sort: 475 476 (1) LC_ALL=en_US.UTF-8 sort 477 478 The project is in English, so this may sound like a logical choice. 479 However, spaces have a lower weight than letters, which results in 480 this order: 481 482 - A Ba 483 - Ab C 484 - A Bc 485 - A Bd 486 487 (2) LC_ALL=en_US.UTF-8 sort -k2,2 488 489 This first sorts by the first word and then by the rest of the 490 string. It's -k2,2 instead of -k1,1 to skip the leading dash. 491 492 - A Ba 493 - A Bc 494 - A Bd 495 - Ab C 496 497 I like this more than (1). One could add -k3,3 -k4,4 -k5,5 ... too. 498 With current THANKS it makes no difference but it might some day. 499 500 NOTE: The ordering in en_US.UTF-8 can differ between libc versions 501 and operating systems. Luckily it's not a big deal in THANKS. 502 503 (3) LC_ALL=en_US.UTF-8 sort -f -k2,2 504 505 Passing -f (--ignore-case) to sort affects sorting of single-byte 506 characters but not multibyte characters (GNU coreutils 9.9): 507 508 No -f With -f LC_ALL=C 509 Aa A.A A.A 510 A.A Aa Aa 511 Ää Ää Ä.Ä 512 Ä.Ä Ä.Ä Ää 513 514 In GNU coreutils, the THANKS file is sorted using "sort -f -k1,1". 515 There is also a basic check that the en_US.UTF-8 locale is 516 behaving as expected. 517 518 (4) LC_ALL=C sort 519 520 This sorts by byte order which in UTF-8 is the same as Unicode 521 code point order. With the strings in (1) and (2), this produces 522 the same result as in (2). The difference in (3) can be seen above. 523 524 The results differ from en_US.UTF-8 when a name component starts 525 with a lower case ASCII letter (like "von" or "de"). Worse, any 526 non-ASCII characters sort after ASCII chars. These properties might 527 look weird in English language text, although it's good to remember 528 that en_US.UTF-8 sorting can appear weird too if one's native 529 language isn't English. 530 531 The choice between (2) and (4) was difficult but I went with (2). 532 533 ;-) 534 535 THANKS | 414 ++++++++++++++++++++++++++++++++--------------------------------- 536 1 file changed, 207 insertions(+), 207 deletions(-) 537 538commit 8bb516887c1912106a72db96216cab46954e6190 539Author: Lasse Collin <lasse.collin@tukaani.org> 540Date: 2025-11-23 20:39:28 +0200 541 542 Landlock: Add missing #ifdefs 543 544 The build was broken on distros that have an old <sys/landlock.h>. 545 546 Fixes: 2b2652e914b1 ("Landlock: Workaround a bug in RHEL 9 kernel") 547 548 src/common/my_landlock.h | 6 ++++++ 549 1 file changed, 6 insertions(+) 550 551commit 23c95c6a7c374962103dbd35cb79fdd5a6fe8b52 552Author: Lasse Collin <lasse.collin@tukaani.org> 553Date: 2025-11-23 20:13:50 +0200 554 555 Update THANKS 556 557 THANKS | 2 ++ 558 1 file changed, 2 insertions(+) 559 560commit 2b2652e914b1c38d4c009a8dcac11dfee9c7e008 561Author: Lasse Collin <lasse.collin@tukaani.org> 562Date: 2025-11-23 20:13:49 +0200 563 564 Landlock: Workaround a bug in RHEL 9 kernel 565 566 If one runs xz 5.8.0 or 5.8.1 from some other distribution in a container 567 on RHEL 9, xz will fail with the message "Failed to enable the sandbox". 568 569 RHEL 9 kernel since 5.14.0-603.el9 (2025-07-30) claims to support 570 Landlock ABI version 6, but it lacks support for LANDLOCK_SCOPE_SIGNAL. 571 The issue is still present in 5.14.0-643.el9 (2025-11-22). Red Hat is 572 aware of the issue, but I don't know when it will be fixed. 573 574 The sandbox is meant to be transparent to users, thus there isn't and 575 won't be a command line option to disable it. Instead, add a workaround 576 to keep xz working on the buggy RHEL 9 kernels. 577 578 Reported-by: Richard W.M. Jones 579 Thanks-to: Pavel Raiskup 580 Tested-by: Orgad Shaneh 581 Tested-by: Richard W.M. Jones 582 Fixes: https://github.com/tukaani-project/xz/issues/199 583 Link: https://issues.redhat.com/browse/RHEL-125143 584 Link: https://bugzilla.redhat.com/show_bug.cgi?id=2407105 585 Link: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/65BDSY56R5ZJRTUC4B6CIVCVLY4LG4ME/ 586 587 src/common/my_landlock.h | 27 ++++++++++++++++++++++++++- 588 1 file changed, 26 insertions(+), 1 deletion(-) 589 590commit ee75c76958dd891906745125590563ab64e85995 591Author: Lasse Collin <lasse.collin@tukaani.org> 592Date: 2025-11-23 20:13:37 +0200 593 594 Landlock: Cache the ABI version 595 596 In xz it can avoid up to two syscalls that query the ABI version. 597 598 src/common/my_landlock.h | 14 +++++++++++++- 599 1 file changed, 13 insertions(+), 1 deletion(-) 600 601commit f57b1716cd0853474980c90a892204dee9bdea1a 602Author: Lasse Collin <lasse.collin@tukaani.org> 603Date: 2025-11-03 14:52:45 +0200 604 605 Update THANKS 606 607 THANKS | 1 + 608 1 file changed, 1 insertion(+) 609 610commit 211cde09236165dbd379644753337be1de64b151 611Author: Lasse Collin <lasse.collin@tukaani.org> 612Date: 2025-11-03 12:41:31 +0200 613 614 mythread.h: Fix the build on Emscripten when threading is disabled 615 616 To make a non-threaded liblzma-only build work with WASI SDK, <signal.h> 617 and mythread_sigmask() were omitted from mythread.h in the commit 618 81db3b889830. This broke non-threaded full build with Emscripten because 619 src/xz/signals.c needs mythread_sigmask() (liblzma-only build was fine). 620 621 If __wasm__ is defined, omit <signal.h> and mythread_sigmask() in 622 non-threaded builds only when __EMSCRIPTEN__ isn't defined. 623 624 Reported-by: Marcus Tillmanns 625 Thanks-to: ChanTsune 626 Fixes: https://github.com/tukaani-project/xz/issues/161 627 Fixes: 81db3b889830 ("mythread.h: Disable signal functions in builds targeting Wasm + WASI.") 628 629 src/common/mythread.h | 3 ++- 630 1 file changed, 2 insertions(+), 1 deletion(-) 631 632commit cbf50a99e3f0c2735fd573e166baf37df063b37b 633Author: Lasse Collin <lasse.collin@tukaani.org> 634Date: 2025-11-03 11:56:32 +0200 635 636 Translations: Update the Serbian man page translations 637 638 The earlier bug fixes are now included in the Translation Project. 639 640 po4a/sr.po | 4 ++-- 641 1 file changed, 2 insertions(+), 2 deletions(-) 642 643commit 68d1591187512d8872615c8a904d43073440d93f 644Author: Lasse Collin <lasse.collin@tukaani.org> 645Date: 2025-11-02 19:40:55 +0200 646 647 xz: Silence a compiler warning when signals_block_count is unused 648 649 Move the static variable signals_block_count to the #ifndef block 650 that already has the functions that need the variable. 651 652 src/xz/signals.c | 7 ++++--- 653 1 file changed, 4 insertions(+), 3 deletions(-) 654 655commit beca015891fbd22657663ec23809184dda0677cd 656Author: Lasse Collin <lasse.collin@tukaani.org> 657Date: 2025-11-02 17:45:20 +0200 658 659 xz: Silence a warning from Clang on glibc systems 660 661 Fixes: e8838b2f5922 ("xz: Look at resource limits when determining the default memlimit") 662 663 src/xz/hardware.c | 13 +++++++++++++ 664 1 file changed, 13 insertions(+) 665 666commit 3e394278ed537575b5db43c09989c6ca99f762de 667Author: Lasse Collin <lasse.collin@tukaani.org> 668Date: 2025-11-02 14:37:52 +0200 669 670 Translations: Update the Serbian man page translations 671 672 Preserve the bug fixes made in 71ad5e82888f and 4f52e7387012 because 673 upstream hasn't included them. 674 675 po4a/sr.po | 17 ++++++----------- 676 1 file changed, 6 insertions(+), 11 deletions(-) 677 678commit ace28e35732fc43f58ea1aac146fdb73084f2548 679Author: Lasse Collin <lasse.collin@tukaani.org> 680Date: 2025-11-02 14:27:10 +0200 681 682 Translations: Update the Korean man page translations 683 684 po4a/ko.po | 17 ++++++----------- 685 1 file changed, 6 insertions(+), 11 deletions(-) 686 687commit ffd14a099f0d8c92d4f74018d3a52bd2327df4db 688Author: Lasse Collin <lasse.collin@tukaani.org> 689Date: 2025-11-02 14:24:43 +0200 690 691 Translations: Update the Italian man page translations 692 693 po4a/it.po | 15 +++++---------- 694 1 file changed, 5 insertions(+), 10 deletions(-) 695 696commit 6f3152874ee375b581aa858fccab7865dcbf6403 697Author: Lasse Collin <lasse.collin@tukaani.org> 698Date: 2025-11-02 14:12:23 +0200 699 700 Translations: Update the Ukrainian man page translations 701 702 po4a/uk.po | 15 +++++---------- 703 1 file changed, 5 insertions(+), 10 deletions(-) 704 705commit ef67e051d71938a23713d9782a3f0c470ac51b1e 706Author: Lasse Collin <lasse.collin@tukaani.org> 707Date: 2025-09-28 18:32:05 +0300 708 709 liblzma: Fix build on old Linux/glibc on ARM64 710 711 getauxval() can be available even if HWCAP_CRC32 isn't #defined, so 712 both have to be checked. HWCAP_CRC32 was added in glibc 2.24 (2016). 713 714 Fixes: https://github.com/tukaani-project/xz/issues/190 715 716 CMakeLists.txt | 7 +++++++ 717 configure.ac | 6 +++++- 718 src/liblzma/check/crc32_arm64.h | 5 +++-- 719 src/liblzma/check/crc_common.h | 3 ++- 720 4 files changed, 17 insertions(+), 4 deletions(-) 721 722commit 71c2ede383f6dc6661b8a9d844f4bcf81c563643 723Author: Lasse Collin <lasse.collin@tukaani.org> 724Date: 2025-10-31 14:36:26 +0200 725 726 CI: Update Solaris 727 728 .github/workflows/solaris.yml | 2 +- 729 1 file changed, 1 insertion(+), 1 deletion(-) 730 731commit 02da8de0edddd31a3e9818c2200b97c446d6eb5b 732Author: Lasse Collin <lasse.collin@tukaani.org> 733Date: 2025-10-31 14:32:47 +0200 734 735 CI: Update DragonFly BSD 736 737 .github/workflows/dragonflybsd.yml | 8 ++++---- 738 1 file changed, 4 insertions(+), 4 deletions(-) 739 740commit 75b18d325f6a993eac2d5f44c7aad941aa20df94 741Author: Lasse Collin <lasse.collin@tukaani.org> 742Date: 2025-10-31 14:30:24 +0200 743 744 CI: Update NetBSD 745 746 .github/workflows/netbsd.yml | 2 +- 747 1 file changed, 1 insertion(+), 1 deletion(-) 748 749commit 0102072915f38e747ee55aa9c52351dfe81b8c14 750Author: Lasse Collin <lasse.collin@tukaani.org> 751Date: 2025-10-31 14:21:37 +0200 752 753 CI: Update FreeBSD 754 755 .github/workflows/freebsd.yml | 2 +- 756 1 file changed, 1 insertion(+), 1 deletion(-) 757 758commit 83419783a67a6097c7d5ed5663734c04eb8c8b55 759Author: Lasse Collin <lasse.collin@tukaani.org> 760Date: 2025-10-31 14:17:30 +0200 761 762 CI: Update OpenBSD 763 764 .github/workflows/openbsd.yml | 6 +++--- 765 1 file changed, 3 insertions(+), 3 deletions(-) 766 767commit 3b5f5af9bcd9b5752608a099fcfab331c0c613b3 768Author: Lasse Collin <lasse.collin@tukaani.org> 769Date: 2025-10-26 12:07:34 +0200 770 771 Update THANKS 772 773 THANKS | 2 ++ 774 1 file changed, 2 insertions(+) 775 776commit e8838b2f59221f46bf34c79431d286e8ac34fb8b 777Author: Kirill A. Korinsky <kirill@korins.ky> 778Date: 2025-10-26 12:07:34 +0200 779 780 xz: Look at resource limits when determining the default memlimit 781 782 When no memory usage limits have been set by the user, the default 783 for multithreaded mode has been 1/4 of total RAM. If this limit is 784 too high and memory allocation fails, liblzma (and xz) fail. Perhaps 785 liblzma should handle it better by reducing the number of threads 786 and continuing with the amount of memory it can allocate, but currently 787 that isn't the case. 788 789 If resource limits were set to about 1/4 of RAM or lower, then xz 790 could fail for the above reason. This commit makes xz look at 791 RLIMIT_DATA, RLIMIT_AS, and RLIMIT_VMEM when they are available, 792 and set the limit 64 MiB below the lowest of those limits. This is 793 more or less a hack just like the 1/4-of-RAM method is, but this is 794 simple and quick to implement. 795 796 On Linux, there are other limits like cgroup v2 memory.max which 797 can still make xz fail. The same is likely possible with FreeBSD's 798 rctl(8). 799 800 Co-authored-by: Lasse Collin <lasse.collin@tukaani.org> 801 Thanks-to: Fangrui Song 802 Fixes: https://github.com/tukaani-project/xz/issues/195 803 Closes: https://github.com/tukaani-project/xz/pull/196 804 805 CMakeLists.txt | 3 +++ 806 configure.ac | 4 ++-- 807 src/xz/hardware.c | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 808 3 files changed, 64 insertions(+), 2 deletions(-) 809 810commit 8d26b72915e0d373f898b55935505857c30dbdb3 811Author: Lasse Collin <lasse.collin@tukaani.org> 812Date: 2025-10-01 12:46:26 +0300 813 814 CI: Remove windows-2019 (which had VS 2019) 815 816 GitHub has removed the runner image. 817 818 A breakage with CLMUL CRC code occurred with VS 2019 but not 2022, 819 see b5a5d9e3f702. MS supports VS 2019 for a few more years, so it's 820 unfortunate that it can no longer be tested on GitHub. 821 822 .github/workflows/msvc.yml | 2 +- 823 1 file changed, 1 insertion(+), 1 deletion(-) 824 825commit 32412bd2a42fda639765c3046e91f964e286b6d9 826Author: Lasse Collin <lasse.collin@tukaani.org> 827Date: 2025-09-29 19:34:58 +0300 828 829 Update THANKS 830 831 THANKS | 3 +++ 832 1 file changed, 3 insertions(+) 833 834commit eaa150df9803c982adf28d4533c7a4264ea17757 835Author: Lakshmi-Surekha <Lakshmi.Kovvuri@ibm.com> 836Date: 2025-07-17 23:27:06 -0500 837 838 xz: Don't fsync() directories on AIX 839 840 It fails with EBADF. 841 842 Fixes: https://github.com/tukaani-project/xz/issues/188 843 Closes: https://github.com/tukaani-project/xz/pull/189 844 845 src/xz/file_io.c | 3 ++- 846 1 file changed, 2 insertions(+), 1 deletion(-) 847 848commit 61b114e92f53b7977aad69f8a7130fc25d8a80e5 849Author: Lasse Collin <lasse.collin@tukaani.org> 850Date: 2025-09-29 18:37:19 +0300 851 852 liblzma: Document that lzma_allocator.free(opaque, NULL) is possible 853 854 It feels better to fix the docs than change the code because this 855 way newly-written applications will be forced to be compatible with 856 the lzma_allocator behavior of old liblzma versions. It can matter 857 if someone builds the application against an older liblzma version. 858 859 Fixes: https://github.com/tukaani-project/xz/issues/183 860 861 src/liblzma/api/lzma/base.h | 4 +++- 862 1 file changed, 3 insertions(+), 1 deletion(-) 863 864commit 6d287a3ae90e1b990294f3d5264003d81e853c5e 865Author: Simon Josefsson <simon@josefsson.org> 866Date: 2025-08-26 09:41:02 +0200 867 868 Update GPLv2 and LGPLv2.1 copies from gnu.org 869 870 Closes: https://github.com/tukaani-project/xz/pull/194 871 872 COPYING.GPLv2 | 9 ++++----- 873 COPYING.LGPLv2.1 | 9 ++++----- 874 2 files changed, 8 insertions(+), 10 deletions(-) 875 876commit 41a421dbadf13af2a59aaafa43836026b83340a7 877Author: Lasse Collin <lasse.collin@tukaani.org> 878Date: 2025-05-24 12:07:13 +0300 879 880 tests/test_suffix.sh: Avoid variables in printf format string 881 882 tests/test_suffix.sh | 4 ++-- 883 1 file changed, 2 insertions(+), 2 deletions(-) 884 885commit a2c6aa8764a2e5248572d461305bd05c5950bf94 886Author: Lasse Collin <lasse.collin@tukaani.org> 887Date: 2025-05-24 12:02:09 +0300 888 889 build-aux/manconv.sh: Add quotes 890 891 build-aux/manconv.sh | 8 ++++---- 892 1 file changed, 4 insertions(+), 4 deletions(-) 893 894commit 8e4153253eea2b5a9466467b2ce0249e56277c9a 895Author: Lasse Collin <lasse.collin@tukaani.org> 896Date: 2025-05-24 12:01:35 +0300 897 898 windows/build.bash: Add quotes 899 900 In this case they aren't needed but it's better style. 901 902 windows/build.bash | 4 ++-- 903 1 file changed, 2 insertions(+), 2 deletions(-) 904 905commit 37a57a926dd1ae6cde1544d8487e27982d2db4a4 906Author: Lasse Collin <lasse.collin@tukaani.org> 907Date: 2025-05-24 12:00:13 +0300 908 909 po4a/update-po: Ensure that a glob won't expand to a command line option 910 911 po4a/update-po | 2 +- 912 1 file changed, 1 insertion(+), 1 deletion(-) 913 914commit e3ba73034a3f8e414882af39d62f479e9717e061 915Author: Lasse Collin <lasse.collin@tukaani.org> 916Date: 2025-05-24 11:57:23 +0300 917 918 liblzma: validate_map.sh: Catch some unlikely errors 919 920 src/liblzma/validate_map.sh | 4 ++-- 921 1 file changed, 2 insertions(+), 2 deletions(-) 922 923commit 067cecdea69067973e44dc1afb9be763faccecb2 924Author: Lasse Collin <lasse.collin@tukaani.org> 925Date: 2025-05-24 11:55:59 +0300 926 927 CI: Catch unsupported arguments in ci_build.bash 928 929 build-aux/ci_build.bash | 4 ++++ 930 1 file changed, 4 insertions(+) 931 932commit 4fc6208abebfe6b8c8348c412b4bcc594ae11c88 933Author: Lasse Collin <lasse.collin@tukaani.org> 934Date: 2025-05-13 20:42:26 +0300 935 936 Scripts: Add shellcheck directives to silence warnings 937 938 Set also shell because the xz*.in files start with '#!@POSIX_SHELL@'. 939 940 SC1003 and SC2016 are only info messages, not warnings. Several other 941 shellcheck info messages remain. They are safe to ignore, but I didn't 942 want to disable them now. 943 944 Partially-fixes: https://github.com/tukaani-project/xz/issues/174 945 946 src/scripts/xzdiff.in | 4 ++++ 947 src/scripts/xzgrep.in | 2 ++ 948 src/scripts/xzless.in | 2 ++ 949 src/scripts/xzmore.in | 2 ++ 950 4 files changed, 10 insertions(+) 951 952commit 7844aff1a838362403b332c3a68d5732a192923a 953Author: Lasse Collin <lasse.collin@tukaani.org> 954Date: 2025-05-03 22:45:15 +0300 955 956 Scripts: Silence two shellcheck warnings 957 958 src/scripts/xzdiff.in | 2 +- 959 src/scripts/xzmore.in | 2 +- 960 2 files changed, 2 insertions(+), 2 deletions(-) 961 962commit 4d439aaeed5c991fbc1ff78d7616e179c30fca1d 963Author: Lasse Collin <lasse.collin@tukaani.org> 964Date: 2025-09-29 17:29:23 +0300 965 966 Translations: Add Swedish man page translations 967 968 po4a/po4a.conf | 2 +- 969 po4a/sv.po | 3909 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 970 2 files changed, 3910 insertions(+), 1 deletion(-) 971 972commit dd4a1b259936880e04669b43e778828b60619860 973Author: Lasse Collin <lasse.collin@tukaani.org> 974Date: 2025-05-23 13:09:14 +0300 975 976 CI: Add timeout-minutes 977 978 Sometimes the VM workflows (like FreeBSD VM on Ubuntu) get stuck 979 and the default timeout is six hours. While at it, set a sensible 980 timeout for all workflows. 981 982 .github/workflows/ci.yml | 1 + 983 .github/workflows/cifuzz.yml | 1 + 984 .github/workflows/dragonflybsd.yml | 1 + 985 .github/workflows/freebsd.yml | 1 + 986 .github/workflows/msvc.yml | 1 + 987 .github/workflows/msys2.yml | 1 + 988 .github/workflows/netbsd.yml | 1 + 989 .github/workflows/openbsd.yml | 1 + 990 .github/workflows/solaris.yml | 1 + 991 9 files changed, 9 insertions(+) 992 993commit d660fe5d56a804b0ef3eea550fdcd51dbe17e45b 994Author: Lasse Collin <lasse.collin@tukaani.org> 995Date: 2025-05-23 12:25:36 +0300 996 997 liblzma: Fix grammar in API docs 998 999 Fixes: a27920002dbc ("liblzma: Add generic support for input seeking (LZMA_SEEK).") 1000 1001 src/liblzma/api/lzma/base.h | 2 +- 1002 1 file changed, 1 insertion(+), 1 deletion(-) 1003 1004commit ab45bdf4322879dc2859b1f66f1f8cf89cdebe2c 1005Author: Lasse Collin <lasse.collin@tukaani.org> 1006Date: 2025-05-21 16:07:01 +0300 1007 1008 Update THANKS 1009 1010 THANKS | 1 + 1011 1 file changed, 1 insertion(+) 1012 1013commit f0239936532d40be05e75384c37fb8d6c1bb4ff6 1014Author: Lasse Collin <lasse.collin@tukaani.org> 1015Date: 2025-05-21 16:07:01 +0300 1016 1017 CMake: With symbol versioning, try to pass --undefined-version to linker 1018 1019 Fixes: https://github.com/tukaani-project/xz/issues/180 1020 Fixes: https://bugs.gentoo.org/956119 1021 1022 CMakeLists.txt | 22 ++++++++++++++++++++++ 1023 1 file changed, 22 insertions(+) 1024 1025commit 377be0ea7a1d0ec3572a7f9a5f9ed42adeaa4503 1026Author: Lasse Collin <lasse.collin@tukaani.org> 1027Date: 2025-05-21 16:07:01 +0300 1028 1029 Build: With symbol versioning, try to pass --undefined-version to linker 1030 1031 Fixes: https://github.com/tukaani-project/xz/issues/180 1032 Fixes: https://bugs.gentoo.org/956119 1033 1034 configure.ac | 23 +++++++++++++++++++++++ 1035 src/liblzma/Makefile.am | 2 ++ 1036 2 files changed, 25 insertions(+) 1037 1038commit ff49c82176ca53646a1cbbbb4efc35a542745812 1039Author: Lasse Collin <lasse.collin@tukaani.org> 1040Date: 2025-05-21 14:48:18 +0300 1041 1042 CMake: Fix comments 1043 1044 CMakeLists.txt | 4 ++-- 1045 1 file changed, 2 insertions(+), 2 deletions(-) 1046 1047commit 71ad5e82888fdfa0fe11defa4f46cb0fc90dc326 1048Author: Lasse Collin <lasse.collin@tukaani.org> 1049Date: 2025-05-21 13:14:04 +0300 1050 1051 Translations: Update Serbian man page translations 1052 1053 Compared to the file in the Translation Project, I still had to apply 1054 a few fixes that were needed with the previous (5.7.1-dev1) version too: 1055 1056 - Remove two extra '<' characters that break the build with po4a. 1057 1058 - Don't translate XZ_DEFAULTS and XZ_OPT environment variable names. 1059 1060 po4a/sr.po | 70 ++++++++++++++++++++------------------------------------------ 1061 1 file changed, 22 insertions(+), 48 deletions(-) 1062 1063commit 31a983ad4774054074b300f55ff519484ff182c2 1064Author: Lasse Collin <lasse.collin@tukaani.org> 1065Date: 2025-05-21 12:55:28 +0300 1066 1067 Update po/.gitignore 1068 1069 po/.gitignore | 1 + 1070 1 file changed, 1 insertion(+) 1071 1072commit d9e70da25ac761544146bc2fbab6443e1a080bf4 1073Author: Lasse Collin <lasse.collin@tukaani.org> 1074Date: 2025-05-21 12:54:42 +0300 1075 1076 Translations: Update the Spanish translation 1077 1078 po/es.po | 10 +++++----- 1079 1 file changed, 5 insertions(+), 5 deletions(-) 1080 1081commit dbfb925c8198087afb3527e6c57b66fae1a980bb 1082Author: Lasse Collin <lasse.collin@tukaani.org> 1083Date: 2025-05-03 12:37:28 +0300 1084 1085 Tests: Silence a warning from GCC 15.1 1086 1087 It was (probably) intentionally without the null terminator, but the test 1088 works with null terminator too (the test still fails with xz <= 5.0.3), 1089 so simply omit one character to silence the warning. 1090 1091 tests/test_bcj_exact_size.c:30:32: error: initializer-string for array of ‘unsigned char’ truncates NUL terminator but destination lacks ‘nonstring’ attribute (17 chars into 16 available) [-Werror=unterminated-string-initialization] 1092 30 | const uint8_t in[16] = "0123456789ABCDEF"; 1093 | ^~~~~~~~~~~~~~~~~~ 1094 1095 Fixes: d8db706acb83 ("liblzma: Fix possibility of incorrect LZMA_BUF_ERROR.") 1096 Fixes: https://github.com/tukaani-project/xz/issues/176 1097 1098 tests/test_bcj_exact_size.c | 2 +- 1099 1 file changed, 1 insertion(+), 1 deletion(-) 1100 1101commit 7c12726c51b2b7d77329dd72a29ecb1ec262b918 1102Author: Lasse Collin <lasse.collin@tukaani.org> 1103Date: 2025-04-28 18:16:14 +0300 1104 1105 Update THANKS 1106 1107 THANKS | 2 ++ 1108 1 file changed, 2 insertions(+) 1109 1110commit 1bd7361a043bd652ee5d0ebafd23459c57f57993 1111Author: Lasse Collin <lasse.collin@tukaani.org> 1112Date: 2025-04-25 17:32:03 +0300 1113 1114 Update THANKS 1115 1116 THANKS | 1 + 1117 1 file changed, 1 insertion(+) 1118 1119commit 5cc2e479eb447a444f5ab005fc36b7f275c75eb5 1120Author: Guillaume Outters <guillaume-installs@outters.eu> 1121Date: 2025-04-25 02:55:08 +0200 1122 1123 xz, xzdec: Capsicum sandbox: Fix incorrect use of cap_rights_clear() 1124 1125 cap_rights_clear() with no additional arguments acts as a no-op, so 1126 instead of removing all capability rights from STDIN_FILENO, the same 1127 rights were allowed for STDIN_FILENO as were allowed for src_fd. 1128 1129 Fixes: a0eecc235d3b ("xz: Make Capsicum sandbox more strict with stdin and stdout.") 1130 (The commit message says "stdout". It should have said "stderr".) 1131 1132 src/xz/sandbox.c | 2 +- 1133 src/xzdec/xzdec.c | 2 +- 1134 2 files changed, 2 insertions(+), 2 deletions(-) 1135 1136commit 56aa9a07968a6a73fada6f9b96122c5165829f3b 1137Author: Lasse Collin <lasse.collin@tukaani.org> 1138Date: 2025-04-22 21:12:50 +0300 1139 1140 CI: Valgrind: Improve the skipping of traced child processes 1141 1142 Use --trace-children-skip instead of --trace-children-skip-by-arg 1143 so that the skipping is only done based on the executable names. 1144 (--trace-children-skip-by-arg can match other args than argv[0].) 1145 1146 Update the list of executables to skip to match what the scripts run. 1147 1148 Do not skip bash or sh. If Valgrind didn't trace the shell, then the 1149 xz and xzdec programs run by the shell wouldn't be analyzed either. 1150 1151 Fixes: 7e99856f66c0 ("CI: Speed up Valgrind job by using --trace-children-skip-by-arg=...") 1152 1153 .github/workflows/ci.yml | 2 +- 1154 1 file changed, 1 insertion(+), 1 deletion(-) 1155 1156commit f33da20b75a45caad25c9a4daf7906e4f056ce91 1157Author: Lasse Collin <lasse.collin@tukaani.org> 1158Date: 2025-04-22 21:12:50 +0300 1159 1160 CI: Valgrind: Test with static liblzma 1161 1162 If shared liblzma is built, tests/test_* and src/xz/xz are wrapper 1163 scripts created by Libtool. The wrappers set library search path 1164 so that the freshly-built shared library is found. 1165 1166 With a static liblzma, no wrapper scripts are needed, and Libtool 1167 places the real executables to the aforementioned locations. This 1168 speeds up the tests under Valgrind dramatically. 1169 1170 Fixes: 6c095a98fbec ("ci: test Valgrind") 1171 1172 .github/workflows/ci.yml | 2 +- 1173 1 file changed, 1 insertion(+), 1 deletion(-) 1174 1175commit 5606fa89f91ca1d0d53e339d88f574fc731049c1 1176Author: Lasse Collin <lasse.collin@tukaani.org> 1177Date: 2025-04-22 21:12:50 +0300 1178 1179 CI: Add Ubuntu on ARM64 1180 1181 .github/workflows/ci.yml | 27 ++++++++++++++++----------- 1182 1 file changed, 16 insertions(+), 11 deletions(-) 1183 1184commit ec047a65a068087cc6f71133df414858f6886121 1185Author: Lasse Collin <lasse.collin@tukaani.org> 1186Date: 2025-04-22 16:21:50 +0300 1187 1188 Doxygen: Update the comment about tested versions 1189 1190 doxygen/Doxyfile | 2 +- 1191 1 file changed, 1 insertion(+), 1 deletion(-) 1192 1193commit 4f86e77bef8918b0c64183590609357a275558d8 1194Author: Lasse Collin <lasse.collin@tukaani.org> 1195Date: 2025-04-22 16:21:50 +0300 1196 1197 Doxygen: Set HAVE_DOT = NO 1198 1199 Debian and Ubuntu have a patch that changes the upstream default to 1200 HAVE_DOT = YES. Undo it to have more consistent results across distros. 1201 1202 This was noticed in Ubuntu CI runner where "doxygen" tried to run "dot" 1203 but that failed due to "dot" not being installed. "doxygen" still 1204 finished with exit status 0 until the commit that turned warnings to 1205 errors with WARN_AS_ERROR = FAIL_ON_WARNINGS. 1206 1207 doxygen/Doxyfile | 4 ++++ 1208 1 file changed, 4 insertions(+) 1209 1210commit ff96542d1c78f744d992be5890c95d90b2d19047 1211Author: Lasse Collin <lasse.collin@tukaani.org> 1212Date: 2025-04-22 16:21:50 +0300 1213 1214 Doxygen: Treat warnings as errors 1215 1216 Also set WARN_IF_UNDOCUMENTED = NO because even the API headers have 1217 a few things that won't have their own docs. 1218 1219 doxygen/Doxyfile | 2 ++ 1220 1 file changed, 2 insertions(+) 1221 1222commit a6711d1c4ad681aad985372d01a7deb21b4a1b8b 1223Author: Lasse Collin <lasse.collin@tukaani.org> 1224Date: 2025-04-22 16:21:50 +0300 1225 1226 Doxygen: Fix errors and some warnings in internal docs 1227 1228 src/liblzma/check/crc32_fast.c | 2 +- 1229 src/liblzma/check/crc64_fast.c | 2 +- 1230 src/liblzma/common/outqueue.h | 1 + 1231 src/xz/list.c | 2 ++ 1232 src/xz/message.h | 4 ++++ 1233 5 files changed, 9 insertions(+), 2 deletions(-) 1234 1235commit 8efd80adfcd65dfea086c1008452c6424b30b78c 1236Author: Lasse Collin <lasse.collin@tukaani.org> 1237Date: 2025-04-22 16:21:50 +0300 1238 1239 CI: Use --disable-sandbox instead of --enable-sandbox=no 1240 1241 It's the same thing, just a style difference. 1242 1243 build-aux/ci_build.bash | 2 +- 1244 1 file changed, 1 insertion(+), 1 deletion(-) 1245 1246commit a2e47c7a59d835ba80beef53b986d45e99ecd94a 1247Author: Lasse Collin <lasse.collin@tukaani.org> 1248Date: 2025-04-22 16:21:50 +0300 1249 1250 CI: Support Doxygen in ci_build.bash 1251 1252 build-aux/ci_build.bash | 4 ++++ 1253 1 file changed, 4 insertions(+) 1254 1255commit 9048e724945a3dfbf86d7f97437113f27ea41c63 1256Author: Lasse Collin <lasse.collin@tukaani.org> 1257Date: 2025-04-22 16:21:50 +0300 1258 1259 CI: Add Doxygen dependency to CMake builds on Ubuntu and macOS 1260 1261 .github/workflows/ci.yml | 4 ++-- 1262 1 file changed, 2 insertions(+), 2 deletions(-) 1263 1264commit d8e9dc63a6124336e72a849b8104ba60720f0fe2 1265Author: Lasse Collin <lasse.collin@tukaani.org> 1266Date: 2025-04-22 16:21:50 +0300 1267 1268 CI: Support XZ_NLS=OFF with CMake 1269 1270 build-aux/ci_build.bash | 1 + 1271 1 file changed, 1 insertion(+) 1272 1273commit ffa9fadecc85d21308aebac7b070fb5be791190f 1274Author: Lasse Collin <lasse.collin@tukaani.org> 1275Date: 2025-04-22 16:21:50 +0300 1276 1277 CI: Revise MSYS2 1278 1279 Re-enable CLANG64 environment. Add CLANGARM64. Don't add MINGW64 1280 to slightly reduce the number of runner VMs needed. 1281 1282 Install the required packages using the setup-msys2 action instead 1283 of running the commands separately. 1284 1285 Test Autotools and CMake in the same job to reduce the number of VMs. 1286 This doesn't slow it down too much because the msys2-setup step is 1287 needed by both. However, do only the full builds on ARM64 because 1288 those runners seem to be slower. 1289 1290 Test fewer build configurations. The point of testing on MSYS2 is to 1291 catch Windows-related issues. It should be enough that the more unusual 1292 build configurations are tested in ci.yml. 1293 1294 Run the build commands directly instead of using ci_build.bash. This 1295 makes it easier to see what commands are run even if it is a little 1296 more verbose now. 1297 1298 Run the workflow automatically when commit are pushed to master. 1299 With the fewer build variants it's not too slow. 1300 1301 .github/workflows/msys2.yml | 197 +++++++++++++++++++++++++------------------- 1302 1 file changed, 110 insertions(+), 87 deletions(-) 1303 1304commit 6f2aaa77daef7b408dc0d9c9a534373a30da7a50 1305Author: Lasse Collin <lasse.collin@tukaani.org> 1306Date: 2025-04-22 16:21:50 +0300 1307 1308 CI: Rename the MSYS2 workflow file 1309 1310 .github/workflows/{windows-ci.yml => msys2.yml} | 0 1311 1 file changed, 0 insertions(+), 0 deletions(-) 1312 1313commit 09110ad4c74f3ee1b4b0355d92b703525eddd3ff 1314Author: Lasse Collin <lasse.collin@tukaani.org> 1315Date: 2025-04-22 16:21:50 +0300 1316 1317 CI: Enable assertions on NetBSD + CMake 1318 1319 .github/workflows/netbsd.yml | 2 +- 1320 1 file changed, 1 insertion(+), 1 deletion(-) 1321 1322commit 516b90f6e1beb243dd76adc82da0ee47e525f863 1323Author: Lasse Collin <lasse.collin@tukaani.org> 1324Date: 2025-04-21 12:23:37 +0300 1325 1326 liblzma: Update lzma_lzip_decoder() docs about trailing data 1327 1328 Don't say that the .lz format allows trailing data. According to the 1329 lzip 1.25 manual, trailing data isn't part of the file format at all. 1330 However, tools are still expected to behave as usefully as possible 1331 when there is trailing data. 1332 1333 Fix the description of lzip >= 1.20 behavior when some of the first 1334 bytes of trailing data match the magic bytes. While the lzip 1.25 manual 1335 recommends that none of the first four bytes in trailing data should 1336 match the magic bytes, the default behavior of lzip 1.25 treats 1337 trailing data as a corrupt member header only if two or three bytes 1338 match the magic bytes; one matching byte isn't enough. 1339 1340 Reported-by: Antonio Diaz Diaz 1341 Link: https://www.mail-archive.com/xz-devel@tukaani.org/msg00702.html 1342 1343 src/liblzma/api/lzma/container.h | 23 +++++++++++------------ 1344 1 file changed, 11 insertions(+), 12 deletions(-) 1345 1346commit c330220d47dc09a5bab805d22654c8c0a73d21a9 1347Author: Lasse Collin <lasse.collin@tukaani.org> 1348Date: 2025-04-21 11:21:08 +0300 1349 1350 Update THANKS 1351 1352 THANKS | 1 + 1353 1 file changed, 1 insertion(+) 1354 1355commit 6cc7672c2238e7fc66bba33cff50cecd30411063 1356Author: Lasse Collin <lasse.collin@tukaani.org> 1357Date: 2025-04-17 20:36:33 +0300 1358 1359 CI: Add DragonflyBSD 1360 1361 .github/workflows/dragonflybsd.yml | 39 ++++++++++++++++++++++++++++++++++++++ 1362 1 file changed, 39 insertions(+) 1363 1364commit 07dc50913725496bd89178539190292a66e18710 1365Author: Lasse Collin <lasse.collin@tukaani.org> 1366Date: 2025-04-17 20:36:33 +0300 1367 1368 CI: Update Solaris 1369 1370 .github/workflows/solaris.yml | 37 +++++++++++++++++++------------------ 1371 1 file changed, 19 insertions(+), 18 deletions(-) 1372 1373commit cfcaae1945c0c33df86477138746e68428972a53 1374Author: Lasse Collin <lasse.collin@tukaani.org> 1375Date: 2025-04-17 20:36:33 +0300 1376 1377 CI: Update OpenBSD 1378 1379 Use --disable-nls --enable-external-sha256 because those are used 1380 in the xz Makefile in the OpenBSD ports tree. 1381 1382 .github/workflows/openbsd.yml | 46 +++++++++++++++++++++++-------------------- 1383 1 file changed, 25 insertions(+), 21 deletions(-) 1384 1385commit 5240fcfee3b1386029a26629d75f1465b9e85ca3 1386Author: Lasse Collin <lasse.collin@tukaani.org> 1387Date: 2025-04-17 20:36:33 +0300 1388 1389 CI: Update NetBSD 1390 1391 For variety, use CMake and Ninja. 1392 1393 .github/workflows/netbsd.yml | 43 +++++++++++++++++++++++++------------------ 1394 1 file changed, 25 insertions(+), 18 deletions(-) 1395 1396commit 85ff0cf0ce11b017af21c040330f6a0c09ef7f77 1397Author: Lasse Collin <lasse.collin@tukaani.org> 1398Date: 2025-04-17 20:36:33 +0300 1399 1400 CI: Update FreeBSD 1401 1402 ARM64 was left commented out because it's slow under both 1403 ubuntu-latest (x86-64) and ubuntu-24.04-arm (aarch64) hosts. 1404 1405 .github/workflows/freebsd.yml | 61 +++++++++++++++++++++++++++++-------------- 1406 1 file changed, 42 insertions(+), 19 deletions(-) 1407 1408commit 907ac2215db1613312dc292219bac798d76394f4 1409Author: Lasse Collin <lasse.collin@tukaani.org> 1410Date: 2025-04-11 17:25:53 +0300 1411 1412 CI: Specify only the main version of the standard GH actions 1413 1414 .github/workflows/ci.yml | 4 ++-- 1415 .github/workflows/msvc.yml | 2 +- 1416 2 files changed, 3 insertions(+), 3 deletions(-) 1417 1418commit b0d0e624740b92415f78274702b5b5bfbffe4543 1419Author: Lasse Collin <lasse.collin@tukaani.org> 1420Date: 2025-04-11 17:15:08 +0300 1421 1422 CI: Add 'permissions' to ci.yml and msvc.yml 1423 1424 .github/workflows/ci.yml | 2 ++ 1425 .github/workflows/msvc.yml | 2 ++ 1426 2 files changed, 4 insertions(+) 1427 1428commit 1edc14e8ca4fc1f25ee43f17f290c045df7f49e0 1429Author: Sam James <sam@gentoo.org> 1430Date: 2025-04-10 23:15:31 +0300 1431 1432 CI: Add CIFuzz 1433 1434 xz is already part of OSS-Fuzz, but OSS-Fuzz provides & encourages [0] 1435 its 'CIFuzz' service to test individual commits. 1436 1437 [0] https://google.github.io/oss-fuzz/getting-started/continuous-integration/ 1438 1439 Co-authored-by: Lasse Collin <lasse.collin@tukaani.org> 1440 1441 .github/workflows/cifuzz.yml | 54 ++++++++++++++++++++++++++++++++++++++++++++ 1442 1 file changed, 54 insertions(+) 1443 1444commit 35e06c4c426c6cc3866a9003e87a122eb78bccf2 1445Author: Lasse Collin <lasse.collin@tukaani.org> 1446Date: 2025-04-12 15:31:01 +0300 1447 1448 CMake: Don't check for optreset if using replacement getopt_long 1449 1450 If <getopt.h> had optreset but not getopt_long, xz used optreset while 1451 the replacement getopt_long doesn't support optreset. I'm not aware of 1452 any relevant system where bug is possible. Autotools build didn't have 1453 this bug. 1454 1455 Fixes: af66cd585902 ("CMake: Add support for replacement getopt_long (lib/getopt*).") 1456 1457 CMakeLists.txt | 6 ++++-- 1458 1 file changed, 4 insertions(+), 2 deletions(-) 1459 1460commit 99f4b9db9dfc3dabad330df6242e4632c42393c6 1461Author: Lasse Collin <lasse.collin@tukaani.org> 1462Date: 2025-04-17 18:33:10 +0300 1463 1464 Update THANKS 1465 1466 THANKS | 1 + 1467 1 file changed, 1 insertion(+) 1468 1469commit dd006a67e593cb5d3dec5180face7e3010fe78da 1470Author: Lasse Collin <lasse.collin@tukaani.org> 1471Date: 2025-04-17 18:30:26 +0300 1472 1473 liblzma: Update the lzma_lzip_decoder() docs about sync flush marker 1474 1475 src/liblzma/api/lzma/container.h | 15 +++++++-------- 1476 1 file changed, 7 insertions(+), 8 deletions(-) 1477 1478commit f59c5859600b5dfeaa618fcc04e9e3bb2b005f5c 1479Author: Lasse Collin <lasse.collin@tukaani.org> 1480Date: 2025-04-17 18:16:40 +0300 1481 1482 xz: Don't mention lzip's sync flush marker on the man page 1483 1484 The sync flush marker isn't valid in .lz files. The sync flush marker 1485 may be used by lzlib, but the resulting streams are only meant to be 1486 decoded by lzlib itself. lzlib's docs make this clear. 1487 1488 Reported-by: Antonio Diaz Diaz 1489 Link: https://www.mail-archive.com/xz-devel@tukaani.org/msg00700.html 1490 Link: https://www.mail-archive.com/xz-devel@tukaani.org/msg00701.html 1491 1492 src/xz/xz.1 | 9 +-------- 1493 1 file changed, 1 insertion(+), 8 deletions(-) 1494 1495commit 49258439b4ead6866798c1ebf8a083ec9ec04520 1496Author: Lasse Collin <lasse.collin@tukaani.org> 1497Date: 2025-04-17 18:15:48 +0300 1498 1499 Update THANKS 1500 1501 THANKS | 1 + 1502 1 file changed, 1 insertion(+) 1503 1504commit a69fbd3aaebc15dc5912e64724e5abfcef09bcdf 1505Author: Lasse Collin <lasse.collin@tukaani.org> 1506Date: 2025-04-10 20:13:07 +0300 1507 1508 CI: MSVC: Use fewer runners for the same number of tests 1509 1510 Using eight runners seems wasteful. Using only two runners isn't 1511 much slower due to the runner startup overhead. 1512 1513 Also add a comment about the test that fails without b5a5d9e3f702. 1514 1515 .github/workflows/msvc.yml | 66 ++++++++++++++++++++++++++++++++++++++-------- 1516 1 file changed, 55 insertions(+), 11 deletions(-) 1517 1518commit 8a300d1c4fc644af482fb679044794c3e3f6f3e5 1519Author: Lasse Collin <lasse.collin@tukaani.org> 1520Date: 2025-04-10 20:10:31 +0300 1521 1522 Update THANKS 1523 1524 THANKS | 1 + 1525 1 file changed, 1 insertion(+) 1526 1527commit b5a5d9e3f7022e546cdfd4ddc42fe4cc56839c05 1528Author: Lasse Collin <lasse.collin@tukaani.org> 1529Date: 2025-04-07 22:36:58 +0300 1530 1531 liblzma: Disable CLMUL CRC on old MSVC targeting 32-bit x86 1532 1533 On GitHub runners, VS 2019 16.11 (MSVC 19.29.30158) results in 1534 test failures. VS 2022 17.13 (MSVC 19.43.34808) works. 1535 1536 In xz 5.6.x there was a #pragma-based workaround for MSVC builds for 1537 32-bit x86. Another method was thought to work with the new rewritten 1538 CLMUL CRC. Apparently it doesn't. Keep it simple and disable CLMUL CRC 1539 with any non-recent MSVC when building for 32-bit x86. 1540 1541 Fixes: 54eaea5ea49b ("liblzma: x86 CLMUL CRC: Rewrite") 1542 Fixes: https://github.com/tukaani-project/xz/issues/171 1543 Reported-by: Andrew Murray 1544 1545 src/liblzma/check/crc_common.h | 16 +++++++++++++--- 1546 1 file changed, 13 insertions(+), 3 deletions(-) 1547 1548commit c5fd88dfc3d2b4178dc6da65b02a63a4ef9280c5 1549Author: Lasse Collin <lasse.collin@tukaani.org> 1550Date: 2025-04-07 22:36:58 +0300 1551 1552 liblzma: Remove MSVC hack from CLMUL CRC 1553 1554 It's not enough with MSVC 19.29 (VS 2019) even if the hack was also 1555 applied to the CRC32 code. The tests crash when built for 32-bit x86. 1556 1557 src/liblzma/check/crc64_fast.c | 8 -------- 1558 1 file changed, 8 deletions(-) 1559 1560commit 49ba8c69ea7f928aded77bd856085c85a8d26156 1561Author: Lasse Collin <lasse.collin@tukaani.org> 1562Date: 2025-04-07 22:36:52 +0300 1563 1564 CI: Test 32/64-bit x86 builds with Visual Studio 2019 and 2022 1565 1566 .github/workflows/msvc.yml | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1567 1 file changed, 45 insertions(+) 1568 1569commit 1176a19df6b1585b51131b0e2570e03f1fc14f46 1570Author: Lasse Collin <lasse.collin@tukaani.org> 1571Date: 2025-04-04 20:08:37 +0300 1572 1573 Tests: Add fuzz_decode_stream_mt.options 1574 1575 tests/ossfuzz/config/fuzz_decode_stream_mt.options | 4 ++++ 1576 1 file changed, 4 insertions(+) 1577 1578commit c3cb1e53a114ac944f559fe7cac45dbf48cca156 1579Author: Lasse Collin <lasse.collin@tukaani.org> 1580Date: 2025-04-03 15:06:07 +0300 1581 1582 doc/SHA256SUMS: Add 5.8.1 1583 1584 doc/SHA256SUMS | 7 +++++++ 1585 1 file changed, 7 insertions(+) 1586 1587commit a522a226545730551f7e7c2685fab27cf567746c 1588Author: Lasse Collin <lasse.collin@tukaani.org> 1589Date: 2025-04-03 14:34:43 +0300 1590 1591 Bump version and soname for 5.8.1 1592 1593 src/liblzma/Makefile.am | 2 +- 1594 src/liblzma/api/lzma/version.h | 2 +- 1595 2 files changed, 2 insertions(+), 2 deletions(-) 1596 1597commit 1c462c2ad86ff85766928638431029cd0b0dc995 1598Author: Lasse Collin <lasse.collin@tukaani.org> 1599Date: 2025-04-03 14:34:43 +0300 1600 1601 Add NEWS for 5.8.1 1602 1603 NEWS | 30 ++++++++++++++++++++++++++++++ 1604 1 file changed, 30 insertions(+) 1605 1606commit 513cabcf7f5ce1c3ed0619e791393fc53d1dbbd0 1607Author: Lasse Collin <lasse.collin@tukaani.org> 1608Date: 2025-04-03 14:34:43 +0300 1609 1610 Tests: Call lzma_code() in smaller chunks in fuzz_common.h 1611 1612 This makes it easy to crash fuzz_decode_stream_mt when tested 1613 against the code from 5.8.0. 1614 1615 Obviously this might make it harder to reach some other code path now. 1616 The previous code has been in use since 2018 when fuzzing was added 1617 in 106d1a663d4b ("Tests: Add a fuzz test program and a config file 1618 for OSS-Fuzz."). 1619 1620 tests/ossfuzz/fuzz_common.h | 31 ++++++++++++++++++++++++------- 1621 1 file changed, 24 insertions(+), 7 deletions(-) 1622 1623commit 48440e24a25911ae59e8518b67a1e0f6f1c293bf 1624Author: Lasse Collin <lasse.collin@tukaani.org> 1625Date: 2025-04-03 14:34:43 +0300 1626 1627 Tests: Add a fuzzing target for the multithreaded .xz decoder 1628 1629 It doesn't seem possible to trigger the CVE-2025-31115 bug with this 1630 fuzzing target at the moment. It's because the code in fuzz_common.h 1631 passes the whole input buffer to lzma_code() at once. 1632 1633 tests/ossfuzz/fuzz_decode_stream_mt.c | 47 +++++++++++++++++++++++++++++++++++ 1634 1 file changed, 47 insertions(+) 1635 1636commit 0c80045ab82c406858d9d5bcea9f48ebc3d0a81d 1637Author: Lasse Collin <lasse.collin@tukaani.org> 1638Date: 2025-04-03 14:34:42 +0300 1639 1640 liblzma: mt dec: Fix lack of parallelization in single-shot decoding 1641 1642 Single-shot decoding means calling lzma_code() by giving it the whole 1643 input at once and enough output buffer space to store the uncompressed 1644 data, and combining this with LZMA_FINISH and no timeout 1645 (lzma_mt.timeout = 0). This way the file is decoded with a single 1646 lzma_code() call if possible. 1647 1648 The bug prevented the decoder from starting more than one worker thread 1649 in single-shot mode. The issue was noticed when reviewing the code; 1650 there are no bug reports. Thus maybe few have tried this mode. 1651 1652 Fixes: 64b6d496dc81 ("liblzma: Threaded decoder: Always wait for output if LZMA_FINISH is used.") 1653 1654 src/liblzma/common/stream_decoder_mt.c | 11 +++++++++-- 1655 1 file changed, 9 insertions(+), 2 deletions(-) 1656 1657commit 8188048854e8d11071b8a50d093c74f4c030acc9 1658Author: Lasse Collin <lasse.collin@tukaani.org> 1659Date: 2025-04-03 14:34:42 +0300 1660 1661 liblzma: mt dec: Don't modify thr->in_size in the worker thread 1662 1663 Don't set thr->in_size = 0 when returning the thread to the stack of 1664 available threads. Not only is it useless, but the main thread may 1665 read the value in SEQ_BLOCK_THR_RUN. With valid inputs, it made 1666 no difference if the main thread saw the original value or 0. With 1667 invalid inputs (when worker thread stops early), thr->in_size was 1668 no longer modified after the previous commit with the security fix 1669 ("Don't free the input buffer too early"). 1670 1671 So while the bug appears harmless now, it's important to fix it because 1672 the variable was being modified without proper locking. It's trivial 1673 to fix because there is no need to change the value. Only main thread 1674 needs to set the value in (in SEQ_BLOCK_THR_INIT) when starting a new 1675 Block before the worker thread is activated. 1676 1677 Fixes: 4cce3e27f529 ("liblzma: Add threaded .xz decompressor.") 1678 Reviewed-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc> 1679 Thanks-to: Sam James <sam@gentoo.org> 1680 1681 src/liblzma/common/stream_decoder_mt.c | 6 ++++-- 1682 1 file changed, 4 insertions(+), 2 deletions(-) 1683 1684commit d5a2ffe41bb77b918a8c96084885d4dbe4bf6480 1685Author: Lasse Collin <lasse.collin@tukaani.org> 1686Date: 2025-04-03 14:34:42 +0300 1687 1688 liblzma: mt dec: Don't free the input buffer too early (CVE-2025-31115) 1689 1690 The input buffer must be valid as long as the main thread is writing 1691 to the worker-specific input buffer. Fix it by making the worker 1692 thread not free the buffer on errors and not return the worker thread to 1693 the pool. The input buffer will be freed when threads_end() is called. 1694 1695 With invalid input, the bug could at least result in a crash. The 1696 effects include heap use after free and writing to an address based 1697 on the null pointer plus an offset. 1698 1699 The bug has been there since the first committed version of the threaded 1700 decoder and thus affects versions from 5.3.3alpha to 5.8.0. 1701 1702 As the commit message in 4cce3e27f529 says, I had made significant 1703 changes on top of Sebastian's patch. This bug was indeed introduced 1704 by my changes; it wasn't in Sebastian's version. 1705 1706 Thanks to Harri K. Koskinen for discovering and reporting this issue. 1707 1708 Fixes: 4cce3e27f529 ("liblzma: Add threaded .xz decompressor.") 1709 Reported-by: Harri K. Koskinen <x64nop@nannu.org> 1710 Reviewed-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc> 1711 Thanks-to: Sam James <sam@gentoo.org> 1712 1713 src/liblzma/common/stream_decoder_mt.c | 31 ++++++++++++++++++++++--------- 1714 1 file changed, 22 insertions(+), 9 deletions(-) 1715 1716commit c0c835964dfaeb2513a3c0bdb642105152fe9f34 1717Author: Lasse Collin <lasse.collin@tukaani.org> 1718Date: 2025-04-03 14:34:42 +0300 1719 1720 liblzma: mt dec: Simplify by removing the THR_STOP state 1721 1722 The main thread can directly set THR_IDLE in threads_stop() which is 1723 called when errors are detected. threads_stop() won't return the stopped 1724 threads to the pool or free the memory pointed by thr->in anymore, but 1725 it doesn't matter because the existing workers won't be reused after 1726 an error. The resources will be cleaned up when threads_end() is 1727 called (reinitializing the decoder always calls threads_end()). 1728 1729 Reviewed-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc> 1730 Thanks-to: Sam James <sam@gentoo.org> 1731 1732 src/liblzma/common/stream_decoder_mt.c | 75 +++++++++++++--------------------- 1733 1 file changed, 29 insertions(+), 46 deletions(-) 1734 1735commit 831b55b971cf579ee16a854f177c36b20d3c6999 1736Author: Lasse Collin <lasse.collin@tukaani.org> 1737Date: 2025-04-03 14:34:42 +0300 1738 1739 liblzma: mt dec: Fix a comment 1740 1741 Reviewed-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc> 1742 Thanks-to: Sam James <sam@gentoo.org> 1743 1744 src/liblzma/common/stream_decoder_mt.c | 2 +- 1745 1 file changed, 1 insertion(+), 1 deletion(-) 1746 1747commit b9d168eee4fb6393b4fe207c0aeb5faee316ca1a 1748Author: Lasse Collin <lasse.collin@tukaani.org> 1749Date: 2025-04-03 14:34:30 +0300 1750 1751 liblzma: Add assertions to lzma_bufcpy() 1752 1753 src/liblzma/common/common.c | 6 ++++++ 1754 1 file changed, 6 insertions(+) 1755 1756commit c8e0a4897b4d0f906966f5d4d4f662221d64f3ae 1757Author: Lasse Collin <lasse.collin@tukaani.org> 1758Date: 2025-04-02 16:40:22 +0300 1759 1760 DOS: Update Makefile to fix the build 1761 1762 dos/Makefile | 2 ++ 1763 1 file changed, 2 insertions(+) 1764 1765commit 307c02ed698a69763ef1c9c0df4ff24727442118 1766Author: Lasse Collin <lasse.collin@tukaani.org> 1767Date: 2025-03-29 12:41:32 +0200 1768 1769 sysdefs.h: Avoid <stdalign.h> even with C11 compilers 1770 1771 Oracle Developer Studio 12.6 on Solaris 10 claims C11 support in 1772 __STDC_VERSION__ and supports _Alignas. However, <stdalign.h> is missing. 1773 We only need alignas, so define it to _Alignas with C11/C17 compilers. 1774 If something included <stdalign.h> later, it shouldn't cause problems. 1775 1776 Thanks to Ihsan Dogan for reporting the issue and testing the fix. 1777 1778 Fixes: c0e7eaae8d6eef1e313c9d0da20ccf126ec61f38 1779 1780 src/common/sysdefs.h | 4 +++- 1781 1 file changed, 3 insertions(+), 1 deletion(-) 1782 1783commit 7ce38b318339d6c01378a77585e08169ca3a604e 1784Author: Lasse Collin <lasse.collin@tukaani.org> 1785Date: 2025-03-29 12:32:05 +0200 1786 1787 Update THANKS 1788 1789 THANKS | 1 + 1790 1 file changed, 1 insertion(+) 1791 1792commit 688e51bde4c987589717b2be1a1fde9576c604fc 1793Author: Lasse Collin <lasse.collin@tukaani.org> 1794Date: 2025-03-29 12:21:51 +0200 1795 1796 Translations: Update the Croatian translation 1797 1798 po/hr.po | 14 +++++++------- 1799 1 file changed, 7 insertions(+), 7 deletions(-) 1800 1801commit 173fb5c68b08a8c1369550267be258132b7760c6 1802Author: Lasse Collin <lasse.collin@tukaani.org> 1803Date: 2025-03-25 18:23:57 +0200 1804 1805 doc/SHA256SUMS: Add 5.8.0 1806 1807 doc/SHA256SUMS | 6 ++++++ 1808 1 file changed, 6 insertions(+) 1809 1810commit db9258e828bc2cd96e3954f1ddcc9d3530589025 1811Author: Lasse Collin <lasse.collin@tukaani.org> 1812Date: 2025-03-25 15:18:32 +0200 1813 1814 Bump version and soname for 5.8.0 1815 1816 Also remove the LZMA_UNSTABLE macro. 1817 1818 src/liblzma/Makefile.am | 2 +- 1819 src/liblzma/api/lzma/bcj.h | 2 -- 1820 src/liblzma/api/lzma/version.h | 6 +++--- 1821 src/liblzma/common/common.h | 2 -- 1822 src/liblzma/liblzma_generic.map | 2 +- 1823 src/liblzma/liblzma_linux.map | 2 +- 1824 6 files changed, 6 insertions(+), 10 deletions(-) 1825 1826commit bfb752a38f89ed03fc93d54f11c09f43fda64bc2 1827Author: Lasse Collin <lasse.collin@tukaani.org> 1828Date: 2025-03-25 15:18:32 +0200 1829 1830 Add NEWS for 5.8.0 1831 1832 NEWS | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1833 1 file changed, 62 insertions(+) 1834 1835commit 6ccbb904da851eb0c174c8dbd43e84da31739720 1836Author: Lasse Collin <lasse.collin@tukaani.org> 1837Date: 2025-03-25 15:18:31 +0200 1838 1839 Translations: Run "make -C po update-po" 1840 1841 POT-Creation-Date is set to match the timestamp in 5.7.2beta which 1842 in the Translation Project is known as 5.8.0-pre1. The strings 1843 haven't changed since 5.7.1alpha but a few comments have. 1844 1845 This is a very noisy commit, but this helps keeping the PO files 1846 similar between the Git repository and stable release tarballs. 1847 1848 po/ca.po | 964 ++++++++++++++++++++++++++++++++++++++++++++--------------- 1849 po/cs.po | 935 ++++++++++++++++++++++++++++++++++++++++++---------------- 1850 po/da.po | 663 ++++++++++++++++++++++++++++++----------- 1851 po/de.po | 7 +- 1852 po/eo.po | 966 +++++++++++++++++++++++++++++++++++++++++++++--------------- 1853 po/es.po | 7 +- 1854 po/fi.po | 2 +- 1855 po/fr.po | 916 +++++++++++++++++++++++++++++++++++++++++--------------- 1856 po/hu.po | 966 +++++++++++++++++++++++++++++++++++++++++++++--------------- 1857 po/ka.po | 7 +- 1858 po/ko.po | 7 +- 1859 po/nl.po | 7 +- 1860 po/pl.po | 7 +- 1861 po/pt_BR.po | 962 ++++++++++++++++++++++++++++++++++++++++++++--------------- 1862 po/sr.po | 2 +- 1863 po/sv.po | 7 +- 1864 po/tr.po | 7 +- 1865 po/uk.po | 7 +- 1866 po/vi.po | 948 +++++++++++++++++++++++++++++++++++++++++++--------------- 1867 po/zh_CN.po | 940 ++++++++++++++++++++++++++++++++++++++++++++-------------- 1868 po/zh_TW.po | 2 +- 1869 21 files changed, 6209 insertions(+), 2120 deletions(-) 1870 1871commit 891a5f057a6bb2dd2e3ce5e3bdd7a1f1ee03b800 1872Author: Lasse Collin <lasse.collin@tukaani.org> 1873Date: 2025-03-25 15:18:31 +0200 1874 1875 Translations: Run po4a/update-po 1876 1877 Also remove the trivial obsolete messages like man page dates. 1878 1879 This is a noisy commit, but this helps keeping the PO files similar 1880 between the Git repository and stable release tarballs. 1881 1882 po4a/fr.po | 82 +++++++++++++++++++++++++++++++++++++------------------ 1883 po4a/pt_BR.po | 88 +++++++++++++++++++++++++++++++++++++++++------------------ 1884 po4a/sr.po | 79 ++++++++++++++++++++++++++++++++++------------------- 1885 3 files changed, 167 insertions(+), 82 deletions(-) 1886 1887commit 4f52e7387012cb3510b01c937dd9b3a0c6a3ac6c 1888Author: Lasse Collin <lasse.collin@tukaani.org> 1889Date: 2025-03-25 15:18:31 +0200 1890 1891 Translations: Partially fix overtranslation in Serbian man pages 1892 1893 Names of environment variables and some other strings must be present 1894 in the original form. The translator couldn't be reached so I'm 1895 changing some of the strings myself. In the "Robot mode" section, 1896 occurrences in the middle of sentences weren't changed to reduce 1897 the chance of grammar breakage, but I kept the translated strings in 1898 parenthesis in the headings. It's not ideal, but now people shouldn't 1899 need to look at the English man page to find the English strings. 1900 1901 po4a/sr.po | 66 ++++++++++++++++++++++++++++++++++++++++++-------------------- 1902 1 file changed, 45 insertions(+), 21 deletions(-) 1903 1904commit ff5d944749b99eb5ab35e2ebaf01d05a59e7169b 1905Author: Lasse Collin <lasse.collin@tukaani.org> 1906Date: 2025-03-25 15:18:31 +0200 1907 1908 liblzma: Count the extra bytes in LZMA/LZMA2 decoder memory usage 1909 1910 src/liblzma/lz/lz_decoder.c | 3 ++- 1911 1 file changed, 2 insertions(+), 1 deletion(-) 1912 1913commit 943b012d09f717f7b44284c4e4976ea41264c731 1914Author: Lasse Collin <lasse.collin@tukaani.org> 1915Date: 2025-03-25 15:18:31 +0200 1916 1917 liblzma: Use SSE2 intrinsics instead of memcpy() in dict_repeat() 1918 1919 SSE2 is supported on every x86-64 processor. The SSE2 code is used on 1920 32-bit x86 if compiler options permit unconditional use of SSE2. 1921 1922 dict_repeat() copies short random-sized unaligned buffers. At least 1923 on glibc, FreeBSD, and Windows (MSYS2, UCRT, MSVCRT), memcpy() is 1924 clearly faster than byte-by-byte copying in this use case. Compared 1925 to the memcpy() version, the new SSE2 version reduces decompression 1926 time by 0-5 % depending on the machine and libc. It should never be 1927 slower than the memcpy() version. 1928 1929 However, on musl 1.2.5 on x86-64, the memcpy() version is the slowest. 1930 Compared to the memcpy() version: 1931 1932 - The byte-by-version takes 6-7 % less time to decompress. 1933 - The SSE2 version takes 16-18 % less time to decompress. 1934 1935 The numbers are from decompressing a Linux kernel source tarball in 1936 single-threaded mode on older AMD and Intel systems. The tarball 1937 compresses well, and thus dict_repeat() performance matters more 1938 than with some other files. 1939 1940 src/liblzma/lz/lz_decoder.c | 14 ++++++-- 1941 src/liblzma/lz/lz_decoder.h | 87 ++++++++++++++++++++++++++++++++++++++++----- 1942 2 files changed, 90 insertions(+), 11 deletions(-) 1943 1944commit bc14e4c94e788d42eeab984298391fc0ca46f969 1945Author: Lasse Collin <lasse.collin@tukaani.org> 1946Date: 2025-03-25 15:18:31 +0200 1947 1948 liblzma: Add "restrict" to a few functions in lz_decoder.h 1949 1950 This doesn't make any difference in practice because compilers can 1951 already see that writing through the dict->buf pointer cannot modify 1952 the contents of *dict itself: The LZMA decoder makes a local copy of 1953 the lzma_dict structure, and even if it didn't, the pointer to 1954 lzma_dict in the LZMA decoder is already "restrict". 1955 1956 It's nice to add "restrict" anyway. uint8_t is typically unsigned char 1957 which can alias anything. Without the above conditions or "restrict", 1958 compilers could need to assume that writing through dict->buf might 1959 modify *dict. This would matter in dict_repeat() because the loops 1960 refer to dict->buf and dict->pos instead of making local copies of 1961 those members for the duration of the loops. If compilers had to 1962 assume that writing through dict->buf can affect *dict, then compilers 1963 would need to emit code that reloads dict->buf and dict->pos after 1964 every write through dict->buf. 1965 1966 src/liblzma/lz/lz_decoder.h | 7 ++++--- 1967 1 file changed, 4 insertions(+), 3 deletions(-) 1968 1969commit e82ee090c567e560f51a056775a17f534d159d65 1970Author: Lasse Collin <lasse.collin@tukaani.org> 1971Date: 2025-03-25 15:18:30 +0200 1972 1973 liblzma: Define LZ_DICT_INIT_POS for initial dictionary position 1974 1975 It's more readable. 1976 1977 src/liblzma/lz/lz_decoder.c | 4 ++-- 1978 src/liblzma/lz/lz_decoder.h | 9 ++++++--- 1979 2 files changed, 8 insertions(+), 5 deletions(-) 1980 1981commit 8e7cd0091e5239334437decbe1989662d45a2f47 1982Author: Lasse Collin <lasse.collin@tukaani.org> 1983Date: 2025-03-25 15:18:30 +0200 1984 1985 Windows: Update README-Windows.txt about UCRT 1986 1987 windows/README-Windows.txt | 3 ++- 1988 1 file changed, 2 insertions(+), 1 deletion(-) 1989 1990commit 2c24292d341e505e5579fccac3bce5bc71d839ef 1991Author: Lasse Collin <lasse.collin@tukaani.org> 1992Date: 2025-03-25 15:18:15 +0200 1993 1994 Update THANKS 1995 1996 THANKS | 1 + 1997 1 file changed, 1 insertion(+) 1998 1999commit 48053c90898fa191a216aefca01626520a7413f4 2000Author: Lasse Collin <lasse.collin@tukaani.org> 2001Date: 2025-03-17 15:33:25 +0200 2002 2003 Translations: Update the Italian translation 2004 2005 po/it.po | 32 ++++++++++++++++---------------- 2006 1 file changed, 16 insertions(+), 16 deletions(-) 2007 2008commit 8d6f06a65f50358fad13567f5dd8af41ef1d2b58 2009Author: Lasse Collin <lasse.collin@tukaani.org> 2010Date: 2025-03-17 15:28:56 +0200 2011 2012 Translations: Update the Portuguese translation 2013 2014 The language tag in the Translation Project is pt, not pt_PT, 2015 thus I changed the "Language:" line to pt. 2016 2017 po/pt.po | 1045 +++++++++++++++++++++++++++++++------------------------------- 2018 1 file changed, 526 insertions(+), 519 deletions(-) 2019 2020commit c3439b039f46fe547ad603e16dc3bd63c1ca9b0c 2021Author: Lasse Collin <lasse.collin@tukaani.org> 2022Date: 2025-03-14 13:02:21 +0200 2023 2024 Translations: Update the Italian translation 2025 2026 po/it.po | 1020 +++++++++++++++++++++++++++++++------------------------------- 2027 1 file changed, 516 insertions(+), 504 deletions(-) 2028 2029commit 79b4ab8d79528dd633a84df2d29e63f5d13ccbdf 2030Author: Lasse Collin <lasse.collin@tukaani.org> 2031Date: 2025-03-12 20:48:39 +0200 2032 2033 Translations: Update the Italian man page translations 2034 2035 Only trivial additions but this keeps the file in sync with the TP. 2036 2037 po4a/it.po | 4 ++-- 2038 1 file changed, 2 insertions(+), 2 deletions(-) 2039 2040commit 515b6fc8557825e1335012b3b1c8cf71e2c38775 2041Author: Lasse Collin <lasse.collin@tukaani.org> 2042Date: 2025-03-12 19:38:54 +0200 2043 2044 Translations: Update the Italian man page translations 2045 2046 po4a/it.po | 129 ++++++++++++++++++++++++++++++++++++------------------------- 2047 1 file changed, 77 insertions(+), 52 deletions(-) 2048 2049commit 333b7c0b776295f0941269b4e6cdb1a0ba5f6218 2050Author: Lasse Collin <lasse.collin@tukaani.org> 2051Date: 2025-03-10 21:00:31 +0200 2052 2053 Translations: Update the Korean man page translations 2054 2055 po4a/ko.po | 139 +++++++++++++++++++++++++++++++++++-------------------------- 2056 1 file changed, 80 insertions(+), 59 deletions(-) 2057 2058commit ae52ebd27dc0be5e1ba62fb0c45255d8563fcd88 2059Author: Lasse Collin <lasse.collin@tukaani.org> 2060Date: 2025-03-10 20:56:57 +0200 2061 2062 Translations: Update the German man page translations 2063 2064 po4a/de.po | 102 ++++++++++++++++++++++++++++++++++++++----------------------- 2065 1 file changed, 63 insertions(+), 39 deletions(-) 2066 2067commit 1028e52c93d2292b44ff7bae8e721025d2f2c94d 2068Author: Lasse Collin <lasse.collin@tukaani.org> 2069Date: 2025-03-10 13:13:30 +0200 2070 2071 CMake: Fix tuklib_use_system_extensions 2072 2073 Revert back to a macro so that list(APPEND CMAKE_REQUIRED_DEFINITIONS) 2074 will affect the calling scope. I had forgotten that while CMake 2075 functions inherit the variables from the parent scope, the changes 2076 to them are local unless using set(... PARENT_SCOPE). 2077 2078 This also means that the commit message in 5bb77d0920dc is wrong. The 2079 commit itself is still fine, making it clearer that -DHAVE_SYS_PARAM_H 2080 is only needed for specific check_c_source_compiles() calls. 2081 2082 Fixes: c1ea7bd0b60eed6ebcdf9a713ca69034f6f07179 2083 2084 cmake/tuklib_common.cmake | 7 +++++-- 2085 1 file changed, 5 insertions(+), 2 deletions(-) 2086 2087commit 80e48836024ec2d7cbd557575be6da3d1f055cba 2088Author: Lasse Collin <lasse.collin@tukaani.org> 2089Date: 2025-03-10 11:38:55 +0200 2090 2091 INSTALL: Document -bmaxdata on AIX 2092 2093 This is based on a pull request and AIX docs. I haven't tested the 2094 instructions myself. 2095 2096 Closes: https://github.com/tukaani-project/xz/pull/137 2097 2098 INSTALL | 5 +++++ 2099 1 file changed, 5 insertions(+) 2100 2101commit ab319186b6d0454285ff4941a777ac95e580f60f 2102Author: Lasse Collin <lasse.collin@tukaani.org> 2103Date: 2025-03-10 11:37:19 +0200 2104 2105 Update THANKS 2106 2107 THANKS | 1 + 2108 1 file changed, 1 insertion(+) 2109 2110commit 4434671a04436038f88ab0feaa251cc8d7abb683 2111Author: Collin Funk <collin.funk1@gmail.com> 2112Date: 2025-03-09 19:14:31 -0700 2113 2114 tuklib_physmem: Silence -Wsign-conversion on AIX 2115 2116 Closes: https://github.com/tukaani-project/xz/pull/168 2117 2118 src/common/tuklib_physmem.c | 2 +- 2119 1 file changed, 1 insertion(+), 1 deletion(-) 2120 2121commit 18bcaa4fafc935d89ffde94301fa6427907306bf 2122Author: Lasse Collin <lasse.collin@tukaani.org> 2123Date: 2025-03-09 22:10:38 +0200 2124 2125 Translations: Update the Romanian man page translations 2126 2127 po4a/ro.po | 110 ++++++++++++++++++++++++++++++++++++------------------------- 2128 1 file changed, 66 insertions(+), 44 deletions(-) 2129 2130commit 1e17b7f42fe2f9df279f44ad7043d3753cd00363 2131Author: Lasse Collin <lasse.collin@tukaani.org> 2132Date: 2025-03-09 21:28:15 +0200 2133 2134 Translations: Update the Croatian translation 2135 2136 po/hr.po | 19 +++++++++++-------- 2137 1 file changed, 11 insertions(+), 8 deletions(-) 2138 2139commit ff85e6130d5940896915cdbb99aa9ece9d41240b 2140Author: Lasse Collin <lasse.collin@tukaani.org> 2141Date: 2025-03-09 21:23:34 +0200 2142 2143 Translations: Update the Romanian translation 2144 2145 po/ro.po | 24 +++++++++++++----------- 2146 1 file changed, 13 insertions(+), 11 deletions(-) 2147 2148commit a5bfb33f30f77e656723d365db8b06e089d3de61 2149Author: Lasse Collin <lasse.collin@tukaani.org> 2150Date: 2025-03-09 21:11:34 +0200 2151 2152 Translations: Update the Ukrainian man page translations 2153 2154 po4a/uk.po | 107 ++++++++++++++++++++++++++++++++++++------------------------- 2155 1 file changed, 64 insertions(+), 43 deletions(-) 2156 2157commit 5bb77d0920dcf949d8eb04eb19204b7b199e42df 2158Author: Lasse Collin <lasse.collin@tukaani.org> 2159Date: 2025-03-09 14:43:07 +0200 2160 2161 CMake: Use cmake_push_check_state in tuklib_cpucores and tuklib_physmem 2162 2163 Now the changes to CMAKE_REQUIRED_DEFINITIONS are temporary and don't 2164 leak to the calling code. 2165 2166 cmake/tuklib_cpucores.cmake | 3 +++ 2167 cmake/tuklib_physmem.cmake | 4 +++- 2168 2 files changed, 6 insertions(+), 1 deletion(-) 2169 2170commit c1ea7bd0b60eed6ebcdf9a713ca69034f6f07179 2171Author: Lasse Collin <lasse.collin@tukaani.org> 2172Date: 2025-03-09 14:06:35 +0200 2173 2174 CMake: Revise tuklib_use_system_extensions 2175 2176 Define NetBSD and Darwin/macOS feature test macros. Autoconf defines 2177 these too (and a few others). 2178 2179 Define the macros on Windows except with MSVC. The _GNU_SOURCE macro 2180 makes a difference with mingw-w64. 2181 2182 Use a function instead of a macro. Don't take the TARGET_OR_ALL argument 2183 because there's always global effect because the global variable 2184 CMAKE_REQUIRED_DEFINITIONS is modified. 2185 2186 CMakeLists.txt | 2 +- 2187 cmake/tuklib_common.cmake | 27 +++++++++++++++------------ 2188 2 files changed, 16 insertions(+), 13 deletions(-) 2189 2190commit 4243c45a48ef8c103d77b75d9f93d48adcb631db 2191Author: Lasse Collin <lasse.collin@tukaani.org> 2192Date: 2025-03-08 14:54:29 +0200 2193 2194 doc/SHA256SUMS: Add 5.7.2beta 2195 2196 doc/SHA256SUMS | 3 +++ 2197 1 file changed, 3 insertions(+) 2198 2199commit cc7f2fc1cf9f3c63cbce90ee92bfbb004f98140b 2200Author: Lasse Collin <lasse.collin@tukaani.org> 2201Date: 2025-03-08 14:29:57 +0200 2202 2203 Bump version and soname for 5.7.2beta 2204 2205 src/liblzma/Makefile.am | 2 +- 2206 src/liblzma/api/lzma/version.h | 4 ++-- 2207 src/liblzma/liblzma_generic.map | 2 +- 2208 src/liblzma/liblzma_linux.map | 2 +- 2209 4 files changed, 5 insertions(+), 5 deletions(-) 2210 2211commit 62e44b36167de27541776dcf677ed04077c9fd19 2212Author: Lasse Collin <lasse.collin@tukaani.org> 2213Date: 2025-03-08 14:24:38 +0200 2214 2215 Add NEWS for 5.7.2beta 2216 2217 NEWS | 35 +++++++++++++++++++++++++++++++++++ 2218 1 file changed, 35 insertions(+) 2219 2220commit 70f1f203789433b5d7b8b22e1655abc465d659f7 2221Author: Lasse Collin <lasse.collin@tukaani.org> 2222Date: 2025-03-08 14:23:00 +0200 2223 2224 COPYING: Remove the note about old releases 2225 2226 COPYING | 19 ------------------- 2227 1 file changed, 19 deletions(-) 2228 2229commit db9827dc38ff79de747a6fc7a99619e961dbc5e6 2230Author: Lasse Collin <lasse.collin@tukaani.org> 2231Date: 2025-03-08 14:22:28 +0200 2232 2233 xz: Update the man page about the environment variables again 2234 2235 src/xz/xz.1 | 22 +++++++++++----------- 2236 1 file changed, 11 insertions(+), 11 deletions(-) 2237 2238commit 99c584891bd1d946561cebded2226df9b83f1efb 2239Author: Lasse Collin <lasse.collin@tukaani.org> 2240Date: 2025-03-06 19:26:09 +0200 2241 2242 liblzma: Edit spelling in a comment 2243 2244 It was found with codespell. 2245 2246 src/liblzma/api/lzma/container.h | 2 +- 2247 1 file changed, 1 insertion(+), 1 deletion(-) 2248 2249commit 7a234c8c05a8f64efde013cd6a6d31a90b7d0d28 2250Author: Lasse Collin <lasse.collin@tukaani.org> 2251Date: 2025-03-06 19:14:23 +0200 2252 2253 xz: Update the man page about the environment variables 2254 2255 src/xz/xz.1 | 26 ++++++++++++++++++++++++-- 2256 1 file changed, 24 insertions(+), 2 deletions(-) 2257 2258commit 808f05af3ef40730d40b3798666757bd866484f1 2259Author: Lasse Collin <lasse.collin@tukaani.org> 2260Date: 2025-03-06 17:37:39 +0200 2261 2262 Docs: Add a few TRANSLATORS comments to man pages 2263 2264 All translators know that --command-line-options must not be translated. 2265 With some other strings it's not obvious when the untranslated string 2266 must be preserved. These comments hopefully help. 2267 2268 src/scripts/xzmore.1 | 2 ++ 2269 src/xz/xz.1 | 22 ++++++++++++++++++++++ 2270 2 files changed, 24 insertions(+) 2271 2272commit 051de255f00dda331e2a6fa189a6e7fe56a7c69b 2273Author: Lasse Collin <lasse.collin@tukaani.org> 2274Date: 2025-03-06 16:34:32 +0200 2275 2276 Scripts: Mark the LZMA Utils script aliases as deprecated 2277 2278 The deprecated aliases are lzcmp, lzdiff, lzless, lzmore, 2279 lzgrep, lzegrep, and lzfgrep. The commands that start with 2280 the xz prefix have identical behavior, for example, both 2281 lzgrep and xzgrep handle all supported file formats. 2282 2283 This doesn't affect lzma, unlzma, lzcat, lzmadec, or lzmainfo. 2284 The last release of LZMA Utils was made in 2008, but the lzma 2285 compatibility alias for the gzip-like tool is still in common use. 2286 Deprecating it would cause unnecessary breakage. 2287 2288 src/scripts/xzdiff.1 | 5 ++++- 2289 src/scripts/xzgrep.1 | 6 +++++- 2290 src/scripts/xzless.1 | 4 +++- 2291 src/scripts/xzmore.1 | 4 +++- 2292 4 files changed, 15 insertions(+), 4 deletions(-) 2293 2294commit 4941ea454c02cf15a64d6434a0778fc2a81282fc 2295Author: Lasse Collin <lasse.collin@tukaani.org> 2296Date: 2025-03-02 21:13:04 +0200 2297 2298 Translations: Add Serbian man page translations 2299 2300 po4a/po4a.conf | 2 +- 2301 po4a/sr.po | 3892 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2302 2 files changed, 3893 insertions(+), 1 deletion(-) 2303 2304commit d142d96f24daa451edaabfca8594e202932b3c0b 2305Author: Lasse Collin <lasse.collin@tukaani.org> 2306Date: 2025-03-02 20:42:14 +0200 2307 2308 Translations: Update Georgian translation 2309 2310 po/ka.po | 4 ++-- 2311 1 file changed, 2 insertions(+), 2 deletions(-) 2312 2313commit 9b7e45d841195c8fd8d286e26f810df28c53dd16 2314Author: Lasse Collin <lasse.collin@tukaani.org> 2315Date: 2025-02-28 21:07:21 +0200 2316 2317 Update THANKS 2318 2319 THANKS | 1 + 2320 1 file changed, 1 insertion(+) 2321 2322commit 9351592710e0df3238b09d39c545a643c50ac88f 2323Author: Lasse Collin <lasse.collin@tukaani.org> 2324Date: 2025-02-22 16:04:58 +0200 2325 2326 Update THANKS 2327 2328 THANKS | 1 + 2329 1 file changed, 1 insertion(+) 2330 2331commit 9023be7831faca2f28def55e16c39e3a42e1e262 2332Author: Lasse Collin <lasse.collin@tukaani.org> 2333Date: 2025-02-19 16:33:52 +0200 2334 2335 Translations: Update the Croatian translation 2336 2337 po/hr.po | 6 +++--- 2338 1 file changed, 3 insertions(+), 3 deletions(-) 2339 2340commit 2eaf242c56e8c65db83d48b018fa44aeafeb33a5 2341Author: Lasse Collin <lasse.collin@tukaani.org> 2342Date: 2025-02-17 21:46:15 +0200 2343 2344 Build: Fix out-of-tree builds when using the replacement getopt_long 2345 2346 Nowaways $(top_builddir)/lib/getopt.h depends on headers in 2347 $(top_srcdir)/lib, so both have to be in the include path. 2348 CMake-based build already did this. 2349 2350 Fixes: 7e884c00d0093c38339f17fb1d280eec493f42ca 2351 2352 src/lzmainfo/Makefile.am | 6 ++++-- 2353 src/xz/Makefile.am | 6 ++++-- 2354 src/xzdec/Makefile.am | 6 ++++-- 2355 3 files changed, 12 insertions(+), 6 deletions(-) 2356 2357commit 41322b2c60cd2c67a1053cb40d27e573420185b7 2358Author: Lasse Collin <lasse.collin@tukaani.org> 2359Date: 2025-02-17 18:25:52 +0200 2360 2361 m4/getopt.m4: Remove an outdated comment 2362 2363 m4/getopt.m4 | 3 --- 2364 1 file changed, 3 deletions(-) 2365 2366commit 03c23a4952bce1b50a1d213ca2d1c15acd76a489 2367Author: Lasse Collin <lasse.collin@tukaani.org> 2368Date: 2025-02-17 18:11:58 +0200 2369 2370 Build: Allow forcing the use of the replacement getopt_long 2371 2372 Now one can pass gl_replace_getopt=yes to configure to force the use 2373 of GNU getopt_long from the lib directory. This only checks that the 2374 value of gl_replace_getopt is non-empty, so one cannot force the 2375 replacement to be disabled. 2376 2377 Closes: https://github.com/tukaani-project/xz/pull/166 2378 2379 m4/getopt.m4 | 5 +++-- 2380 1 file changed, 3 insertions(+), 2 deletions(-) 2381 2382commit c23b837d15960ecc0d537f0260f389904e1e7f02 2383Author: Lasse Collin <lasse.collin@tukaani.org> 2384Date: 2025-02-17 18:11:42 +0200 2385 2386 Update THANKS 2387 2388 THANKS | 1 + 2389 1 file changed, 1 insertion(+) 2390 2391commit 2672a38f1159babf9ba3cca429f644bb823a8bdd 2392Author: Lasse Collin <lasse.collin@tukaani.org> 2393Date: 2025-02-12 19:23:31 +0200 2394 2395 Update THANKS 2396 2397 THANKS | 2 ++ 2398 1 file changed, 2 insertions(+) 2399 2400commit 4fdcbfaf3f222299747c6a815762a74eeb1b0b23 2401Author: Lasse Collin <lasse.collin@tukaani.org> 2402Date: 2025-02-11 12:13:41 +0200 2403 2404 Update THANKS 2405 2406 THANKS | 3 +++ 2407 1 file changed, 3 insertions(+) 2408 2409commit 0d553568f1af9a35779ecac41392a6c871786930 2410Author: Lasse Collin <lasse.collin@tukaani.org> 2411Date: 2025-02-08 11:39:08 +0200 2412 2413 Translations: Update the Polish translation 2414 2415 po/pl.po | 802 ++++++++++++++++++++++++++++++++++++--------------------------- 2416 1 file changed, 464 insertions(+), 338 deletions(-) 2417 2418commit 9f165076aebb3b5115d2b6520529db8fa11a6bdd 2419Author: Lasse Collin <lasse.collin@tukaani.org> 2420Date: 2025-02-07 19:12:03 +0200 2421 2422 Docs: Update TODO a little 2423 2424 TODO | 22 ++++------------------ 2425 1 file changed, 4 insertions(+), 18 deletions(-) 2426 2427commit f5aa292c534f87b9dd588e667d1c65ed31e5f289 2428Author: Lasse Collin <lasse.collin@tukaani.org> 2429Date: 2025-02-07 18:50:56 +0200 2430 2431 Add researcher credits of CVE-2022-1271 and CVE-2024-47611 to THANKS 2432 2433 These are specific phrases that were included in the advisories and 2434 NEWS. It's nice to have them in THANKS as well. 2435 2436 THANKS | 4 ++++ 2437 1 file changed, 4 insertions(+) 2438 2439commit 7cf463b5add70e3fb48a10de3965c8beb6c01ad9 2440Author: Lasse Collin <lasse.collin@tukaani.org> 2441Date: 2025-02-07 18:43:00 +0200 2442 2443 Update THANKS 2444 2445 THANKS | 5 +++++ 2446 1 file changed, 5 insertions(+) 2447 2448commit 6b7fe7e27b77038592e2c2e31df955059dda7d1d 2449Author: Lasse Collin <lasse.collin@tukaani.org> 2450Date: 2025-02-04 14:12:46 +0200 2451 2452 Docs: Update the "Translations" section in README 2453 2454 Make it clearer that translations cannot be accepted if they don't 2455 come via the Translation Project. 2456 2457 Column headings have been handled automatically for years and now --help 2458 is autowrapped too, so the related instructions can be removed. 2459 2460 README | 107 ++++++++++++++++++++++++----------------------------------------- 2461 1 file changed, 39 insertions(+), 68 deletions(-) 2462 2463commit 2c7aee94936babf84b61b55420e503a0b2629ec1 2464Author: Lasse Collin <lasse.collin@tukaani.org> 2465Date: 2025-02-04 13:23:53 +0200 2466 2467 debug/translations.bash: Revise a little 2468 2469 Make it work for out-of-tree builds without requiring one to specify 2470 the location of the xz executable. 2471 2472 Add xz --filters-help. 2473 2474 Make the output shorter by reducing the number of xz -lvv test files. 2475 2476 Show the value of LANGUAGE environment variable. 2477 2478 Show the xz.git version using git describe --abbrev=8 instead of =4. 2479 2480 debug/translation.bash | 24 +++++++++++------------- 2481 1 file changed, 11 insertions(+), 13 deletions(-) 2482 2483commit c6b15e7045209002bbbf4979c48072af01c20d8d 2484Author: Lasse Collin <lasse.collin@tukaani.org> 2485Date: 2025-02-04 13:20:52 +0200 2486 2487 Build: Use "git describe --abbrev=8" in snapshot tarball names 2488 2489 8 is more likely to be reproducible than the old 4 without being 2490 excessively long for a small repository like this. 2491 2492 Makefile.am | 2 +- 2493 1 file changed, 1 insertion(+), 1 deletion(-) 2494 2495commit 0ce97987c5b27cfb6f98984e5fd7477880e0cf33 2496Author: Lasse Collin <lasse.collin@tukaani.org> 2497Date: 2025-02-04 19:37:17 +0200 2498 2499 Update THANKS 2500 2501 THANKS | 2 ++ 2502 1 file changed, 2 insertions(+) 2503 2504commit 353c33355cb12e5016d49052fd1e90d15568aa37 2505Author: Lasse Collin <lasse.collin@tukaani.org> 2506Date: 2025-02-03 16:29:31 +0200 2507 2508 Translations: Update the Serbian translation 2509 2510 po/sr.po | 805 ++++++++++++++++++++++++++++++++++++--------------------------- 2511 1 file changed, 458 insertions(+), 347 deletions(-) 2512 2513commit 887dc281885052bced32b3aa309506ea58a2e78e 2514Author: Lasse Collin <lasse.collin@tukaani.org> 2515Date: 2025-02-03 16:15:38 +0200 2516 2517 Translations: Update Chinese (traditional) translation 2518 2519 Since there are no spaces between words, the unsophisticated automatic 2520 word wrapping code needs some help. Compared to the version in the 2521 Translation Project, I added a few \t characters which the word 2522 wrapping code interprets as zero width spaces (hopefully they are 2523 placed correctly). These edits can be seen with this command: 2524 2525 grep -v ^# po/zh_TW.po | grep --color -F '\t' 2526 2527 po/zh_TW.po | 843 +++++++++++++++++++++++++++++++++--------------------------- 2528 1 file changed, 471 insertions(+), 372 deletions(-) 2529 2530commit 0f1454cf5f460a4095f47f8f73f5a290e9777d7f 2531Author: Lasse Collin <lasse.collin@tukaani.org> 2532Date: 2025-02-03 16:12:44 +0200 2533 2534 Update THANKS 2535 2536 THANKS | 2 ++ 2537 1 file changed, 2 insertions(+) 2538 2539commit 23ea031820086d302a213be005a091df763b8a7b 2540Author: Lasse Collin <lasse.collin@tukaani.org> 2541Date: 2025-02-02 14:15:07 +0200 2542 2543 Build: Update posix-shell.m4 from Gnulib 2544 2545 Tabs have been converted to spaces and a "serial" number has been 2546 added. The previous version was from 2008/2009. There are no functional 2547 changes since then but now it's clearer that the copy in XZ Utils 2548 isn't outdated. 2549 2550 The new file was picked from the Gnulib commit 2551 81a4c1e3b7692e95c0806d948cbab9148ad85ef2. A later commit adds 2552 a warranty disclaimer to the license, which obviously is fine, 2553 but I didn't find a SPDX license identifier for the new license, 2554 so for simplicity I used the earlier commit. 2555 2556 m4/posix-shell.m4 | 31 ++++++++++++++++--------------- 2557 1 file changed, 16 insertions(+), 15 deletions(-) 2558 2559commit 84c33c0384aa4604ff7956f2fae6f83ea60ba96b 2560Author: Lasse Collin <lasse.collin@tukaani.org> 2561Date: 2025-02-02 12:51:03 +0200 2562 2563 Build: Check for -fsanitize= also in $CC 2564 2565 People may put -fsanitize in CC instead of CFLAGS so check both. 2566 Landlock sandbox isn't compatible with sanitizers so it's nice 2567 to catch the incompatible options at configure time. 2568 2569 Don't attempt to do the same in CMakeLists.txt; the check for 2570 CMAKE_C_FLAGS / CFLAGS shall be enough there. The extra flags from 2571 the CC environment variable go into the undocumented internal variable 2572 CMAKE_C_COMPILER_ARG1 (all flags from CC go into that same variable). 2573 Peeking the internal variable merely for improved diagnostics isn't 2574 worth it. 2575 2576 Fixes: 88588b1246d8c26ffbc138b3e5c413c5f14c3179 2577 2578 configure.ac | 5 +++-- 2579 1 file changed, 3 insertions(+), 2 deletions(-) 2580 2581commit a7304ea4a7daede9789a8fe422b714e372737120 2582Author: Lasse Collin <lasse.collin@tukaani.org> 2583Date: 2023-09-26 19:11:20 +0300 2584 2585 Build: Remove the FIXME about -Werror checks 2586 2587 configure.ac | 7 ------- 2588 1 file changed, 7 deletions(-) 2589 2590commit 1780bba74075da5e7764615bd323e95e19057dee 2591Author: Lasse Collin <lasse.collin@tukaani.org> 2592Date: 2023-09-26 19:10:51 +0300 2593 2594 Build: If using a GCC compatible compiler, ensure that -Werror works 2595 2596 The check can be skipped by passing SKIP_WERROR_CHECK=yes to configure. 2597 It won't be documented anywhere else than in the error message. 2598 2599 Ways to test: 2600 2601 ./configure CC=gcc CFLAGS=-Wunused-macros 2602 ./configure CC=clang CFLAGS=-Weverything 2603 ./configure CC=clang CFLAGS=-Weverything SKIP_WERROR_CHECK=yes 2604 2605 configure.ac | 26 ++++++++++++++++++++++++++ 2606 1 file changed, 26 insertions(+) 2607 2608commit 3aca2daefbdedd7cc0fb75ddde6b714273b1cc1d 2609Author: Lasse Collin <lasse.collin@tukaani.org> 2610Date: 2025-02-02 14:30:15 +0200 2611 2612 Update THANKS 2613 2614 THANKS | 4 ++++ 2615 1 file changed, 4 insertions(+) 2616 2617commit 186ff78ab40ceb07cde139506cab42a927ca99d2 2618Author: Lasse Collin <lasse.collin@tukaani.org> 2619Date: 2025-02-01 12:49:09 +0200 2620 2621 Translations: Update Romanian translation 2622 2623 po/ro.po | 12 ++++++------ 2624 1 file changed, 6 insertions(+), 6 deletions(-) 2625 2626commit 40a8ce3e10747ca5233610cc2cb704fc303c48e4 2627Author: Lasse Collin <lasse.collin@tukaani.org> 2628Date: 2025-01-30 18:16:43 +0200 2629 2630 Translations: Update Korean man page translations 2631 2632 po4a/ko.po | 146 ++++++++++++++++++++++++------------------------------------- 2633 1 file changed, 56 insertions(+), 90 deletions(-) 2634 2635commit 1787f9bd18ea8798d64b636cdefe6d0fda9b8f72 2636Author: Lasse Collin <lasse.collin@tukaani.org> 2637Date: 2025-01-30 18:15:52 +0200 2638 2639 Translations: Add Italian man page translations 2640 2641 po4a/it.po | 3876 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2642 po4a/po4a.conf | 2 +- 2643 2 files changed, 3877 insertions(+), 1 deletion(-) 2644 2645commit 9b9182e561787a811fc0178489589f28c3e0174c 2646Author: Lasse Collin <lasse.collin@tukaani.org> 2647Date: 2025-01-29 22:18:29 +0200 2648 2649 Translations: Update the Finnish translation 2650 2651 po/fi.po | 13 +++++++------ 2652 1 file changed, 7 insertions(+), 6 deletions(-) 2653 2654commit 7d73ff7a9d8eab6270f0b1ff7d10c0aa6f5ba53f 2655Author: Lasse Collin <lasse.collin@tukaani.org> 2656Date: 2025-01-29 20:50:03 +0200 2657 2658 lzmainfo: Use tuklib_mbstr_wrap for --help text 2659 2660 Some languages have so long strings that they need to be wrapped. 2661 2662 CMakeLists.txt | 4 ++++ 2663 src/lzmainfo/Makefile.am | 2 ++ 2664 src/lzmainfo/lzmainfo.c | 36 ++++++++++++++++++++++++++---------- 2665 3 files changed, 32 insertions(+), 10 deletions(-) 2666 2667commit c56eb4707627d700695813fccdddd1483eac4f21 2668Author: Lasse Collin <lasse.collin@tukaani.org> 2669Date: 2025-01-29 20:00:06 +0200 2670 2671 Translations: Update the Croatian translation 2672 2673 po/hr.po | 926 ++++++++++++++++++++++++++++++++++++--------------------------- 2674 1 file changed, 529 insertions(+), 397 deletions(-) 2675 2676commit 69f4aec0a2442ab81f9ab66e5871a6546aefb0fc 2677Author: Lasse Collin <lasse.collin@tukaani.org> 2678Date: 2025-01-29 19:56:01 +0200 2679 2680 Translations: Update the Finnish translation 2681 2682 po/fi.po | 911 +++++++++++++++++++++++++++++++++------------------------------ 2683 1 file changed, 483 insertions(+), 428 deletions(-) 2684 2685commit d49dde33cf5f488bb38b1f57e172c4e3343fb383 2686Author: Lasse Collin <lasse.collin@tukaani.org> 2687Date: 2025-01-29 19:55:27 +0200 2688 2689 Translations: Update the German man page translations 2690 2691 po4a/de.po | 147 +++++++++++++++++++++++-------------------------------------- 2692 1 file changed, 55 insertions(+), 92 deletions(-) 2693 2694commit 23b99fc4a1f35bec5d63ffd02b14cacbdce9fe3c 2695Author: Lasse Collin <lasse.collin@tukaani.org> 2696Date: 2025-01-29 19:55:17 +0200 2697 2698 Translations: Update the German translation 2699 2700 po/de.po | 825 +++++++++++++++++++++++++++++++++++---------------------------- 2701 1 file changed, 460 insertions(+), 365 deletions(-) 2702 2703commit 7edab2bde0606b42229d9c04fe664069e38de3fb 2704Author: Lasse Collin <lasse.collin@tukaani.org> 2705Date: 2025-01-29 19:55:05 +0200 2706 2707 Translations: Update the Turkish translation 2708 2709 po/tr.po | 892 +++++++++++++++++++++++++++++++++++---------------------------- 2710 1 file changed, 490 insertions(+), 402 deletions(-) 2711 2712commit fac4d0fa5277d7a1f621707621ee9516f0bdbac5 2713Author: Lasse Collin <lasse.collin@tukaani.org> 2714Date: 2025-01-29 19:54:36 +0200 2715 2716 Translations: Add the Dutch translation 2717 2718 po/LINGUAS | 1 + 2719 po/nl.po | 1268 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2720 2 files changed, 1269 insertions(+) 2721 2722commit abe5092f24b55dde9f7f78fac1bf810bce173273 2723Author: Lasse Collin <lasse.collin@tukaani.org> 2724Date: 2025-01-29 19:53:50 +0200 2725 2726 Translations: Update the Georgian translation 2727 2728 po/ka.po | 153 +++++++++++++++++++++++++++++++++++++++++++++++---------------- 2729 1 file changed, 115 insertions(+), 38 deletions(-) 2730 2731commit b97b23c78d8100eec363c3e999c511560366d347 2732Author: Lasse Collin <lasse.collin@tukaani.org> 2733Date: 2025-01-29 19:53:21 +0200 2734 2735 Translations: Update the Spanish translation 2736 2737 po/es.po | 824 ++++++++++++++++++++++++++++++++++----------------------------- 2738 1 file changed, 450 insertions(+), 374 deletions(-) 2739 2740commit c68318cb49e0562bd22e88724ce85e76c6789a3a 2741Author: Lasse Collin <lasse.collin@tukaani.org> 2742Date: 2025-01-29 19:53:06 +0200 2743 2744 Translations: Update the Korean translation 2745 2746 po/ko.po | 785 +++++++++++++++++++++++++++++++++++++-------------------------- 2747 1 file changed, 460 insertions(+), 325 deletions(-) 2748 2749commit 153ee17f635962a474499f786ea1de1e1a2bb276 2750Author: Lasse Collin <lasse.collin@tukaani.org> 2751Date: 2025-01-29 19:52:42 +0200 2752 2753 Translations: Update the Romanian man page translations 2754 2755 po4a/ro.po | 141 +++++++++++++++++++++++-------------------------------------- 2756 1 file changed, 54 insertions(+), 87 deletions(-) 2757 2758commit 6ed308197e1f9d6c7a5cfe5aae301e75544017c4 2759Author: Lasse Collin <lasse.collin@tukaani.org> 2760Date: 2025-01-29 19:51:59 +0200 2761 2762 Translations: Update the Romanian translation 2763 2764 po/ro.po | 818 +++++++++++++++++++++++++++++++++++---------------------------- 2765 1 file changed, 461 insertions(+), 357 deletions(-) 2766 2767commit 06028803e19219f642aa9abddd3525c43594ec6c 2768Author: Lasse Collin <lasse.collin@tukaani.org> 2769Date: 2025-01-29 19:50:50 +0200 2770 2771 Translations: Update the Ukrainian man page translations 2772 2773 po4a/uk.po | 142 +++++++++++++++++++++++-------------------------------------- 2774 1 file changed, 54 insertions(+), 88 deletions(-) 2775 2776commit 8cbaf896a65a53c1d1e7e2ffc80d6ea216b1e8df 2777Author: Lasse Collin <lasse.collin@tukaani.org> 2778Date: 2025-01-29 19:50:26 +0200 2779 2780 Translations: Update the Ukrainian translation 2781 2782 po/uk.po | 813 ++++++++++++++++++++++++++++++++++++--------------------------- 2783 1 file changed, 460 insertions(+), 353 deletions(-) 2784 2785commit 81c352907b8048b97d9868947026701a49f377ef 2786Author: Lasse Collin <lasse.collin@tukaani.org> 2787Date: 2025-01-29 19:48:43 +0200 2788 2789 Translations: Update the Swedish translation 2790 2791 po/sv.po | 847 ++++++++++++++++++++++++++++++++++----------------------------- 2792 1 file changed, 462 insertions(+), 385 deletions(-) 2793 2794commit 999ce263718a52ba74245c3e2a416ab11494d1b1 2795Author: Lasse Collin <lasse.collin@tukaani.org> 2796Date: 2025-01-28 16:33:32 +0200 2797 2798 tuklib_physmem: Clean up disabled code 2799 2800 src/common/tuklib_physmem.c | 9 +-------- 2801 1 file changed, 1 insertion(+), 8 deletions(-) 2802 2803commit 4d7e7c9d94f7a5ad4931a5bbd6ed9d00173fa1ab 2804Author: Lasse Collin <lasse.collin@tukaani.org> 2805Date: 2025-01-28 16:28:18 +0200 2806 2807 Windows: Avoid an error message on broken pipe 2808 2809 Also make xz not process more input files after a broken pipe has 2810 been detected. This matches the behavior on POSIX. If all files 2811 are being written to standard output, trying with the next file is 2812 pointless when it's known that standard output won't accept more data. 2813 2814 xzdec already stopped after the first error. It does so with all 2815 errors, so it differs from xz: 2816 2817 $ xz -dc not_found_1 not_found_2 2818 xz: not_found_1: No such file or directory 2819 xz: not_found_2: No such file or directory 2820 2821 $ xzdec not_found_1 not_found_2 2822 xzdec: not_found_1: No such file or directory 2823 2824 Reported-by: Vincent Torri 2825 2826 src/xz/file_io.c | 13 +++++++++++++ 2827 src/xzdec/xzdec.c | 11 ++++++++++- 2828 2 files changed, 23 insertions(+), 1 deletion(-) 2829 2830commit 95b638480aa8203e547c709c651f421c22db1718 2831Author: Lasse Collin <lasse.collin@tukaani.org> 2832Date: 2025-01-23 19:59:17 +0200 2833 2834 doc/SHA256SUMS: Add 5.6.4 and 5.7.1alpha 2835 2836 doc/SHA256SUMS | 9 +++++++++ 2837 1 file changed, 9 insertions(+) 2838 2839commit cdae0df31e4c2dfb1e885941cd1998e5a2b6e39d 2840Author: Lasse Collin <lasse.collin@tukaani.org> 2841Date: 2025-01-23 11:50:42 +0200 2842 2843 Bump version and soname for 5.7.1alpha 2844 2845 src/liblzma/Makefile.am | 2 +- 2846 src/liblzma/api/lzma/version.h | 2 +- 2847 src/liblzma/liblzma_generic.map | 2 +- 2848 src/liblzma/liblzma_linux.map | 2 +- 2849 4 files changed, 4 insertions(+), 4 deletions(-) 2850 2851commit 4d2af2c43bae25ef4ef9cd88304471d4859aa322 2852Author: Lasse Collin <lasse.collin@tukaani.org> 2853Date: 2025-01-23 11:48:43 +0200 2854 2855 Translations: Run po4a/update-po 2856 2857 po4a/de.po | 64 +++++++++++++++++++++++++++++++++++++++++++++++++---------- 2858 po4a/fr.po | 57 +++++++++++++++++++++++++++++++++++++++++++++++----- 2859 po4a/ko.po | 64 +++++++++++++++++++++++++++++++++++++++++++++++++---------- 2860 po4a/pt_BR.po | 57 +++++++++++++++++++++++++++++++++++++++++++++++----- 2861 po4a/ro.po | 64 +++++++++++++++++++++++++++++++++++++++++++++++++---------- 2862 po4a/uk.po | 64 +++++++++++++++++++++++++++++++++++++++++++++++++---------- 2863 6 files changed, 320 insertions(+), 50 deletions(-) 2864 2865commit ff0b825505e60e21b32e33c42f551c8f34ba393f 2866Author: Lasse Collin <lasse.collin@tukaani.org> 2867Date: 2025-01-23 11:40:46 +0200 2868 2869 Add NEWS for 5.7.1alpha 2870 2871 NEWS | 107 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2872 1 file changed, 107 insertions(+) 2873 2874commit f6cd3e3bfc8d1f5a76dd55170968bf4582b95baf 2875Author: Lasse Collin <lasse.collin@tukaani.org> 2876Date: 2025-01-23 11:40:46 +0200 2877 2878 Add NEWS for 5.6.4 2879 2880 NEWS | 45 +++++++++++++++++++++++++++++++++++++++++++++ 2881 1 file changed, 45 insertions(+) 2882 2883commit b3af3297e4d6cf0eafb48155aa97bb06c82a9228 2884Author: Lasse Collin <lasse.collin@tukaani.org> 2885Date: 2025-01-23 11:40:46 +0200 2886 2887 NEWS: The security fix in 5.6.3 is known as CVE-2024-47611 2888 2889 NEWS | 4 +++- 2890 1 file changed, 3 insertions(+), 1 deletion(-) 2891 2892commit a04b9dd0c7c74fabd8c393d2dc68a221276d6e29 2893Author: Lasse Collin <lasse.collin@tukaani.org> 2894Date: 2025-01-22 16:55:09 +0200 2895 2896 windows/build.bash: Fix error message 2897 2898 Fixes: 1ee716f74085223c8fbcae1d5a384e6bf53c0f6a 2899 2900 windows/build.bash | 2 +- 2901 1 file changed, 1 insertion(+), 1 deletion(-) 2902 2903commit 4eae859ae8ad7072eaa74aeaee79a2c3c12c55cb 2904Author: Lasse Collin <lasse.collin@tukaani.org> 2905Date: 2025-01-22 15:03:55 +0200 2906 2907 Windows: Disable MinGW-w64's stdio functions in size-optimized builds 2908 2909 This only affects builds with UCRT. With legacy MSVCRT, the replacement 2910 functions are always enabled. 2911 2912 Omitting the MinGW-w64 replacements saves over 20 KiB per executable. 2913 The downside is that --enable-small or XZ_SMALL=ON disables thousand 2914 separator support in xz messages. If someone is OK with the slower 2915 speed of slightly smaller builds, lack of thousand separators won't 2916 matter. 2917 2918 Don't override __USE_MINGW_ANSI_STDIO if it is already defined (via 2919 CPPFLAGS or such method). 2920 2921 src/common/sysdefs.h | 30 +++++++++++++++++++++--------- 2922 src/xz/util.c | 6 +++++- 2923 2 files changed, 26 insertions(+), 10 deletions(-) 2924 2925commit a831bc185bdd44c06847eae8df2d35cc281f65da 2926Author: Lasse Collin <lasse.collin@tukaani.org> 2927Date: 2025-01-20 16:44:27 +0200 2928 2929 liblzma: Add raw ARM64, RISC-V, and x86 BCJ filter APIs 2930 2931 Put them behind the LZMA_UNSTABLE macro for now. 2932 2933 These low-level special APIs might become useful in erofs-utils. 2934 2935 src/liblzma/api/lzma/bcj.h | 99 +++++++++++++++++++++++++++++++++++++++++ 2936 src/liblzma/common/common.h | 2 + 2937 src/liblzma/liblzma_generic.map | 10 +++++ 2938 src/liblzma/liblzma_linux.map | 10 +++++ 2939 src/liblzma/simple/arm64.c | 18 ++++++++ 2940 src/liblzma/simple/riscv.c | 18 ++++++++ 2941 src/liblzma/simple/x86.c | 24 ++++++++++ 2942 7 files changed, 181 insertions(+) 2943 2944commit 6f5cdd4534faf7db4b6c123651d6a606bc59b98c 2945Author: Lasse Collin <lasse.collin@tukaani.org> 2946Date: 2025-01-20 16:31:49 +0200 2947 2948 xz: Unify a few strings with liblzma 2949 2950 Avoid having both "%s: foo" and "foo" as translatable strings 2951 so that translators don't need to handle it twice. 2952 2953 src/xz/options.c | 11 ++++++----- 2954 src/xz/util.c | 4 ++-- 2955 2 files changed, 8 insertions(+), 7 deletions(-) 2956 2957commit 713fdaa8b06a83f18b06811aba7b9bd7b7cbf1cb 2958Author: Lasse Collin <lasse.collin@tukaani.org> 2959Date: 2025-01-20 16:31:49 +0200 2960 2961 xz: Translate error messages from lzma_str_to_filters() 2962 2963 liblzma doesn't use gettext but the messages are included in xz.pot, 2964 so xz can translate the messages. 2965 2966 src/xz/coder.c | 9 +++------ 2967 1 file changed, 3 insertions(+), 6 deletions(-) 2968 2969commit f2e2b267cab8d7aa0b0a58c325546ee5070c0028 2970Author: Lasse Collin <lasse.collin@tukaani.org> 2971Date: 2025-01-20 16:31:49 +0200 2972 2973 liblzma: Mark string conversion messages as translatable 2974 2975 po/POTFILES.in | 1 + 2976 src/liblzma/common/string_conversion.c | 96 ++++++++++++++++++++-------------- 2977 2 files changed, 59 insertions(+), 38 deletions(-) 2978 2979commit f49d7413d9a0d480ded6d448c1ef7475ae6cd1c9 2980Author: Lasse Collin <lasse.collin@tukaani.org> 2981Date: 2025-01-20 16:31:35 +0200 2982 2983 liblzma: Tweak a few error messages in lzma_str_to_filters() 2984 2985 src/liblzma/common/string_conversion.c | 9 +++++---- 2986 1 file changed, 5 insertions(+), 4 deletions(-) 2987 2988commit da359c360e986b21cd8d7b888c6a80f56b9d49c7 2989Author: Lasse Collin <lasse.collin@tukaani.org> 2990Date: 2025-01-19 20:11:54 +0200 2991 2992 Update THANKS 2993 2994 THANKS | 1 + 2995 1 file changed, 1 insertion(+) 2996 2997commit f032373561cefaf07f92ffe3fbc471ec6770456e 2998Author: Lasse Collin <lasse.collin@tukaani.org> 2999Date: 2025-01-19 19:40:32 +0200 3000 3001 Update THANKS 3002 3003 THANKS | 1 + 3004 1 file changed, 1 insertion(+) 3005 3006commit 51f038f8cbd5d8a95954c05bfcbbc32f2a313615 3007Author: Lasse Collin <lasse.collin@tukaani.org> 3008Date: 2025-01-13 08:44:58 +0200 3009 3010 liblzma: memcmplen.h: Use 8-byte method on 64-bit unaligned archs 3011 3012 Previously it was enabled only on x86-64 and ARM64 when also support 3013 for unaligned access was detected or manually enabled at built time. 3014 3015 In the default build configuration, the 8-byte method is now enabled 3016 also on 64-bit RISC-V and 64-bit PowerPC (both endiannesses). It was 3017 reported that on big endian POWER9, encoding time may reduce 12-13 %. 3018 3019 This change only affects builds with GCC and Clang because the code 3020 uses __builtin_ctzll or __builtin_clzll. 3021 3022 Thanks to Marcus Comstedt for testing on POWER9. 3023 3024 src/liblzma/common/memcmplen.h | 3 +-- 3025 1 file changed, 1 insertion(+), 2 deletions(-) 3026 3027commit 96336b0110d47756a9fd2a103fbf0a99e905fbed 3028Author: Lasse Collin <lasse.collin@tukaani.org> 3029Date: 2025-01-12 13:06:17 +0200 3030 3031 Update THANKS 3032 3033 THANKS | 1 + 3034 1 file changed, 1 insertion(+) 3035 3036commit 150356207c8d6a3e0af465b676430d19d62f884c 3037Author: Lasse Collin <lasse.collin@tukaani.org> 3038Date: 2025-01-12 12:59:20 +0200 3039 3040 liblzma: Fix the encoder breakage on big endian ARM64 3041 3042 When the 8-byte method was enabled for ARM64, a check for endianness 3043 wasn't added. This broke the LZMA/LZMA2 encoder. Test suite caught it. 3044 3045 Fixes: cd64dd70d5665b6048829c45772d08606f44672e 3046 Co-authored-by: Marcus Comstedt <marcus@mc.pp.se> 3047 3048 src/liblzma/common/memcmplen.h | 9 +++++++-- 3049 1 file changed, 7 insertions(+), 2 deletions(-) 3050 3051commit b01b0958025a2da284b53a583f313f8140636cb5 3052Author: Lasse Collin <lasse.collin@tukaani.org> 3053Date: 2025-01-12 11:04:27 +0200 3054 3055 Windows: Update manifest comments about long UTF-8 filenames 3056 3057 src/common/w32_application.manifest.comments.txt | 23 +++++++++++++++-------- 3058 1 file changed, 15 insertions(+), 8 deletions(-) 3059 3060commit 0dfc67d37ebb038be8a9b17b536d1b561d52e81a 3061Author: Lasse Collin <lasse.collin@tukaani.org> 3062Date: 2025-01-12 10:47:58 +0200 3063 3064 Windows: Update build.bash and its README-Windows.txt to UCRT 3065 3066 While MSVCRT builds are possible, UCRT works better with UTF-8. 3067 A 32-bit build is included still but hopefully it's not actually 3068 needed anymore. 3069 3070 windows/README-Windows.txt | 17 ++++++++--------- 3071 windows/build.bash | 20 ++++++++++++++------ 3072 2 files changed, 22 insertions(+), 15 deletions(-) 3073 3074commit 7b3eb2db6c4ba24b5eb438e58ab1ca57e14e59c2 3075Author: Lasse Collin <lasse.collin@tukaani.org> 3076Date: 2025-01-10 13:11:40 +0200 3077 3078 Translations: Update Serbian translation 3079 3080 I rewrapped a few overlong lines. Those edits aren't in the 3081 Translation Project. Automatic wrapping in the master branch 3082 means that these strings need to be updated soon anyway. 3083 3084 po/sr.po | 346 ++++++++++++++++++++++----------------------------------------- 3085 1 file changed, 121 insertions(+), 225 deletions(-) 3086 3087commit 950da11ce09c90412dcbca29689575037640667a 3088Author: Lasse Collin <lasse.collin@tukaani.org> 3089Date: 2025-01-08 19:26:29 +0200 3090 3091 Build: Use --sort=name in TAR_OPTIONS 3092 3093 Use also LC_COLLATE=C to make the sorting locale-independent. 3094 Sorting makes the file order reproducible. 3095 3096 Makefile.am | 3 ++- 3097 1 file changed, 2 insertions(+), 1 deletion(-) 3098 3099commit 75d91d6b39ea3e2fae8f027dcec01be2dca9594d 3100Author: Lasse Collin <lasse.collin@tukaani.org> 3101Date: 2025-01-08 19:08:08 +0200 3102 3103 xz: Workaround broken O_SEARCH in musl 3104 3105 Testing with musl 1.2.5 and Linux 6.12, O_SEARCH doesn't result 3106 in a file descriptor that works with fsync() although it should work. 3107 See the added comment. 3108 3109 The same issue affected gzip --synchronous: 3110 3111 https://bugs.gnu.org/75405 3112 3113 Thanks to Paul Eggert. 3114 3115 src/xz/file_io.c | 11 +++++++++++ 3116 1 file changed, 11 insertions(+) 3117 3118commit ea92eae122a3ccefa61087f84fd99b417fc9ee3c 3119Author: Lasse Collin <lasse.collin@tukaani.org> 3120Date: 2025-01-07 21:34:33 +0200 3121 3122 Revert "xz: O_SEARCH cannot be used for fsync()" 3123 3124 This reverts commit 4014e2479c7b0273f15bd0c9c017c5fe859b0d8f. 3125 3126 POSIX-conforming O_SEARCH should allow fsync(). 3127 3128 src/xz/file_io.c | 21 +++++++++++---------- 3129 1 file changed, 11 insertions(+), 10 deletions(-) 3130 3131commit 4014e2479c7b0273f15bd0c9c017c5fe859b0d8f 3132Author: Lasse Collin <lasse.collin@tukaani.org> 3133Date: 2025-01-05 21:43:11 +0200 3134 3135 xz: O_SEARCH cannot be used for fsync() 3136 3137 Opening a directory with O_SEARCH results in a file descriptor that can 3138 be used with functions like openat(). Such a file descriptor cannot be 3139 used with fsync(). Use O_RDONLY instead. 3140 3141 In musl, O_SEARCH becomes Linux-specific O_PATH. A file descriptor 3142 from O_PATH doesn't allow fsync(). 3143 3144 Seems that it's not possible to fsync() a directory that has write 3145 and search permissions but not read permission. 3146 3147 Fixes: 2a9e91d796d091740489d951fa7780525e4275f1 3148 3149 src/xz/file_io.c | 21 ++++++++++----------- 3150 1 file changed, 10 insertions(+), 11 deletions(-) 3151 3152commit ad2b57cb477b753293c25a01fc24c7f84ee523c2 3153Author: Lasse Collin <lasse.collin@tukaani.org> 3154Date: 2025-01-05 20:48:28 +0200 3155 3156 CI: Make ctest show errors from failed tests 3157 3158 build-aux/ci_build.bash | 2 +- 3159 1 file changed, 1 insertion(+), 1 deletion(-) 3160 3161commit c405264c031aceaf68dfd1546d6337afcebd48e5 3162Author: Lasse Collin <lasse.collin@tukaani.org> 3163Date: 2025-01-05 20:14:49 +0200 3164 3165 tuklib_mbstr_nonprint: Preserve the value of errno 3166 3167 A typical use case is like this: 3168 3169 printf("%s: %s\n", tuklib_mask_nonprint(filename), strerror(errno)); 3170 3171 tuklib_mask_nonprint() may call mbrtowc() and malloc() which may modify 3172 errno. If errno isn't preserved, the error message might be wrong if 3173 a compiler decides to call tuklib_mask_nonprint() before strerror(). 3174 3175 Fixes: 40e573305535960574404d2eae848b248c95ea7e 3176 3177 src/common/tuklib_mbstr_nonprint.c | 17 ++++++++++++++--- 3178 src/common/tuklib_mbstr_nonprint.h | 4 +++- 3179 2 files changed, 17 insertions(+), 4 deletions(-) 3180 3181commit 2a9e91d796d091740489d951fa7780525e4275f1 3182Author: Lasse Collin <lasse.collin@tukaani.org> 3183Date: 2025-01-05 20:14:49 +0200 3184 3185 xz: Use fsync() before deleting the input file, and add --no-sync 3186 3187 xz's default behavior is to delete the input file after successful 3188 compression or decompression (unless writing to standard output). 3189 If the system crashes soon after the deletion, it is possible that 3190 the newly written file has not yet hit the disk while the previous 3191 delete operation might have. In that case neither the original file 3192 nor the written file is available. 3193 3194 Call fsync() on the file. On POSIX systems, sync also the directory 3195 where the file was created. 3196 3197 Add a new option --no-sync which disables fsync() usage. It can avoid 3198 a (possibly significant) performance penalty when processing many 3199 small files. It's fine to use --no-sync when one knows that the files 3200 are easy to recreate or restore after a system crash. 3201 3202 Using fsync() after every flush initiated by --flush-timeout was 3203 considered. It wasn't implemented at least for now. 3204 3205 - --flush-timeout is typically used when writing to stdout. If stdout 3206 is a file, xz cannot (portably) sync the directory of the file. 3207 One would need to create the output file first, sync the directory, 3208 and then run xz with fsync() enabled. 3209 3210 - If xz --flush-timeout output goes to a file, it's possible to use 3211 a separate script to sync the file, for example, once per minute 3212 while telling xz to flush more frequently. 3213 3214 - Not supporting syncing with --flush-timeout was simpler. 3215 3216 Portability notes: 3217 3218 - On systems that lack O_SEARCH (like Linux), "xz dir/file" will now 3219 fail if "dir" cannot be opened for reading. If "dir" still has 3220 write and search permissions (like d-wx------ in "ls -l"), 3221 previously xz would have been able to compress "dir/file" still. 3222 Now it only works if using --no-sync (or --keep or --stdout). 3223 3224 - <libgen.h> and dirname() should be available on all POSIX systems, 3225 and aren't needed on non-POSIX systems. 3226 3227 - fsync() is available on all POSIX systems. The directory syncing 3228 could be changed to fdatasync() although at least on ext4 it 3229 doesn't seem to make a performance difference in xz's usage. 3230 fdatasync() would need a build system check to support (old) 3231 special cases, for example, MINIX 3.3.0 doesn't have fdatasync() 3232 and Solaris 10 needs -lrt. 3233 3234 - On native Windows, _commit() is used to replace fsync(). Directory 3235 syncing isn't done and shouldn't be needed. (In Cygwin, fsync() on 3236 directories is a no-op.) 3237 3238 - DJGPP has fsync() for files. ;-) 3239 3240 Using fsync() was considered somewhere around 2009 and again in 2016 but 3241 those times the idea was rejected. For comparison, GNU gzip 1.7 (2016) 3242 added the option --synchronous which enables fsync(). 3243 3244 Co-authored-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc> 3245 Fixes: https://bugs.debian.org/814089 3246 Link: https://www.mail-archive.com/xz-devel@tukaani.org/msg00282.html 3247 Closes: https://github.com/tukaani-project/xz/pull/151 3248 3249 src/xz/args.c | 14 ++++++ 3250 src/xz/args.h | 2 +- 3251 src/xz/file_io.c | 129 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 3252 src/xz/file_io.h | 6 +++ 3253 src/xz/message.c | 3 ++ 3254 src/xz/sandbox.c | 5 ++- 3255 src/xz/xz.1 | 24 ++++++++++- 3256 7 files changed, 177 insertions(+), 6 deletions(-) 3257 3258commit 2e28c7145747b3287283f13c9d2becd73a7c4a1f 3259Author: Lasse Collin <lasse.collin@tukaani.org> 3260Date: 2024-12-27 09:15:50 +0200 3261 3262 xz: Use "goto" for error handling in io_open_dest_real() 3263 3264 src/xz/file_io.c | 20 +++++++++----------- 3265 1 file changed, 9 insertions(+), 11 deletions(-) 3266 3267commit 75107217670a97b7b772833669d88c3c2f188e37 3268Author: Lasse Collin <lasse.collin@tukaani.org> 3269Date: 2025-01-05 12:10:05 +0200 3270 3271 liblzma: Always validate the first digit of a preset string 3272 3273 lzma_str_to_filters() may call parse_lzma12_preset() in two ways. The 3274 call from str_to_filters() detects the string type from the first 3275 character(s) and as a side-effect it validates the first digit of 3276 the preset string. So this change makes no difference there. 3277 3278 However, the call from parse_options() doesn't pre-validate the string. 3279 parse_lzma12_preset() will return an invalid value which is passed to 3280 lzma_lzma_preset() which safely rejects it. The bug still affects the 3281 the error message: 3282 3283 $ xz --filters=lzma2:preset=X 3284 xz: Error in --filters=FILTERS option: 3285 xz: lzma2:preset=X 3286 xz: ^ 3287 xz: Unsupported preset 3288 3289 After the fix: 3290 3291 $ xz --filters=lzma2:preset=X 3292 xz: Error in --filters=FILTERS option: 3293 xz: lzma2:preset=X 3294 xz: ^ 3295 xz: Unsupported preset 3296 3297 The ^ now correctly points to the X and not past it because the X itself 3298 is the problematic character. 3299 3300 Fixes: cedeeca2ea6ada5b0411b2ae10d7a859e837f203 3301 3302 src/liblzma/common/string_conversion.c | 4 ++++ 3303 1 file changed, 4 insertions(+) 3304 3305commit 52ff32433734d03befd85a5bf00fba77d6501455 3306Author: Lasse Collin <lasse.collin@tukaani.org> 3307Date: 2025-01-05 11:40:34 +0200 3308 3309 xz: Fix getopt_long argument type in --filters* 3310 3311 Forgetting the argument (or not using = to separate the option from 3312 the argument) resulted in lzma_str_to_filters() being called with NULL 3313 as input string argument. The function handles it fine but xz passes 3314 the NULL to printf() too: 3315 3316 $ xz --filters 3317 xz: Error in --filters=FILTERS option: 3318 xz: (null) 3319 xz: ^ 3320 xz: Unexpected NULL pointer argument(s) to lzma_str_to_filters() 3321 3322 Now it's correct: 3323 3324 $ xz --filters 3325 xz: option '--filters' requires an argument 3326 3327 The --filters-help option doesn't take any arguments. 3328 3329 Fixes: 9ded880a0221f4d1256845fc4ab957ffd377c760 3330 Fixes: d6af7f347077b22403133239592e478931307759 3331 Fixes: a165d7df1964121eb9df715e6f836a31c865beef 3332 3333 src/xz/args.c | 22 +++++++++++----------- 3334 1 file changed, 11 insertions(+), 11 deletions(-) 3335 3336commit 2655c81b5e92278b0fd51f6537c1116f8349b02a 3337Author: Lasse Collin <lasse.collin@tukaani.org> 3338Date: 2025-01-04 20:04:56 +0200 3339 3340 xzdec: Don't leave Landlock file descriptor open for no reason 3341 3342 This fix is similar to 48ff3f06521ca326996ab9a04d1b342098960427. 3343 3344 Fixes: d74fb5f060b76db709b50f5fd37490394e52f975 3345 3346 src/xzdec/xzdec.c | 2 ++ 3347 1 file changed, 2 insertions(+) 3348 3349commit 35df4c2bc0500e60ba9d0d163d37a6d110d6841e 3350Author: Lasse Collin <lasse.collin@tukaani.org> 3351Date: 2025-01-04 20:02:18 +0200 3352 3353 xz: Make --single-stream imply --keep 3354 3355 Suggested by xx on #tukaani on 2024-04-12. 3356 3357 src/xz/args.c | 3 +++ 3358 src/xz/xz.1 | 9 ++++++++- 3359 2 files changed, 11 insertions(+), 1 deletion(-) 3360 3361commit 6f412814a8019700248229ce972530159a0d9872 3362Author: Lasse Collin <lasse.collin@tukaani.org> 3363Date: 2025-01-04 19:57:07 +0200 3364 3365 Update AUTHORS 3366 3367 The contributions have been rewritten. 3368 3369 AUTHORS | 2 +- 3370 src/liblzma/check/crc32_arm64.h | 1 - 3371 src/liblzma/check/crc32_fast.c | 1 - 3372 src/liblzma/check/crc_common.h | 1 - 3373 4 files changed, 1 insertion(+), 4 deletions(-) 3374 3375commit 5651d153031a7ee2581cdba9bff658031826cb50 3376Author: Lasse Collin <lasse.collin@tukaani.org> 3377Date: 2025-01-04 15:02:16 +0200 3378 3379 xz: Avoid printf formats like %2$s 3380 3381 It's a POSIX feature that isn't in standard C. It's not available on 3382 Windows. Even MinGW-w64 with __USE_MINGW_ANSI_STDIO doesn't support 3383 it even though it supports POSIX %'d for thousand separators. 3384 3385 Gettext's <libintl.h> provides overrides for printf and other functions 3386 which do support the %2$s formats. Translations use them. But xz should 3387 work on Windows without <libintl.h> too. 3388 3389 Fixes: 3e9177fd206d20d6d8acc7d203c25a9ae0549229 3390 3391 src/xz/message.c | 51 ++++++++++++++++++++++++++++++++------------------- 3392 1 file changed, 32 insertions(+), 19 deletions(-) 3393 3394commit 63b246c90e7677c617faab1d3f6fc5c643b5e7cf 3395Author: Lasse Collin <lasse.collin@tukaani.org> 3396Date: 2025-01-04 14:41:37 +0200 3397 3398 tuklib_mbstr_wrap: Add printf format attribute 3399 3400 It's supported by GCC 3.x already. 3401 3402 src/common/tuklib_common.h | 7 +++++++ 3403 src/common/tuklib_mbstr_wrap.h | 1 + 3404 2 files changed, 8 insertions(+) 3405 3406commit a7313c01d9b8db71ffb61dc1dd7c4ea928824b4b 3407Author: Lasse Collin <lasse.collin@tukaani.org> 3408Date: 2025-01-04 13:44:12 +0200 3409 3410 xz: Translate a Windows-specific string 3411 3412 Originally I thought that native Windows builds wouldn't be translated 3413 but nowadays at least MSYS2 ships such binaries. 3414 3415 src/xz/file_io.c | 2 +- 3416 1 file changed, 1 insertion(+), 1 deletion(-) 3417 3418commit 00eb6073c088be9e7516dfc00a13ef520827b57c 3419Author: Lasse Collin <lasse.collin@tukaani.org> 3420Date: 2025-01-02 15:32:10 +0200 3421 3422 xz: Use my_landlock.h 3423 3424 A slightly silly thing is that xz may now query the ABI version up to 3425 three times. We could call my_landlock_ruleset_attr_forbid_all() only 3426 once and cache the result but it didn't seem worth doing. 3427 3428 CMakeLists.txt | 1 + 3429 src/xz/sandbox.c | 72 ++++++++++---------------------------------------------- 3430 2 files changed, 13 insertions(+), 60 deletions(-) 3431 3432commit 0fc5a625d7cc4ad51fde9367de088b9ad3bd40f6 3433Author: Lasse Collin <lasse.collin@tukaani.org> 3434Date: 2025-01-02 15:32:10 +0200 3435 3436 xzdec: Use my_landlock.h 3437 3438 CMakeLists.txt | 1 + 3439 src/xzdec/xzdec.c | 34 ++++++---------------------------- 3440 2 files changed, 7 insertions(+), 28 deletions(-) 3441 3442commit 38cb8ec9fd70d25fca6b473de44cf61586238552 3443Author: Lasse Collin <lasse.collin@tukaani.org> 3444Date: 2025-01-02 15:32:10 +0200 3445 3446 Add my_landlock.h with helper functions to use Linux Landlock 3447 3448 This supports up to Landlock ABI version 6. The current code in 3449 xz and xzdec only support up to ABI version 4. 3450 3451 src/Makefile.am | 1 + 3452 src/common/my_landlock.h | 141 +++++++++++++++++++++++++++++++++++++++++++++++ 3453 2 files changed, 142 insertions(+) 3454 3455commit 672da29bb3a209a727ae46c0df948d7eea69f2e2 3456Author: Lasse Collin <lasse.collin@tukaani.org> 3457Date: 2025-01-01 18:46:50 +0200 3458 3459 liblzma: Silence warnings from "clang -Wimplicit-fallthrough" 3460 3461 src/liblzma/lzma/lzma_decoder.c | 2 +- 3462 1 file changed, 1 insertion(+), 1 deletion(-) 3463 3464commit 1a8a1ad9a1e3179ce267baa551fb17b30624b4dd 3465Author: Lasse Collin <lasse.collin@tukaani.org> 3466Date: 2025-01-01 15:34:51 +0200 3467 3468 Build: Use -Wimplicit-fallthrough=5 when supported 3469 3470 Now that we have the FALLTHROUGH macro, use the strictest mode with 3471 GCC so that comment-based fallthrough markings are no longer accepted. 3472 3473 In GCC, -Wextra includes -Wimplicit-fallthrough=3 and 3474 -Wimplicit-fallthrough is the same as -Wimplicit-fallthrough=3. 3475 Thus, the strict mode requires specifying -Wimplicit-fallthrough=5. 3476 3477 Clang has -Wimplicit-fallthrough which is *not* enabled by -Wextra. 3478 Clang doesn't have a variant that takes an argument. Thus we need 3479 to check for -Wimplicit-fallthrough. Do it before checking for 3480 -Wimplicit-fallthrough=5 so that the latter overrides the former 3481 when using GCC. 3482 3483 CMakeLists.txt | 2 ++ 3484 configure.ac | 2 ++ 3485 2 files changed, 4 insertions(+) 3486 3487commit 94adc996e45cc5cad9352cc3271d3a1a2f5c4c22 3488Author: Lasse Collin <lasse.collin@tukaani.org> 3489Date: 2025-01-01 15:30:50 +0200 3490 3491 Replace "Fall through" comments with FALLTHROUGH 3492 3493 src/liblzma/common/alone_decoder.c | 3 +-- 3494 src/liblzma/common/auto_decoder.c | 5 ++--- 3495 src/liblzma/common/block_decoder.c | 6 ++---- 3496 src/liblzma/common/block_encoder.c | 6 ++---- 3497 src/liblzma/common/common.c | 2 +- 3498 src/liblzma/common/file_info.c | 22 +++++++++------------- 3499 src/liblzma/common/index_decoder.c | 9 +++------ 3500 src/liblzma/common/index_encoder.c | 6 ++---- 3501 src/liblzma/common/index_hash.c | 7 +++---- 3502 src/liblzma/common/lzip_decoder.c | 14 +++++--------- 3503 src/liblzma/common/stream_decoder.c | 16 ++++++---------- 3504 src/liblzma/common/stream_decoder_mt.c | 25 +++++++++---------------- 3505 src/liblzma/common/stream_encoder_mt.c | 10 ++++------ 3506 src/liblzma/lzma/lzma2_encoder.c | 9 +++------ 3507 src/xz/args.c | 2 +- 3508 src/xz/list.c | 3 +-- 3509 16 files changed, 54 insertions(+), 91 deletions(-) 3510 3511commit f31c3a6647b5a5d056324a9c83e6b2c940ebec22 3512Author: Lasse Collin <lasse.collin@tukaani.org> 3513Date: 2025-01-01 15:08:51 +0200 3514 3515 sysdefs.h: Add FALLTHROUGH macro 3516 3517 src/common/sysdefs.h | 9 +++++++++ 3518 1 file changed, 9 insertions(+) 3519 3520commit e34dbd6a0ae7a560a5508d51fc0bd142c5a320dc 3521Author: Lasse Collin <lasse.collin@tukaani.org> 3522Date: 2025-01-01 15:06:15 +0200 3523 3524 xzdec: Fix language in a comment 3525 3526 src/xzdec/xzdec.c | 2 +- 3527 1 file changed, 1 insertion(+), 1 deletion(-) 3528 3529commit 16821252c504071f5c2012e415e59cbf5fb79820 3530Author: Lasse Collin <lasse.collin@tukaani.org> 3531Date: 2025-01-02 13:35:48 +0200 3532 3533 Windows: Make NLS require UCRT and gettext-runtime >= 0.23.1 3534 3535 Also remove the recently-added workaround from tuklib_gettext.h. 3536 Requiring a new enough gettext-runtime is cleaner. I guess it's 3537 mostly MSYS2 where xz is built with translation support, so once 3538 MSYS2 has Gettext >= 0.23.1, this requirement shouldn't be a problem 3539 in practice. 3540 3541 CMakeLists.txt | 29 ++++++++++++++++++++++++++ 3542 configure.ac | 29 ++++++++++++++++++++++++++ 3543 src/common/tuklib_gettext.h | 51 --------------------------------------------- 3544 3 files changed, 58 insertions(+), 51 deletions(-) 3545 3546commit aa1807ed942579f700a08ab091b796cf04e31aec 3547Author: Lasse Collin <lasse.collin@tukaani.org> 3548Date: 2025-01-02 11:52:17 +0200 3549 3550 windows/build-with-cmake.bat: Fix ENABLE_NLS to XZ_NLS 3551 3552 Fixes: 29f77c7b707f2458fb047e77497354b195e05b14 3553 3554 windows/build-with-cmake.bat | 2 +- 3555 1 file changed, 1 insertion(+), 1 deletion(-) 3556 3557commit ea21c76aa2406ba06ac154fe57741734c04f260f 3558Author: Lasse Collin <lasse.collin@tukaani.org> 3559Date: 2024-12-30 11:21:57 +0200 3560 3561 Build: Use git log --pretty=medium when creating ChangeLog 3562 3563 It's the default in git-log. Specifying it explicitly is good in case 3564 a user has set format.pretty to a different value. 3565 3566 Makefile.am | 4 ++-- 3567 1 file changed, 2 insertions(+), 2 deletions(-) 3568 3569commit 08050c0788ce5bac0ffd572e9784a2749c4a13df 3570Author: Lasse Collin <lasse.collin@tukaani.org> 3571Date: 2024-12-30 10:51:33 +0200 3572 3573 Windows: Update MinGW-w64 + CMake instructions to recommend UCRT 3574 3575 windows/INSTALL-MinGW-w64_with_CMake.txt | 38 +++++++++++++++++++------------- 3576 1 file changed, 23 insertions(+), 15 deletions(-) 3577 3578commit 653732bd6f06d8f465bf353bf6e1c16f1405b906 3579Author: Lasse Collin <lasse.collin@tukaani.org> 3580Date: 2024-12-30 10:51:26 +0200 3581 3582 xz man page: Describe the source file deletion in -z and -d options 3583 3584 The DESCRIPTION section always explained it, and the OPTIONS section 3585 only described the differences to the default behavior. However, new 3586 users in a hurry may skip reading DESCRIPTION. The default behavior 3587 is a bit dangerous, thus it's good to repeat in --compress and 3588 --decompress docs that source file is removed after successful operation. 3589 3590 Fixes: https://github.com/tukaani-project/xz/issues/150 3591 3592 src/xz/xz.1 | 17 ++++++++++++++++- 3593 1 file changed, 16 insertions(+), 1 deletion(-) 3594 3595commit bb79f79b278fd4fb06a0bcd5ab3445c468f9baaf 3596Author: Lasse Collin <lasse.collin@tukaani.org> 3597Date: 2024-12-27 21:52:28 +0200 3598 3599 Build: Set libtool -version-info so that it matches with CMake 3600 3601 In the past, they haven't been in sync in development versions 3602 although they (of course) have been in stable releases. 3603 3604 src/liblzma/Makefile.am | 2 +- 3605 1 file changed, 1 insertion(+), 1 deletion(-) 3606 3607commit cf54f70e14c218faf5019ffa2fa769ed73772ee8 3608Author: Lasse Collin <lasse.collin@tukaani.org> 3609Date: 2024-12-28 18:28:56 +0200 3610 3611 CMake/macOS: Use GNU Libtool compatible shared library versioning 3612 3613 Because this increases the Mach-O compatibility_version, this commit 3614 shouldn't cause any ABI compatibility trouble for existing CMake users 3615 on macOS. This is assuming that they won't later downgrade to an older 3616 liblzma version that was built with CMake before this commit. 3617 3618 Meson allows customising the Mach-O versioning too. So the three 3619 build systems can be configured to be compatible. 3620 3621 CMakeLists.txt | 51 ++++++++++++++++++++++++++++++++++++++++++++++++--- 3622 1 file changed, 48 insertions(+), 3 deletions(-) 3623 3624commit 94e17916689d38bc09bf35e602ed6f6276034b59 3625Author: Lasse Collin <lasse.collin@tukaani.org> 3626Date: 2024-12-28 14:49:45 +0200 3627 3628 CMake: Edit a comment 3629 3630 CMakeLists.txt | 2 +- 3631 1 file changed, 1 insertion(+), 1 deletion(-) 3632 3633commit 6b50590725aeae8a2aed06faa3238cb9f8771c1b 3634Author: Lasse Collin <lasse.collin@tukaani.org> 3635Date: 2024-12-28 20:39:49 +0200 3636 3637 version.sh: Omit an unwanted dot from development versions 3638 3639 It printed 5.7.0.alpha instead of 5.7.0alpha. 3640 3641 Fixes: e7a42cda7c827e016619e8cab15e2faf5d4181ae 3642 3643 build-aux/version.sh | 2 +- 3644 1 file changed, 1 insertion(+), 1 deletion(-) 3645 3646commit f7a248f56e94310a080051c4a709c08514fa48b1 3647Author: Lasse Collin <lasse.collin@tukaani.org> 3648Date: 2024-12-27 16:25:07 +0200 3649 3650 CMake: Remove a duplicate word from a comment 3651 3652 CMakeLists.txt | 4 ++-- 3653 1 file changed, 2 insertions(+), 2 deletions(-) 3654 3655commit 8b7c55d148f4a9b3702207164e862437ddffad33 3656Author: Lasse Collin <lasse.collin@tukaani.org> 3657Date: 2024-12-27 16:23:12 +0200 3658 3659 INSTALL: Document CMAKE_DLL_NAME_WITH_SOVERSION 3660 3661 INSTALL | 19 +++++++++++++++++++ 3662 1 file changed, 19 insertions(+) 3663 3664commit 260d5d36203955a7148ae1ab05d0931c942028d5 3665Author: Lasse Collin <lasse.collin@tukaani.org> 3666Date: 2024-12-26 21:27:18 +0200 3667 3668 xz: Fix comments 3669 3670 src/xz/file_io.c | 4 ++-- 3671 src/xz/file_io.h | 4 ++-- 3672 2 files changed, 4 insertions(+), 4 deletions(-) 3673 3674commit bf6da9a573a780cd1a7fb1728ef55d09e58dad11 3675Author: Dexter Castor Döpping <dexter.c.dopping@gmail.com> 3676Date: 2024-12-22 13:44:03 +0100 3677 3678 CMake: Disable unity builds project-wide 3679 3680 liblzma and xz can't be compiled as a unity/jumbo build because of 3681 redeclarations and type name reuse. The CMake documentation recommends 3682 setting UNITY_BUILD to false in this case. 3683 3684 This is especially important if we're compiled as a subproject and the 3685 consumer wants to use CMAKE_UNITY_BUILD=ON for the rest of their code 3686 base. 3687 3688 Closes: https://github.com/tukaani-project/xz/pull/158 3689 3690 CMakeLists.txt | 6 ++++++ 3691 1 file changed, 6 insertions(+) 3692 3693commit f8c328eed1bf0a0168132025a52116b7735f894c 3694Author: Lasse Collin <lasse.collin@tukaani.org> 3695Date: 2024-12-20 08:51:18 +0200 3696 3697 Windows: Workaround a UTF-8 issue in Gettext's libintl_setlocale() 3698 3699 See the comment. In this package, locale is set at program startup and 3700 not changed later, so the point (2) in the comment isn't a problem. 3701 3702 Fixes: 46ee0061629fb075d61d83839e14dd193337af59 3703 3704 src/common/tuklib_gettext.h | 51 +++++++++++++++++++++++++++++++++++++++++++++ 3705 1 file changed, 51 insertions(+) 3706 3707commit 03533906093529701ba91081907d8977991997de 3708Author: Lasse Collin <lasse.collin@tukaani.org> 3709Date: 2024-12-20 06:50:36 +0200 3710 3711 Revert "Windows: Use UTF-8 locale when active code page is UTF-8" 3712 3713 This reverts commit 0d0b574cc45045d6150d397776340c068df59e2a. 3714 3715 src/common/tuklib_gettext.h | 32 ++------------------------------ 3716 1 file changed, 2 insertions(+), 30 deletions(-) 3717 3718commit 4b319e05afef4eab2fbafb6223f25d128ec99fce 3719Author: Lasse Collin <lasse.collin@tukaani.org> 3720Date: 2024-12-19 18:31:09 +0200 3721 3722 xzdec: Use setlocale() instead of tuklib_gettext_setlocale() 3723 3724 xzdec isn't translated and doesn't need libintl on Windows even 3725 when NLS is enabled, thus libintl_setlocale() cannot interfere 3726 with the locale settings. Thus, standard setlocale() works perfectly. 3727 3728 In the commit 78868b6e, the explanation in the commit message is wrong. 3729 3730 Fixes: 78868b6ed63fa4c89f73e3dfed27abfb8b0d46db 3731 3732 src/xzdec/xzdec.c | 9 +++------ 3733 1 file changed, 3 insertions(+), 6 deletions(-) 3734 3735commit 34b80e282ea76ec793eaedaef58a36c3913dec78 3736Author: Lasse Collin <lasse.collin@tukaani.org> 3737Date: 2024-12-19 19:36:15 +0200 3738 3739 Windows: Revert the setlocale(LC_ALL, ".UTF8") documentation 3740 3741 Only leave the FindFileFirstA() notes from 20dfca81, reverting 3742 the incorrect setlocale() notes. On Windows, Gettext's <libintl.h> 3743 overrides setlocale() with libintl_setlocale() wrapper. I hadn't 3744 noticed this, and thus my conclusions were wrong. 3745 3746 Fixes: 20dfca8171dad4c64785ac61d5b68972c444877b 3747 3748 src/common/w32_application.manifest.comments.txt | 21 +-------------------- 3749 1 file changed, 1 insertion(+), 20 deletions(-) 3750 3751commit 5794cda064ce980450eaa5a4e2c71bd317168ce4 3752Author: Lasse Collin <lasse.collin@tukaani.org> 3753Date: 2024-12-18 17:49:05 +0200 3754 3755 tuklib_mbstr_wrap: Silence a warning from Clang 3756 3757 Fixes: ca529c3f41a4a19a59e2e252e6dd9255f130c634 3758 3759 src/common/tuklib_mbstr_wrap.c | 9 +++++++++ 3760 1 file changed, 9 insertions(+) 3761 3762commit 16c9796ef970ae349c54fef9a346e394d7cc4c75 3763Author: Lasse Collin <lasse.collin@tukaani.org> 3764Date: 2024-12-18 14:00:09 +0200 3765 3766 Update THANKS 3767 3768 THANKS | 2 ++ 3769 1 file changed, 2 insertions(+) 3770 3771commit 3b5c8a1fcab385eed9cc95684223fddd7cf5a053 3772Author: Lasse Collin <lasse.collin@tukaani.org> 3773Date: 2024-12-18 14:00:09 +0200 3774 3775 Update TODO 3776 3777 Fixes: 5f6dddc6c911df02ba660564e78e6de80947c947 3778 3779 TODO | 3 --- 3780 1 file changed, 3 deletions(-) 3781 3782commit 22a35e64ce3d331b668f15f858a7bb3da3acc78e 3783Author: Lasse Collin <lasse.collin@tukaani.org> 3784Date: 2024-12-18 14:00:09 +0200 3785 3786 lzmainfo: Use tuklib_mbstr_nonprint 3787 3788 CMakeLists.txt | 3 +++ 3789 src/lzmainfo/Makefile.am | 1 + 3790 src/lzmainfo/lzmainfo.c | 16 ++++++++++------ 3791 3 files changed, 14 insertions(+), 6 deletions(-) 3792 3793commit 03111595ee713e0f94fb4f4a19a15594d5149347 3794Author: Lasse Collin <lasse.collin@tukaani.org> 3795Date: 2024-12-18 14:00:09 +0200 3796 3797 xzdec: Use tuklib_mbstr_nonprint 3798 3799 CMakeLists.txt | 3 +++ 3800 src/xzdec/Makefile.am | 2 ++ 3801 src/xzdec/xzdec.c | 15 +++++++++++---- 3802 3 files changed, 16 insertions(+), 4 deletions(-) 3803 3804commit d22f96921fd2f94d842f3cc2e5f729cb3cca5122 3805Author: Lasse Collin <lasse.collin@tukaani.org> 3806Date: 2024-12-18 14:00:09 +0200 3807 3808 xz: Use tuklib_mbstr_nonprint 3809 3810 Call tuklib_mask_nonprint() on filenames and also on a few other 3811 strings from the command line too. 3812 3813 The filename printed by "xz --robot --list" (in list.c) is also masked. 3814 It's good to get rid of tabs and newlines which would desync the output 3815 but masking other chars wouldn't be strictly necessary. It might matter 3816 with sensible filenames if LC_CTYPE is "C" (when iswprint() might reject 3817 non-ASCII chars) and a script wants to read a filename from xz's output. 3818 Hopefully it's an unusual enough corner case to not be a real problem. 3819 3820 CMakeLists.txt | 2 ++ 3821 src/xz/Makefile.am | 1 + 3822 src/xz/coder.c | 19 ++++++++----- 3823 src/xz/file_io.c | 81 ++++++++++++++++++++++++++++++++++-------------------- 3824 src/xz/list.c | 32 +++++++++++++-------- 3825 src/xz/main.c | 10 +++++-- 3826 src/xz/message.c | 8 ++++-- 3827 src/xz/options.c | 10 ++++--- 3828 src/xz/private.h | 1 + 3829 src/xz/suffix.c | 12 ++++---- 3830 10 files changed, 113 insertions(+), 63 deletions(-) 3831 3832commit 40e573305535960574404d2eae848b248c95ea7e 3833Author: Lasse Collin <lasse.collin@tukaani.org> 3834Date: 2024-12-18 14:00:09 +0200 3835 3836 Add tuklib_mbstr_nonprint to mask non-printable characters 3837 3838 Malicious filenames or other untrusted strings may affect the state of 3839 the terminal when such strings are printed as part of (error) messages. 3840 Add functions that mask such characters. 3841 3842 It's not enough to handle only single-byte control characters. 3843 In multibyte locales, some control characters are multibyte too, for 3844 example, terminals interpret C1 control characters (U+0080 to U+009F) 3845 that are two bytes as UTF-8. 3846 3847 Instead of checking for control characters with iswcntrl(), this 3848 uses iswprint() to detect printable characters. This is much stricter. 3849 On Windows it's actually too strict as it rejects some characters that 3850 definitely are printable. 3851 3852 Gnulib's quotearg would do a lot more but I hope this simpler method 3853 is good enough here. 3854 3855 Thanks to Ryan Colyer for the discussion about the problems of 3856 the earlier single-byte-only method. 3857 3858 Thanks to Christian Weisgerber for reporting a bug in an earlier 3859 version of this code. 3860 3861 Thanks to Jeroen Roovers for a typo fix. 3862 3863 Closes: https://github.com/tukaani-project/xz/pull/118 3864 3865 src/Makefile.am | 2 + 3866 src/common/tuklib_mbstr_nonprint.c | 151 +++++++++++++++++++++++++++++++++++++ 3867 src/common/tuklib_mbstr_nonprint.h | 69 +++++++++++++++++ 3868 3 files changed, 222 insertions(+) 3869 3870commit 36190c8c4bb13d1eab84a30f3650a5ec5ff0e402 3871Author: Lasse Collin <lasse.collin@tukaani.org> 3872Date: 2024-12-18 11:33:09 +0200 3873 3874 Translations: Add preliminary Georgian translation 3875 3876 Most of the auto-wrapped strings are translated already. A few 3877 strings have changed since this was created though. This file 3878 isn't in the Translation Project *yet* because these strings 3879 are still very new. 3880 3881 Closes: https://github.com/tukaani-project/xz/pull/145 3882 3883 po/LINGUAS | 1 + 3884 po/ka.po | 1186 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3885 2 files changed, 1187 insertions(+) 3886 3887commit 4a0c4f92b820b84ace625a95305a9d56cb662f4e 3888Author: Lasse Collin <lasse.collin@tukaani.org> 3889Date: 2024-10-30 20:50:20 +0200 3890 3891 xz: Make one string simpler for translators 3892 3893 Leading spaces in the string can get miscounted by translators. 3894 3895 src/xz/list.c | 4 ++-- 3896 1 file changed, 2 insertions(+), 2 deletions(-) 3897 3898commit 3fcf547e926f6c0414b23459f7b43164f7e8c378 3899Author: Lasse Collin <lasse.collin@tukaani.org> 3900Date: 2024-12-17 10:26:10 +0200 3901 3902 lzmainfo: Sync the translatable strings with xz 3903 3904 src/lzmainfo/lzmainfo.c | 20 ++++++++++++-------- 3905 1 file changed, 12 insertions(+), 8 deletions(-) 3906 3907commit 3e9177fd206d20d6d8acc7d203c25a9ae0549229 3908Author: Lasse Collin <lasse.collin@tukaani.org> 3909Date: 2024-12-17 10:26:10 +0200 3910 3911 xz: Use automatic word wrapping for help texts 3912 3913 --long-help is now one line longer because --lzma1 is now on its 3914 own line. 3915 3916 CMakeLists.txt | 2 + 3917 src/xz/Makefile.am | 3 +- 3918 src/xz/message.c | 482 ++++++++++++++++++++++++++++++++++------------------- 3919 3 files changed, 313 insertions(+), 174 deletions(-) 3920 3921commit a0eecc9eb23ac583ccf442de3f5c106d4b09482d 3922Author: Lasse Collin <lasse.collin@tukaani.org> 3923Date: 2024-12-16 18:46:45 +0200 3924 3925 po/Makevars: Add --keyword=W_:... to XGETTEXT_OPTIONS 3926 3927 The text was copied from tuklib_gettext.h. 3928 3929 Also rearrange the --keyword options to be last on the line. 3930 3931 po/Makevars | 2 +- 3932 1 file changed, 1 insertion(+), 1 deletion(-) 3933 3934commit ca529c3f41a4a19a59e2e252e6dd9255f130c634 3935Author: Lasse Collin <lasse.collin@tukaani.org> 3936Date: 2024-12-16 18:43:52 +0200 3937 3938 Add tuklib_mbstr_wrap for automatic word wrapping 3939 3940 Automatic word wrapping makes translators' work easier and reduces 3941 errors like misaligned columns or overlong lines. Right-to-left 3942 languages and languages that don't use spaces between words will 3943 still need extra effort. (xz hasn't been translated to any RTL 3944 language so far.) 3945 3946 cmake/tuklib_mbstr.cmake | 4 + 3947 m4/tuklib_mbstr.m4 | 2 +- 3948 src/Makefile.am | 2 + 3949 src/common/tuklib_gettext.h | 11 ++ 3950 src/common/tuklib_mbstr_wrap.c | 285 +++++++++++++++++++++++++++++++++++++++++ 3951 src/common/tuklib_mbstr_wrap.h | 203 +++++++++++++++++++++++++++++ 3952 6 files changed, 506 insertions(+), 1 deletion(-) 3953 3954commit 314b83cebad0244a0015a8abc6d8d086b581c215 3955Author: Lasse Collin <lasse.collin@tukaani.org> 3956Date: 2024-12-17 17:57:18 +0200 3957 3958 Build: Sort filenames to ASCII order in Makefile.am 3959 3960 src/Makefile.am | 2 +- 3961 1 file changed, 1 insertion(+), 1 deletion(-) 3962 3963commit df399c52554dfdf60259ca2cce97adbcfff39dc0 3964Author: Lasse Collin <lasse.collin@tukaani.org> 3965Date: 2024-10-21 18:51:24 +0300 3966 3967 tuklib_mbstr_width: Add tuklib_mbstr_width_mem() 3968 3969 It's a new function split from tuklib_mbstr_width(). 3970 It's useful with partial strings that aren't terminated with \0. 3971 3972 src/common/tuklib_mbstr.h | 17 +++++++++++++++++ 3973 src/common/tuklib_mbstr_width.c | 8 ++++++++ 3974 2 files changed, 25 insertions(+) 3975 3976commit 51081efae4c52c226e96da95313916eba99f885f 3977Author: Lasse Collin <lasse.collin@tukaani.org> 3978Date: 2024-12-16 20:08:27 +0200 3979 3980 tuklib_mbstr_width: Update a comment about shift states 3981 3982 src/common/tuklib_mbstr_width.c | 11 ++++++++--- 3983 1 file changed, 8 insertions(+), 3 deletions(-) 3984 3985commit 7ff1b0ac53866877bdfd79acf5fee0269058c58b 3986Author: Lasse Collin <lasse.collin@tukaani.org> 3987Date: 2024-10-21 18:47:56 +0300 3988 3989 tuklib_mbstr_width: Don't mention shift states in the API docs 3990 3991 It is assumed that this code won't be used with charsets that use 3992 locking shift states. 3993 3994 src/common/tuklib_mbstr.h | 8 ++------ 3995 1 file changed, 2 insertions(+), 6 deletions(-) 3996 3997commit 3c16105936320e4095dbe84fa9a33a4a6d46a597 3998Author: Lasse Collin <lasse.collin@tukaani.org> 3999Date: 2024-10-21 18:41:41 +0300 4000 4001 tuklib_mbstr_width: Use stricter return value checking 4002 4003 This should make no difference in practice (at least if mbrtowc() 4004 isn't broken). 4005 4006 src/common/tuklib_mbstr_width.c | 2 +- 4007 1 file changed, 1 insertion(+), 1 deletion(-) 4008 4009commit b797c44c42ea54fe1c52722a2fca0c9618575598 4010Author: Lasse Collin <lasse.collin@tukaani.org> 4011Date: 2024-12-16 20:06:07 +0200 4012 4013 tuklib_mbstr_width: Change the behavior when wcwidth() is not available 4014 4015 If wcwidth() isn't available (Windows), previously it was assumed 4016 that one byte == one column in the terminal. Now it is assumed that 4017 one multibyte character == one column. This works better with UTF-8. 4018 Languages that only use single-width characters without any combining 4019 characters should work correctly with this. 4020 4021 In xz, none of po/*.po contain combining characters and only ko.po, 4022 zh_CN.po, and zh_TW.po contain fullwidth characters. Thus, "only" 4023 those three translations in xz are broken on Windows with the 4024 UTF-8 code page. Broken means that column headings in xz -lvv and 4025 (only in the master branch) strings in --long-help are misaligned, 4026 so it's not a huge problem. I don't know if those three languages 4027 displayed perfectly before the UTF-8 change because I hadn't tested 4028 translations with native Windows builds before. 4029 4030 Fixes: 46ee0061629fb075d61d83839e14dd193337af59 4031 4032 src/common/tuklib_mbstr_width.c | 13 +++++++++++-- 4033 1 file changed, 11 insertions(+), 2 deletions(-) 4034 4035commit 78868b6ed63fa4c89f73e3dfed27abfb8b0d46db 4036Author: Lasse Collin <lasse.collin@tukaani.org> 4037Date: 2024-12-18 14:23:13 +0200 4038 4039 xzdec: Use setlocale() via tuklib_gettext_setlocale() 4040 4041 xzdec isn't translated and didn't have locale-specific behavior 4042 in the past. On Windows with UTF-8 in the application manifest, 4043 setting the locale makes a difference though: 4044 4045 - Without any setlocale() call, non-ASCII filenames don't display 4046 properly in Command Prompt unless one first uses "chcp 65001" 4047 to set the console code page to UTF-8. 4048 4049 - setlocale(LC_ALL, "") is enough to make non-ASCII filenames 4050 print correctly in Command Prompt without using "chcp 65001", 4051 assuming that the non-UTF-8 code page (like 850) supports 4052 those non-ASCII characters. 4053 4054 - setlocale(LC_ALL, ".UTF8") is even better because then mbrtowc() and 4055 such functions use an UTF-8 locale instead of a legacy code page. 4056 The tuklib_gettext_setlocale() macro takes care of this (without 4057 enabling any translations). 4058 4059 Fixes: 46ee0061629fb075d61d83839e14dd193337af59 4060 4061 src/xzdec/xzdec.c | 12 ++++++++++++ 4062 1 file changed, 12 insertions(+) 4063 4064commit 0d0b574cc45045d6150d397776340c068df59e2a 4065Author: Lasse Collin <lasse.collin@tukaani.org> 4066Date: 2024-12-17 14:59:37 +0200 4067 4068 Windows: Use UTF-8 locale when active code page is UTF-8 4069 4070 XZ Utils 5.6.3 set the active code page to UTF-8 to fix CVE-2024-47611. 4071 This wasn't paired with UCRT-specific setlocale(LC_ALL, ".UTF8"), thus 4072 non-ASCII characters from translations became mojibake. 4073 4074 Fixes: 46ee0061629fb075d61d83839e14dd193337af59 4075 4076 src/common/tuklib_gettext.h | 32 ++++++++++++++++++++++++++++++-- 4077 1 file changed, 30 insertions(+), 2 deletions(-) 4078 4079commit 20dfca8171dad4c64785ac61d5b68972c444877b 4080Author: Lasse Collin <lasse.collin@tukaani.org> 4081Date: 2024-12-17 15:01:29 +0200 4082 4083 Windows: Document the need for setlocale(LC_ALL, ".UTF8") 4084 4085 Also warn about unpaired surrogates and (somewhat UTF-8-specific) 4086 MAX_PATH issue in FindFirstFileA(). 4087 4088 Fixes: 46ee0061629fb075d61d83839e14dd193337af59 4089 4090 src/common/w32_application.manifest.comments.txt | 28 +++++++++++++++++++++++- 4091 1 file changed, 27 insertions(+), 1 deletion(-) 4092 4093commit 4e936f234056e5831013ed922145b666b04bb1e3 4094Author: Lasse Collin <lasse.collin@tukaani.org> 4095Date: 2024-12-18 14:12:22 +0200 4096 4097 xzdec: Call tuklib_progname_init() early enough 4098 4099 If the early pledge() call on OpenBSD fails, it calls my_errorf() 4100 which requires the "progname" variable. 4101 4102 Fixes: d74fb5f060b76db709b50f5fd37490394e52f975 4103 4104 src/xzdec/xzdec.c | 6 +++--- 4105 1 file changed, 3 insertions(+), 3 deletions(-) 4106 4107commit 61feaf681bd793dc5c919732b44bca7dcf2ed1b8 4108Author: Lasse Collin <lasse.collin@tukaani.org> 4109Date: 2024-12-15 19:08:32 +0200 4110 4111 CMake: Bump maximum policy version to 3.31 4112 4113 With CMake 3.31, there were a few warnings from 4114 CMP0177 "install() DESTINATION paths are normalized". 4115 These occurred because the install(FILES) command in 4116 my_install_man_lang() is called with a DESTINATION path 4117 that contains two consecutive slashes, for example, 4118 "share/man//man1". Such a path is for the English man pages. 4119 With translated man pages, the language code goes between 4120 the slashes. The warning was probably triggered because the 4121 extra slash gets removed by the normalization. 4122 4123 CMakeLists.txt | 2 +- 4124 1 file changed, 1 insertion(+), 1 deletion(-) 4125 4126commit b0bb84dd7bbdcc85243386a0051c7b2cb5fc6a18 4127Author: Lasse Collin <lasse.collin@tukaani.org> 4128Date: 2024-12-15 18:35:27 +0200 4129 4130 Update THANKS 4131 4132 THANKS | 1 + 4133 1 file changed, 1 insertion(+) 4134 4135commit bee0c044d30a6ad3b3d94901c27e7519f6f46e27 4136Author: Dexter Castor Döpping <dexter.c.dopping@gmail.com> 4137Date: 2024-12-08 18:24:29 +0100 4138 4139 liblzma: Fix incorrect macro name in a comment 4140 4141 Fixes: 33b8a24b6646a9dbfd8358405aec466b13078559 4142 Closes: https://github.com/tukaani-project/xz/pull/155 4143 4144 src/liblzma/api/lzma/lzma12.h | 2 +- 4145 1 file changed, 1 insertion(+), 1 deletion(-) 4146 4147commit 2cfa1ad0a9eb62b1847cf13f9aee290158978a3a 4148Author: Lasse Collin <lasse.collin@tukaani.org> 4149Date: 2024-12-17 10:36:43 +0200 4150 4151 license-check.sh: Add an exception for doc/SHA256SUMS 4152 4153 Fixes: 36b531022f24a2ab57a2dfb9e5052f1c176e9d9a 4154 4155 build-aux/license-check.sh | 1 + 4156 1 file changed, 1 insertion(+) 4157 4158commit 36b531022f24a2ab57a2dfb9e5052f1c176e9d9a 4159Author: Lasse Collin <lasse.collin@tukaani.org> 4160Date: 2024-12-01 21:38:17 +0200 4161 4162 doc/SHA256SUMS: Add the list of SHA-256 hashes of release files 4163 4164 The release files are signed but verifying the signatures cannot 4165 catch certain types of attacks: 4166 4167 1. A malicious maintainer could make more than one variant of 4168 a package. One could be for general distribution. Another 4169 with malicious content could be targeted to specific users, 4170 for example, distributing the malicious version on a mirror 4171 controlled by the attacker. 4172 4173 2. If the signing key of an honest maintainer was compromised 4174 without being detected, a similar situation as described 4175 above could occur. 4176 4177 SHA256SUMS could be put on the project website but having it in 4178 the Git repository makes it obvious that old lines aren't modified 4179 when the file is updated. 4180 4181 Hashes of uncompressed files are included too. This way tarballs 4182 can be recompressed and the hashes can still be verified. 4183 4184 .gitattributes | 1 + 4185 doc/SHA256SUMS | 218 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4186 2 files changed, 219 insertions(+) 4187 4188commit fe9e66993fdbcc2981c7361b9b034a451eb0fc42 4189Author: Lasse Collin <lasse.collin@tukaani.org> 4190Date: 2024-11-30 12:05:59 +0200 4191 4192 Docs: Remove .github/SECURITY.md 4193 4194 One of the reasons to have this file in the xz repository was to 4195 show vulnerability reporting info in the Security section on GitHub. 4196 On 2024-11-25, I added SECURITY.md to the tukaani-project organization 4197 on GitHub: 4198 4199 https://github.com/tukaani-project/.github/blob/main/SECURITY.md 4200 4201 GitHub shows that file in all projects in the organization unless 4202 overridden by a project-specific SECURITY.md. Thus, removing 4203 the file from the xz repo makes GitHub show the organization-wide 4204 text instead. 4205 4206 Maintaining a single copy for the whole GitHub organization makes 4207 things simpler. It's also nicer to have fewer GitHub-specific files 4208 in the xz repo. Information how to report bugs (including security 4209 issues) is available in README and on the home page too. 4210 4211 The OpenSSF Scorecard tool didn't find .github/SECURITY.md from the 4212 xz repository. There was a suggestion to move the file to the top-level 4213 directory where Scorecard should find it. However, Scorecard does find 4214 the organization-wide SECURITY.md. Thus, the file isn't needed in the 4215 xz repository to score points in the Scorecard game: 4216 4217 https://scorecard.dev/viewer/?uri=github.com/tukaani-project/xz 4218 4219 Closes: https://github.com/tukaani-project/xz/issues/148 4220 Closes: https://github.com/tukaani-project/xz/pull/149 4221 4222 .github/SECURITY.md | 14 -------------- 4223 1 file changed, 14 deletions(-) 4224 4225commit b36177273602ebc83e9cc58517f63a7b6af33f70 4226Author: Lasse Collin <lasse.collin@tukaani.org> 4227Date: 2024-11-30 10:27:14 +0200 4228 4229 Translations: Update the Chinese (traditional) translation 4230 4231 po/zh_TW.po | 201 +++++++++++++++++++++++++----------------------------------- 4232 1 file changed, 84 insertions(+), 117 deletions(-) 4233 4234commit c15115f7ede492f20c91b08ba485f9426f60233f 4235Author: Lasse Collin <lasse.collin@tukaani.org> 4236Date: 2024-10-30 19:54:34 +0200 4237 4238 liblzma: Optimize the loop conditions in BCJ filters 4239 4240 Compilers cannot optimize the addition "i + 4" away since theoretically 4241 it could overflow. 4242 4243 src/liblzma/simple/arm.c | 4 +++- 4244 src/liblzma/simple/arm64.c | 4 +++- 4245 src/liblzma/simple/armthumb.c | 7 ++++++- 4246 src/liblzma/simple/ia64.c | 4 +++- 4247 src/liblzma/simple/powerpc.c | 4 +++- 4248 src/liblzma/simple/sparc.c | 5 +++-- 4249 6 files changed, 21 insertions(+), 7 deletions(-) 4250 4251commit 9f69e71e78621fd056f5eaaad7cdcd9279310fb5 4252Author: Lasse Collin <lasse.collin@tukaani.org> 4253Date: 2024-11-25 16:26:54 +0200 4254 4255 Update THANKS 4256 4257 THANKS | 1 + 4258 1 file changed, 1 insertion(+) 4259 4260commit 48ff3f06521ca326996ab9a04d1b342098960427 4261Author: Mark Wielaard <mark@klomp.org> 4262Date: 2024-11-25 12:28:44 +0200 4263 4264 xz: Landlock: Fix a file descriptor leak 4265 4266 src/xz/sandbox.c | 1 + 4267 1 file changed, 1 insertion(+) 4268 4269commit dbca3d078ec581600600abebbb18769d3d713914 4270Author: Sam James <sam@gentoo.org> 4271Date: 2024-10-02 03:04:03 +0100 4272 4273 CI: update FreeBSD, NetBSD, OpenBSD, Solaris actions 4274 4275 Checked the changes and they're all innocuous. This should hopefully 4276 fix the "externally managed" pip error in these jobs that started 4277 recently. 4278 4279 .github/workflows/freebsd.yml | 2 +- 4280 .github/workflows/netbsd.yml | 2 +- 4281 .github/workflows/openbsd.yml | 2 +- 4282 .github/workflows/solaris.yml | 2 +- 4283 4 files changed, 4 insertions(+), 4 deletions(-) 4284 4285commit a94b85bea3f04d8c1f4e2e6f648a9a15bc6ce58f 4286Author: Lasse Collin <lasse.collin@tukaani.org> 4287Date: 2024-10-01 12:17:39 +0300 4288 4289 Add NEWS for 5.6.3 4290 4291 NEWS | 125 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4292 1 file changed, 125 insertions(+) 4293 4294commit be4bf94446b6286a5dffdde85fc1d21448f4edff 4295Author: Lasse Collin <lasse.collin@tukaani.org> 4296Date: 2024-10-01 14:49:41 +0300 4297 4298 cmake/tuklib_large_file_support.cmake: Add a missing include 4299 4300 v5.2 didn't build with CMake. Other branches had 4301 include(CMakePushCheckState) in top-level CMakeLists.txt 4302 which made the build work. 4303 4304 Fixes: 597f49b61475438a43a417236989b2acc968a686 4305 4306 cmake/tuklib_large_file_support.cmake | 1 + 4307 1 file changed, 1 insertion(+) 4308 4309commit 1ebbe915d4e0d877154261b5f8103719a6722975 4310Author: Lasse Collin <lasse.collin@tukaani.org> 4311Date: 2024-10-01 12:10:23 +0300 4312 4313 Update THANKS 4314 4315 THANKS | 2 ++ 4316 1 file changed, 2 insertions(+) 4317 4318commit 74702ee00ecfd080d8ab11118cd25dbe6c437ec0 4319Author: Lasse Collin <lasse.collin@tukaani.org> 4320Date: 2024-10-01 12:10:23 +0300 4321 4322 Tests/Windows: Add the application manifest to the test programs 4323 4324 This ensures that the test programs get executed the same way as 4325 the binaries that are installed. 4326 4327 CMakeLists.txt | 14 ++++++++++---- 4328 tests/Makefile.am | 10 ++++++++++ 4329 tests/tests.cmake | 33 ++++++++++++++++++++++++++++++++- 4330 tests/tests_w32res.rc | 18 ++++++++++++++++++ 4331 4 files changed, 70 insertions(+), 5 deletions(-) 4332 4333commit 7ddf2273e0e4654582ee65db19d44431bfdb5791 4334Author: Lasse Collin <lasse.collin@tukaani.org> 4335Date: 2024-10-01 12:10:23 +0300 4336 4337 license-check.sh: Add an exception for w32_application.manifest 4338 4339 The file gets embedded as is into executables, thus it cannot 4340 hold a license identifier. 4341 4342 build-aux/license-check.sh | 1 + 4343 1 file changed, 1 insertion(+) 4344 4345commit 46ee0061629fb075d61d83839e14dd193337af59 4346Author: Lasse Collin <lasse.collin@tukaani.org> 4347Date: 2024-10-01 12:10:23 +0300 4348 4349 Windows: Embed an application manifest in the EXE files 4350 4351 IMPORTANT: This includes a security fix to command line tool 4352 argument handling. 4353 4354 Some toolchains embed an application manifest by default to declare 4355 UAC-compliance. Some also declare compatibility with Vista/8/8.1/10/11 4356 to let the app access features newer than those of Vista. 4357 4358 We want all the above but also two more things: 4359 4360 - Declare that the app is long path aware to support paths longer 4361 than 259 characters (this may also require a registry change). 4362 4363 - Force the code page to UTF-8. This allows the command line tools 4364 to access files whose names contain characters that don't exist 4365 in the current legacy code page (except unpaired surrogates). 4366 The UTF-8 code page also fixes security issues in command line 4367 argument handling which can be exploited with malicious filenames. 4368 See the new file w32_application.manifest.comments.txt. 4369 4370 Thanks to Orange Tsai and splitline from DEVCORE Research Team 4371 for discovering this issue. 4372 4373 Thanks to Vijay Sarvepalli for reporting the issue to me. 4374 4375 Thanks to Kelvin Lee for testing with MSVC and helping with 4376 the required build system fixes. 4377 4378 CMakeLists.txt | 18 +++ 4379 src/Makefile.am | 4 +- 4380 src/common/common_w32res.rc | 5 + 4381 src/common/w32_application.manifest | 28 ++++ 4382 src/common/w32_application.manifest.comments.txt | 178 +++++++++++++++++++++++ 4383 5 files changed, 232 insertions(+), 1 deletion(-) 4384 4385commit dad153091552b52a41b95ec4981c6951f1cae487 4386Author: Lasse Collin <lasse.collin@tukaani.org> 4387Date: 2024-09-29 14:46:52 +0300 4388 4389 Windows: Set DLL name accurately in StringFileInfo on Cygwin and MSYS2 4390 4391 Now the information in the "Details" tab in the file properties 4392 dialog matches the naming convention of Cygwin and MSYS2. This 4393 is only a cosmetic change. 4394 4395 src/liblzma/liblzma_w32res.rc | 10 +++++++++- 4396 1 file changed, 9 insertions(+), 1 deletion(-) 4397 4398commit 8940ecb96fe9f0f2a9cfb8b66fe9ed31ffbea904 4399Author: Lasse Collin <lasse.collin@tukaani.org> 4400Date: 2024-09-25 15:47:55 +0300 4401 4402 common_w32res.rc: White space edits 4403 4404 LANGUAGE and VS_VERSION_INFO begin new statements so put an empty line 4405 between them. 4406 4407 src/common/common_w32res.rc | 15 ++++++++------- 4408 1 file changed, 8 insertions(+), 7 deletions(-) 4409 4410commit c3b9dad07d3fd9319f88386b7095019bcea45ce1 4411Author: Lasse Collin <lasse.collin@tukaani.org> 4412Date: 2024-09-28 20:09:50 +0300 4413 4414 CMake: Add the resource files to the Cygwin and MSYS2 builds 4415 4416 Autotools-based build has always done this so this is for consistency. 4417 4418 However, the CMake build won't create the DEF file when building 4419 for Cygwin or MSYS2 because in that context it should be useless. 4420 (If Cygwin or MSYS2 is used to host building of normal Windows 4421 binaries then the DEF file is still created.) 4422 4423 CMakeLists.txt | 16 ++++++++++------ 4424 1 file changed, 10 insertions(+), 6 deletions(-) 4425 4426commit da4f275bd1c18b897e5c2dd0043546de3accce0a 4427Author: Lasse Collin <lasse.collin@tukaani.org> 4428Date: 2024-09-28 15:19:14 +0300 4429 4430 CMake: Fix Windows resource file dependencies 4431 4432 If common_w32res.rc is modified, the resource files need to be rebuilt. 4433 In contrast, the liblzma*.map files truly are link dependencies. 4434 4435 CMakeLists.txt | 17 +++++++++-------- 4436 1 file changed, 9 insertions(+), 8 deletions(-) 4437 4438commit 1c673c0aac7f7dee8dda2c1140351c8417a71e47 4439Author: Lasse Collin <lasse.collin@tukaani.org> 4440Date: 2024-09-29 01:20:03 +0300 4441 4442 CMake: Checking for CYGWIN covers MSYS2 too 4443 4444 On MSYS2, both CYGWIN and MSYS are set. 4445 4446 CMakeLists.txt | 2 +- 4447 1 file changed, 1 insertion(+), 1 deletion(-) 4448 4449commit 6aaa0173b839e28429d43a8b62d257ad2f3b4521 4450Author: Lasse Collin <lasse.collin@tukaani.org> 4451Date: 2024-09-28 09:37:30 +0300 4452 4453 Translations: Add the SPDX license identifier to pt_BR.po 4454 4455 po/pt_BR.po | 2 ++ 4456 1 file changed, 2 insertions(+) 4457 4458commit dc7b9f24b737e4e55bcbbdde6754883f991c2cfb 4459Author: Lasse Collin <lasse.collin@tukaani.org> 4460Date: 2024-09-25 16:41:37 +0300 4461 4462 Windows/CMake: Use the correct resource file for lzmadec.exe 4463 4464 CMakeLists.txt was using xzdec_w32res.rc for both xzdec and lzmadec. 4465 4466 Fixes: 998d0b29536094a89cf385a3b894e157db1ccefe 4467 4468 CMakeLists.txt | 2 +- 4469 1 file changed, 1 insertion(+), 1 deletion(-) 4470 4471commit b834ae5f80911a3819d6cdb484f61b257174c544 4472Author: Lasse Collin <lasse.collin@tukaani.org> 4473Date: 2024-09-25 21:29:59 +0300 4474 4475 Translations: Update the Brazilian Portuguese translation 4476 4477 po/pt_BR.po | 144 ++++++++++++++++++++++-------------------------------------- 4478 1 file changed, 53 insertions(+), 91 deletions(-) 4479 4480commit eceb023d4c129fd63ee881a2d8696eaf52ad1532 4481Author: Lasse Collin <lasse.collin@tukaani.org> 4482Date: 2024-09-17 01:21:15 +0300 4483 4484 Update THANKS 4485 4486 THANKS | 1 + 4487 1 file changed, 1 insertion(+) 4488 4489commit 76cfd0a9bb33ae8e534b1f73f6359dc825589f2f 4490Author: Tobias Stoeckmann <tobias@stoeckmann.org> 4491Date: 2024-09-16 23:19:46 +0200 4492 4493 lzmainfo: Avoid integer overflow 4494 4495 The MB output can overflow with huge numbers. Most likely these are 4496 invalid .lzma files anyway, but let's avoid garbage output. 4497 4498 lzmadec was adapted from LZMA Utils. The original code with this bug 4499 was written in 2005, over 19 years ago. 4500 4501 Co-authored-by: Lasse Collin <lasse.collin@tukaani.org> 4502 Closes: https://github.com/tukaani-project/xz/pull/144 4503 4504 src/lzmainfo/lzmainfo.c | 5 ++--- 4505 1 file changed, 2 insertions(+), 3 deletions(-) 4506 4507commit 78355aebb7fb654302e5e33692ba109909dacaff 4508Author: Tobias Stoeckmann <tobias@stoeckmann.org> 4509Date: 2024-09-16 22:04:40 +0200 4510 4511 xzdec: Remove unused short option -M 4512 4513 "xzdec -M123" exited with exit status 1 without printing 4514 any messages. The "M:" entry should have been removed when 4515 the memory usage limiter support was removed from xzdec. 4516 4517 Fixes: 792331bdee706aa852a78b171040ebf814c6f3ae 4518 Closes: https://github.com/tukaani-project/xz/pull/143 4519 [ Lasse: Commit message edits ] 4520 4521 src/xzdec/xzdec.c | 2 +- 4522 1 file changed, 1 insertion(+), 1 deletion(-) 4523 4524commit e5758db7bd75587a2499e0771907521a4aa86908 4525Author: Lasse Collin <lasse.collin@tukaani.org> 4526Date: 2024-09-10 13:54:47 +0300 4527 4528 Update THANKS 4529 4530 THANKS | 1 + 4531 1 file changed, 1 insertion(+) 4532 4533commit 80ffa38f56657257ed4d90d76f6bd2f2bcb8163c 4534Author: Firas Khalil Khana <firasuke@gmail.com> 4535Date: 2024-09-10 12:30:32 +0300 4536 4537 Build: Fix a typo in autogen.sh 4538 4539 Fixes: e9be74f5b129fe8a5388d588e68b1b7f5168a310 4540 Closes: https://github.com/tukaani-project/xz/pull/141 4541 4542 autogen.sh | 2 +- 4543 1 file changed, 1 insertion(+), 1 deletion(-) 4544 4545commit 68c54e45d042add64a4cb44bfc87ca74d29b87e2 4546Author: Lasse Collin <lasse.collin@tukaani.org> 4547Date: 2024-09-02 20:08:40 +0300 4548 4549 Translations: Update Chinese (simplified) translation 4550 4551 Differences to the zh_CN.po file from the Translation Project: 4552 4553 - Two uses of \v were fixed. 4554 4555 - Missing "OPTS" translation in --riscv[=OPTS] was copied from 4556 previous lines. 4557 4558 - "make update-po" was run to remove line numbers from comments. 4559 4560 po/zh_CN.po | 102 ++++++++++++++++++++++++------------------------------------ 4561 1 file changed, 40 insertions(+), 62 deletions(-) 4562 4563commit 2230692aa1bcebb586100183831e3daf1714d60a 4564Author: Lasse Collin <lasse.collin@tukaani.org> 4565Date: 2024-09-02 19:40:50 +0300 4566 4567 Translations: Update the Catalan translation 4568 4569 Differences to the ca.po file from the Translation Project: 4570 4571 - An overlong line translating --filters-help was wrapped. 4572 4573 - "make update-po" was used to remove line numbers from the comments 4574 to match the changes in fccebe2b4fd513488fc920e4dac32562ed3c7637 4575 and 093490b58271e9424ce38a7b1b38bcf61b9c86c6. xz.pot in the TP 4576 is older than these commits. 4577 4578 po/ca.po | 171 ++++++++++++++++++++++++++------------------------------------- 4579 1 file changed, 69 insertions(+), 102 deletions(-) 4580 4581commit 3e7723ce26f74c71919984a6180504b4548cbb7e 4582Author: Lasse Collin <lasse.collin@tukaani.org> 4583Date: 2024-08-22 14:06:16 +0300 4584 4585 Update THANKS 4586 4587 THANKS | 1 + 4588 1 file changed, 1 insertion(+) 4589 4590commit d3e0e679b2b8b428598bb8ba56a17715190814db 4591Author: Lasse Collin <lasse.collin@tukaani.org> 4592Date: 2024-08-22 14:06:16 +0300 4593 4594 CMake: Don't install lzmadec.1 symlinks if XZ_TOOL_LZMADEC=OFF 4595 4596 Thanks-to: 榆柳松 (ZhengSen Wang) <wzhengsen@gmail.com> 4597 Fixes: fb50c6ba1d4c9405e5b12b5988b01a3002638c5d 4598 Closes: https://github.com/tukaani-project/xz/pull/134 4599 4600 CMakeLists.txt | 12 ++++++++++-- 4601 1 file changed, 10 insertions(+), 2 deletions(-) 4602 4603commit acdf21033abe347d9a279e9fe757f90ed16c1dbb 4604Author: Lasse Collin <lasse.collin@tukaani.org> 4605Date: 2024-08-22 14:06:16 +0300 4606 4607 CMake: Fix the build when XZ_TOOL_LZMADEC=OFF 4608 4609 Co-developed-by: 榆柳松 (ZhengSen Wang) <wzhengsen@gmail.com> 4610 Fixes: fb50c6ba1d4c9405e5b12b5988b01a3002638c5d 4611 Fixes: https://github.com/tukaani-project/xz/pull/134 4612 4613 CMakeLists.txt | 6 ++++-- 4614 1 file changed, 4 insertions(+), 2 deletions(-) 4615 4616commit 5e375987509fab484b7bef0b90be92f241c58c91 4617Author: Lasse Collin <lasse.collin@tukaani.org> 4618Date: 2024-08-22 11:01:07 +0300 4619 4620 Update THANKS 4621 4622 THANKS | 1 + 4623 1 file changed, 1 insertion(+) 4624 4625commit 6cd7c8607843c337edfe2c472aa316602a393754 4626Author: Yifeng Li <tomli@tomli.me> 4627Date: 2024-08-22 02:18:49 +0000 4628 4629 liblzma: Fix x86-64 movzw compatibility in range_decoder.h 4630 4631 Support for instruction "movzw" without suffix in "GNU as" was 4632 added in commit [1] and stabilized in binutils 2.27, released 4633 in August 2016. Earlier systems don't accept this instruction 4634 without a suffix, making range_decoder.h's inline assembly 4635 unable to build on old systems such as Ubuntu 16.04, creating 4636 error messages like: 4637 4638 lzma_decoder.c: Assembler messages: 4639 lzma_decoder.c:371: Error: no such instruction: `movzw 2(%r11),%esi' 4640 lzma_decoder.c:373: Error: no such instruction: `movzw 4(%r11),%edi' 4641 lzma_decoder.c:388: Error: no such instruction: `movzw 6(%r11),%edx' 4642 lzma_decoder.c:398: Error: no such instruction: `movzw (%r11,%r14,4),%esi' 4643 4644 Change "movzw" to "movzwl" for compatibility. 4645 4646 [1] https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=c07315e0c610e0e3317b4c02266f81793df253d2 4647 4648 Suggested-by: Lasse Collin <lasse.collin@tukaani.org> 4649 Tested-by: Yifeng Li <tomli@tomli.me> 4650 Signed-off-by: Yifeng Li <tomli@tomli.me> 4651 Fixes: 3182a330c1512cc1f5c87b5c5a272578e60a5158 4652 Fixes: https://github.com/tukaani-project/xz/issues/121 4653 Closes: https://github.com/tukaani-project/xz/pull/136 4654 4655 src/liblzma/rangecoder/range_decoder.h | 24 ++++++++++++------------ 4656 1 file changed, 12 insertions(+), 12 deletions(-) 4657 4658commit bf901dee5d4c46609645e50311c0cb2dfdcf9738 4659Author: Lasse Collin <lasse.collin@tukaani.org> 4660Date: 2024-07-19 20:02:43 +0300 4661 4662 Build: Comment that elf_aux_info(3) will be available on OpenBSD >= 7.6 4663 4664 CMakeLists.txt | 2 +- 4665 configure.ac | 17 +++++++++++------ 4666 2 files changed, 12 insertions(+), 7 deletions(-) 4667 4668commit f7103c2c2a8fa51d1f308ba7387beeff20a0d4dd 4669Author: Lasse Collin <lasse.collin@tukaani.org> 4670Date: 2024-07-19 19:42:26 +0300 4671 4672 Revert "liblzma: Add ARM64 CRC32 instruction support detection on OpenBSD" 4673 4674 This reverts commit dc03f6290f5b9bd3d50c7e12e58dee870889d599. 4675 4676 OpenBSD 7.6 will support elf_aux_info(3), and the detection code used 4677 on FreeBSD will work on OpenBSD 7.6 too. Keep things simpler and drop 4678 the OpenBSD-specific sysctl() method. 4679 4680 Thanks to Christian Weisgerber. 4681 4682 CMakeLists.txt | 6 ------ 4683 configure.ac | 9 --------- 4684 src/liblzma/check/crc32_arm64.h | 15 --------------- 4685 src/liblzma/check/crc_common.h | 1 - 4686 4 files changed, 31 deletions(-) 4687 4688commit 7c292dd0bf23cefcdf4b1509f3666322e08a7ede 4689Author: Lasse Collin <lasse.collin@tukaani.org> 4690Date: 2024-07-13 22:10:37 +0300 4691 4692 liblzma: Tweak a comment 4693 4694 src/liblzma/simple/arm64.c | 4 ++-- 4695 1 file changed, 2 insertions(+), 2 deletions(-) 4696 4697commit 6408edac5529d6ec0abf52794074f229c8362303 4698Author: Lasse Collin <lasse.collin@tukaani.org> 4699Date: 2024-07-11 22:17:56 +0300 4700 4701 CMake: Bump maximum policy version to 3.30 4702 4703 CMakeLists.txt | 2 +- 4704 1 file changed, 1 insertion(+), 1 deletion(-) 4705 4706commit 9231c39ffb518196d6664a86e5325e744621a21b 4707Author: Lasse Collin <lasse.collin@tukaani.org> 4708Date: 2024-07-06 15:13:19 +0300 4709 4710 CMake: Require CMake 3.20 or later 4711 4712 This allows a few cleanups. 4713 4714 CMakeLists.txt | 78 ++++++++++++++++++++-------------------------------------- 4715 1 file changed, 27 insertions(+), 51 deletions(-) 4716 4717commit 028185dd4889e3d6235ff13560160ebca6985021 4718Author: Lasse Collin <lasse.collin@tukaani.org> 4719Date: 2024-07-09 14:27:51 +0300 4720 4721 Update THANKS 4722 4723 THANKS | 1 + 4724 1 file changed, 1 insertion(+) 4725 4726commit baecfa142644eb5f5c6dd6f8e2f531c362fa3747 4727Author: Lasse Collin <lasse.collin@tukaani.org> 4728Date: 2024-07-06 14:04:48 +0300 4729 4730 xz: Remove the TODO comment about --recursive 4731 4732 It won't be implemented. find + xargs is more flexible, for example, 4733 it allows compressing small files in parallel. An example for that 4734 has been included in the xz man page since 2010. 4735 4736 src/xz/args.c | 1 - 4737 1 file changed, 1 deletion(-) 4738 4739commit f691d58fae82bd815c5f86ffad10fe9b6b59dad8 4740Author: Lasse Collin <lasse.collin@tukaani.org> 4741Date: 2024-07-06 14:04:16 +0300 4742 4743 Document --disable-loongarch-crc32 in INSTALL 4744 4745 INSTALL | 8 ++++++++ 4746 1 file changed, 8 insertions(+) 4747 4748commit b3e53122f42796aaebd767bab920cf7bedf69966 4749Author: Lasse Collin <lasse.collin@tukaani.org> 4750Date: 2024-07-03 20:45:48 +0300 4751 4752 CMake: Link xz against Threads::Threads if using pthreads 4753 4754 The liblzma target was recently changed to link against Threads::Threads 4755 with the PRIVATE keyword. I had forgotten that xz itself depends on 4756 pthreads too due to pthread_sigmask(). Thus, the build broke when 4757 building shared liblzma and pthread_sigmask() wasn't in libc. 4758 4759 Thanks to Peter Seiderer for the bug report. 4760 4761 Fixes: ac05f1b0d7cda1e7ae79775a8dfecc54601d7f1c 4762 Fixes: https://github.com/tukaani-project/xz/issues/129#issuecomment-2204522994 4763 4764 CMakeLists.txt | 13 +++++++++++++ 4765 1 file changed, 13 insertions(+) 4766 4767commit 5742ec1fc7f2cf1c82cfe3477bb90594a4658374 4768Author: Lasse Collin <lasse.collin@tukaani.org> 4769Date: 2024-07-02 22:49:33 +0300 4770 4771 Update THANKS 4772 4773 THANKS | 1 + 4774 1 file changed, 1 insertion(+) 4775 4776commit 2d13d10357ecad243d7e4ff1de0e6b437c38a47a 4777Author: Lasse Collin <lasse.collin@tukaani.org> 4778Date: 2024-07-02 20:23:35 +0300 4779 4780 CMake: Improve NLS error messages 4781 4782 CMakeLists.txt | 11 +++++++---- 4783 1 file changed, 7 insertions(+), 4 deletions(-) 4784 4785commit 628d8d2c4fdf9e6a91c7bba7a743f400a94c2909 4786Author: Lasse Collin <lasse.collin@tukaani.org> 4787Date: 2024-07-02 20:19:47 +0300 4788 4789 CMake: Update the comment at the top of CMakeLists.txt 4790 4791 While po/*.gmo files won't be used from the release tarball, 4792 the generated translated man pages will be used still. Those 4793 are text files and po4a has slightly more dependencies than 4794 gettext tools so installing po4a might be a bit more challenging 4795 in some situations. 4796 4797 CMakeLists.txt | 17 +++++++---------- 4798 1 file changed, 7 insertions(+), 10 deletions(-) 4799 4800commit b4b23c94fd4429abc663ced28d5cdc9cf7eb7507 4801Author: Lasse Collin <lasse.collin@tukaani.org> 4802Date: 2024-07-02 20:12:40 +0300 4803 4804 CMake: Drop support for pre-generated po/*.gmo files 4805 4806 When a release tarball is created using Autotools, the tarball includes 4807 po/*.gmo files which are binary files generated from po/*.po. Other 4808 tarball creation methods don't and won't create the .gmo files. 4809 4810 It feels clearer if CMake will never install pre-generated binary files 4811 from the source package. If people are able to install CMake, they 4812 likely are able to install gettext tools as well (assuming they want 4813 translations). 4814 4815 CMakeLists.txt | 66 +++++++++++++++++++--------------------------------------- 4816 1 file changed, 21 insertions(+), 45 deletions(-) 4817 4818commit fb99f8e8c50171b898cb79fe1dc703d5f91e4f0a 4819Author: Lasse Collin <lasse.collin@tukaani.org> 4820Date: 2024-07-02 19:14:50 +0300 4821 4822 CMake: Make XZ_NLS handling more robust 4823 4824 If a user set XZ_NLS=ON but find_package(Intl) failed or CMake version 4825 wasn't at least 3.20, the configuration would fail in a cryptic way. 4826 4827 If XZ_NLS is enabled, require that CMake is new enough and that either 4828 gettext tools or pre-generated .gmo files are available. Otherwise fail 4829 the configuration. Previously missing gettext tools and .gmo files would 4830 only result in a warning. 4831 4832 Missing man page translations are still only a warning. 4833 4834 Thanks to Peter Seiderer for the bug report. 4835 4836 Fixes: https://github.com/tukaani-project/xz/issues/129 4837 Closes: https://github.com/tukaani-project/xz/pull/130 4838 4839 CMakeLists.txt | 82 ++++++++++++++++++++++++++++++++-------------------------- 4840 1 file changed, 46 insertions(+), 36 deletions(-) 4841 4842commit ec6157570ea8a8e38158894e530d35416ff6a0f8 4843Author: Lasse Collin <lasse.collin@tukaani.org> 4844Date: 2024-07-02 19:39:05 +0300 4845 4846 CI: Add gettext as a dependency to CMake builds 4847 4848 .github/workflows/ci.yml | 4 ++-- 4849 1 file changed, 2 insertions(+), 2 deletions(-) 4850 4851commit 24f0f7e399de03bb2ff675d97b723d14f17ed6ac 4852Author: Lasse Collin <lasse.collin@tukaani.org> 4853Date: 2024-07-02 18:43:56 +0300 4854 4855 CMake: Fix ENABLE_NLS comment too 4856 4857 Fixes: 29f77c7b707f2458fb047e77497354b195e05b14 4858 4859 CMakeLists.txt | 2 +- 4860 1 file changed, 1 insertion(+), 1 deletion(-) 4861 4862commit a0df0676130bc565af0ec911e68a1d0fbc3ed0fb 4863Author: Lasse Collin <lasse.collin@tukaani.org> 4864Date: 2024-07-02 18:02:50 +0300 4865 4866 CMake: The compile definition is ENABLE_NLS, not XZ_NLS 4867 4868 The CMake variables were renamed and accidentally also 4869 the compile definition was renamed. As a result, translation 4870 support wasn't actually enabled in the executables. 4871 4872 Fixes: 29f77c7b707f2458fb047e77497354b195e05b14 4873 4874 CMakeLists.txt | 4 ++-- 4875 1 file changed, 2 insertions(+), 2 deletions(-) 4876 4877commit 45d08abc33ccc52d2f050dcec458badc2ce59d0b 4878Author: Lasse Collin <lasse.collin@tukaani.org> 4879Date: 2024-07-01 17:33:20 +0300 4880 4881 Update AUTHORS and THANKS 4882 4883 AUTHORS | 2 +- 4884 THANKS | 1 + 4885 2 files changed, 2 insertions(+), 1 deletion(-) 4886 4887commit 7baf6835cfbf9c85ba37f9ffb7d4f87fb86a474e 4888Author: Xi Ruoyao <xry111@xry111.site> 4889Date: 2024-06-28 13:36:43 +0300 4890 4891 liblzma: Speed up CRC32 calculation on 64-bit LoongArch 4892 4893 The crc.w.{b/h/w/d}.w instructions in LoongArch can calculate the CRC32 4894 result for 1/2/4/8 bytes in a single operation. Using these is much 4895 faster compared to the generic method. 4896 4897 Optimized CRC32 is enabled unconditionally on 64-bit LoongArch because 4898 the LoongArch specification says that CRC32 instructions shall be 4899 implemented for 64-bit processors. Optimized CRC32 isn't enabled for 4900 32-bit LoongArch processors because not enough information is available 4901 about them. 4902 4903 Co-authored-by: Lasse Collin <lasse.collin@tukaani.org> 4904 4905 Closes: https://github.com/tukaani-project/xz/pull/86 4906 4907 CMakeLists.txt | 25 ++++++++++++++ 4908 configure.ac | 40 +++++++++++++++++++++++ 4909 src/liblzma/check/Makefile.inc | 3 +- 4910 src/liblzma/check/crc32_fast.c | 2 ++ 4911 src/liblzma/check/crc32_loongarch.h | 65 +++++++++++++++++++++++++++++++++++++ 4912 src/liblzma/check/crc_common.h | 15 +++++++++ 4913 6 files changed, 149 insertions(+), 1 deletion(-) 4914 4915commit 0ed893668554fb0758003289f8a6af9bd08b89d1 4916Author: Lasse Collin <lasse.collin@tukaani.org> 4917Date: 2024-06-28 14:20:49 +0300 4918 4919 liblzma: ARM64 CRC32: Align the buffer faster 4920 4921 Instead of doing it byte by byte, use the 1/2/4-byte CRC32 instructions. 4922 4923 src/liblzma/check/crc32_arm64.h | 54 ++++++++++++++++++++++++++++++----------- 4924 1 file changed, 40 insertions(+), 14 deletions(-) 4925 4926commit 7e99856f66c07852c4e0de7aa01951e9147d86b0 4927Author: Sam James <sam@gentoo.org> 4928Date: 2024-06-28 14:18:35 +0300 4929 4930 CI: Speed up Valgrind job by using --trace-children-skip-by-arg=... 4931 4932 This addresses the issue I mentioned in 4933 6c095a98fbec70b790253a663173ecdb669108c4 and speeds up the Valgrind 4934 job a bit, because non-xz tools aren't run unnecessarily with 4935 Valgrind by the script tests. 4936 4937 .github/workflows/ci.yml | 2 +- 4938 1 file changed, 1 insertion(+), 1 deletion(-) 4939 4940commit 2402e8a1ae92676fa0d4cb1b761d7f62f005c098 4941Author: Lasse Collin <lasse.collin@tukaani.org> 4942Date: 2024-06-25 16:00:22 +0300 4943 4944 Build: Prepend, not append, PTHREAD_CFLAGS to LIBS 4945 4946 It shouldn't make any difference because LIBS should be empty 4947 at that point in configure. But prepending is the correct way 4948 because in general the libraries being added might require other 4949 libraries that come later on the command line. 4950 4951 configure.ac | 2 +- 4952 1 file changed, 1 insertion(+), 1 deletion(-) 4953 4954commit 7bb46f2b7b3989c1b589a247a251470f65e91cda 4955Author: Lasse Collin <lasse.collin@tukaani.org> 4956Date: 2024-06-25 14:24:29 +0300 4957 4958 Build: Use AC_LINK_IFELSE to handle implicit function declarations 4959 4960 It's more robust in case the compiler allows pre-C99 implicit function 4961 declarations. If an x86 intrinsic is missing and gets treated as 4962 implicit function, the linking step will very probably fail. This 4963 isn't the only way to workaround implicit function declarations but 4964 it might be the simplest and cleanest. 4965 4966 The problem hasn't been observed in the wild. 4967 4968 There are a couple more AC_COMPILE_IFELSE uses in configure.ac. 4969 Of these, Landlock check calls prctl() and in theory could have 4970 the same problem. In practice it doesn't as the check program 4971 looks for several other things too. However, it was changed to 4972 AC_LINK_IFELSE still to look more correct. 4973 4974 Similarly, m4/tuklib_cpucores.m4 and m4/tuklib_physmem.m4 were 4975 updated although they haven't given any trouble either. They 4976 have worked all these years because those check programs rely 4977 on specific headers and types: if headers or types are missing, 4978 compilation will fail. Using the linker makes these checks more 4979 similar to the ones in cmake/tuklib_*.cmake which always link. 4980 4981 configure.ac | 8 ++++++-- 4982 m4/tuklib_cpucores.m4 | 8 ++++---- 4983 m4/tuklib_physmem.m4 | 17 +++++++++++------ 4984 3 files changed, 21 insertions(+), 12 deletions(-) 4985 4986commit 35eb57355ad1c415a838d26192d5af84abb7cf39 4987Author: Lasse Collin <lasse.collin@tukaani.org> 4988Date: 2024-06-24 23:35:59 +0300 4989 4990 Build: Use AC_LINK_IFELSE instead of -Werror 4991 4992 AC_COMPILE_IFELSE needed -Werror because Clang <= 14 would merely 4993 warn about the unsupported attribute and implicit function declaration. 4994 Changing to AC_LINK_IFELSE handles the implicit declaration because 4995 the symbol __crc32d is unlikely to exist in libc. 4996 4997 Note that the other part of the check is that #include <arm_acle.h> 4998 must work. If the header is missing, most compilers give an error 4999 and the linking step won't be attempted. 5000 5001 Avoiding -Werror makes the check more robust in case CFLAGS contains 5002 warning flags that break -Werror anyway (but this isn't the only check 5003 in configure.ac that has this problem). Using AC_LINK_IFELSE also makes 5004 the check more similar to how it is done in CMakeLists.txt. 5005 5006 configure.ac | 12 +----------- 5007 1 file changed, 1 insertion(+), 11 deletions(-) 5008 5009commit 5a728813c378cc3c4c9c95793762452418d08f1b 5010Author: Lasse Collin <lasse.collin@tukaani.org> 5011Date: 2024-06-24 23:34:34 +0300 5012 5013 Build: Sync the compile check changes from CMakeLists.txt 5014 5015 It's nice to keep these in sync. The use of main() will later allow 5016 AC_LINK_IFELSE usage too which may avoid the more fragile -Werror. 5017 5018 configure.ac | 15 ++++++++------- 5019 1 file changed, 8 insertions(+), 7 deletions(-) 5020 5021commit 5279828635a95abdef82e691fc4979d362780e63 5022Author: Lasse Collin <lasse.collin@tukaani.org> 5023Date: 2024-06-24 20:14:43 +0300 5024 5025 CMake: Not experimental anymore 5026 5027 While the CMake support has gotten a lot less testing than 5028 the Autotools-based build, the supported features should now 5029 be equal. The output may differ slightly, for example, 5030 liblzma.pc may have 5031 5032 Libs.private: -pthread -lpthread 5033 5034 with Autotools on GNU/Linux. CMake doesn't put any options 5035 in Libs.private because on modern glibc the pthread functions 5036 are in libc. The options options aren't required to link static 5037 liblzma into an application. 5038 5039 Autotools-based build doesn't generate or install 5040 lib/cmake/liblzma-*.cmake files. This means that on most 5041 platforms one cannot rely on 5042 5043 find_package(liblzma 5.2.5 REQUIRED CONFIG) 5044 5045 or such finding those files. 5046 5047 CMakeLists.txt | 9 ++++++--- 5048 1 file changed, 6 insertions(+), 3 deletions(-) 5049 5050commit de215a0517645d16343f3a5336d3df884a4f665f 5051Author: Lasse Collin <lasse.collin@tukaani.org> 5052Date: 2024-06-25 16:11:13 +0300 5053 5054 CMake: Use configure_file() to copy a file 5055 5056 I had missed this simpler method before. It does create a dependency 5057 so that if .in.h changes the copying is done again. 5058 5059 CMakeLists.txt | 17 +++++++---------- 5060 1 file changed, 7 insertions(+), 10 deletions(-) 5061 5062commit e620f35097c0ad20cd76d8258750aa706758ced9 5063Author: Lasse Collin <lasse.collin@tukaani.org> 5064Date: 2024-06-25 15:51:48 +0300 5065 5066 CMake: Always add pthread flags into CMAKE_REQUIRED_LIBRARIES 5067 5068 It was weird to add CMAKE_THREAD_LIBS_INIT in CMAKE_REQUIRED_LIBRARIES 5069 only if CLOCK_MONOTONIC is available. Alternative would be to remove 5070 the thread libs from CMAKE_REQUIRED_LIBRARIES after the check for 5071 pthread_condattr_setclock() but keeping the libs should be fine too. 5072 Then it's ready in case more pthread functions were wanted some day. 5073 5074 CMakeLists.txt | 6 ++++-- 5075 1 file changed, 4 insertions(+), 2 deletions(-) 5076 5077commit 068a70e54932ca32ca2922aff5a67a62615c650b 5078Author: Sam James <sam@gentoo.org> 5079Date: 2024-06-24 19:25:30 +0100 5080 5081 CMake: Tweak comments 5082 5083 Co-authored-by: Lasse Collin <lasse.collin@tukaani.org> 5084 5085 CMakeLists.txt | 15 +++++++-------- 5086 1 file changed, 7 insertions(+), 8 deletions(-) 5087 5088commit 3c95c93bca593bdd54ac5cc01526b12c82c78faa 5089Author: Lasse Collin <lasse.collin@tukaani.org> 5090Date: 2024-06-24 22:42:01 +0300 5091 5092 CMake: Edit white space for consistency 5093 5094 CMakeLists.txt | 26 +++++++++++++------------- 5095 1 file changed, 13 insertions(+), 13 deletions(-) 5096 5097commit 114cba69dbb96003e676c8c87a2e9943b12d065f 5098Author: Lasse Collin <lasse.collin@tukaani.org> 5099Date: 2024-06-24 22:41:10 +0300 5100 5101 CMake: Fix three checks if building with -flto 5102 5103 In CMake, check_c_source_compiles() always links too. With 5104 link-time optimization, unused functions may get omitted if 5105 main() doesn't depend on them. Consider the following which 5106 tries to check if somefunction() is available when <someheader.h> 5107 has been included: 5108 5109 #include <someheader.h> 5110 int foo(void) { return somefunction(); } 5111 int main(void) { return 0; } 5112 5113 LTO may omit foo() completely because the program as a whole doesn't 5114 need it and then the program will link even if the symbol somefunction 5115 isn't available in libc or other library being linked in, and then 5116 the test may pass when it shouldn't. 5117 5118 What happens if <someheader.h> doesn't declare somefunction()? 5119 Shouldn't the test fail in the compilation phase already? It should 5120 but many compilers don't follow the C99 and later standards that 5121 prohibit implicit function declarations. Instead such compilers 5122 assume that somefunction() exists, compilation succeeds (with a 5123 warning), and then linker with LTO omits the call to somefunction(). 5124 5125 Change the tests so that they are part of main(). If compiler accepts 5126 implicitly declared functions, LTO cannot omit them because it has to 5127 assume that they might have side effects and thus linking will fail. 5128 On the other hand, if the functions/intrinsics being used are supported, 5129 they might get optimized away but in that case it's fine because they 5130 really are supported. 5131 5132 It is fine to use __attribute__((target(...))) for main(). At least 5133 it works with GCC 4.9 to 14.1 on x86-64. 5134 5135 Reported-by: Sam James <sam@gentoo.org> 5136 5137 CMakeLists.txt | 19 ++++++++----------- 5138 1 file changed, 8 insertions(+), 11 deletions(-) 5139 5140commit 78e882205e1f1e91df2af2cb7da00fe205dede99 5141Author: Lasse Collin <lasse.collin@tukaani.org> 5142Date: 2024-06-24 21:19:14 +0300 5143 5144 CMake: Use MATCHES instead of multiple STREQUAL 5145 5146 CMakeLists.txt | 11 ++++------- 5147 1 file changed, 4 insertions(+), 7 deletions(-) 5148 5149commit d3f20382fc1bd865eb70a65455d5022ed05caac8 5150Author: Lasse Collin <lasse.collin@tukaani.org> 5151Date: 2024-06-24 21:06:18 +0300 5152 5153 CMake: Improve the comment about LIBS 5154 5155 CMakeLists.txt | 6 ++++++ 5156 1 file changed, 6 insertions(+) 5157 5158commit 33ec377729a3889e58d98934b2777b2754a3e045 5159Author: Lasse Collin <lasse.collin@tukaani.org> 5160Date: 2024-06-24 20:01:25 +0300 5161 5162 CMake: Fix a typo in a message 5163 5164 It was spotted with codespell. 5165 5166 CMakeLists.txt | 2 +- 5167 1 file changed, 1 insertion(+), 1 deletion(-) 5168 5169commit 2a47be823cd6c717bc91fa29c7710c9b1ae0331f 5170Author: Lasse Collin <lasse.collin@tukaani.org> 5171Date: 2024-06-24 19:58:54 +0300 5172 5173 Document CMake options in INSTALL 5174 5175 INSTALL | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----- 5176 1 file changed, 106 insertions(+), 9 deletions(-) 5177 5178commit 3faf4e8079a46bd46e05cd1234365724a6a33802 5179Author: Lasse Collin <lasse.collin@tukaani.org> 5180Date: 2024-06-24 17:18:44 +0300 5181 5182 CI: Don't omit crc32 from the list with CMake anymore 5183 5184 XZ_CHECKS accepts it but works without too. 5185 5186 build-aux/ci_build.bash | 10 +--------- 5187 1 file changed, 1 insertion(+), 9 deletions(-) 5188 5189commit 1bf83cded2955282fe1a868f08c83d4e5d6dca4a 5190Author: Lasse Collin <lasse.collin@tukaani.org> 5191Date: 2024-06-24 17:39:54 +0300 5192 5193 CI: Workaround buggy config.guess on Ubuntu 22.04LTS and 24.04LTS 5194 5195 Check for the wrong triplet from config.guess and override it with 5196 the --build option on the configure command line. Then i386 assembly 5197 autodetection will work. 5198 5199 These Ubuntu versions (and as of writing, also Debian unstable) 5200 ship config.guess version 2022-01-09 which contains a bug that 5201 was fixed in version 2022-05-08. It results in a wrong configure 5202 triplet when using CC="gcc -m32" to build i386 binaries. 5203 5204 Upstream fix: 5205 https://git.savannah.gnu.org/cgit/config.git/commit/?id=f56a7140386d08a531bcfd444d632b28c61a6329 5206 5207 More information: 5208 https://mail.gnu.org/archive/html/config-patches/2022-05/msg00003.html 5209 5210 build-aux/ci_build.bash | 9 +++++++++ 5211 1 file changed, 9 insertions(+) 5212 5213commit dbcdabf68fee9ed694b68c3a82e6adbeff20b679 5214Author: Lasse Collin <lasse.collin@tukaani.org> 5215Date: 2024-06-24 15:24:52 +0300 5216 5217 CI: Use CC="gcc -m32" to get i386 compiler on x86-64 5218 5219 The old method put it in CFLAGS which is a wrong place because 5220 config.guess doesn't read CFLAGS. 5221 5222 .github/workflows/ci.yml | 4 ++-- 5223 1 file changed, 2 insertions(+), 2 deletions(-) 5224 5225commit 0c1e6d900bac127464fb30a854776e1810ab5f16 5226Author: Lasse Collin <lasse.collin@tukaani.org> 5227Date: 2024-06-24 14:54:17 +0300 5228 5229 CI: Let CMake use the CC environment variable 5230 5231 CC from environment is used to initialize CMAKE_C_COMPILER so 5232 setting CMAKE_C_COMPILER explicitly isn't needed. 5233 5234 The syntax in ci_build.bash was broken in case one wished to put 5235 spaces in CC. 5236 5237 build-aux/ci_build.bash | 4 ---- 5238 1 file changed, 4 deletions(-) 5239 5240commit a3d6eb797c1bd9b0425ef6754e475e43e62bf075 5241Author: Lasse Collin <lasse.collin@tukaani.org> 5242Date: 2024-06-20 23:25:42 +0300 5243 5244 CMake: Add autodetection for 32-bit x86 CRC assembly usage 5245 5246 CMakeLists.txt | 33 ++++++++++++++++++--------------- 5247 1 file changed, 18 insertions(+), 15 deletions(-) 5248 5249commit dbc14f213e5cf866f1f42b7c6381a91e1189908c 5250Author: Lasse Collin <lasse.collin@tukaani.org> 5251Date: 2024-06-20 23:00:59 +0300 5252 5253 CMake: Move option(XZ_ASM_I386) downwards a few lines 5254 5255 CMakeLists.txt | 16 ++++++++-------- 5256 1 file changed, 8 insertions(+), 8 deletions(-) 5257 5258commit e5c2b07b489b155c1bebd5cb5e5b94325c2fef1a 5259Author: Lasse Collin <lasse.collin@tukaani.org> 5260Date: 2024-06-20 18:45:41 +0300 5261 5262 DOS: Update Makefile and config.h for the CRC changes 5263 5264 dos/Makefile | 4 ++-- 5265 dos/config.h | 3 +++ 5266 2 files changed, 5 insertions(+), 2 deletions(-) 5267 5268commit fe77c4e130d62dc3f9c1de40a18c0c6caa5a4d88 5269Author: Lasse Collin <lasse.collin@tukaani.org> 5270Date: 2024-06-23 15:35:35 +0300 5271 5272 liblzma: Tidy up crc_common.h 5273 5274 Prefix ARM64_RUNTIME_DETECTION with CRC_ and reorder it to be with 5275 the other ARM64-specific lines. That macro isn't used outside this 5276 file. 5277 5278 ARM64 CLMUL implementation doesn't exist yet and thus CRC64_ARM64_CLMUL 5279 isn't used anywhere yet. 5280 5281 It's not ideal that the single-letter CRC utility macros are here 5282 as they pollute the namespace of the LZ encoder files. Those could 5283 be moved their own crc_macros.h like they were in 5.2.x but in practice 5284 this is fine enough already. 5285 5286 src/liblzma/check/crc_common.h | 62 ++++++++++++++++++++++++++++-------------- 5287 1 file changed, 42 insertions(+), 20 deletions(-) 5288 5289commit 7484d375384f551d475ff44a93590a225e0cb8f6 5290Author: Lasse Collin <lasse.collin@tukaani.org> 5291Date: 2024-06-23 14:22:08 +0300 5292 5293 liblzma: Move lzma_crcXX_table[][] declarations to crc_common.h 5294 5295 LZ encoder needs lzma_crc32_table[0] but otherwise those tables 5296 are private to the CRC code. In contrast, the other things in 5297 check.h are needed in several places. 5298 5299 src/liblzma/check/check.h | 18 ------------------ 5300 src/liblzma/check/crc32_small.c | 3 +++ 5301 src/liblzma/check/crc_common.h | 18 ++++++++++++++++++ 5302 src/liblzma/lz/lz_encoder_hash.h | 4 ++-- 5303 4 files changed, 23 insertions(+), 20 deletions(-) 5304 5305commit 85b081f5d4598342b8c155a2c08697fb2adc372c 5306Author: Lasse Collin <lasse.collin@tukaani.org> 5307Date: 2024-06-19 18:38:22 +0300 5308 5309 liblzma: Make 32-bit x86 CRC assembly co-exist with CLMUL 5310 5311 Now runtime detection of CLMUL support can pick between the CLMUL and 5312 the generic assembly implementations. Whatever overhead this has for 5313 builds that omit CLMUL completely isn't important because builds for 5314 any non-ancient system is likely to include the CLMUL code too. 5315 5316 Handle the CRC tables in crcXX_fast.c files because now these files 5317 are built even when assembly code is used. 5318 5319 If 32-bit x86 assembly is enabled then it will always be built even 5320 if compiler flags were such that CLMUL would be allowed unconditionally. 5321 That is, runtime detection will be used anyway. This keeps the build 5322 rules simpler. 5323 5324 In LZ encoder, build and use lzma_lz_hash_table[256] if CLMUL CRC 5325 is used without runtime detection. Previously this wasn't needed 5326 because crc32_table.c included the lzma_crc32_table[][] in the build 5327 unless encoder support had been disabled. Including an 8 KiB table 5328 was silly when only 1 KiB is actually used. So now liblzma is 7 KiB 5329 smaller if CLMUL is enabled without runtime detection. 5330 5331 CMakeLists.txt | 8 ++------ 5332 src/liblzma/check/Makefile.inc | 8 ++------ 5333 src/liblzma/check/crc32_fast.c | 14 ++++++++++++- 5334 src/liblzma/check/crc32_table.c | 42 --------------------------------------- 5335 src/liblzma/check/crc32_x86.S | 14 +++++-------- 5336 src/liblzma/check/crc64_fast.c | 18 +++++++++++++---- 5337 src/liblzma/check/crc64_table.c | 37 ---------------------------------- 5338 src/liblzma/check/crc64_x86.S | 14 +++++-------- 5339 src/liblzma/check/crc_common.h | 18 +++++++++-------- 5340 src/liblzma/check/crc_x86_clmul.h | 5 ----- 5341 src/liblzma/lz/lz_encoder.c | 2 +- 5342 src/liblzma/lz/lz_encoder_hash.h | 30 ++++++++++++++++++++-------- 5343 12 files changed, 74 insertions(+), 136 deletions(-) 5344 5345commit 6667d503b5dc9826654e3d9ad505e1883ff6c388 5346Author: Lasse Collin <lasse.collin@tukaani.org> 5347Date: 2024-06-19 17:44:41 +0300 5348 5349 liblzma: CRC: Rename crcXX_generic to lzma_crcXX_generic 5350 5351 This prepares for the possibility that lzma_crc32_generic and 5352 lzma_crc64_generic are extern functions. 5353 5354 src/liblzma/check/crc32_fast.c | 6 +++--- 5355 src/liblzma/check/crc64_fast.c | 6 +++--- 5356 2 files changed, 6 insertions(+), 6 deletions(-) 5357 5358commit 1dca581ff20aa1cde61e9e5267d3aeb0af9b6845 5359Author: Lasse Collin <lasse.collin@tukaani.org> 5360Date: 2024-06-20 22:55:22 +0300 5361 5362 CMake: Define HAVE_CRC_X86_ASM when 32-bit x86 CRC assembly is used 5363 5364 CMakeLists.txt | 3 +++ 5365 1 file changed, 3 insertions(+) 5366 5367commit f76837acb65676e541d8ee79cd62dbbf27280a62 5368Author: Lasse Collin <lasse.collin@tukaani.org> 5369Date: 2024-05-10 16:00:26 +0300 5370 5371 Build: Define HAVE_CRC_X86_ASM when 32-bit x86 CRC assembly is used 5372 5373 This makes it easier to determine when the CRC tables are needed. 5374 5375 configure.ac | 9 +++++++-- 5376 1 file changed, 7 insertions(+), 2 deletions(-) 5377 5378commit 9ce0866b070850da4dc837741ff055faa218bdd6 5379Author: Lasse Collin <lasse.collin@tukaani.org> 5380Date: 2024-06-21 00:46:09 +0300 5381 5382 CI: Update to the new renamed options in CMakeLists.txt 5383 5384 build-aux/ci_build.bash | 10 +++++----- 5385 1 file changed, 5 insertions(+), 5 deletions(-) 5386 5387commit 0232e66d5bc5b01a25a447c657e51747626488ab 5388Author: Lasse Collin <lasse.collin@tukaani.org> 5389Date: 2024-06-20 18:12:22 +0300 5390 5391 CMake: Add XZ_EXTERNAL_SHA256 5392 5393 CMakeLists.txt | 121 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 5394 1 file changed, 116 insertions(+), 5 deletions(-) 5395 5396commit 4535b80caead82a7ddf7feb988b8fbc773152522 5397Author: Lasse Collin <lasse.collin@tukaani.org> 5398Date: 2024-06-20 18:12:21 +0300 5399 5400 CMake: Move threading detection a few lines up 5401 5402 It feels clearer this way, and when support for external SHA-256 5403 is added, this will keep the order of the library detection the 5404 same as in configure.ac (check for pthreads before libmd) although 5405 it shouldn't matter in practice. 5406 5407 CMakeLists.txt | 176 ++++++++++++++++++++++++++++----------------------------- 5408 1 file changed, 88 insertions(+), 88 deletions(-) 5409 5410commit 94d062dbac34d366eb26625034200cc3457e6645 5411Author: Lasse Collin <lasse.collin@tukaani.org> 5412Date: 2024-06-20 18:12:21 +0300 5413 5414 CMake: Move the sandbox code out of the liblzma section 5415 5416 Sandboxing is for the command line tools, not liblzma. 5417 No functional changes. 5418 5419 CMakeLists.txt | 214 ++++++++++++++++++++++++++++----------------------------- 5420 1 file changed, 107 insertions(+), 107 deletions(-) 5421 5422commit 75ce4797d49621710e6da95d8cb91541028c6d68 5423Author: Lasse Collin <lasse.collin@tukaani.org> 5424Date: 2024-06-20 18:12:21 +0300 5425 5426 CMake: Keep existing options in LIBS when adding -lrt 5427 5428 This makes no difference yet because -lrt is currently the only option 5429 that might be added to LIBS. 5430 5431 CMakeLists.txt | 2 +- 5432 1 file changed, 1 insertion(+), 1 deletion(-) 5433 5434commit 47aaa92516fd9609821d04e5e94ca6558e56d62b 5435Author: Lasse Collin <lasse.collin@tukaani.org> 5436Date: 2024-06-15 18:07:04 +0300 5437 5438 CMake: Don't install scripts if the xz tool isn't built 5439 5440 The scripts need the xz tool. 5441 5442 CMakeLists.txt | 11 +++++++++-- 5443 tests/tests.cmake | 2 +- 5444 2 files changed, 10 insertions(+), 3 deletions(-) 5445 5446commit fb50c6ba1d4c9405e5b12b5988b01a3002638c5d 5447Author: Lasse Collin <lasse.collin@tukaani.org> 5448Date: 2024-06-15 18:07:04 +0300 5449 5450 CMake: Add XZ_TOOL_XZDEC and XZ_TOOL_LZMADEC 5451 5452 CMakeLists.txt | 15 ++++++++++++++- 5453 1 file changed, 14 insertions(+), 1 deletion(-) 5454 5455commit def767f7d18ccbd81cd5e5b46c8b6031f3a1de34 5456Author: Lasse Collin <lasse.collin@tukaani.org> 5457Date: 2024-06-15 18:07:04 +0300 5458 5459 CMake: Add XZ_TOOL_LZMAINFO 5460 5461 CMakeLists.txt | 4 +++- 5462 1 file changed, 3 insertions(+), 1 deletion(-) 5463 5464commit 5600e370fb7e11eafabc6c3ef5bf6510e859f4f0 5465Author: Lasse Collin <lasse.collin@tukaani.org> 5466Date: 2024-06-15 18:07:04 +0300 5467 5468 CMake: Add XZ_TOOL_XZ 5469 5470 CMakeLists.txt | 4 +++- 5471 1 file changed, 3 insertions(+), 1 deletion(-) 5472 5473commit 6a3c4aaa43a90da441e1156c5ffd2e6098f5521f 5474Author: Lasse Collin <lasse.collin@tukaani.org> 5475Date: 2024-06-15 18:07:04 +0300 5476 5477 Windows: Drop Visual Studio 2013 support 5478 5479 This simplifies things a little. Building liblzma with VS2013 probably 5480 still worked but building the command line tools was not supported. 5481 5482 Microsoft ended support for VS2013 on 2024-04. 5483 5484 CMakeLists.txt | 9 +++++++-- 5485 src/common/sysdefs.h | 6 +----- 5486 windows/INSTALL-MSVC.txt | 8 ++------ 5487 3 files changed, 10 insertions(+), 13 deletions(-) 5488 5489commit 5d5c92b26246936461a635dda1f95740d7de2058 5490Author: Lasse Collin <lasse.collin@tukaani.org> 5491Date: 2024-06-15 18:07:04 +0300 5492 5493 CMake: Add XZ_TOOL_SCRIPTS 5494 5495 CMakeLists.txt | 44 +++++++++++++++++++++++++++++--------------- 5496 1 file changed, 29 insertions(+), 15 deletions(-) 5497 5498commit d274a2bc00d235f07e96aaf82c149794cfe82b12 5499Author: Lasse Collin <lasse.collin@tukaani.org> 5500Date: 2024-06-15 18:07:04 +0300 5501 5502 CMake: Add XZ_DOC 5503 5504 CMakeLists.txt | 45 ++++++++++++++++++++++++--------------------- 5505 1 file changed, 24 insertions(+), 21 deletions(-) 5506 5507commit 188143a50ade67253ed256608f50f78aa1380403 5508Author: Lasse Collin <lasse.collin@tukaani.org> 5509Date: 2024-06-20 21:53:03 +0300 5510 5511 CMake: Refactor XZ_SYMBOL_VERSIONING to match configure.ac 5512 5513 Make the available options and their behavior match 5514 --enable-symbol-versions in configure.ac. 5515 5516 Don't enable symbol versions on Linux if not using glibc. Previously 5517 the generic variant was selected on Microblaze or if using NVHPC 5518 without checking that libc is glibc. 5519 5520 Leave the cache variable to "auto" or "yes" if that was specified 5521 instead of setting it to the autodetected value by default. A downside 5522 is that one cannot easily see which variant the autodetection code 5523 has selected. The same applies to XZ_SANDBOX and XZ_THREADS though. 5524 5525 CMakeLists.txt | 125 ++++++++++++++++++++++++++++++++++----------------------- 5526 1 file changed, 75 insertions(+), 50 deletions(-) 5527 5528commit cc52ef8ed3b75a581262c587f6c06c213a550f86 5529Author: Lasse Collin <lasse.collin@tukaani.org> 5530Date: 2024-06-15 18:07:04 +0300 5531 5532 CMake: Use the same option list for XZ_THREADS as in configure.ac 5533 5534 Also clarify that "yes" will fail if no threading support is found. 5535 If no threading is wanted, it has to be disabled manually. 5536 5537 configure.ac doesn't behave this way at the moment. Instead it 5538 assumes pthreads to be present if not targeting Windows. If pthreads 5539 actually are missing, the build fails later. 5540 5541 CMakeLists.txt | 18 ++++++++++-------- 5542 1 file changed, 10 insertions(+), 8 deletions(-) 5543 5544commit 37f7af3452bab0a34ce320c2ad532835f18752d9 5545Author: Lasse Collin <lasse.collin@tukaani.org> 5546Date: 2024-06-15 18:07:04 +0300 5547 5548 CMake: Use the same option list for XZ_SANDBOX as in configure.ac 5549 5550 It's simpler to document this way. 5551 5552 CMakeLists.txt | 20 ++++++++++---------- 5553 1 file changed, 10 insertions(+), 10 deletions(-) 5554 5555commit c715dec8e800b65145918cfb0ee9bbc90faa8aad 5556Author: Lasse Collin <lasse.collin@tukaani.org> 5557Date: 2024-06-15 18:07:04 +0300 5558 5559 CMake: Fix indentation 5560 5561 CMakeLists.txt | 2 +- 5562 1 file changed, 1 insertion(+), 1 deletion(-) 5563 5564commit ea379f2f180befabd2039342db8eaeb757fdd2b7 5565Author: Lasse Collin <lasse.collin@tukaani.org> 5566Date: 2024-06-15 18:07:04 +0300 5567 5568 CMake: Add warning options for GCC and Clang 5569 5570 The list was copied from configure.ac and should be kept in sync. 5571 (Pretend that the deleted comment in CMakeLists.txt didn't exist.) 5572 5573 There is no need to add equivalent of --enable-werror as CMake >= 3.24 5574 supports -DCMAKE_COMPILE_WARNING_AS_ERROR=ON. 5575 5576 CMakeLists.txt | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++----- 5577 1 file changed, 59 insertions(+), 5 deletions(-) 5578 5579commit 74223338197b7dfcd69f56df78b6502805a75f23 5580Author: Lasse Collin <lasse.collin@tukaani.org> 5581Date: 2024-06-15 18:07:04 +0300 5582 5583 CMake: Use \040 instead of \x20 for a space 5584 5585 This is for consistency with 4c81c9611f8b2e1ad65eb7fa166afc570c58607e 5586 where \040 has to be used because \0x20F gets interpret at three hex 5587 digits. Octals escapes are never longer than three digits. 5588 5589 CMakeLists.txt | 2 +- 5590 1 file changed, 1 insertion(+), 1 deletion(-) 5591 5592commit e8854b6bdc956c46dc4232bd07c17163034a00f2 5593Author: Lasse Collin <lasse.collin@tukaani.org> 5594Date: 2024-06-15 18:07:04 +0300 5595 5596 CMake: Add XZ_ASSUME_RAM 5597 5598 CMakeLists.txt | 4 +++- 5599 1 file changed, 3 insertions(+), 1 deletion(-) 5600 5601commit e1127e75cb82e0385f02c995771d6fe1420f43c5 5602Author: Lasse Collin <lasse.collin@tukaani.org> 5603Date: 2024-06-15 18:07:04 +0300 5604 5605 CMake: Rename liblzma_INSTALL_CMAKEDIR to XZ_INSTALL_CMAKEDIR 5606 5607 CMakeLists.txt | 6 +++--- 5608 1 file changed, 3 insertions(+), 3 deletions(-) 5609 5610commit 96abfe98c15e431a50a6a31015c5bb05540ab2ff 5611Author: Lasse Collin <lasse.collin@tukaani.org> 5612Date: 2024-06-15 18:07:04 +0300 5613 5614 CMake: Refactor ADDITIONAL_CHECK_TYPES to XZ_CHECKS 5615 5616 Now "crc32" is in the list too for completeness but it doesn't 5617 actually have any effect. The description of the cache variable 5618 says that "crc32 is always built" so it should be clear enough. 5619 5620 CMakeLists.txt | 14 +++++++------- 5621 tests/tests.cmake | 17 ++++++++--------- 5622 2 files changed, 15 insertions(+), 16 deletions(-) 5623 5624commit 679500ffe00ecb4f02292129e7529ab7392f3943 5625Author: Lasse Collin <lasse.collin@tukaani.org> 5626Date: 2024-06-15 18:07:04 +0300 5627 5628 CMake: Rename the cache variable POSIX_SHELL to XZ_POSIX_SHELL 5629 5630 We still need the variable POSIX_SHELL for configure_file() 5631 but it doesn't need to be a cache variable. 5632 5633 CMakeLists.txt | 7 ++++--- 5634 1 file changed, 4 insertions(+), 3 deletions(-) 5635 5636commit e5c0eb2e50e5522a0a55e7ba83fe49b04c8a6eef 5637Author: Lasse Collin <lasse.collin@tukaani.org> 5638Date: 2024-06-15 18:07:04 +0300 5639 5640 CMake: Rename ENCODERS and DECODERS to use XZ_ prefix 5641 5642 CMakeLists.txt | 34 +++++++++++++++++----------------- 5643 tests/tests.cmake | 4 ++-- 5644 2 files changed, 19 insertions(+), 19 deletions(-) 5645 5646commit e7785e2061f95d44aa6c0856b09cc0fbad7d6154 5647Author: Lasse Collin <lasse.collin@tukaani.org> 5648Date: 2024-06-15 18:07:04 +0300 5649 5650 CMake: Rename MATCH_FINDERS to XZ_MATCH_FINDERS 5651 5652 CMakeLists.txt | 6 +++--- 5653 1 file changed, 3 insertions(+), 3 deletions(-) 5654 5655commit 63294806b488a27a28a0960f6a257695dd2b569a 5656Author: Lasse Collin <lasse.collin@tukaani.org> 5657Date: 2024-06-15 18:07:04 +0300 5658 5659 CMake: Rename SYMBOL_VERSIONING to XZ_SYMBOL_VERSIONING 5660 5661 CMakeLists.txt | 9 +++++---- 5662 1 file changed, 5 insertions(+), 4 deletions(-) 5663 5664commit ad245b133675d285bca5d48123062e9d1e3f747e 5665Author: Lasse Collin <lasse.collin@tukaani.org> 5666Date: 2024-06-15 18:07:04 +0300 5667 5668 CMake: Rename ENABLE_THREADS to XZ_THREADS 5669 5670 CMakeLists.txt | 24 +++++++++++------------- 5671 1 file changed, 11 insertions(+), 13 deletions(-) 5672 5673commit 4250d4de32e66e558cc2ebe73b05255633c933ed 5674Author: Lasse Collin <lasse.collin@tukaani.org> 5675Date: 2024-06-15 18:07:04 +0300 5676 5677 CMake: Rename ENABLE_SANDBOX to XZ_SANDBOX 5678 5679 CMakeLists.txt | 23 +++++++++++------------ 5680 1 file changed, 11 insertions(+), 12 deletions(-) 5681 5682commit 0fdcd0c582f1a38542cd647dde449d9447d5888d 5683Author: Lasse Collin <lasse.collin@tukaani.org> 5684Date: 2024-06-15 18:07:04 +0300 5685 5686 CMake: Rename ENABLE_X86_ASM to XZ_ASM_I386 5687 5688 CMakeLists.txt | 10 +++++----- 5689 1 file changed, 5 insertions(+), 5 deletions(-) 5690 5691commit e017d5526e316003fdb2a3f76acbb83443f14ddf 5692Author: Lasse Collin <lasse.collin@tukaani.org> 5693Date: 2024-06-15 18:07:04 +0300 5694 5695 CMake: Rename CREATE_XZ_SYMLINKS to XZ_TOOL_SYMLINKS 5696 5697 This only affects the names unxz and xzcat. The xz-prefixed script 5698 symlinks (xzfgrep and such) are always created if scripts are enabled. 5699 5700 CMakeLists.txt | 4 ++-- 5701 1 file changed, 2 insertions(+), 2 deletions(-) 5702 5703commit 04cac14fcb9fb302c24e90b04ca4b77d3717b50c 5704Author: Lasse Collin <lasse.collin@tukaani.org> 5705Date: 2024-06-15 18:07:04 +0300 5706 5707 CMake: Rename CREATE_LZMA_SYMLINKS to XZ_TOOL_LZMA_SYMLINKS 5708 5709 Update the description too. 5710 5711 It affects creation of not only the legacy lzma, unlzma, lzcat symlinks 5712 but also lzgrep and other legacy names for the scripts. The last 5713 LZMA Utils release was made in 2008 but these names are still used 5714 in some places to handle .lzma files. 5715 5716 CMakeLists.txt | 7 ++++--- 5717 1 file changed, 4 insertions(+), 3 deletions(-) 5718 5719commit 612ccebf884eb1a9b6848e230c24f97a03fe917a 5720Author: Lasse Collin <lasse.collin@tukaani.org> 5721Date: 2024-06-15 18:07:04 +0300 5722 5723 CMake: Rename ALLOW_ARM64_CRC32 to XZ_ARM64_CRC32 5724 5725 Update description too. 5726 5727 CMakeLists.txt | 6 +++--- 5728 1 file changed, 3 insertions(+), 3 deletions(-) 5729 5730commit 3dcc12290d6dffbe7f10f501c141d325bad65901 5731Author: Lasse Collin <lasse.collin@tukaani.org> 5732Date: 2024-06-15 18:07:04 +0300 5733 5734 CMake: Rename ALLOW_CLMUL_CRC to XZ_CLMUL_CRC 5735 5736 Update description too. 5737 5738 CMakeLists.txt | 6 +++--- 5739 1 file changed, 3 insertions(+), 3 deletions(-) 5740 5741commit 4b8faa72442da9aa1a356f5848aae798d8588a7d 5742Author: Lasse Collin <lasse.collin@tukaani.org> 5743Date: 2024-06-15 18:07:04 +0300 5744 5745 CMake: Rename ENABLE_DOXYGEN to XZ_DOXYGEN 5746 5747 CMakeLists.txt | 4 ++-- 5748 1 file changed, 2 insertions(+), 2 deletions(-) 5749 5750commit b56273ae575bac350e50b0c689269dcab04b04b3 5751Author: Lasse Collin <lasse.collin@tukaani.org> 5752Date: 2024-06-15 18:07:04 +0300 5753 5754 CMake: Rename LZIP_DECODER to XZ_LZIP_DECODER 5755 5756 CMakeLists.txt | 4 ++-- 5757 tests/tests.cmake | 2 +- 5758 2 files changed, 3 insertions(+), 3 deletions(-) 5759 5760commit 2343992fcbe8b436da6df888be37713cccaff0ab 5761Author: Lasse Collin <lasse.collin@tukaani.org> 5762Date: 2024-06-15 18:07:04 +0300 5763 5764 CMake: Rename MICROLZMA_ENCODER/DECODER to XZ_MICROLZMA_ENCODER/DECODER 5765 5766 CMakeLists.txt | 8 ++++---- 5767 tests/tests.cmake | 2 +- 5768 2 files changed, 5 insertions(+), 5 deletions(-) 5769 5770commit 96f0a6632cc0598a26d93255b0c444df18dc7891 5771Author: Lasse Collin <lasse.collin@tukaani.org> 5772Date: 2024-06-15 18:07:04 +0300 5773 5774 CMake: Rename ENABLE_SMALL to XZ_SMALL 5775 5776 CMakeLists.txt | 14 +++++++------- 5777 1 file changed, 7 insertions(+), 7 deletions(-) 5778 5779commit 29f77c7b707f2458fb047e77497354b195e05b14 5780Author: Lasse Collin <lasse.collin@tukaani.org> 5781Date: 2024-06-15 18:07:04 +0300 5782 5783 CMake: Rename ENABLE_NLS to XZ_NLS 5784 5785 Also update the description to mention that this affects installation 5786 of translated man pages too. 5787 5788 Prefixing the cache variables with the project name helps if 5789 the package is used as a subproject in another package. 5790 It also makes the package-specific options group more nicely 5791 in ccmake and cmake-gui. 5792 5793 CMakeLists.txt | 28 +++++++++++++++------------- 5794 1 file changed, 15 insertions(+), 13 deletions(-) 5795 5796commit ac05f1b0d7cda1e7ae79775a8dfecc54601d7f1c 5797Author: Lasse Collin <lasse.collin@tukaani.org> 5798Date: 2024-06-15 23:34:29 +0300 5799 5800 CMake: Link Threads::Threads as PRIVATE to liblzma 5801 5802 This way pthread options aren't passed to the linker when linking 5803 against shared liblzma but they are still passed when linking against 5804 static liblzma. (Also, one never needs the include path of the 5805 threading library to use liblzma since liblzma's API headers 5806 don't #include <pthread.h>. But <pthread.h> tends to be in the 5807 default include path so here this change makes no difference.) 5808 5809 One cannot mix target_link_libraries() calls that use the scope 5810 (PRIVATE, PUBLIC, or INTERFACE) keyword and calls that don't use it. 5811 The calls without the keyword are like PUBLIC except perhaps when 5812 they aren't, or something like that... It seems best to always 5813 specify a scope keyword as the meanings of those three keywords 5814 at least are clear. 5815 5816 CMakeLists.txt | 2 +- 5817 1 file changed, 1 insertion(+), 1 deletion(-) 5818 5819commit 82986d8c691a294c78b48d8391303e5c428b5437 5820Author: Lasse Collin <lasse.collin@tukaani.org> 5821Date: 2024-06-16 19:39:32 +0300 5822 5823 CMake: Add empty lines 5824 5825 CMakeLists.txt | 2 ++ 5826 1 file changed, 2 insertions(+) 5827 5828commit 2aecffe0f0e14f3ef635e8cd7b405420f2385de2 5829Author: Lasse Collin <lasse.collin@tukaani.org> 5830Date: 2024-06-16 19:37:36 +0300 5831 5832 CMake: Use CMAKE_THREAD_LIBS_INIT in liblzma.pc only with pthreads 5833 5834 This shouldn't make much difference in practice as on Windows 5835 no flags are needed anyway and unitialized variable (when threading 5836 is disabled) expands to empty. But it's clearer this way. 5837 5838 CMakeLists.txt | 8 +++++++- 5839 1 file changed, 7 insertions(+), 1 deletion(-) 5840 5841commit 664918bd3635ea8e773f06022286ecb0c485166c 5842Author: Lasse Collin <lasse.collin@tukaani.org> 5843Date: 2024-06-17 18:20:14 +0300 5844 5845 Update THANKS 5846 5847 THANKS | 3 +++ 5848 1 file changed, 3 insertions(+) 5849 5850commit 5ca96a93488d0f5a530c78b274cac317453807ff 5851Author: Lasse Collin <lasse.collin@tukaani.org> 5852Date: 2024-06-16 19:25:07 +0300 5853 5854 CMake: Use native newlines in liblzma.pc 5855 5856 vcpkg doesn't specify the newline type so it should be fine to 5857 use native newlines in liblzma.pc on Windows. 5858 5859 CMakeLists.txt | 4 +--- 5860 1 file changed, 1 insertion(+), 3 deletions(-) 5861 5862commit ebd155c3a1b87411edae06d3bdaa9659ec057522 5863Author: Lasse Collin <lasse.collin@tukaani.org> 5864Date: 2024-06-16 19:18:56 +0300 5865 5866 CMake: Use relative paths in liblzma.pc if possible 5867 5868 Now liblzma.pc can be relocatable only if using CMake >= 3.20 5869 but that should be OK as now we shouldn't get broken liblzma.pc 5870 if CMAKE_INSTALL_LIBDIR or CMAKE_INSTALL_INCLUDEDIR contain an 5871 absolute path. 5872 5873 Thanks to Eli Schwartz. 5874 5875 CMakeLists.txt | 18 ++++++++++++++---- 5876 1 file changed, 14 insertions(+), 4 deletions(-) 5877 5878commit 7a366d93cfd74ce10201db400be8836199944e36 5879Author: Lasse Collin <lasse.collin@tukaani.org> 5880Date: 2024-06-16 18:33:08 +0300 5881 5882 Revert "CMake: Set only "prefix" as an absolute path in liblzma.pc" 5883 5884 This reverts commit 5d1c649ba9eb7a5b9371252ebfbc2911dc774e69. 5885 5886 While CMAKE_INSTALL_<dir> tend to be relative paths, they don't need 5887 to be. Thus the commit was broken. A fancier method is required. 5888 5889 Thanks to Eli Schwartz for the bug report and explanation. 5890 5891 CMakeLists.txt | 6 +++--- 5892 1 file changed, 3 insertions(+), 3 deletions(-) 5893 5894commit 30a2d5d51006301a3ddab5ef1f5ff0a9d74dce6f 5895Author: Lasse Collin <lasse.collin@tukaani.org> 5896Date: 2024-06-16 13:39:37 +0300 5897 5898 liblzma: CRC CLMUL: Omit is_arch_extension_supported() when not needed 5899 5900 On E2K the function compiles only due to compiler emulation but the 5901 function is never used. It's cleaner to omit the function when it's 5902 not needed even though it's a "static inline" function. 5903 5904 Thanks to Ilya Kurdyukov. 5905 5906 src/liblzma/check/crc_x86_clmul.h | 4 ++++ 5907 1 file changed, 4 insertions(+) 5908 5909commit 54eaea5ea49bb8bca4286d4412f19ac73187489e 5910Author: Lasse Collin <lasse.collin@tukaani.org> 5911Date: 2024-06-16 13:21:34 +0300 5912 5913 liblzma: x86 CLMUL CRC: Rewrite 5914 5915 It's faster with both tiny and large buffers and doesn't require 5916 disabling any sanitizers. With large buffers the extra speed is 5917 from folding four 16-byte chunks in parallel. 5918 5919 The 32-bit x86 with MSVC reportedly still needs a workaround. 5920 Now the simpler "__asm mov ebx, ebx" trick is enough but it 5921 needs to be in lzma_crc64() instead of crc64_arch_optimized(). 5922 Thanks to Iouri Kharon for testing and the fix. 5923 5924 Thanks to Ilya Kurdyukov for testing the speed with aligned and 5925 unaligned buffers on a few x86 processors and on E2K v6. 5926 5927 Thanks to Sam James for general feedback. 5928 5929 Fixes: https://github.com/tukaani-project/xz/issues/112 5930 Fixes: https://github.com/tukaani-project/xz/issues/122 5931 5932 src/liblzma/check/crc64_fast.c | 8 + 5933 src/liblzma/check/crc_x86_clmul.h | 437 ++++++++++++++++++++------------------ 5934 2 files changed, 237 insertions(+), 208 deletions(-) 5935 5936commit c0e7eaae8d6eef1e313c9d0da20ccf126ec61f38 5937Author: Lasse Collin <lasse.collin@tukaani.org> 5938Date: 2024-06-01 14:44:04 +0300 5939 5940 sysdefs.h: Add alignas 5941 5942 src/common/sysdefs.h | 11 +++++++++++ 5943 1 file changed, 11 insertions(+) 5944 5945commit 20014c261451381d5e2f58e63e7b1fbefd4df4bf 5946Author: Lasse Collin <lasse.collin@tukaani.org> 5947Date: 2024-06-11 12:47:59 +0300 5948 5949 liblzma: Use a single macro to select CLMUL CRC to build 5950 5951 This way it's clearer that two things cannot be selected 5952 at the same time. 5953 5954 src/liblzma/check/crc32_fast.c | 2 +- 5955 src/liblzma/check/crc64_fast.c | 2 +- 5956 src/liblzma/check/crc_x86_clmul.h | 18 ++++++++++-------- 5957 3 files changed, 12 insertions(+), 10 deletions(-) 5958 5959commit d8fb0986171bd6a3066b236fc9a6b3d573c8e441 5960Author: Lasse Collin <lasse.collin@tukaani.org> 5961Date: 2024-06-10 15:31:01 +0300 5962 5963 liblzma: CRC32 CLMUL: Refactor the constants and simplify 5964 5965 By using modulus scaled constants, the final reduction can 5966 be simplified. 5967 5968 src/liblzma/check/crc_x86_clmul.h | 52 +++++++-------------------------------- 5969 1 file changed, 9 insertions(+), 43 deletions(-) 5970 5971commit ef652ac391ff7e8cda656238dc5b5f83bc1554c2 5972Author: Lasse Collin <lasse.collin@tukaani.org> 5973Date: 2024-06-10 15:12:48 +0300 5974 5975 liblzma: CRC64 CLMUL: Refactor the constants 5976 5977 Now it refers to crc_clmul_consts_gen.c. vfold8 was renamed to mu_p 5978 and the p no longer has the lowest bit set (it makes no difference 5979 as the output bits it affects are ignored). 5980 5981 src/liblzma/check/crc_x86_clmul.h | 43 +++++++-------------------------------- 5982 1 file changed, 7 insertions(+), 36 deletions(-) 5983 5984commit 9f5fc17e32bf5c7c6cfadf40c29a1dedb4cc03ac 5985Author: Lasse Collin <lasse.collin@tukaani.org> 5986Date: 2024-06-10 14:45:44 +0300 5987 5988 liblzma: Add crc_clmul_consts_gen.c 5989 5990 It's a standalone program that prints the required constants. 5991 It's won't be a part of the normal build of the package. 5992 5993 src/liblzma/check/Makefile.inc | 1 + 5994 src/liblzma/check/crc_clmul_consts_gen.c | 160 +++++++++++++++++++++++++++++++ 5995 2 files changed, 161 insertions(+) 5996 5997commit 71b147aab7fe4a60ed57b697d5bb490f099894be 5998Author: Lasse Collin <lasse.collin@tukaani.org> 5999Date: 2024-05-09 21:44:03 +0300 6000 6001 liblzma: Remove CRC_USE_GENERIC_FOR_SMALL_INPUTS 6002 6003 It was already commented out. 6004 6005 src/liblzma/check/crc32_fast.c | 21 --------------------- 6006 src/liblzma/check/crc64_fast.c | 5 ----- 6007 src/liblzma/check/crc_common.h | 14 -------------- 6008 src/liblzma/check/crc_x86_clmul.h | 9 +-------- 6009 4 files changed, 1 insertion(+), 48 deletions(-) 6010 6011commit f99a7be40645f86959a5b180dfae948dd165e07c 6012Author: Lasse Collin <lasse.collin@tukaani.org> 6013Date: 2024-05-09 21:03:39 +0300 6014 6015 liblzma: Remove crc_attr_no_sanitize_address 6016 6017 It's not enough to silence the address sanitizer. Also memory and 6018 thread sanitizers would need to be silenced. They, at least currently, 6019 aren't smart enough to see that the extra bytes are discarded from 6020 the xmm registers by later instructions. 6021 6022 Valgrind is smarter, possibly because this kind of code isn't weird 6023 to write in assembly. Agner Fog's optimizing_assembly.pdf even mentions 6024 this idea of doing an aligned read and then discarding the extra 6025 bytes. The sanitizers don't instrument assembly code but Valgrind 6026 checks all code. 6027 6028 It's better to change the implementation to avoid the sanitization 6029 attributes which also look scary in the code. (Somehow they can look 6030 more scary than __asm__ which is implictly unsanitized.) 6031 6032 See also: 6033 https://github.com/tukaani-project/xz/issues/112 6034 https://github.com/tukaani-project/xz/issues/122 6035 6036 src/liblzma/check/crc_common.h | 9 --------- 6037 src/liblzma/check/crc_x86_clmul.h | 3 --- 6038 2 files changed, 12 deletions(-) 6039 6040commit ead4d151996f8a18bf9b07eb1e175c0a1590e562 6041Author: Lasse Collin <lasse.collin@tukaani.org> 6042Date: 2024-06-10 15:37:49 +0300 6043 6044 Revert "Build: Temporarily disable CRC CLMUL to silence OSS Fuzz" 6045 6046 This reverts commit 9f1a6d6f9a258886933a22239a5b81af34b28199. 6047 6048 configure.ac | 4 +--- 6049 1 file changed, 1 insertion(+), 3 deletions(-) 6050 6051commit 2178acf8a4d40a93e970cfcf9b807d5ef6c8da92 6052Author: Lasse Collin <lasse.collin@tukaani.org> 6053Date: 2024-06-12 14:26:44 +0300 6054 6055 CMake: Prefer C11 with a fallback to C99 6056 6057 There is no need to make a similar change in configure.ac. 6058 With Autoconf 2.72, the deprecated macro AC_PROG_CC_C99 6059 is an alias for AC_PROG_CC which prefers a C11 compiler. 6060 6061 CMakeLists.txt | 17 +++++++++++------ 6062 1 file changed, 11 insertions(+), 6 deletions(-) 6063 6064commit c97e9c12fef4d1093ee2a75236742481361f50f5 6065Author: Lasse Collin <lasse.collin@tukaani.org> 6066Date: 2024-06-12 14:20:21 +0300 6067 6068 Update THANKS 6069 6070 THANKS | 4 ++++ 6071 1 file changed, 4 insertions(+) 6072 6073commit 89e9f12e03324b8a186e807b268f34f92d1b2f41 6074Author: Lasse Collin <lasse.collin@tukaani.org> 6075Date: 2024-06-11 11:15:49 +0300 6076 6077 Tests: Improve the CRC32 test 6078 6079 A similar one was already there for CRC64 but nowadays also CRC32 6080 has a CLMUL implementation, so it's good to test it better too. 6081 6082 tests/test_check.c | 17 +++++++++++++---- 6083 1 file changed, 13 insertions(+), 4 deletions(-) 6084 6085commit c7164b1927e3fe7cdba70ee4687e1a590a81043b 6086Author: Lasse Collin <lasse.collin@tukaani.org> 6087Date: 2024-06-11 22:42:26 +0300 6088 6089 xz: Fix white space 6090 6091 src/xz/list.c | 6 +++--- 6092 1 file changed, 3 insertions(+), 3 deletions(-) 6093 6094commit 0a32d2072c598de281058b26dc08920fbf0cd2a1 6095Author: Lasse Collin <lasse.collin@tukaani.org> 6096Date: 2024-06-11 21:59:09 +0300 6097 6098 liblzma: Fix a typo in a comment 6099 6100 Thanks to Sam James for spotting it. 6101 6102 Fixes: f644473a211394447824ea00518d0a214ff3f7f2 6103 6104 src/liblzma/check/crc_x86_clmul.h | 2 +- 6105 1 file changed, 1 insertion(+), 1 deletion(-) 6106 6107commit afd9b4d282a10186808c3331dad4caf79c02d55f 6108Author: Lasse Collin <lasse.collin@tukaani.org> 6109Date: 2024-05-10 15:52:26 +0300 6110 6111 liblzma: Fix a comment indentation 6112 6113 src/liblzma/check/crc_common.h | 6 +++--- 6114 1 file changed, 3 insertions(+), 3 deletions(-) 6115 6116commit 50e6bff274568c568930e15094da8217e7d47d28 6117Author: Lasse Collin <lasse.collin@tukaani.org> 6118Date: 2024-05-09 22:09:12 +0300 6119 6120 liblzma: Fix white space 6121 6122 src/liblzma/check/crc32_table.c | 10 +++++----- 6123 src/liblzma/check/crc_x86_clmul.h | 6 +++--- 6124 src/liblzma/check/sha256.c | 2 +- 6125 3 files changed, 9 insertions(+), 9 deletions(-) 6126 6127commit caea7844d3824755d053b4743c4913d73ac2db3d 6128Author: Lasse Collin <lasse.collin@tukaani.org> 6129Date: 2024-06-01 14:25:29 +0300 6130 6131 tuklib: __STDC_VERSION__ in C23 is 202311 6132 6133 src/common/tuklib_common.h | 4 +--- 6134 1 file changed, 1 insertion(+), 3 deletions(-) 6135 6136commit 9e73918a4f14be754a23f74dda45ca431939a4a0 6137Author: RainRat <rainrat78@yahoo.ca> 6138Date: 2024-06-05 15:21:49 -0700 6139 6140 Fix typos 6141 6142 Closes: https://github.com/tukaani-project/xz/pull/124 6143 6144 INSTALL | 2 +- 6145 doc/examples/03_compress_custom.c | 2 +- 6146 src/common/tuklib_integer.h | 2 +- 6147 src/liblzma/api/lzma/container.h | 2 +- 6148 src/xz/mytime.c | 2 +- 6149 tests/test_filter_str.c | 2 +- 6150 6 files changed, 6 insertions(+), 6 deletions(-) 6151 6152commit 04b23addf3733873667675df2439725f076c2f36 6153Author: Lasse Collin <lasse.collin@tukaani.org> 6154Date: 2024-06-07 15:47:20 +0300 6155 6156 tuklib_integer: Fix building on OpenBSD/sparc64 that uses GCC 4.2 6157 6158 GCC 4.2 doesn't have __builtin_bswap16() and friends so tuklib_integer.h 6159 tries to use OS-specific byte swap methods instead. On OpenBSD those 6160 macros are swap16/32/64 instead of bswap16/32/64 like on other *BSDs 6161 and Darwin. 6162 6163 An alternative to "#ifdef __OpenBSD__" could be "#ifdef swap16" as it 6164 is a macro. But since OpenBSD seems to be a special case under this 6165 special case of "*BSDs and Darwin", checking for __OpenBSD__ seems 6166 the more conservative choice now. 6167 6168 Thanks to Christian Weisgerber and Brad Smith who both submitted 6169 the same patch a few hours apart. 6170 6171 Co-authored-by: Christian Weisgerber <naddy@mips.inka.de> 6172 Co-authored-by: Brad Smith <brad@comstyle.com> 6173 Closes: https://github.com/tukaani-project/xz/pull/126 6174 6175 src/common/tuklib_integer.h | 12 +++++++++--- 6176 1 file changed, 9 insertions(+), 3 deletions(-) 6177 6178commit dc03f6290f5b9bd3d50c7e12e58dee870889d599 6179Author: Lasse Collin <lasse.collin@tukaani.org> 6180Date: 2024-06-07 15:06:59 +0300 6181 6182 liblzma: Add ARM64 CRC32 instruction support detection on OpenBSD 6183 6184 The C code is from Christian Weisgerber, I merely reordered the OSes. 6185 Then I added the build system checks without testing them. 6186 6187 Also thanks to Brad Smith who submitted a similar patch on GitHub 6188 a few hours after Christian had sent his via email. 6189 6190 Co-authored-by: Christian Weisgerber <naddy@mips.inka.de> 6191 Closes: https://github.com/tukaani-project/xz/pull/125 6192 6193 CMakeLists.txt | 6 ++++++ 6194 configure.ac | 9 +++++++++ 6195 src/liblzma/check/crc32_arm64.h | 15 +++++++++++++++ 6196 src/liblzma/check/crc_common.h | 1 + 6197 4 files changed, 31 insertions(+) 6198 6199commit f5c2ae58ec68c665e62c790b842657afcb31474c 6200Author: Lasse Collin <lasse.collin@tukaani.org> 6201Date: 2024-06-05 13:55:43 +0300 6202 6203 Update THANKS 6204 6205 THANKS | 2 ++ 6206 1 file changed, 2 insertions(+) 6207 6208commit e5491dfab9c54dc7078a8d3d07fabb91d6e06418 6209Author: Lasse Collin <lasse.collin@tukaani.org> 6210Date: 2024-06-05 13:42:47 +0300 6211 6212 CMake: Include the "alpha" or "beta" suffix in PACKAGE_VERSION 6213 6214 This way the version string gets into xzgrep and other scripts 6215 in full and also into liblzma.pc. 6216 6217 For the project() command, a suffixless string is required though. 6218 6219 CMakeLists.txt | 16 +++++++++++++--- 6220 1 file changed, 13 insertions(+), 3 deletions(-) 6221 6222commit 1d3c61575fda0be6b2d50c9e32a343349d5cd5c0 6223Author: Lasse Collin <lasse.collin@tukaani.org> 6224Date: 2024-06-05 13:30:28 +0300 6225 6226 CMake: Fix wrong version variable 6227 6228 liblzma_VERSION has never existed in the repository. xz_VERSION from 6229 the project() command was used for liblzma SOVERSION so use xz_VERSION 6230 here too. 6231 6232 The wrong variable did no harm in practice as PROJECT_VERSION 6233 was used as the fallback. It has the same value as xz_VERSION. 6234 6235 Fixes: 7e3493d40eac0c3fa3d5124097745a70e15c41f6 6236 6237 CMakeLists.txt | 2 +- 6238 1 file changed, 1 insertion(+), 1 deletion(-) 6239 6240commit 5d1c649ba9eb7a5b9371252ebfbc2911dc774e69 6241Author: Lasse Collin <lasse.collin@tukaani.org> 6242Date: 2024-06-05 12:59:59 +0300 6243 6244 CMake: Set only "prefix" as an absolute path in liblzma.pc 6245 6246 CMake provides variables that are relative to CMAKE_INSTALL_PREFIX 6247 so use them instead of repeating the full path. 6248 6249 CMakeLists.txt | 6 +++--- 6250 1 file changed, 3 insertions(+), 3 deletions(-) 6251 6252commit e0d6d05ce0d464e966c0669bbf869202a43cc2f7 6253Author: Lasse Collin <lasse.collin@tukaani.org> 6254Date: 2024-06-04 23:59:29 +0300 6255 6256 CMake: Fix liblzma filename in Windows environments 6257 6258 This is a mess because liblzma DLL outside Cygwin and MSYS2 6259 is liblzma.dll instead of lzma.dll to avoid a conflict with 6260 lzma.dll from LZMA SDK. 6261 6262 On Cygwin the name was "liblzma-5.dll" while "cyglzma-5.dll" 6263 would have been correct (and match what Libtool produces). 6264 MSYS2 likely was broken too as it uses the "msys-" prefix. 6265 6266 This change has no effect with MinGW-w64 because with that 6267 the "lib" prefix was correct already. 6268 6269 With MSVC builds this is a small breaking change that requires developers 6270 to adjust the library name when linking against liblzma. The liblzma.dll 6271 name is kept as is but the import library and static library are now 6272 lzma.lib instead of liblzma.lib. This is helpful when using pkgconf 6273 because "pkgconf --msvc-syntax --libs liblzma" outputs "lzma.lib" 6274 (it's converted from "-llzma" in liblzma.pc). It would be easy to 6275 keep the liblzma.lib naming but the pkgconf compatibility seems worth 6276 it in the long run. The lzma.lib name is compatible with MinGW-w64 6277 too as -llzma will find also lzma.lib. 6278 6279 vcpkg had been patching CMakeLists.txt this way since 2022 but I 6280 learned this only recently. The reasoning for the patch makes sense, 6281 and while this is a small breaking change with MSVC, it seems like 6282 a decent compromise as it keeps the DLL name the same. 6283 6284 2022 patch in vcpkg: https://github.com/microsoft/vcpkg/blob/0707a17ecf1466d64cf1a3c1ee18c8ff02aadb2d/ports/liblzma/win_output_name.patch 6285 See the discussion: https://github.com/microsoft/vcpkg/pull/39024 6286 6287 Thanks to Vincent Torri for confirming the naming issue on Cygwin. 6288 6289 CMakeLists.txt | 34 ++++++++++++++++++++++++++++++---- 6290 1 file changed, 30 insertions(+), 4 deletions(-) 6291 6292commit e7a42cda7c827e016619e8cab15e2faf5d4181ae 6293Author: Lasse Collin <lasse.collin@tukaani.org> 6294Date: 2024-06-03 16:55:03 +0300 6295 6296 Fix version.sh compatiblity with Solaris 6297 6298 The ancient /bin/tr on Solaris doesn't support '\n'. 6299 With /usr/xpg4/bin/tr it works but it might not be in PATH. 6300 6301 Another problem was that sed was given input that didn't have a newline 6302 at the end. Text files must end with a newline to be portable. 6303 6304 Fix both problems: 6305 6306 - Handle multiline input within sed itself to avoid one tr invocation. 6307 The default sed even on Solaris does understand \n. 6308 6309 - Use octals in tr -d. \012 works for ASCII "line feed", it's even 6310 used as an example in the Solaris man page. But we must strip 6311 also ASCII "carriage return" \015 and EBCDIC "next line" \025. 6312 The EBCDIC case got handled with \n previously. Stripping \012 6313 and \015 on EBCDIC system won't matter as those control chars 6314 won't be present in the string in the first place. 6315 6316 An awk-based solution could be an alternative but it might need 6317 special casing on Solaris to used nawk instead of awk. The changes 6318 in this commit are smaller and should have a smaller risk for 6319 regressions. It's also possible that version.sh will be dropped 6320 entirely at some point. 6321 6322 build-aux/version.sh | 5 ++--- 6323 1 file changed, 2 insertions(+), 3 deletions(-) 6324 6325commit a61c9ab4751f2710dcd5459c7d74bbf20781f0f9 6326Author: Lasse Collin <lasse.collin@tukaani.org> 6327Date: 2024-06-03 17:07:11 +0300 6328 6329 CI: Don't require po4a on Solaris 6330 6331 .github/workflows/solaris.yml | 2 +- 6332 1 file changed, 1 insertion(+), 1 deletion(-) 6333 6334commit 5229bdf5335ce18ed54beb7e646e39927663be86 6335Author: Lasse Collin <lasse.collin@tukaani.org> 6336Date: 2024-06-03 15:08:15 +0300 6337 6338 CI: Use set -e on Solaris too 6339 6340 .github/workflows/solaris.yml | 1 + 6341 1 file changed, 1 insertion(+) 6342 6343commit afa938e429c1ce07d26d02999352fb014b62ff3d 6344Author: Lasse Collin <lasse.collin@tukaani.org> 6345Date: 2024-06-03 17:44:50 +0300 6346 6347 CMake: Install liblzma.pc even with MSVC 6348 6349 I had misunderstood that it wouldn't be useful with MSVC. 6350 vcpkg had been installing liblzma.pc with custom rules since 2020, 6351 years before liblzma.pc support was added to CMakeLists.txt. 6352 6353 See: 6354 https://github.com/microsoft/vcpkg/blob/eb895b95aac6fd7485373702f29f508c42a180a0/ports/liblzma/portfile.cmake 6355 https://github.com/microsoft/vcpkg/pull/39024#issuecomment-2145064670 6356 6357 CMakeLists.txt | 8 +++----- 6358 1 file changed, 3 insertions(+), 5 deletions(-) 6359 6360commit 35f8649f08341639a627fd06350e938124ca3622 6361Author: Sam James <sam@gentoo.org> 6362Date: 2024-06-03 06:16:23 +0100 6363 6364 ci: don't pin official GH actions via commit, just tag 6365 6366 There's no real value in doing it via commit for official GH actions. We 6367 can keep using pinned commits for unofficial actions. It's hassle for no 6368 gain. 6369 6370 Maybe going forward we can limit this further by only being paranoid 6371 for the jobs with any access to tokens. 6372 6373 .github/workflows/ci.yml | 4 ++-- 6374 .github/workflows/freebsd.yml | 2 +- 6375 .github/workflows/netbsd.yml | 2 +- 6376 .github/workflows/openbsd.yml | 2 +- 6377 .github/workflows/solaris.yml | 2 +- 6378 .github/workflows/windows-ci.yml | 4 ++-- 6379 6 files changed, 8 insertions(+), 8 deletions(-) 6380 6381commit e885dae37ff5b1dbc760dabc1e03e866a7302ef2 6382Author: Christoph Junghans <christoph.junghans@gmail.com> 6383Date: 2024-04-30 07:49:26 -0600 6384 6385 ci: set -e on openbsd 6386 6387 Closes: https://github.com/tukaani-project/xz/pull/116 6388 6389 .github/workflows/openbsd.yml | 1 + 6390 1 file changed, 1 insertion(+) 6391 6392commit 21b02dd128cf9e8c76325ec124f70381862dcf19 6393Author: Christoph Junghans <christoph.junghans@gmail.com> 6394Date: 2024-04-30 07:48:58 -0600 6395 6396 ci: set -e on netbsd 6397 6398 .github/workflows/netbsd.yml | 1 + 6399 1 file changed, 1 insertion(+) 6400 6401commit 8641f0c24c041136670c975b23408184b45431bc 6402Author: Christoph Junghans <christoph.junghans@gmail.com> 6403Date: 2024-04-25 14:56:06 -0700 6404 6405 ci: actually fail on FreeBSD 6406 6407 Without "set -e" the job will always be successful. 6408 6409 See vmactions/freebsd-vm#72 6410 6411 .github/workflows/freebsd.yml | 1 + 6412 1 file changed, 1 insertion(+) 6413 6414commit ef616683ef11f11ffdfbe0624da33905e28a70f9 6415Author: Andrew Murray <radarhere@users.noreply.github.com> 6416Date: 2024-04-25 09:24:46 +1000 6417 6418 Updated actions 6419 6420 Closes: https://github.com/tukaani-project/xz/pull/115 6421 6422 .github/workflows/ci.yml | 4 ++-- 6423 .github/workflows/windows-ci.yml | 6 +++--- 6424 2 files changed, 5 insertions(+), 5 deletions(-) 6425 6426commit 57b440d316da9ac9cb312ee7e6890f5382556f10 6427Author: Sam James <sam@gentoo.org> 6428Date: 2024-06-03 02:49:40 +0100 6429 6430 ci: add po4a 6431 6432 .github/workflows/netbsd.yml | 2 +- 6433 .github/workflows/openbsd.yml | 3 ++- 6434 2 files changed, 3 insertions(+), 2 deletions(-) 6435 6436commit 08cdf4be9a673d78efe393b53dd73bf43c81dd95 6437Author: Sam James <sam@gentoo.org> 6438Date: 2024-04-13 21:02:04 +0100 6439 6440 ci: add Solaris 6441 6442 Inspired by https://github.com/RsyncProject/rsync/commit/3f2a38b01184cae9a931280b534acf5a3dae2e94. 6443 6444 It runs on Solaris 5.11 via a VirtualBox VM. 6445 6446 .github/workflows/solaris.yml | 31 +++++++++++++++++++++++++++++++ 6447 1 file changed, 31 insertions(+) 6448 6449commit b69768c8bd1a34fde311935c551d061ba52d9a3f 6450Author: Sam James <sam@gentoo.org> 6451Date: 2024-04-14 08:08:00 +0100 6452 6453 xz: list: suppress -Wformat-nonliteral for Solaris 6454 6455 Solaris' GCC can't understand that our use is fine, unlike modern compilers: 6456 ``` 6457 list.c: In function 'print_totals_basic': 6458 list.c:1191:4: error: format not a string literal, argument types not checked [-Werror=format-nonliteral] 6459 uint64_to_str(totals.files, 0)); 6460 ^~~~~~~~~~~~~ 6461 cc1: all warnings being treated as errors 6462 ``` 6463 6464 It's presumably because of older gettext missing format attributes. 6465 6466 This is with `gcc (GCC) 7.3.0`. 6467 6468 src/xz/list.c | 7 +++++++ 6469 1 file changed, 7 insertions(+) 6470 6471commit bb90e1f66d9beb490c4c99763e79519045968710 6472Author: Lasse Collin <lasse.collin@tukaani.org> 6473Date: 2024-06-03 11:44:28 +0300 6474 6475 license-check.sh: Fix reporting of unclear license info 6476 6477 The main feature was broken because an old variable name hadn't 6478 been updated to match the rest of the script. 6479 6480 build-aux/license-check.sh | 4 ++-- 6481 1 file changed, 2 insertions(+), 2 deletions(-) 6482 6483commit b8d134e61ede9f4a296226d97f5c20721fb4e8e2 6484Author: Lasse Collin <lasse.collin@tukaani.org> 6485Date: 2024-05-31 21:36:26 +0300 6486 6487 Update THANKS 6488 6489 THANKS | 3 +++ 6490 1 file changed, 3 insertions(+) 6491 6492commit 162587d3fb3fcedc6eee61eda3ccaaf60c80f0de 6493Author: Lasse Collin <lasse.collin@tukaani.org> 6494Date: 2024-05-29 17:47:13 +0300 6495 6496 Translations: Run po4a/update-po 6497 6498 Now the files are in the new formatting without source file 6499 line numbers. Future updates should keep the diffs much smaller. 6500 6501 po4a/de.po | 1592 ++++++++++--------- 6502 po4a/fr.po | 4450 +++++++++++++++++----------------------------------- 6503 po4a/ko.po | 1592 ++++++++++--------- 6504 po4a/pt_BR.po | 4817 ++++++++++++++++++--------------------------------------- 6505 po4a/ro.po | 1592 ++++++++++--------- 6506 po4a/uk.po | 1592 ++++++++++--------- 6507 6 files changed, 6114 insertions(+), 9521 deletions(-) 6508 6509commit 50cd8ed002473c5cd53980e70a53e5e6ad646ffe 6510Author: Lasse Collin <lasse.collin@tukaani.org> 6511Date: 2024-05-29 17:44:53 +0300 6512 6513 Translations: Run "make -C po update-po" 6514 6515 In the past this wasn't done before releases; the Git repository 6516 just contained the files from the Translation Project. But this 6517 way it is clearer when comparing release tarballs against the 6518 Git repository. In future releases this might no longer be necessary 6519 within a stable branch as the .po files won't change so easily anymore 6520 when creating a tarball. 6521 6522 po/ca.po | 567 +++++++++++++++++++++++++--------------- 6523 po/cs.po | 821 +++++++++++++++++++++++++++++++++++++-------------------- 6524 po/da.po | 809 +++++++++++++++++++++++++++++++++++--------------------- 6525 po/de.po | 403 ++++++++++++++-------------- 6526 po/eo.po | 403 ++++++++++++++-------------- 6527 po/es.po | 403 ++++++++++++++-------------- 6528 po/fi.po | 578 +++++++++++++++++++++++++--------------- 6529 po/fr.po | 538 +++++++++++++++++++++++--------------- 6530 po/hr.po | 403 ++++++++++++++-------------- 6531 po/hu.po | 403 ++++++++++++++-------------- 6532 po/it.po | 854 +++++++++++++++++++++++++++++++++++++++--------------------- 6533 po/ko.po | 403 ++++++++++++++-------------- 6534 po/pl.po | 403 ++++++++++++++-------------- 6535 po/pt.po | 842 +++++++++++++++++++++++++++++++++++++++-------------------- 6536 po/pt_BR.po | 567 +++++++++++++++++++++++++--------------- 6537 po/ro.po | 403 ++++++++++++++-------------- 6538 po/sr.po | 838 ++++++++++++++++++++++++++++++++++++++-------------------- 6539 po/sv.po | 403 ++++++++++++++-------------- 6540 po/tr.po | 567 +++++++++++++++++++++++++--------------- 6541 po/uk.po | 403 ++++++++++++++-------------- 6542 po/vi.po | 403 ++++++++++++++-------------- 6543 po/zh_CN.po | 417 +++++++++++++++-------------- 6544 po/zh_TW.po | 558 ++++++++++++++++++++++++--------------- 6545 23 files changed, 7257 insertions(+), 5132 deletions(-) 6546 6547commit 16dbd865c8833462e1604a1e13f7effe55bb3fe6 6548Author: Lasse Collin <lasse.collin@tukaani.org> 6549Date: 2024-05-29 18:03:04 +0300 6550 6551 Add NEWS for 5.6.2 6552 6553 NEWS | 130 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 6554 1 file changed, 130 insertions(+) 6555 6556commit a0eeb5f9369c43508610dcf00140edb8e2be92a6 6557Author: Lasse Collin <lasse.collin@tukaani.org> 6558Date: 2024-05-29 18:03:04 +0300 6559 6560 Add NEWS for 5.4.7 6561 6562 NEWS | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 6563 1 file changed, 89 insertions(+) 6564 6565commit 9b476fb93a9672f2e70b56e3e9c7e9cfedd6c162 6566Author: Lasse Collin <lasse.collin@tukaani.org> 6567Date: 2024-05-29 18:03:04 +0300 6568 6569 Add NEWS for 5.2.13 6570 6571 NEWS | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 6572 1 file changed, 115 insertions(+) 6573 6574commit 9284f1aea31f0eb23e2ea72f7218b271e2234762 6575Author: Lasse Collin <lasse.collin@tukaani.org> 6576Date: 2024-05-29 16:33:24 +0300 6577 6578 Build: Update po/*.po files only when needed 6579 6580 When po/xz.pot doesn't exist, running "make" or "make dist" will 6581 create it. Then the .po files will be updated but only if they 6582 actually would change more than the POT-Creation-Date line. 6583 Then the .gmo files would be generated from the .po files. 6584 This is the case before and after this commit. 6585 6586 However, "make dist" and thus "make mydist" did a forced update 6587 to the files, updating them even if the only change was the 6588 POT-Creation-Date line. This had pros and cons: It made it clear 6589 that the .po file really is in sync with the recent strings in 6590 the package. On the other hand, it added noise in form of changed 6591 files in the source tree and distribution tarballs. It can be 6592 ignored with something like "diff -I'^"POT-Creation-Date: '" but 6593 it's still a minor annoyance *if* there's not enough value in 6594 having the most recent timestamp. 6595 6596 Setting DIST_DEPENDS_ON_UPDATE_PO = no means that such forced 6597 update won't happen in "make dist" anymore. However, the "mydist" 6598 target will use xz.pot-update target which is the same target that 6599 is run when xz.pot doesn't exist at all yet. Thus "mydist" will 6600 ensure that the translations are up to date, without noise from 6601 changes that would affect only the POT-Creation-Date line. 6602 6603 Note that po4a always uses msgmerge with --update, so POT-Creation-Date 6604 in the man page translations is never the only change in .po files. 6605 In that sense this commit makes the message translations behave more 6606 similarly to the man page translations. 6607 6608 Distribution tarballs will still have non-reproducible POT-Creation-Date 6609 in po/xz.pot and po4a/xz-man.pot but those are just two files. Even they 6610 could be made reproducible from a Git timestamp if desired. 6611 6612 Makefile.am | 3 ++- 6613 po/Makevars | 6 +++++- 6614 2 files changed, 7 insertions(+), 2 deletions(-) 6615 6616commit 4beba1cd62d7f8f7a6f1e899b68292d94c53b599 6617Author: Lasse Collin <lasse.collin@tukaani.org> 6618Date: 2024-05-28 21:10:33 +0300 6619 6620 po4a/update-po: Disable wrapping in .pot and .po files 6621 6622 The .po files from the Translation Project come with unwrapped 6623 strings so this matches it. 6624 6625 This may reduce the noise in diffs too. When the beginning of 6626 a paragraph had changed, the rest of the lines got rewrapped 6627 in msgsid. Now it's just one very long line that changes when 6628 a paragraph has been edited. 6629 6630 The --add-location=file option was removed as redundant. The line 6631 numbers don't exist in the .pot file due to --porefs file and thus 6632 they cannot get copied to the .po files either. 6633 6634 po4a/update-po | 15 +++++++++++---- 6635 1 file changed, 11 insertions(+), 4 deletions(-) 6636 6637commit b14c130a58a649f9a73392eeb122cb252327c569 6638Author: Lasse Collin <lasse.collin@tukaani.org> 6639Date: 2024-05-28 18:36:53 +0300 6640 6641 Update contact info in README 6642 6643 README | 12 +++++++++--- 6644 1 file changed, 9 insertions(+), 3 deletions(-) 6645 6646commit 75f5f2e014b0ee646963f36bc6a9c840fb272353 6647Author: Lasse Collin <lasse.collin@tukaani.org> 6648Date: 2024-05-28 13:25:07 +0300 6649 6650 Translations: Use --package-name=xz-man with po4a 6651 6652 This is to match reality. See the added comment. 6653 6654 po4a/update-po | 9 ++++++++- 6655 1 file changed, 8 insertions(+), 1 deletion(-) 6656 6657commit eb217d016cfbbba1babc19a61095b3ea25898af6 6658Author: Lasse Collin <lasse.collin@tukaani.org> 6659Date: 2024-05-28 13:03:40 +0300 6660 6661 Translations: Omit --package-name from po/Makevars 6662 6663 This is closer to the reality in the po/*.po files. 6664 6665 po/Makevars | 3 +-- 6666 1 file changed, 1 insertion(+), 2 deletions(-) 6667 6668commit d28a4b2520adeeaa1b9e921bf42c7c1f36552c06 6669Author: Lasse Collin <lasse.collin@tukaani.org> 6670Date: 2024-05-27 17:45:51 +0300 6671 6672 license-check.sh: Use '--' with slightly untrusted filenames 6673 6674 Names from git ls-files should be safe but if one runs it on 6675 a tree without the .git dir and there are extra files, it's 6676 safer to have the end of arguments marked with '--'. 6677 6678 build-aux/license-check.sh | 6 +++--- 6679 1 file changed, 3 insertions(+), 3 deletions(-) 6680 6681commit fda0ec862a34094cf23fc25d0e0a95858c3a3ab5 6682Author: Lasse Collin <lasse.collin@tukaani.org> 6683Date: 2024-05-27 17:41:37 +0300 6684 6685 license-check.sh: Use xargs -0 instead of -d 6686 6687 Neither are in POSIX but -0 is much more portable in practice. 6688 6689 Despite the old comment, the grep usage should be portable already. 6690 6691 build-aux/license-check.sh | 11 ++++++----- 6692 1 file changed, 6 insertions(+), 5 deletions(-) 6693 6694commit 9114267038deaecf4832a5cacb5acbe6591ac839 6695Author: Lasse Collin <lasse.collin@tukaani.org> 6696Date: 2024-05-28 01:17:45 +0300 6697 6698 Translations: Omit man page line numbers from .pot and .po files 6699 6700 po4a/update-po | 5 +++++ 6701 1 file changed, 5 insertions(+) 6702 6703commit 093490b58271e9424ce38a7b1b38bcf61b9c86c6 6704Author: Lasse Collin <lasse.collin@tukaani.org> 6705Date: 2024-05-28 01:06:30 +0300 6706 6707 Translations: Use the xgettext option --add-location=file 6708 6709 po/Makevars | 3 ++- 6710 1 file changed, 2 insertions(+), 1 deletion(-) 6711 6712commit fccebe2b4fd513488fc920e4dac32562ed3c7637 6713Author: Lasse Collin <lasse.collin@tukaani.org> 6714Date: 2024-05-28 00:43:53 +0300 6715 6716 Translations: Use the msgmerge option --add-location=file 6717 6718 This way the PO file diffs are less noisy but the locations of the 6719 strings are still present at file level, just without line numbers. 6720 6721 The option is available since gettext 0.19 (2014). 6722 configure.ac requires 0.19.6. 6723 6724 po/Makevars | 2 +- 6725 1 file changed, 1 insertion(+), 1 deletion(-) 6726 6727commit f361d9ae85707a87eb28db400eb7229cec103d58 6728Author: Lasse Collin <lasse.collin@tukaani.org> 6729Date: 2024-05-27 12:22:08 +0300 6730 6731 Build: Use $(SHELL) instead of sh to run scripts in Makefile.am 6732 6733 Makefile.am | 14 +++++++------- 6734 1 file changed, 7 insertions(+), 7 deletions(-) 6735 6736commit a26dece34793a09aac2476f954d162d03e9cf62b 6737Author: Lasse Collin <lasse.collin@tukaani.org> 6738Date: 2024-05-23 17:25:13 +0300 6739 6740 Translations: Change the home page URLs in man page translations 6741 6742 Since the source strings have changed, these would get marked as 6743 fuzzy and the original string would be used instead. The original 6744 and translated strings are identical in this case so it wouldn't 6745 matter. But patching the translations helps still because then 6746 po4a will show the correct translation percentage. 6747 6748 po4a/de.po | 8 ++++---- 6749 po4a/fr.po | 4 ++-- 6750 po4a/ko.po | 4 ++-- 6751 po4a/pt_BR.po | 4 ++-- 6752 po4a/ro.po | 8 ++++---- 6753 po4a/uk.po | 8 ++++---- 6754 6 files changed, 18 insertions(+), 18 deletions(-) 6755 6756commit 24387c234b4eed1ef9a7eaa107391740b4095568 6757Author: Lasse Collin <lasse.collin@tukaani.org> 6758Date: 2024-05-23 15:15:18 +0300 6759 6760 CMake: Add manual support for 32-bit x86 assembly files 6761 6762 One has to pass -DENABLE_X86_ASM=ON to cmake to enable the 6763 CRC assembly code. Autodetection isn't done. Looking at 6764 CMAKE_SYSTEM_PROCESSOR might not work as it comes from uname 6765 unless cross-compilation is done using a CMake toolchain file. 6766 6767 On top of this, if the code is run on modern processors that support 6768 the CLMUL instruction, then the C code should be faster (but then 6769 one should also be using a x86-64 build if possible). 6770 6771 CMakeLists.txt | 34 +++++++++++++++++++++++++++++++--- 6772 1 file changed, 31 insertions(+), 3 deletions(-) 6773 6774commit 0fb3c9c3f684f5a25bd425ed079a20a79f0c969d 6775Author: Lasse Collin <lasse.collin@tukaani.org> 6776Date: 2024-05-23 14:26:45 +0300 6777 6778 CMake: Rename USE_DOXYGEN to ENABLE_DOXYGEN 6779 6780 It's more consistent with the other option() uses. 6781 6782 CMakeLists.txt | 4 ++-- 6783 1 file changed, 2 insertions(+), 2 deletions(-) 6784 6785commit 6bbec3bda02bf87d24fa095074456e723589921f 6786Author: Lasse Collin <lasse.collin@tukaani.org> 6787Date: 2024-05-22 15:21:53 +0300 6788 6789 Mention license-check.sh in COPYING 6790 6791 COPYING | 6 ++++++ 6792 1 file changed, 6 insertions(+) 6793 6794commit 62733592a1cc6f0b41f46ef52e06d1a6fe1ff38a 6795Author: Lasse Collin <lasse.collin@tukaani.org> 6796Date: 2024-05-22 15:21:53 +0300 6797 6798 Use more confident language in COPYING 6799 6800 COPYING | 8 ++++---- 6801 1 file changed, 4 insertions(+), 4 deletions(-) 6802 6803commit a119a4209e8827e1d7c2cfd30cb9f5a9b76f9dff 6804Author: Lasse Collin <lasse.collin@tukaani.org> 6805Date: 2024-05-22 15:21:53 +0300 6806 6807 Build: Run license-check.sh in "mydist" and "dist-hook" 6808 6809 In mydist the point is to check using the file list from the Git 6810 repository. In dist-hook it is to check that the TARBALL_IGNORE 6811 patterns work when the .git dir or the "git" command aren't available. 6812 6813 Refuse to create a distribution tarball if license issues are found. 6814 6815 Makefile.am | 2 ++ 6816 1 file changed, 2 insertions(+) 6817 6818commit f3434ecfcb45154508752986f4fc670b8f0555dc 6819Author: Lasse Collin <lasse.collin@tukaani.org> 6820Date: 2024-05-22 15:21:53 +0300 6821 6822 Add build-aux/license-check.sh 6823 6824 This helps in spotting files that lack SPDX license identifier 6825 and which haven't been explicitly white listed either. The script 6826 requires the .git directory to be present as only the files that 6827 are in the Git repository are checked. 6828 6829 XZ Utils isn't FSFE REUSE compliant for now. 6830 6831 Makefile.am | 1 + 6832 build-aux/license-check.sh | 174 +++++++++++++++++++++++++++++++++++++++++++++ 6833 2 files changed, 175 insertions(+) 6834 6835commit 9ae2ebc1e504a1814b0788de95fb5c58c0328dde 6836Author: Lasse Collin <lasse.collin@tukaani.org> 6837Date: 2024-04-29 17:16:38 +0300 6838 6839 Add SPDX license identifiers to files under tests/ossfuzz 6840 6841 tests/ossfuzz/Makefile | 2 ++ 6842 tests/ossfuzz/config/fuzz_decode_alone.options | 2 ++ 6843 tests/ossfuzz/config/fuzz_decode_stream.options | 2 ++ 6844 tests/ossfuzz/config/fuzz_encode_stream.options | 2 ++ 6845 tests/ossfuzz/config/fuzz_lzma.dict | 2 ++ 6846 tests/ossfuzz/config/fuzz_xz.dict | 2 ++ 6847 6 files changed, 12 insertions(+) 6848 6849commit 9000d70eb9815bd7f43ffddc1c3316c507aa0e05 6850Author: Lasse Collin <lasse.collin@tukaani.org> 6851Date: 2024-04-29 17:16:06 +0300 6852 6853 Add SPDX license identifier to .codespellrc 6854 6855 .codespellrc | 2 ++ 6856 1 file changed, 2 insertions(+) 6857 6858commit 903c16fcfa5bfad0cdb2a7383d941243bcb12e76 6859Author: Lasse Collin <lasse.collin@tukaani.org> 6860Date: 2024-05-22 15:12:09 +0300 6861 6862 Move entries po4a/.gitignore to the top level .gitignore 6863 6864 The po4a directory is in EXTRA_DIST and thus all files there 6865 are included in the package. .gitignore doesn't belong in the 6866 package so keep that file out of the po4a directory. 6867 6868 .gitignore | 4 ++++ 6869 po4a/.gitignore | 3 --- 6870 2 files changed, 4 insertions(+), 3 deletions(-) 6871 6872commit 56f1d5ed68e84ba5dfa328ea2291b8f46c995125 6873Author: Lasse Collin <lasse.collin@tukaani.org> 6874Date: 2024-05-20 16:55:00 +0300 6875 6876 Tests: Make the config.h grep patterns Meson compatible 6877 6878 Now the test scripts detect both 6879 6880 #define HAVE_DECODER_ARM 6881 #define HAVE_DECODER_ARM 1 6882 6883 as support for the ARM filter without confusing it with these: 6884 6885 #define HAVE_DECODER_ARM64 6886 #define HAVE_DECODER_ARM64 1 6887 6888 Previously only the ones ending with " 1" were accepted for 6889 the macros where this kind of confusion was possible. 6890 6891 This should help with Meson support because Meson's built-in 6892 features produce config.h entries that are either 6893 6894 #define FOO 1 6895 #define FOO 0 6896 6897 or: 6898 6899 #define FOO 6900 #undef FOO 6901 6902 The former method has a benefit that one can use "#if FOO" and -Wundef 6903 will catch if a #define is missing (for example, it helps catching 6904 typos). But XZ Utils has to use the latter since it has been 6905 convenient with Autoconf's default behavior.[*] While it's easy to 6906 emulate the Autoconf style (#define FOO 1 vs. no #define at all) 6907 in Meson, it results in clumsy code. Thus it's better to change 6908 the few places in the tests where this difference matters. 6909 6910 [*] While most checks in Autoconf default to the second style above, 6911 a few things use the first style (like AC_CHECK_DECLS). The mix 6912 of both styles is the most confusing as one has to remember which 6913 macro needs #ifdef and which #if. Currently HAVE_VISIBILITY is 6914 only such config.h entry that is 1 or 0. It comes unmodified 6915 from Gnulib's visibility.m4. 6916 6917 tests/test_compress.sh | 4 ++-- 6918 tests/test_files.sh | 2 +- 6919 2 files changed, 3 insertions(+), 3 deletions(-) 6920 6921commit 9d997d6f9d4f042412e45c7b7a23a14ad2e4f9aa 6922Author: Lasse Collin <lasse.collin@tukaani.org> 6923Date: 2024-05-20 16:55:00 +0300 6924 6925 CMake: Add comments 6926 6927 tests/tests.cmake | 2 ++ 6928 1 file changed, 2 insertions(+) 6929 6930commit d35368b33e54bad2f566df99fac29ffea38e34de 6931Author: Lasse Collin <lasse.collin@tukaani.org> 6932Date: 2024-05-20 16:55:00 +0300 6933 6934 CMake: Remove the note that some tests aren't run 6935 6936 They are now in the common build configurations. 6937 6938 CMakeLists.txt | 2 -- 6939 1 file changed, 2 deletions(-) 6940 6941commit dc232d584619b2819a9c52d6ad5d8b5d56b392ba 6942Author: Lasse Collin <lasse.collin@tukaani.org> 6943Date: 2024-05-20 16:55:00 +0300 6944 6945 CMake: Add support for test_files.sh 6946 6947 tests/tests.cmake | 20 ++++++++++++++++++++ 6948 1 file changed, 20 insertions(+) 6949 6950commit a7e9230af9d1f87f474fe38886eb977d4149dc9b 6951Author: Lasse Collin <lasse.collin@tukaani.org> 6952Date: 2024-05-20 16:55:00 +0300 6953 6954 Tests: Make test_files.sh more flexible 6955 6956 Add a new optional argument to specify the directory of the xz and 6957 xzdec executables. 6958 6959 If ../config.h doesn't exist, assume that all encoders and decoders 6960 are available. 6961 6962 tests/test_files.sh | 18 +++++++++++++----- 6963 1 file changed, 13 insertions(+), 5 deletions(-) 6964 6965commit b40e6efbb48d740b9b5b303e59e344801cbb5bd8 6966Author: Lasse Collin <lasse.collin@tukaani.org> 6967Date: 2024-05-20 16:55:00 +0300 6968 6969 CMake: Add support for test_compress.sh tests 6970 6971 tests/tests.cmake | 26 ++++++++++++++++++++++++++ 6972 1 file changed, 26 insertions(+) 6973 6974commit ac3222d2cb1ff3a15eb6d58f9ea9bc78e8bc3bb2 6975Author: Lasse Collin <lasse.collin@tukaani.org> 6976Date: 2024-05-20 16:55:00 +0300 6977 6978 Tests: Make test_compress.sh more flexible 6979 6980 Add a new optional second argument: directory of the xz and xzdec 6981 executables. This is need with the CMake build where the binaries 6982 end up in the top-level build directory. 6983 6984 If ../config.h doesn't exist, assume that all encoders and decoders 6985 are available. This will make this script usable from CMake in the 6986 most common build configuration. 6987 6988 NOTE: Since the existence of ../config.h is checked, the working 6989 directory of the test script must be a subdir in the build tree! 6990 Otherwise ../config.h would look outside the build tree. 6991 6992 Use the default check type instead of forcing CRC32 or CRC64. 6993 Now the script doesn't need to check if CRC64 is available. 6994 6995 tests/test_compress.sh | 41 +++++++++++++++++++++++++++++------------ 6996 1 file changed, 29 insertions(+), 12 deletions(-) 6997 6998commit 006040b29c83104403621e950ada0c8956c56b3d 6999Author: Lasse Collin <lasse.collin@tukaani.org> 7000Date: 2024-05-20 16:55:00 +0300 7001 7002 CMake: Prepare to support the test_*.sh tests 7003 7004 This is a bit hacky since the scripts grep config.h to know which 7005 features were built but the CMake build doesn't create config.h. 7006 So instead those test scripts will be run only when all relevant 7007 features have been enabled. 7008 7009 tests/tests.cmake | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 7010 1 file changed, 49 insertions(+) 7011 7012commit 6167607a6ea72fb74eefb943c4566e3cab528cd2 7013Author: Lasse Collin <lasse.collin@tukaani.org> 7014Date: 2024-05-20 16:55:00 +0300 7015 7016 Tests: test_suffix.sh: Add a comment 7017 7018 tests/test_suffix.sh | 3 +++ 7019 1 file changed, 3 insertions(+) 7020 7021commit 4e9023857d287f624562156b60dc23d2b64c0f10 7022Author: Lasse Collin <lasse.collin@tukaani.org> 7023Date: 2024-05-18 00:34:07 +0300 7024 7025 Fix typos 7026 7027 Thanks to xx on #tukaani. 7028 7029 src/common/mythread.h | 2 +- 7030 src/common/tuklib_integer.h | 2 +- 7031 src/liblzma/api/lzma/base.h | 2 +- 7032 src/liblzma/common/filter_buffer_decoder.c | 2 +- 7033 src/liblzma/common/filter_common.c | 2 +- 7034 src/scripts/xzgrep.in | 2 +- 7035 6 files changed, 6 insertions(+), 6 deletions(-) 7036 7037commit b14d08fbbc254485ace9ccfe7908674f608a62ae 7038Author: Lasse Collin <lasse.collin@tukaani.org> 7039Date: 2024-05-18 00:23:52 +0300 7040 7041 liblzma: Fix white space 7042 7043 Thanks to xx on #tukaani. 7044 7045 src/liblzma/simple/simple_coder.h | 8 ++++---- 7046 1 file changed, 4 insertions(+), 4 deletions(-) 7047 7048commit 9f1a6d6f9a258886933a22239a5b81af34b28199 7049Author: Lasse Collin <lasse.collin@tukaani.org> 7050Date: 2024-05-15 23:14:17 +0300 7051 7052 Build: Temporarily disable CRC CLMUL to silence OSS Fuzz 7053 7054 The code makes aligned 16-byte reads which may read up to 15 bytes 7055 before the beginning or past the end of the buffer if the buffer 7056 is misaligned. The unneeded bytes are then ignored. It cannot cross 7057 page boundaries and thus cannot cause access violations. 7058 7059 This inherently trips address sanitizer which was already disabled 7060 with __attribute__((__no_sanitize_address__)). However, it also 7061 trips memory sanitizer if the extra bytes are uninitialized because 7062 memory sanitizer doesn't see that those bytes then get ignored by 7063 byte shuffling in the xmm registers. 7064 7065 The plan is to change the code so that all sanitizers pass but it's 7066 not finished yet (performance shouldn't get worse) so as a temporary 7067 measure to keep OSS Fuzz happy, the CLMUL CRC is now disabled even 7068 though I think think the code is fine to use (and easy enough to review 7069 the memory accesses in it too). 7070 7071 configure.ac | 4 +++- 7072 1 file changed, 3 insertions(+), 1 deletion(-) 7073 7074commit 142e670a413a7bce1a2647f1cf1f33f8ee2dbe88 7075Author: Lasse Collin <lasse.collin@tukaani.org> 7076Date: 2024-05-13 17:15:04 +0300 7077 7078 xz: Document the static function get_chains_memusage() 7079 7080 src/xz/coder.c | 14 ++++++++++++-- 7081 1 file changed, 12 insertions(+), 2 deletions(-) 7082 7083commit 78e984399a64bfee5d11e7308e0bdbc1006db2ca 7084Author: Lasse Collin <lasse.collin@tukaani.org> 7085Date: 2024-05-13 17:07:22 +0300 7086 7087 xz: Rename filters_memusage_max() to get_chains_memusage() 7088 7089 src/xz/coder.c | 14 ++++++-------- 7090 1 file changed, 6 insertions(+), 8 deletions(-) 7091 7092commit 54c3db0a83d3e67d89aba92a0957f2dce9b111a7 7093Author: Lasse Collin <lasse.collin@tukaani.org> 7094Date: 2024-05-13 17:04:05 +0300 7095 7096 xz: Rename filter_memusages to chains_memusages 7097 7098 src/xz/coder.c | 6 +++--- 7099 1 file changed, 3 insertions(+), 3 deletions(-) 7100 7101commit d9e1ae79ec90d6a7eafeaceaf0ece4f0c83d4417 7102Author: Lasse Collin <lasse.collin@tukaani.org> 7103Date: 2024-05-12 22:26:30 +0300 7104 7105 xz: Simplify the memory usage scaling code 7106 7107 This is closer to what it was before the --filtersX support was added, 7108 just extended to support for scaling all filter chains. The method 7109 before this commit was an extended version of the original too but 7110 it was done in a more complex way for no clear reason. In case of 7111 an error, the complex version printed fewer informative messages 7112 (a good thing) but it's not a sigificant benefit. 7113 7114 In the limit is too low even for single-threaded mode, the required 7115 amount of memory is now reported like in 5.4.x instead of like in 7116 5.5.1alpha - 5.6.1 which showed the original non-scaled usage. It 7117 had been a FIXME in the old code but it's not clear what message 7118 makes the most sense. 7119 7120 Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a 7121 7122 src/xz/coder.c | 163 ++++++++++++++++++++------------------------------------- 7123 1 file changed, 57 insertions(+), 106 deletions(-) 7124 7125commit 0ee56983d198b776878432703de664049b1be32e 7126Author: Lasse Collin <lasse.collin@tukaani.org> 7127Date: 2024-05-13 12:14:00 +0300 7128 7129 xz: Edit comments 7130 7131 src/xz/coder.h | 6 ++---- 7132 1 file changed, 2 insertions(+), 4 deletions(-) 7133 7134commit ec82a49c3553f7206104582dbfb8b64fa433b491 7135Author: Lasse Collin <lasse.collin@tukaani.org> 7136Date: 2024-05-13 12:03:51 +0300 7137 7138 xz: Rename chain_idx to chain_num 7139 7140 src/xz/coder.c | 6 +++--- 7141 1 file changed, 3 insertions(+), 3 deletions(-) 7142 7143commit a731a6993c34bbbd55abaf9c166718682b1da24f 7144Author: Lasse Collin <lasse.collin@tukaani.org> 7145Date: 2024-05-12 22:29:11 +0300 7146 7147 xz: Edit coding style 7148 7149 src/xz/coder.c | 2 +- 7150 1 file changed, 1 insertion(+), 1 deletion(-) 7151 7152commit 32eb176b89243fce3112347fe43a8ad14a9fd2be 7153Author: Lasse Collin <lasse.collin@tukaani.org> 7154Date: 2024-05-12 22:16:05 +0300 7155 7156 xz: Edit comments 7157 7158 Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a 7159 7160 src/xz/coder.c | 8 ++------ 7161 1 file changed, 2 insertions(+), 6 deletions(-) 7162 7163commit b90339f4daa510d2b1b8c550f855a99667f1d004 7164Author: Lasse Collin <lasse.collin@tukaani.org> 7165Date: 2024-05-12 21:57:49 +0300 7166 7167 xz: Fix grammar in a comment 7168 7169 Fixes: cb3111e3ed84152912b5138d690c8d9f00c6ef02 7170 7171 src/xz/coder.c | 2 +- 7172 1 file changed, 1 insertion(+), 1 deletion(-) 7173 7174commit 4c0bdaf13d651b22ba13bd93f8379724d6ccdc13 7175Author: Lasse Collin <lasse.collin@tukaani.org> 7176Date: 2024-05-12 21:46:56 +0300 7177 7178 xz: Rename filter_memusages to encoder_memusages 7179 7180 src/xz/coder.c | 12 ++++++------ 7181 1 file changed, 6 insertions(+), 6 deletions(-) 7182 7183commit b54aa023e0ec291b06e976e5f094ab0549e7b09b 7184Author: Lasse Collin <lasse.collin@tukaani.org> 7185Date: 2024-05-12 21:42:05 +0300 7186 7187 xz: Edit coding style 7188 7189 src/xz/coder.c | 8 ++++---- 7190 1 file changed, 4 insertions(+), 4 deletions(-) 7191 7192commit 49f67d3d3f42b640a7dfc4ca04c8934f658e10ce 7193Author: Lasse Collin <lasse.collin@tukaani.org> 7194Date: 2024-05-12 21:31:02 +0300 7195 7196 xz: Rename filters_index to chain_num 7197 7198 The reason is the same as in bd0782c1f13e52cd0fd8415208e30e47004a4c68. 7199 7200 src/xz/args.c | 8 ++++---- 7201 src/xz/coder.c | 8 ++++---- 7202 src/xz/coder.h | 2 +- 7203 3 files changed, 9 insertions(+), 9 deletions(-) 7204 7205commit ff9e8b3d069ecfa52ec43dcdb198542d1692a492 7206Author: Lasse Collin <lasse.collin@tukaani.org> 7207Date: 2024-05-12 21:22:43 +0300 7208 7209 xz: Replace a few uint32_t with "unsigned" to reduce the number of casts 7210 7211 These hold only tiny values. 7212 7213 src/xz/args.c | 2 +- 7214 src/xz/coder.c | 17 ++++++++--------- 7215 src/xz/coder.h | 2 +- 7216 3 files changed, 10 insertions(+), 11 deletions(-) 7217 7218commit b5e6c1113b1ba02c282bd9163eccdb521c937a78 7219Author: Lasse Collin <lasse.collin@tukaani.org> 7220Date: 2024-05-12 21:10:45 +0300 7221 7222 xz: Rename filters_used_mask to chains_used_mask 7223 7224 The reason is the same as in bd0782c1f13e52cd0fd8415208e30e47004a4c68. 7225 7226 src/xz/coder.c | 30 +++++++++++++++--------------- 7227 1 file changed, 15 insertions(+), 15 deletions(-) 7228 7229commit 32500dfaadae2ea36fda2e17b49ae7d9ac1acf52 7230Author: Lasse Collin <lasse.collin@tukaani.org> 7231Date: 2024-05-12 17:14:43 +0300 7232 7233 xz: Move the setting of "check" in coder_set_compression_settings() 7234 7235 It's more logical to do it in the beginning instead of in the middle 7236 of the filter chain handling. 7237 7238 Fixes: d6af7f347077b22403133239592e478931307759 7239 7240 src/xz/coder.c | 18 +++++++++--------- 7241 1 file changed, 9 insertions(+), 9 deletions(-) 7242 7243commit ad146b1f42bbb678175a503a45ce525e779f9b8b 7244Author: Lasse Collin <lasse.collin@tukaani.org> 7245Date: 2024-05-12 17:09:17 +0300 7246 7247 xz: Rename "filters" to "chains" 7248 7249 The convention is that 7250 7251 lzma_filter filters[LZMA_FILTERS_MAX + 1]; 7252 7253 contains the filters of a single filter chain. 7254 It was so here as well before the commit 7255 d6af7f347077b22403133239592e478931307759. 7256 It changes "filters" to a ten-element array of filter chains. 7257 It's clearer to call this array-of-arrays "chains". 7258 7259 This also renames "filter_idx" to "chain_idx" which is used 7260 as an index as in chains[chain_idx]. 7261 7262 src/xz/coder.c | 68 +++++++++++++++++++++++++++++----------------------------- 7263 1 file changed, 34 insertions(+), 34 deletions(-) 7264 7265commit 5a4ae4e4d0105404184e9a82ee08f94e1b7783e0 7266Author: Lasse Collin <lasse.collin@tukaani.org> 7267Date: 2024-05-12 16:56:15 +0300 7268 7269 xz: Clean up a comment 7270 7271 src/xz/coder.c | 9 +++------ 7272 1 file changed, 3 insertions(+), 6 deletions(-) 7273 7274commit 2de80494ed9a4dc7db395a32a5efb770ce769804 7275Author: Lasse Collin <lasse.collin@tukaani.org> 7276Date: 2024-05-12 16:52:09 +0300 7277 7278 xz: Add clarifying assertions 7279 7280 src/xz/coder.c | 4 ++++ 7281 1 file changed, 4 insertions(+) 7282 7283commit 1eaad004bf7748976324672db028e34f42802e61 7284Author: Lasse Collin <lasse.collin@tukaani.org> 7285Date: 2024-05-10 20:23:33 +0300 7286 7287 xz: Add a clarifying assertion 7288 7289 Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a 7290 7291 src/xz/coder.c | 1 + 7292 1 file changed, 1 insertion(+) 7293 7294commit 605094329b986244833c967c04963cacc41a868d 7295Author: Lasse Collin <lasse.collin@tukaani.org> 7296Date: 2024-05-12 16:47:17 +0300 7297 7298 xz: Clarify a comment 7299 7300 src/xz/coder.c | 4 +++- 7301 1 file changed, 3 insertions(+), 1 deletion(-) 7302 7303commit 8fac2577f2dbb9491afd8500f60d004c9071df3b 7304Author: Lasse Collin <lasse.collin@tukaani.org> 7305Date: 2024-05-12 16:28:25 +0300 7306 7307 xz: Use the info collected in parse_block_list() 7308 7309 This is slightly simpler and it avoids looping through 7310 the opt_block_list array. 7311 7312 src/xz/coder.c | 95 ++++++++++++++++++++++++---------------------------------- 7313 1 file changed, 39 insertions(+), 56 deletions(-) 7314 7315commit 81d350dab864b985b740742772f3b132d4c52914 7316Author: Lasse Collin <lasse.collin@tukaani.org> 7317Date: 2024-05-12 15:48:45 +0300 7318 7319 xz: Remember the filter chains and the largest Block in parse_block_list() 7320 7321 src/xz/args.c | 18 ++++++++++++++++++ 7322 src/xz/coder.c | 2 ++ 7323 src/xz/coder.h | 13 +++++++++++++ 7324 3 files changed, 33 insertions(+) 7325 7326commit 46ab56968f7dfdac187710a1223659d832fa1565 7327Author: Lasse Collin <lasse.collin@tukaani.org> 7328Date: 2024-05-12 15:38:48 +0300 7329 7330 xz: Update a comment and initialization of filters_used_mask 7331 7332 src/xz/coder.c | 16 ++++++++-------- 7333 1 file changed, 8 insertions(+), 8 deletions(-) 7334 7335commit e89293a0baeb8663707c6b4a74fbb310ec698a8f 7336Author: Lasse Collin <lasse.collin@tukaani.org> 7337Date: 2024-05-12 15:08:10 +0300 7338 7339 xz: parse_block_list: Edit integer type casting 7340 7341 src/xz/args.c | 5 ++--- 7342 1 file changed, 2 insertions(+), 3 deletions(-) 7343 7344commit 87011e40c168255cd2edea129ee68c901770603b 7345Author: Lasse Collin <lasse.collin@tukaani.org> 7346Date: 2024-05-12 14:51:37 +0300 7347 7348 xz: Make filter_memusages a local variable 7349 7350 src/xz/coder.c | 35 +++++++++++++++++++++-------------- 7351 1 file changed, 21 insertions(+), 14 deletions(-) 7352 7353commit 347b412a9374e0456bef9da0d7d79174c0b6f1a5 7354Author: Lasse Collin <lasse.collin@tukaani.org> 7355Date: 2024-05-10 20:33:08 +0300 7356 7357 xz: Remove unused code and simplify 7358 7359 opt_mode == MODE_COMPRESS isn't possible when HAVE_ENCODERS isn't 7360 defined. Thus, when *encoding*, the message about *decoder* memory 7361 usage is possible to show only when both encoder and decoder have 7362 been built. 7363 7364 Since the message is shown only at V_DEBUG, skip the memusage 7365 calculation if verbosity level isn't high enough. 7366 7367 Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a 7368 7369 src/xz/coder.c | 16 ++++------------ 7370 1 file changed, 4 insertions(+), 12 deletions(-) 7371 7372commit 31358c057c9de9d6aba96bae112b2d17942de7cb 7373Author: Lasse Collin <lasse.collin@tukaani.org> 7374Date: 2024-05-10 20:22:58 +0300 7375 7376 xz: Fix integer type from uint64_t to uint32_t 7377 7378 lzma_options_lzma.dict_size is uint32_t so use it here too. 7379 7380 Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a 7381 7382 src/xz/coder.c | 2 +- 7383 1 file changed, 1 insertion(+), 1 deletion(-) 7384 7385commit 3f71e0f3a118e1012526f94fd640a626d30cb599 7386Author: Lasse Collin <lasse.collin@tukaani.org> 7387Date: 2024-05-08 21:40:07 +0300 7388 7389 debug/translation.bash: Remove an outdated test command 7390 7391 Since 5.3.5beta, "xz --lzma2=mf=bt4,nice=2" works even though bt4 needs 7392 at least nice=4. It is rounded up internally by liblzma when needed. 7393 7394 Fixes: 5cd9f0df78cc4f8a7807bf6104adea13034fbb45 7395 7396 debug/translation.bash | 1 - 7397 1 file changed, 1 deletion(-) 7398 7399commit b05a516830095a0e1937aeb31c937fb0400408b6 7400Author: Lasse Collin <lasse.collin@tukaani.org> 7401Date: 2024-05-07 20:41:28 +0300 7402 7403 Fix the date of NEWS for 5.4.5 7404 7405 NEWS | 2 +- 7406 1 file changed, 1 insertion(+), 1 deletion(-) 7407 7408commit 6d336aeb97b69c496ddc626af403f6f21c753658 7409Author: Lasse Collin <lasse.collin@tukaani.org> 7410Date: 2024-05-07 16:21:15 +0300 7411 7412 Build: Update visibility.m4 from Gnulib 7413 7414 This fixes the syntax of the "serial" line and renames 7415 a temporary variable. 7416 7417 m4/visibility.m4 | 13 +++++++------ 7418 1 file changed, 7 insertions(+), 6 deletions(-) 7419 7420commit ab51e8ee610e2a893906859848f93d5cb0d5ba83 7421Author: Lasse Collin <lasse.collin@tukaani.org> 7422Date: 2024-05-07 15:05:21 +0300 7423 7424 po4a/update-po: Delete the *.po.authors files 7425 7426 These are temporary files that are needed only when running po4a. 7427 The top-level Makefile.am puts the whole po4a directory into 7428 distribution tarball (it's simpler) so deleting these temporary 7429 files is needed to prevent them from getting into tarballs. 7430 7431 po4a/update-po | 4 ++++ 7432 1 file changed, 4 insertions(+) 7433 7434commit e4780244a17420cc95d5498cd6e02ad10eac6e5f 7435Author: Lasse Collin <lasse.collin@tukaani.org> 7436Date: 2024-05-07 13:12:17 +0300 7437 7438 xz: Edit comments and coding style 7439 7440 src/xz/coder.c | 25 ++++++++++++------------- 7441 1 file changed, 12 insertions(+), 13 deletions(-) 7442 7443commit fe4d8b0c80eaeca3381be302eeb89aba871a7e7c 7444Author: Lasse Collin <lasse.collin@tukaani.org> 7445Date: 2024-05-06 23:08:22 +0300 7446 7447 xz: Omit an incorrect comment 7448 7449 It likely was a leftover from a development version of the code. 7450 7451 Fixes: 183819bfd9efac8c184d9bf123325719b7eee30f 7452 7453 src/xz/coder.c | 6 +----- 7454 1 file changed, 1 insertion(+), 5 deletions(-) 7455 7456commit 9bef5b8d17dd5e009d6a6b2becc2dc535da53937 7457Author: Lasse Collin <lasse.collin@tukaani.org> 7458Date: 2024-05-06 23:04:31 +0300 7459 7460 xz: Add braces to a for-statement and to an if-statement 7461 7462 No functional changes. 7463 7464 Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a 7465 Fixes: 479fd58d60622331fcbe48fddf756927b9f80d9a 7466 7467 src/xz/coder.c | 6 ++++-- 7468 1 file changed, 4 insertions(+), 2 deletions(-) 7469 7470commit de06b9f0c0a3f72569829ecadbc9c0a3ef099f57 7471Author: Lasse Collin <lasse.collin@tukaani.org> 7472Date: 2024-05-06 23:00:09 +0300 7473 7474 liblzma: Omit an unneeded array from the x86 filter 7475 7476 Fixes: 6aa2a6deeba04808a0fe4461396e7fb70277f3d4 7477 7478 src/liblzma/simple/x86.c | 5 +---- 7479 1 file changed, 1 insertion(+), 4 deletions(-) 7480 7481commit 7da488cb933fdf51cfc14cb5810beb0766224380 7482Author: Lasse Collin <lasse.collin@tukaani.org> 7483Date: 2024-05-06 22:56:31 +0300 7484 7485 CMake: Add test_suffix.sh to the tests 7486 7487 tests/tests.cmake | 13 +++++++++++++ 7488 1 file changed, 13 insertions(+) 7489 7490commit a805594ed0b4cbf7b81aa28ff46a8ab3c83c6876 7491Author: Lasse Collin <lasse.collin@tukaani.org> 7492Date: 2024-05-06 22:55:54 +0300 7493 7494 Test: Add CMake support to test_suffix.sh 7495 7496 It needs to find the xz executable from a different directory 7497 and work without config.h. 7498 7499 tests/test_suffix.sh | 12 +++++++----- 7500 1 file changed, 7 insertions(+), 5 deletions(-) 7501 7502commit 50e19489387774bab3c4a988397d0d9c7a142a46 7503Author: Lasse Collin <lasse.collin@tukaani.org> 7504Date: 2024-05-06 20:45:34 +0300 7505 7506 Update INSTALL about MINIX 3 7507 7508 The latest stable is 3.3.0 and it's from 2014. 7509 Don't mention the older versions in INSTALL. 7510 3.3.0 ships with Clang already. 7511 7512 Testing with 3.4.0beta6 shows that tuklib_physmem 7513 works too so omit comments about that from INSTALL. 7514 Visibility warnigns weren't a problem either. 7515 7516 Thus it's enough to mention the need for --disable-threads 7517 as configure doesn't autodetect the lack of pthreads. 7518 7519 INSTALL | 20 +++++++------------- 7520 1 file changed, 7 insertions(+), 13 deletions(-) 7521 7522commit 68d18aea1422a2b86b98b71d0b019233d84e01b0 7523Author: Lasse Collin <lasse.collin@tukaani.org> 7524Date: 2024-05-02 23:00:16 +0300 7525 7526 Windows: Remove the "doc/api" line from README-Windows.txt 7527 7528 Fixes: 252aa1d67bc015eeba462803ab72edeb7744d864 7529 7530 windows/README-Windows.txt | 2 -- 7531 1 file changed, 2 deletions(-) 7532 7533commit 8ede961374613aa302a13571d662cfaea1cf91f7 7534Author: Lasse Collin <lasse.collin@tukaani.org> 7535Date: 2024-05-02 22:59:04 +0300 7536 7537 Build: Don't copy doc/api from source tree to distribution tarball 7538 7539 It was copied if it existed. This was intentional when autogen.sh 7540 still built liblzma API docs with Doxygen. 7541 7542 Fixes: d3a77ebc04bf1db8d52de2d9b0f07877bc4fd139 7543 7544 Makefile.am | 5 ----- 7545 1 file changed, 5 deletions(-) 7546 7547commit 9a6761aa35ed84d30bd2fda2333a4fdf3f46ecdc 7548Author: Sam James <sam@gentoo.org> 7549Date: 2024-05-02 13:26:40 +0100 7550 7551 ci: add SPDX headers 7552 7553 I've checked over each of these and they're straightforward applications 7554 of the relevant Github Actions. 7555 7556 .github/workflows/freebsd.yml | 2 ++ 7557 .github/workflows/netbsd.yml | 2 ++ 7558 .github/workflows/openbsd.yml | 2 ++ 7559 3 files changed, 6 insertions(+) 7560 7561commit 81efe6119f86e3274e512c9eca5ec22b2196c2b3 7562Author: Yaroslav Halchenko <debian@onerussian.com> 7563Date: 2024-03-29 14:37:24 -0400 7564 7565 codespell: Ignore the THANKS file and debbugs.gnu.org URL 7566 7567 This way "codespell -i 0" is silent. 7568 7569 This is the first commit from 7570 https://github.com/tukaani-project/xz/pull/93 7571 with trivial edits by Lasse Collin. 7572 7573 .codespellrc | 6 +++++- 7574 1 file changed, 5 insertions(+), 1 deletion(-) 7575 7576commit 905bfc74fe2670fd9c39014803017ab53d325401 7577Author: Lasse Collin <lasse.collin@tukaani.org> 7578Date: 2024-04-30 14:37:11 +0300 7579 7580 Add .gitattributes to clean up git-archive output 7581 7582 .gitattributes | 7 +++++++ 7583 1 file changed, 7 insertions(+) 7584 7585commit 3334c71d3d4294a4f6569df3ba9bcf2443dfa501 7586Author: Lasse Collin <lasse.collin@tukaani.org> 7587Date: 2024-04-19 12:11:09 +0300 7588 7589 xzdec: Support Landlock ABI version 4 7590 7591 This was added to xz in 02e3505991233901575b7eabc06b2c6c62a96899 7592 but I forgot to do the same in xzdec. 7593 7594 The Landlock sandbox in xzdec could be stricter as now it's 7595 active only for the last file being decompressed. In xz, 7596 read-only sandbox is used for multi-file case. On the other hand, 7597 xz doesn't go to the strictest mode when processing the last file 7598 when more than one file was specified; xzdec does. 7599 7600 src/xzdec/xzdec.c | 18 ++++++++++++++---- 7601 1 file changed, 14 insertions(+), 4 deletions(-) 7602 7603commit 278563ef8f2b8d98d7f2c85e1a64ec1bc21d26d8 7604Author: Lasse Collin <lasse.collin@tukaani.org> 7605Date: 2024-04-30 22:22:45 +0300 7606 7607 liblzma: Fix incorrect function type error from sanitizer 7608 7609 Clang 17 with -fsanitize=address,undefined: 7610 7611 src/liblzma/common/filter_common.c:366:8: runtime error: 7612 call to function encoder_find through pointer to incorrect 7613 function type 'const lzma_filter_coder *(*)(unsigned long)' 7614 src/liblzma/common/filter_encoder.c:187: note: 7615 encoder_find defined here 7616 7617 Use a wrapper function to get the correct type neatly. 7618 This reduces the number of casts needed too. 7619 7620 This issue could be a problem with control flow integrity (CFI) 7621 methods that check the function type on indirect function calls. 7622 7623 Fixes: 3b34851de1eaf358cf9268922fa0eeed8278d680 7624 7625 src/liblzma/common/filter_decoder.c | 15 ++++++++++++--- 7626 src/liblzma/common/filter_encoder.c | 17 +++++++++++++---- 7627 2 files changed, 25 insertions(+), 7 deletions(-) 7628 7629commit 77c8f60547decefca8f2d0c905d9c708c38ee8ff 7630Author: Lasse Collin <lasse.collin@tukaani.org> 7631Date: 2024-04-30 21:41:11 +0300 7632 7633 xz: Avoid arithmetic on a null pointer 7634 7635 It's undefined behavior. The result wasn't ever used as it occurred 7636 in the last iteration of a loop. 7637 7638 Clang 17 with -fsanitize=address,undefined: 7639 7640 $ src/xz/xz --block-list=123 7641 src/xz/args.c:164:12: runtime error: applying non-zero offset 1 7642 to null pointer 7643 7644 Fixes: 88ccf47205d7f3aa314d358c72ef214f10f68b43 7645 Co-authored-by: Sam James <sam@gentoo.org> 7646 7647 src/xz/args.c | 8 +++++++- 7648 1 file changed, 7 insertions(+), 1 deletion(-) 7649 7650commit 64503cc2b76a388ced4ec5f68234a07f0dcddcd5 7651Author: Lasse Collin <lasse.collin@tukaani.org> 7652Date: 2024-04-27 20:42:00 +0300 7653 7654 CMake: Support building liblzma API docs using Doxygen 7655 7656 This is disabled by default to match the default in Autotools. 7657 Use -DUSE_DOXYGEN=ON to enable Doxygen usage. 7658 7659 This uses the update-doxygen script, thus this is under if(UNIX) 7660 although Doxygen itself can run on Windows too. 7661 7662 CMakeLists.txt | 40 +++++++++++++++++++++++++++++++--------- 7663 1 file changed, 31 insertions(+), 9 deletions(-) 7664 7665commit 0a7f5a80d8532a1d8cfa0a902c9d1ad7651eca37 7666Author: Lasse Collin <lasse.collin@tukaani.org> 7667Date: 2024-04-20 23:36:39 +0300 7668 7669 CMake: List API headers in LIBLZMA_API_HEADERS variable 7670 7671 This way the same list will be usable in more than one location. 7672 7673 CMakeLists.txt | 21 ++++++++++++--------- 7674 1 file changed, 12 insertions(+), 9 deletions(-) 7675 7676commit 541406bee3f09e9813103c6406b10fc6ab2e0d30 7677Author: Lasse Collin <lasse.collin@tukaani.org> 7678Date: 2024-04-19 15:16:42 +0300 7679 7680 PACKAGERS: Document the optional Doxygen usage 7681 7682 Also add a note that packagers should check the licensing 7683 of the Doxygen output. 7684 7685 PACKAGERS | 19 ++++++++++--------- 7686 1 file changed, 10 insertions(+), 9 deletions(-) 7687 7688commit e21efdf96f39378fe417479f89e97046680406f5 7689Author: Lasse Collin <lasse.collin@tukaani.org> 7690Date: 2024-04-27 17:47:09 +0300 7691 7692 Build: Add --enable-doxygen to generate and install API docs 7693 7694 It requires Doxygen. This option is disabled by default. 7695 7696 INSTALL | 6 ++++++ 7697 configure.ac | 10 +++++++++- 7698 src/liblzma/api/Makefile.am | 19 +++++++++++++++++++ 7699 3 files changed, 34 insertions(+), 1 deletion(-) 7700 7701commit 0ece09a575d7e542bda8825808ddd6cf7de8cc4b 7702Author: Lasse Collin <lasse.collin@tukaani.org> 7703Date: 2024-04-19 15:15:17 +0300 7704 7705 Doxygen: update-doxygen: Support out-of-tree builds 7706 7707 Also, now $0 is used to refer to the script itself. 7708 7709 doxygen/update-doxygen | 110 ++++++++++++++++++++++++++++++------------------- 7710 1 file changed, 68 insertions(+), 42 deletions(-) 7711 7712commit 2c519f641f266fd897edf680827d9c905f411440 7713Author: Lasse Collin <lasse.collin@tukaani.org> 7714Date: 2024-04-28 21:08:00 +0300 7715 7716 Doxygen: Simplify Doxyfile and add SPDX license identifier 7717 7718 This omits all comments and a few non-default options that weren't 7719 needed. Now it contains no copyrighted content from Doxygen itself. 7720 7721 doxygen/Doxyfile | 2698 +----------------------------------------------------- 7722 1 file changed, 25 insertions(+), 2673 deletions(-) 7723 7724commit bdba39a57530d11b88440df8024002be3d09e4a1 7725Author: Lasse Collin <lasse.collin@tukaani.org> 7726Date: 2024-04-19 15:14:02 +0300 7727 7728 Doxygen: Don't strip JavaScript anymore 7729 7730 The stripping method worked well with Doxygen 1.8 and 1.9 but 7731 it doesn't work with Doxygen 1.10 anymore. Since we won't ship 7732 pre-generated liblzma API docs anymore, the extra bloat and 7733 extra license info of the JavaScript files won't affect the 7734 upstream source package anymore. 7735 7736 doxygen/update-doxygen | 21 --------------------- 7737 1 file changed, 21 deletions(-) 7738 7739commit d3a77ebc04bf1db8d52de2d9b0f07877bc4fd139 7740Author: Lasse Collin <lasse.collin@tukaani.org> 7741Date: 2024-04-19 17:26:41 +0300 7742 7743 Build: Remove old Doxygen rules from top-level Makefile.am 7744 7745 Makefile.am | 12 ------------ 7746 1 file changed, 12 deletions(-) 7747 7748commit fd7faa4c338a42a6a40e854b837d285ae2e8c609 7749Author: Lasse Collin <lasse.collin@tukaani.org> 7750Date: 2024-04-19 15:10:06 +0300 7751 7752 Update COPYING to match the autogen.sh and mydist changes 7753 7754 COPYING | 11 ----------- 7755 1 file changed, 11 deletions(-) 7756 7757commit b2bc55d8a0a9f2f59bfd4302067300e650f6baa3 7758Author: Lasse Collin <lasse.collin@tukaani.org> 7759Date: 2024-04-19 17:23:43 +0300 7760 7761 Build: Don't run update-doxygen as part of "make mydist" 7762 7763 Makefile.am | 1 - 7764 1 file changed, 1 deletion(-) 7765 7766commit e9be74f5b129fe8a5388d588e68b1b7f5168a310 7767Author: Lasse Collin <lasse.collin@tukaani.org> 7768Date: 2024-04-19 15:09:48 +0300 7769 7770 autogen.sh: Don't generated Doxygen docs anymore 7771 7772 autogen.sh | 18 +++--------------- 7773 1 file changed, 3 insertions(+), 15 deletions(-) 7774 7775commit 252aa1d67bc015eeba462803ab72edeb7744d864 7776Author: Lasse Collin <lasse.collin@tukaani.org> 7777Date: 2024-04-19 17:41:36 +0300 7778 7779 windows/build.bash: Omit Doxygen docs from the package 7780 7781 They will be omitted from the source tarball and I don't want 7782 to make Doxygen a dependency of build.bash. 7783 7784 windows/build.bash | 4 ++-- 7785 1 file changed, 2 insertions(+), 2 deletions(-) 7786 7787commit 634095364d87444d62d8ec54c134c0cd4705f5d7 7788Author: Lasse Collin <lasse.collin@tukaani.org> 7789Date: 2024-04-19 14:14:47 +0300 7790 7791 README: Don't mention PDF man pages anymore 7792 7793 README | 6 +++--- 7794 1 file changed, 3 insertions(+), 3 deletions(-) 7795 7796commit dc684bf76ea23574ee9d88382057381e04e6089a 7797Author: Lasse Collin <lasse.collin@tukaani.org> 7798Date: 2024-04-19 14:10:39 +0300 7799 7800 Build: Omit PDF man pages from the package 7801 7802 pdf-local rule was added to create the PDFs still with "make pdf". 7803 The install rules are missing but that likely doesn't matter at all. 7804 7805 Makefile.am | 29 +++++++++++++++++++---------- 7806 1 file changed, 19 insertions(+), 10 deletions(-) 7807 7808commit e3531ab4125cbd5c01ebd3200791350960547189 7809Author: Lasse Collin <lasse.collin@tukaani.org> 7810Date: 2024-04-19 13:54:39 +0300 7811 7812 windows/build.bash: Don't copy PDF man pages to the package 7813 7814 windows/README-Windows.txt | 2 +- 7815 windows/build.bash | 2 +- 7816 2 files changed, 2 insertions(+), 2 deletions(-) 7817 7818commit 710a4573ef2cbd19c66318c3b2d1388e418e26c7 7819Author: Lasse Collin <lasse.collin@tukaani.org> 7820Date: 2024-04-28 01:34:50 +0300 7821 7822 Tests: test_index: Fix failures when features are disabled 7823 7824 Fixes: cd88423e76d54eb72aea037364f3ebb21f122503 7825 7826 tests/test_index.c | 13 ++++++++----- 7827 1 file changed, 8 insertions(+), 5 deletions(-) 7828 7829commit aaff75c3486c4489ce88b0efb36b41cf138af7c3 7830Author: Lasse Collin <lasse.collin@tukaani.org> 7831Date: 2024-04-20 17:09:11 +0300 7832 7833 CMake: Keep the build working if the "tests" directory is missing 7834 7835 This moves the tests section as is from CMakeLists.txt into 7836 tests/tests.cmake. CMakeLists.txt now includes tests/tests.cmake 7837 if the latter file exists. 7838 7839 Now it's possible to delete the whole "tests" directory and 7840 building with CMake will still work normally, just without 7841 the tests. This way the tests are readily available for those 7842 who want them, and those who won't run the tests anyway have 7843 a straightforward way to ensure that nothing from the "tests" 7844 directory can affect the build process. 7845 7846 CMakeLists.txt | 76 ++--------------------------------------------- 7847 tests/Makefile.am | 1 + 7848 tests/tests.cmake | 88 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 7849 3 files changed, 92 insertions(+), 73 deletions(-) 7850 7851commit a5f2aa5618fe9183706c9c514c3067985f6c338b 7852Author: Lasse Collin <lasse.collin@tukaani.org> 7853Date: 2024-04-20 13:12:50 +0300 7854 7855 Tests: Remove x86 and SPARC BCJ tests 7856 7857 These are very old but the exact test file isn't easy to reproduce 7858 as it was compiled from a short C program (bcj_test.c) long ago. 7859 These tests weren't very good anyway, just a little better than nothing. 7860 7861 tests/Makefile.am | 7 ---- 7862 tests/bcj_test.c | 64 --------------------------------- 7863 tests/compress_prepared_bcj_sparc | Bin 1240 -> 0 bytes 7864 tests/compress_prepared_bcj_x86 | Bin 1388 -> 0 bytes 7865 tests/files/README | 8 ----- 7866 tests/files/good-1-sparc-lzma2.xz | Bin 612 -> 0 bytes 7867 tests/files/good-1-x86-lzma2.xz | Bin 716 -> 0 bytes 7868 tests/test_compress_prepared_bcj_sparc | 4 --- 7869 tests/test_compress_prepared_bcj_x86 | 4 --- 7870 9 files changed, 87 deletions(-) 7871 7872commit d879686469c9c4bf2a7c0bb6420ebe4530fc8f07 7873Author: Lasse Collin <lasse.collin@tukaani.org> 7874Date: 2024-04-27 18:30:40 +0300 7875 7876 Tests: test_index: Edit a misleading test 7877 7878 tests/test_index.c | 7 +++++-- 7879 1 file changed, 5 insertions(+), 2 deletions(-) 7880 7881commit 612005bbdb0dea9dc09e9e2e9cc16a15c1480acd 7882Author: Lasse Collin <lasse.collin@tukaani.org> 7883Date: 2024-04-27 16:46:01 +0300 7884 7885 Tests: test_index: Use minimal values to test integer overflow 7886 7887 tests/test_index.c | 4 ++-- 7888 1 file changed, 2 insertions(+), 2 deletions(-) 7889 7890commit 4ad88b2544c2aaf8de8f38af54587098cbe66c1d 7891Author: Lasse Collin <lasse.collin@tukaani.org> 7892Date: 2024-04-27 15:13:39 +0300 7893 7894 Tests: test_index: Test lzma_index_buffer_decode() more 7895 7896 tests/test_index.c | 29 ++++++++++++++++++++++++++--- 7897 1 file changed, 26 insertions(+), 3 deletions(-) 7898 7899commit 575b11b0d291e66c5fce31ce7a72f11436d57c83 7900Author: Lasse Collin <lasse.collin@tukaani.org> 7901Date: 2024-04-27 15:08:29 +0300 7902 7903 Tests: test_index: Test that *i = NULL is done on LZMA_PROG_ERROR 7904 7905 On LZMA_DATA_ERROR from lzma_index_buffer_decode(), *i = NULL was 7906 already done but this adds a test for that case too. 7907 7908 tests/test_index.c | 31 +++++++++++++++++++++++++++---- 7909 1 file changed, 27 insertions(+), 4 deletions(-) 7910 7911commit 2c970debdb285823f01f75e875561d893345ac2b 7912Author: Lasse Collin <lasse.collin@tukaani.org> 7913Date: 2024-04-27 15:01:25 +0300 7914 7915 Tests: test_index: Test lzma_index_buffer_encode() with empty output buf 7916 7917 tests/test_index.c | 3 +++ 7918 1 file changed, 3 insertions(+) 7919 7920commit cd88423e76d54eb72aea037364f3ebb21f122503 7921Author: Lasse Collin <lasse.collin@tukaani.org> 7922Date: 2024-04-27 14:59:55 +0300 7923 7924 Tests: test_index: Replace if-statements with tuktest assertions 7925 7926 tests/test_index.c | 22 +++++++++------------- 7927 1 file changed, 9 insertions(+), 13 deletions(-) 7928 7929commit 7f865577a6224fbbb5f5ca52574b62ea8ac9bf51 7930Author: Lasse Collin <lasse.collin@tukaani.org> 7931Date: 2024-04-27 14:56:16 +0300 7932 7933 Tests: test_index: Make it clear that my_alloc() has no integer overflows 7934 7935 liblzma guarantees that the product of the allocation size arguments 7936 will fit in size_t. 7937 7938 Putting the pre-increment in the if-statement was clearly wrong 7939 although in practice it didn't matter here as the function is 7940 called only a couple of times. 7941 7942 tests/test_index.c | 5 ++++- 7943 1 file changed, 4 insertions(+), 1 deletion(-) 7944 7945commit 12313a3b6596cdcf012e180597f84d231f8730d3 7946Author: Lasse Collin <lasse.collin@tukaani.org> 7947Date: 2024-04-27 14:51:52 +0300 7948 7949 Tests: test_index: Verify also iter.block.number_in_stream 7950 7951 tests/test_index.c | 2 ++ 7952 1 file changed, 2 insertions(+) 7953 7954commit ad2654010d9d641ce1601beeff00630027e6bcd4 7955Author: Lasse Collin <lasse.collin@tukaani.org> 7956Date: 2024-04-27 14:51:06 +0300 7957 7958 Tests: test_index: Check cases that aren't a multiple of 4 bytes 7959 7960 tests/test_index.c | 33 +++++++++++++++++++++++++-------- 7961 1 file changed, 25 insertions(+), 8 deletions(-) 7962 7963commit 2524fcf2b68b662035437cee8edbe80067c0c240 7964Author: Lasse Collin <lasse.collin@tukaani.org> 7965Date: 2024-04-27 14:40:25 +0300 7966 7967 Tests: test_index: Edit comments and white space 7968 7969 tests/test_index.c | 18 +++++++++++------- 7970 1 file changed, 11 insertions(+), 7 deletions(-) 7971 7972commit 71eed2520e2eecae89bade9dceea16e56cfa2ea0 7973Author: Lasse Collin <lasse.collin@tukaani.org> 7974Date: 2024-04-27 14:33:38 +0300 7975 7976 liblzma: index_decoder: Fix missing initializations on LZMA_PROG_ERROR 7977 7978 If the arguments to lzma_index_decoder() or lzma_index_buffer_decode() 7979 were such that LZMA_PROG_ERROR was returned, the lzma_index **i 7980 argument wasn't touched even though the API docs say that *i = NULL 7981 is done if an error occurs. This obviously won't be done even now 7982 if i == NULL but otherwise it is best to do it due to the wording 7983 in the API docs. 7984 7985 In practice this matters very little: The problem can occur only 7986 if the functions are called with invalid arguments, that is, 7987 the calling application must already have a bug. 7988 7989 src/liblzma/common/index_decoder.c | 11 +++++++++++ 7990 1 file changed, 11 insertions(+) 7991 7992commit 0478473953f50716a2bc37b619b1c7dc2682b1ad 7993Author: Lasse Collin <lasse.collin@tukaani.org> 7994Date: 2024-04-26 18:25:18 +0300 7995 7996 CMake: Bump maximum policy version to 3.29 7997 7998 CMakeLists.txt | 2 +- 7999 1 file changed, 1 insertion(+), 1 deletion(-) 8000 8001commit a607e2b40d23f7d998dbaba76692aa30b4c3d9d3 8002Author: Sam James <sam@gentoo.org> 8003Date: 2024-04-13 22:30:44 +0100 8004 8005 ci: add NetBSD 8006 8007 .github/workflows/netbsd.yml | 29 +++++++++++++++++++++++++++++ 8008 1 file changed, 29 insertions(+) 8009 8010commit 72c210336de26fb87a928160d025fa10a638d23b 8011Author: Sam James <sam@gentoo.org> 8012Date: 2024-04-13 23:49:26 +0100 8013 8014 ci: add FreeBSD 8015 8016 .github/workflows/freebsd.yml | 29 +++++++++++++++++++++++++++++ 8017 1 file changed, 29 insertions(+) 8018 8019commit b526ec2dbfb5889845ea60548c4f5b1f97d84ab2 8020Author: Sam James <sam@gentoo.org> 8021Date: 2024-04-13 23:16:08 +0100 8022 8023 ci: add OpenBSD 8024 8025 .github/workflows/openbsd.yml | 31 +++++++++++++++++++++++++++++++ 8026 1 file changed, 31 insertions(+) 8027 8028commit c7ef767c49351743d8d011574abb9e200bf6b24f 8029Author: Sam James <sam@gentoo.org> 8030Date: 2024-04-15 05:53:01 +0100 8031 8032 liblzma: outqueue: add header guard 8033 8034 Reported by github's codeql. 8035 8036 src/liblzma/common/outqueue.h | 5 +++++ 8037 1 file changed, 5 insertions(+) 8038 8039commit 55dcae3056d95cb2ddb8b560c12ba7596bc79f2c 8040Author: Sam James <sam@gentoo.org> 8041Date: 2024-04-15 05:53:56 +0100 8042 8043 liblzma: easy_preset: add header guard 8044 8045 Reported by github's codeql. 8046 8047 src/liblzma/common/easy_preset.h | 5 +++++ 8048 1 file changed, 5 insertions(+) 8049 8050commit 4ffc60f32397371769b7d6b5e3ed8626292d58df 8051Author: Lasse Collin <lasse.collin@tukaani.org> 8052Date: 2024-04-25 14:00:57 +0300 8053 8054 tuklib_integer: Rename bswapXX to byteswapXX 8055 8056 The __builtin_bswapXX from GCC and Clang are preferred when 8057 they are available. This can allow compilers to emit the x86 MOVBE 8058 instruction instead of doing a load + byteswap as two instructions 8059 (which would happen if the byteswapping is done in inline asm). 8060 8061 bswap16, bswap32, and bswap64 exist in system headers on *BSDs 8062 and Darwin. #defining bswap16 on NetBSD results in a warning about 8063 macro redefinition. It's safest to avoid this namespace conflict 8064 completely. 8065 8066 No OS supported by tuklib_integer.h uses byteswapXX names and 8067 a web search doesn't immediately find any obvious danger of 8068 namespace conflicts. So let's try these still-pretty-short names 8069 for the macros. 8070 8071 Thanks to Sam James for pointing out the compiler warning on 8072 NetBSD 10.0. 8073 8074 src/common/tuklib_integer.h | 47 ++++++++++++++++++++------------------ 8075 src/liblzma/check/crc32_fast.c | 4 ++-- 8076 src/liblzma/check/crc32_tablegen.c | 2 +- 8077 src/liblzma/check/crc64_fast.c | 4 ++-- 8078 src/liblzma/check/crc64_tablegen.c | 2 +- 8079 5 files changed, 31 insertions(+), 28 deletions(-) 8080 8081commit 08ab0966a75b501aa7c717622223f0c13a113c75 8082Author: Lasse Collin <lasse.collin@tukaani.org> 8083Date: 2024-04-24 01:20:26 +0300 8084 8085 liblzma: API doc cleanups 8086 8087 src/liblzma/api/lzma/container.h | 2 +- 8088 src/liblzma/api/lzma/index.h | 6 +++--- 8089 src/liblzma/api/lzma/vli.h | 5 ++--- 8090 3 files changed, 6 insertions(+), 7 deletions(-) 8091 8092commit 3ac8a9bb4cccbee88350696dc9c645c48d77c989 8093Author: Lasse Collin <lasse.collin@tukaani.org> 8094Date: 2024-04-23 16:35:33 +0300 8095 8096 Tests: test_filter_str: Add a few assertions 8097 8098 tests/test_filter_str.c | 4 ++++ 8099 1 file changed, 4 insertions(+) 8100 8101commit 26c69be80523b05c84dea86c47c4ddd9a10945d7 8102Author: Lasse Collin <lasse.collin@tukaani.org> 8103Date: 2024-04-23 16:35:08 +0300 8104 8105 Tests: test_filter_str: Move one assertion and add a comment 8106 8107 tests/test_filter_str.c | 6 ++++-- 8108 1 file changed, 4 insertions(+), 2 deletions(-) 8109 8110commit 4f6af853bc99904efb8b6c28a0af7b81a8476c1b 8111Author: Lasse Collin <lasse.collin@tukaani.org> 8112Date: 2024-04-23 16:26:06 +0300 8113 8114 Tests: test_filter_str: Tweak comments and white space 8115 8116 tests/test_filter_str.c | 3 +++ 8117 1 file changed, 3 insertions(+) 8118 8119commit c92663aa1bd576e0615498a4189acf0df12e84b9 8120Author: Lasse Collin <lasse.collin@tukaani.org> 8121Date: 2024-04-23 16:25:22 +0300 8122 8123 Tests: test_filter_str: Add missing RISC-V case 8124 8125 Fixes: 89ea1a22f4ed3685b053b7260bc5acf6c75d1664 8126 8127 tests/test_filter_str.c | 3 +++ 8128 1 file changed, 3 insertions(+) 8129 8130commit b0366df1d7ed26268101f9303a001c91c0806dfc 8131Author: Lasse Collin <lasse.collin@tukaani.org> 8132Date: 2024-04-22 22:23:32 +0300 8133 8134 Tests: test_filter_str: Test *error_pos more thoroughly 8135 8136 tests/test_filter_str.c | 77 ++++++++++++++++++++++++++++++++++++++++++++++++- 8137 1 file changed, 76 insertions(+), 1 deletion(-) 8138 8139commit 70d12dd069bb9bb0d6bb1c8fafc4e6f77780263d 8140Author: Lasse Collin <lasse.collin@tukaani.org> 8141Date: 2024-04-22 21:54:39 +0300 8142 8143 liblzma: lzma_str_to_filters: Set *error_pos on all errors 8144 8145 The API docs clearly say that if error_pos isn't NULL then *error 8146 is always set on any error. However, it wasn't touched if str == NULL 8147 or filters == NULL or unsupported flags were specified. 8148 8149 Fixes: cedeeca2ea6ada5b0411b2ae10d7a859e837f203 8150 8151 src/liblzma/common/string_conversion.c | 6 ++++++ 8152 1 file changed, 6 insertions(+) 8153 8154commit ed8e552395701fbf046027cebc8be4a6755b263f 8155Author: Lasse Collin <lasse.collin@tukaani.org> 8156Date: 2024-04-22 20:31:25 +0300 8157 8158 liblzma: Clean up white space 8159 8160 src/liblzma/lz/lz_encoder.h | 2 +- 8161 1 file changed, 1 insertion(+), 1 deletion(-) 8162 8163commit 2f06920f20b1ad63b7953dc09569e1d424998849 8164Author: Lasse Collin <lasse.collin@tukaani.org> 8165Date: 2024-04-22 18:35:19 +0300 8166 8167 Tests: test_filter_flags: Edit comments and style 8168 8169 tests/test_filter_flags.c | 13 +++++++++---- 8170 1 file changed, 9 insertions(+), 4 deletions(-) 8171 8172commit b101e1d1dbc81577c0c9aa0cb89cf2e46a15eb82 8173Author: Lasse Collin <lasse.collin@tukaani.org> 8174Date: 2024-04-22 16:39:44 +0300 8175 8176 Tests: Fix C99/C11 compatibility when features are disabled 8177 8178 The array could become empty and then the initializer would be 8179 simply {} which is allowed only in GNU-C and C23. 8180 8181 tests/test_filter_flags.c | 18 ++++++++---------- 8182 1 file changed, 8 insertions(+), 10 deletions(-) 8183 8184commit f8f3a220ac8afcb8cb2812917d3b77e00c2eab0d 8185Author: Lasse Collin <lasse.collin@tukaani.org> 8186Date: 2024-04-21 20:32:16 +0300 8187 8188 DOS: Omit useless defines from config.h 8189 8190 dos/config.h | 12 ------------ 8191 1 file changed, 12 deletions(-) 8192 8193commit fc1921b04b8840caaa777c2bd5340d41b259da20 8194Author: Lasse Collin <lasse.collin@tukaani.org> 8195Date: 2024-04-21 20:27:50 +0300 8196 8197 Build: Omit useless checks for fcntl.h, limits.h, and sys/time.h 8198 8199 configure.ac | 6 ------ 8200 1 file changed, 6 deletions(-) 8201 8202commit 6aa2a6deeba04808a0fe4461396e7fb70277f3d4 8203Author: Lasse Collin <lasse.collin@tukaani.org> 8204Date: 2024-04-19 22:04:21 +0300 8205 8206 liblzma: Silence a warning from Coverity static analysis 8207 8208 It is logical why it cannot know for sure that the value has 8209 to be at most 4 if it is less than 16. 8210 8211 The x86 filter is based on a very old LZMA SDK version. Newer 8212 ones have quite a different implementation for the same filter. 8213 8214 Thanks to Sam James. 8215 8216 src/liblzma/simple/x86.c | 12 +++++------- 8217 1 file changed, 5 insertions(+), 7 deletions(-) 8218 8219commit e89d3e83b4496d0b5410870634970c0aa9721d59 8220Author: Lasse Collin <lasse.collin@tukaani.org> 8221Date: 2024-04-19 23:18:19 +0300 8222 8223 Update .gitignore 8224 8225 .gitignore | 21 ++++++++------------- 8226 1 file changed, 8 insertions(+), 13 deletions(-) 8227 8228commit 86fc4ee859709da0ff9617a1490f13ddac0a109b 8229Author: Lasse Collin <lasse.collin@tukaani.org> 8230Date: 2024-04-19 20:53:24 +0300 8231 8232 Tests: test_lzip_decoder: Tweak coding style and comments 8233 8234 tests/test_lzip_decoder.c | 58 +++++++++++++++++++++++------------------------ 8235 1 file changed, 28 insertions(+), 30 deletions(-) 8236 8237commit 38be573a279bd7b608ee7d8509ec10884e6fb0d5 8238Author: Lasse Collin <lasse.collin@tukaani.org> 8239Date: 2024-04-19 20:51:36 +0300 8240 8241 Tests: test_lzip_decoder: Remove redundant initializations 8242 8243 tests/test_lzip_decoder.c | 6 ++---- 8244 1 file changed, 2 insertions(+), 4 deletions(-) 8245 8246commit d7e4bc53eacfab9f3de95d8252bdfdc9419079c9 8247Author: Lasse Collin <lasse.collin@tukaani.org> 8248Date: 2024-04-19 20:47:24 +0300 8249 8250 Tests: test_lzip_decoder: Remove unneeded tuktest_malloc() calls 8251 8252 tests/test_lzip_decoder.c | 12 ++---------- 8253 1 file changed, 2 insertions(+), 10 deletions(-) 8254 8255commit eeca8f7c5baf1ad69606bb734d5001763466d58f 8256Author: Lasse Collin <lasse.collin@tukaani.org> 8257Date: 2024-04-15 20:35:07 +0300 8258 8259 xz: Fix white space error. 8260 8261 Thanks to xx on #tukaani. 8262 8263 src/xz/args.c | 2 +- 8264 1 file changed, 1 insertion(+), 1 deletion(-) 8265 8266commit 462ca9409940a19f743daee6b3bcc611277d0007 8267Author: Sam James <sam@gentoo.org> 8268Date: 2024-04-11 23:01:44 +0100 8269 8270 xz: add missing noreturn for message_filters_help 8271 8272 Fixes: a165d7df1964121eb9df715e6f836a31c865beef 8273 8274 src/xz/message.h | 1 + 8275 1 file changed, 1 insertion(+) 8276 8277commit 863f13d2828b99b0539ce73f9cf85bde32358034 8278Author: Sam James <sam@gentoo.org> 8279Date: 2024-04-11 19:34:04 +0100 8280 8281 xz: signals: suppress -Wsign-conversion on macOS 8282 8283 On macOS, we get: 8284 ``` 8285 signals.c: In function 'signals_init': 8286 signals.c:76:17: error: conversion to 'sigset_t' {aka 'unsigned int'} from 'int' may change the sign of the result [-Werror=sign-conversion] 8287 76 | sigaddset(&hooked_signals, sigs[i]); 8288 | ^~~~~~~~~ 8289 signals.c:81:17: error: conversion to 'sigset_t' {aka 'unsigned int'} from 'int' may change the sign of the result [-Werror=sign-conversion] 8290 81 | sigaddset(&hooked_signals, message_progress_sigs[i]); 8291 | ^~~~~~~~~ 8292 signals.c:86:9: error: conversion to 'sigset_t' {aka 'unsigned int'} from 'int' may change the sign of the result [-Werror=sign-conversion] 8293 86 | sigaddset(&hooked_signals, SIGTSTP); 8294 | ^~~~~~~~~ 8295 ``` 8296 8297 We use `int` for `hooked_signals` but we can't just cast to whatever 8298 `sigset_t` is because `sigset_t` is an opaque type. It's an unsigned int 8299 on macOS. On macOS, `sigaddset` is implemented as a macro. 8300 8301 Just suppress -Wsign-conversion for `signals_init` for macOS given 8302 there's no real nice way of fixing this. 8303 8304 src/xz/signals.c | 7 +++++++ 8305 1 file changed, 7 insertions(+) 8306 8307commit fcbd0d199933a69713cb293cbd7409a757d854cd 8308Author: Lasse Collin <lasse.collin@tukaani.org> 8309Date: 2024-04-13 22:19:40 +0300 8310 8311 Tests: test_microlzma: Add a "FIXME?" about LZMA_FINISH handling 8312 8313 tests/test_microlzma.c | 8 ++++++++ 8314 1 file changed, 8 insertions(+) 8315 8316commit 0fe2dfa68355d2b165544b2bc8babf77dcc2039e 8317Author: Lasse Collin <lasse.collin@tukaani.org> 8318Date: 2024-04-13 18:05:31 +0300 8319 8320 Tests: test_microlzma: Tweak comments, coding style, and minor details 8321 8322 A few lines were reordered, a few ARRAY_SIZE were changed to sizeof, 8323 and a few uint32_t were changed to size_t. No real functional changes 8324 were intended. 8325 8326 tests/test_microlzma.c | 149 +++++++++++++++++++++++++++---------------------- 8327 1 file changed, 83 insertions(+), 66 deletions(-) 8328 8329commit 97f0ee0f1f903f4e7c4ea23e9b89d687025d2992 8330Author: Ryan Carsten Schmidt <git@ryandesign.com> 8331Date: 2024-04-12 19:31:13 -0500 8332 8333 CI: Use only the active CPUs on macOS 8334 8335 hw.ncpu counts all CPUs including inactive ones. hw.activecpu counts 8336 only the active CPUs. 8337 8338 build-aux/ci_build.bash | 2 +- 8339 1 file changed, 1 insertion(+), 1 deletion(-) 8340 8341commit 73f629e321b74f68c9954728fa4f19261afccf46 8342Author: Sam James <sam@gentoo.org> 8343Date: 2024-04-10 18:33:55 +0100 8344 8345 ci: rename ci_build.sh -> ci_build.bash 8346 8347 We discussed the name and it's less cognitive load to just call it '.bash' 8348 so you don't have an immediate question about if bashisms are OK. 8349 8350 .github/workflows/ci.yml | 52 ++++++++++++++++---------------- 8351 .github/workflows/windows-ci.yml | 20 ++++++------ 8352 build-aux/{ci_build.sh => ci_build.bash} | 0 8353 3 files changed, 36 insertions(+), 36 deletions(-) 8354 8355commit 8709407a9ef8e7e8aec117879400e4dd3e227ada 8356Author: Sam James <sam@gentoo.org> 8357Date: 2024-04-10 17:42:23 +0100 8358 8359 ci: build in parallel by default 8360 8361 build-aux/ci_build.sh | 2 ++ 8362 1 file changed, 2 insertions(+) 8363 8364commit 65bf7e0a1ca6386f17608e8afb84ac470c18d23f 8365Author: Sam James <sam@gentoo.org> 8366Date: 2024-04-10 15:41:08 +0100 8367 8368 ci: default to -O2 8369 8370 We need this for when we're passing sanitizer flags or -gdwarf-4 for Clang 8371 with Valgrind. Just always start with -O2 if CFLAGS isn't set in the 8372 environment and append what was passed on the command line. 8373 8374 build-aux/ci_build.sh | 3 ++- 8375 1 file changed, 2 insertions(+), 1 deletion(-) 8376 8377commit bc899f9e0700ad153bd65f4804c4de7515c8a847 8378Author: Sam James <sam@gentoo.org> 8379Date: 2024-04-10 15:17:47 +0100 8380 8381 ci: make automake's test runner verbose on failures 8382 8383 This is a lot easier to work with than the save-logs thing the action 8384 tries to do... 8385 8386 build-aux/ci_build.sh | 2 +- 8387 1 file changed, 1 insertion(+), 1 deletion(-) 8388 8389commit b5e3470442531717b2457b40ab412740296af1bc 8390Author: Sam James <sam@gentoo.org> 8391Date: 2024-04-10 12:38:51 +0100 8392 8393 ci: make UBSAN abort on errors 8394 8395 Unfortunately, UBSAN doesn't do this by default. See also the change 8396 I made in Meson for this in October [0]. 8397 8398 [0] https://github.com/mesonbuild/meson/commit/7b7d2e060b447de9c2642848847370a58711ac1c 8399 8400 .github/workflows/ci.yml | 1 + 8401 1 file changed, 1 insertion(+) 8402 8403commit 6c095a98fbec70b790253a663173ecdb669108c4 8404Author: Sam James <sam@gentoo.org> 8405Date: 2024-04-10 11:43:10 +0100 8406 8407 ci: test Valgrind 8408 8409 Using `--trace-children=yes` has a trade-off here, as it makes 8410 `test_scripts.sh` pretty slow when calling various non-xz utilities. 8411 8412 But I also feel like it's not useless to have Valgrind used there and it's 8413 not easy to exclude Valgrind just for that one test... 8414 8415 I did consider using AX_VALGRIND_CHECK [0][1] but I couldn't get it working 8416 immediately with some conditionally-built tests and I wondered if it was 8417 worth spending time on at least while we're debating xz's future build 8418 system situation. 8419 8420 [0] https://www.gnu.org/software/autoconf-archive/ax_valgrind_check.html 8421 [1] https://tecnocode.co.uk/2014/12/23/automatically-valgrinding-code-with-ax_valgrind_check/ 8422 8423 .github/workflows/ci.yml | 11 ++++++++++- 8424 build-aux/ci_build.sh | 8 +++++--- 8425 2 files changed, 15 insertions(+), 4 deletions(-) 8426 8427commit 6286c1900c2d2ca33d9b1b397122c7bcdb9a4d59 8428Author: Lasse Collin <lasse.collin@tukaani.org> 8429Date: 2024-04-10 23:20:02 +0300 8430 8431 liblzma: CRC: Simplify table omission macros 8432 8433 A macro is useful to prevent a single #if directive from 8434 getting too ugly but only one macro is needed for all archs. 8435 8436 src/liblzma/check/crc32_table.c | 10 ++++------ 8437 src/liblzma/check/crc64_table.c | 4 ++-- 8438 src/liblzma/check/crc_common.h | 5 +++-- 8439 3 files changed, 9 insertions(+), 10 deletions(-) 8440 8441commit 45da936c879acf4f053a3055665bf1b10ded4462 8442Author: Lasse Collin <lasse.collin@tukaani.org> 8443Date: 2024-04-10 23:09:40 +0300 8444 8445 liblzma: ARM64 CRC: Fix omission of CRC32 table 8446 8447 The macro name had an odd typo so the table wasn't omitted 8448 when it should have. 8449 8450 Fixes: 1940f0ec28f08c0ac72c1413d9706fb82eabe6ad 8451 8452 src/liblzma/check/crc32_table.c | 2 +- 8453 1 file changed, 1 insertion(+), 1 deletion(-) 8454 8455commit 308a9af85400b0e2019f0f012c8354e831d06d65 8456Author: Lasse Collin <lasse.collin@tukaani.org> 8457Date: 2024-04-10 22:21:51 +0300 8458 8459 Build: If ARM64 feature detection func is found, stop looking for others 8460 8461 This can speed up configure a tiny bit. 8462 8463 Fixes: c5f6d79cc9515a7f22d7ea4860c6cc394b295732 8464 8465 configure.ac | 2 +- 8466 1 file changed, 1 insertion(+), 1 deletion(-) 8467 8468commit fc43cecd32bf9d5f8caa599206b15c9569af1eb6 8469Author: Lasse Collin <lasse.collin@tukaani.org> 8470Date: 2024-04-10 22:04:27 +0300 8471 8472 liblzma: ARM64 CRC32: Change style of the macOS code to match FreeBSD 8473 8474 I didn't test this but it shouldn't change any functionality. 8475 8476 Fixes: 761f5b69a4c778c8bcb09279b845b07c28790575 8477 8478 src/liblzma/check/crc32_arm64.h | 7 ++++--- 8479 1 file changed, 4 insertions(+), 3 deletions(-) 8480 8481commit 1024cd4cd966b998fedec51e385e9ee9a49b3c57 8482Author: Lasse Collin <lasse.collin@tukaani.org> 8483Date: 2024-04-10 21:59:27 +0300 8484 8485 liblzma: ARM64 CRC32: Add error checking to FreeBSD-specific code 8486 8487 Also add parenthesis to the return statement. 8488 8489 I didn't test this. 8490 8491 Fixes: 761f5b69a4c778c8bcb09279b845b07c28790575 8492 8493 src/liblzma/check/crc32_arm64.h | 6 ++++-- 8494 1 file changed, 4 insertions(+), 2 deletions(-) 8495 8496commit 2337f7021c860b026e3e849e60a9ae8d09ec0ea0 8497Author: Lasse Collin <lasse.collin@tukaani.org> 8498Date: 2024-04-10 21:56:33 +0300 8499 8500 liblzma: ARM64 CRC32: Use negation instead of subtracting from 8 8501 8502 Subtracting from 0 is negation, this just keeps warnings away. 8503 8504 Fixes: 761f5b69a4c778c8bcb09279b845b07c28790575 8505 8506 src/liblzma/check/crc32_arm64.h | 2 +- 8507 1 file changed, 1 insertion(+), 1 deletion(-) 8508 8509commit d8fffd01aa1a3c18e437a222abd34699e23ff5e7 8510Author: Lasse Collin <lasse.collin@tukaani.org> 8511Date: 2024-04-10 21:55:10 +0300 8512 8513 liblzma: ARM64 CRC32: Tweak coding style and comments 8514 8515 src/liblzma/check/crc32_arm64.h | 10 +++++----- 8516 1 file changed, 5 insertions(+), 5 deletions(-) 8517 8518commit 780d2c236de0e4749655696c2e0c26fb7565afd3 8519Author: Lasse Collin <lasse.collin@tukaani.org> 8520Date: 2024-04-09 21:55:01 +0300 8521 8522 Update SECURITY.md. 8523 8524 .github/SECURITY.md | 25 ++++++++----------------- 8525 1 file changed, 8 insertions(+), 17 deletions(-) 8526 8527commit 986865ea2f9d1f8dbef4a130926df106b0f6d41a 8528Author: Lasse Collin <lasse.collin@tukaani.org> 8529Date: 2024-04-09 17:47:01 +0300 8530 8531 CI: Remove ifunc support. 8532 8533 .github/workflows/ci.yml | 13 +++---------- 8534 build-aux/ci_build.sh | 5 +---- 8535 2 files changed, 4 insertions(+), 14 deletions(-) 8536 8537commit 689ae2427342a2ea1206eb5ca08301baf410e7e0 8538Author: Lasse Collin <lasse.collin@tukaani.org> 8539Date: 2024-04-09 17:43:16 +0300 8540 8541 liblzma: Remove ifunc support. 8542 8543 This is *NOT* done for security reasons even though the backdoor 8544 relied on the ifunc code. Instead, the reason is that in this 8545 project ifunc provides little benefits but it's quite a bit of 8546 extra code to support it. The only case where ifunc *might* matter 8547 for performance is if the CRC functions are used directly by an 8548 application. In normal compression use it's completely irrelevant. 8549 8550 CMakeLists.txt | 79 --------------------------------------- 8551 INSTALL | 8 ---- 8552 configure.ac | 79 --------------------------------------- 8553 src/liblzma/check/crc32_fast.c | 48 +++--------------------- 8554 src/liblzma/check/crc64_fast.c | 21 ----------- 8555 src/liblzma/check/crc_common.h | 9 +---- 8556 src/liblzma/check/crc_x86_clmul.h | 11 +----- 8557 7 files changed, 8 insertions(+), 247 deletions(-) 8558 8559commit 6b4c859059a7eb9b0547590c081668e14ecf8af6 8560Author: Lasse Collin <lasse.collin@tukaani.org> 8561Date: 2024-04-08 22:04:41 +0300 8562 8563 tests/files/README: Update the main heading. 8564 8565 tests/files/README | 4 ++-- 8566 1 file changed, 2 insertions(+), 2 deletions(-) 8567 8568commit 2a851e06b891ce894f918faff32a6cca6fdecee6 8569Author: Lasse Collin <lasse.collin@tukaani.org> 8570Date: 2024-04-08 22:02:45 +0300 8571 8572 tests/files/README: Explain how to recreate the ARM64 test files. 8573 8574 tests/files/README | 15 ++++++++++++++- 8575 1 file changed, 14 insertions(+), 1 deletion(-) 8576 8577commit 3d09b721b94e18fe1f853a04799697f5de10b291 8578Author: Lasse Collin <lasse.collin@tukaani.org> 8579Date: 2024-04-08 21:51:55 +0300 8580 8581 debug: Add generator for the ARM64 test file data. 8582 8583 debug/Makefile.am | 3 +- 8584 debug/testfilegen-arm64.c | 116 ++++++++++++++++++++++++++++++++++++++++++++++ 8585 2 files changed, 118 insertions(+), 1 deletion(-) 8586 8587commit 31ef676567c9d6fcc4ec9fc833c312f7a7c21c48 8588Author: Lasse Collin <lasse.collin@tukaani.org> 8589Date: 2024-04-08 21:19:38 +0300 8590 8591 xz man page: Use .ft CR instead of CW to silence warnings from groff. 8592 8593 src/xz/xz.1 | 32 ++++++++++++++++---------------- 8594 1 file changed, 16 insertions(+), 16 deletions(-) 8595 8596commit 780cbf29d5a88db2b546e9b7b019c4c33ca72685 8597Author: Lasse Collin <lasse.collin@tukaani.org> 8598Date: 2024-04-08 19:28:35 +0300 8599 8600 Fix NEWS for 5.6.0 and 5.6.1. 8601 8602 NEWS | 6 ++++++ 8603 1 file changed, 6 insertions(+) 8604 8605commit bfd0c7c478e93a1911b845459549ff94587b6ea2 8606Author: Lasse Collin <lasse.collin@tukaani.org> 8607Date: 2024-04-08 19:22:26 +0300 8608 8609 Remove the XZ logo. 8610 8611 COPYING | 5 - 8612 COPYING.CC-BY-SA-4.0 | 427 --------------------------------------------------- 8613 Makefile.am | 2 - 8614 README | 2 - 8615 doc/xz-logo.png | Bin 6771 -> 0 bytes 8616 doxygen/Doxyfile | 6 +- 8617 doxygen/footer.html | 13 -- 8618 7 files changed, 3 insertions(+), 452 deletions(-) 8619 8620commit 77a294d98a9d2d48f7e4ac273711518bf689f5c4 8621Author: Lasse Collin <lasse.collin@tukaani.org> 8622Date: 2024-04-08 18:27:39 +0300 8623 8624 Update maintainer and author info. 8625 8626 The other maintainer suddenly disappeared. 8627 8628 AUTHORS | 9 +++++++-- 8629 README | 10 +++------- 8630 THANKS | 1 - 8631 src/liblzma/api/lzma.h | 2 +- 8632 4 files changed, 11 insertions(+), 11 deletions(-) 8633 8634commit 8dd03d4484ccf80022722a16d0ed9b37f2b58072 8635Author: Lasse Collin <lasse.collin@tukaani.org> 8636Date: 2024-04-08 18:05:32 +0300 8637 8638 Docs: Update .xz file format specification to 1.2.1. 8639 8640 This only reverts the XZ URL changes. 8641 8642 doc/xz-file-format.txt | 12 ++++++++---- 8643 1 file changed, 8 insertions(+), 4 deletions(-) 8644 8645commit 17aa2e1a796d3f758802df29afc89dcf335db567 8646Author: Lasse Collin <lasse.collin@tukaani.org> 8647Date: 2024-04-08 17:33:56 +0300 8648 8649 Update website URLs back to tukaani.org. 8650 8651 The XZ projects were moved back to their original URLs. 8652 8653 .github/SECURITY.md | 2 +- 8654 CMakeLists.txt | 2 +- 8655 COPYING | 3 +-- 8656 README | 4 ++-- 8657 configure.ac | 2 +- 8658 doc/faq.txt | 2 +- 8659 doc/lzma-file-format.txt | 12 ++++++------ 8660 dos/config.h | 2 +- 8661 src/liblzma/api/lzma.h | 2 +- 8662 src/xz/xz.1 | 6 +++--- 8663 src/xzdec/xzdec.1 | 4 ++-- 8664 windows/README-Windows.txt | 2 +- 8665 12 files changed, 21 insertions(+), 22 deletions(-) 8666 8667commit 2739db981023373a2ddabc7b456c7e658bb4f582 8668Author: Lasse Collin <lasse.collin@tukaani.org> 8669Date: 2024-04-08 17:07:08 +0300 8670 8671 xzdec: Tweak coding style and comments. 8672 8673 src/xzdec/xzdec.c | 32 +++++++++++++++++++++----------- 8674 1 file changed, 21 insertions(+), 11 deletions(-) 8675 8676commit 408b6adb2a07d07c6535f859571cca38837caaf3 8677Author: Lasse Collin <lasse.collin@tukaani.org> 8678Date: 2024-04-08 15:53:46 +0300 8679 8680 tests/ossfuzz: Tiny fix to a comment. 8681 8682 tests/ossfuzz/fuzz_decode_stream.c | 2 +- 8683 1 file changed, 1 insertion(+), 1 deletion(-) 8684 8685commit db4dd74a344580e0b81436598d9741a3454245b0 8686Author: Lasse Collin <lasse.collin@tukaani.org> 8687Date: 2024-04-09 18:22:16 +0300 8688 8689 Update THANKS. 8690 8691 THANKS | 1 + 8692 1 file changed, 1 insertion(+) 8693 8694commit e93e13c8b3bec925c56e0c0b675d8000a0f7f754 8695Author: Lasse Collin <lasse.collin@tukaani.org> 8696Date: 2024-04-08 15:32:58 +0300 8697 8698 Remove the backdoor found in 5.6.0 and 5.6.1 (CVE-2024-3094). 8699 8700 While the backdoor was inactive (and thus harmless) without inserting 8701 a small trigger code into the build system when the source package was 8702 created, it's good to remove this anyway: 8703 8704 - The executable payloads were embedded as binary blobs in 8705 the test files. This was a blatant violation of the 8706 Debian Free Software Guidelines. 8707 8708 - On machines that see lots bots poking at the SSH port, the backdoor 8709 noticeably increased CPU load, resulting in degraded user experience 8710 and thus overwhelmingly negative user feedback. 8711 8712 - The maintainer who added the backdoor has disappeared. 8713 8714 - Backdoors are bad for security. 8715 8716 This reverts the following without making any other changes: 8717 8718 6e636819 Tests: Update two test files. 8719 a3a29bbd Tests: Test --single-stream can decompress bad-3-corrupt_lzma2.xz. 8720 0b4ccc91 Tests: Update RISC-V test files. 8721 8c9b8b20 liblzma: Fix typos in crc32_fast.c and crc64_fast.c. 8722 82ecc538 liblzma: Fix false Valgrind error report with GCC. 8723 cf44e4b7 Tests: Add a few test files. 8724 3060e107 Tests: Use smaller dictionary size in RISC-V test files. 8725 e2870db5 Tests: Add two RISC-V Filter test files. 8726 8727 The RISC-V test files also have real content that tests the filter 8728 but the real content would fit into much smaller files. A generator 8729 program would need to be available as well. 8730 8731 Thanks to Andres Freund for finding and reporting it and making 8732 it public quickly so others could act without a delay. 8733 See: https://www.openwall.com/lists/oss-security/2024/03/29/4 8734 8735 src/liblzma/check/crc32_fast.c | 7 +++++-- 8736 src/liblzma/check/crc64_fast.c | 4 +++- 8737 src/liblzma/check/crc_common.h | 25 ------------------------- 8738 tests/files/README | 27 --------------------------- 8739 tests/files/bad-3-corrupt_lzma2.xz | Bin 512 -> 0 bytes 8740 tests/files/bad-dict_size.lzma | Bin 41 -> 0 bytes 8741 tests/files/good-1-riscv-lzma2-1.xz | Bin 7424 -> 0 bytes 8742 tests/files/good-1-riscv-lzma2-2.xz | Bin 7432 -> 0 bytes 8743 tests/files/good-2cat.xz | Bin 136 -> 0 bytes 8744 tests/files/good-large_compressed.lzma | Bin 35421 -> 0 bytes 8745 tests/files/good-small_compressed.lzma | Bin 258 -> 0 bytes 8746 tests/test_files.sh | 11 ----------- 8747 12 files changed, 8 insertions(+), 66 deletions(-) 8748 8749commit f9cf4c05edd14dedfe63833f8ccbe41b55823b00 8750Author: Lasse Collin <lasse.collin@tukaani.org> 8751Date: 2024-03-30 14:36:28 +0200 8752 8753 CMake: Fix sabotaged Landlock sandbox check. 8754 8755 It never enabled it. 8756 8757 CMakeLists.txt | 2 +- 8758 1 file changed, 1 insertion(+), 1 deletion(-) 8759 8760commit af071ef7702debef4f1d324616a0137a5001c14c 8761Author: Jia Tan <jiat0218@gmail.com> 8762Date: 2024-03-26 01:50:02 +0800 8763 8764 Docs: Simplify SECURITY.md. 8765 8766 .github/SECURITY.md | 8 +------- 8767 1 file changed, 1 insertion(+), 7 deletions(-) 8768 8769commit 0b99783d63f27606936bb79a16c52d0d70c0b56f 8770Author: Lasse Collin <lasse.collin@tukaani.org> 8771Date: 2024-03-22 17:46:30 +0200 8772 8773 liblzma: memcmplen.h: Add a comment why subtraction is used. 8774 8775 src/liblzma/common/memcmplen.h | 13 +++++++++++++ 8776 1 file changed, 13 insertions(+) 8777 8778commit 8a25ba024d55610c448c6e4f1400a00bae51b493 8779Author: Lasse Collin <lasse.collin@tukaani.org> 8780Date: 2024-03-15 17:43:39 +0200 8781 8782 INSTALL: Document arguments of --enable-symbol-versions. 8783 8784 INSTALL | 43 +++++++++++++++++++++++++++++++++++++++---- 8785 1 file changed, 39 insertions(+), 4 deletions(-) 8786 8787commit 49324b711f9d42b3543bf2f3ae598eaa03360bd5 8788Author: Lasse Collin <lasse.collin@tukaani.org> 8789Date: 2024-03-15 17:15:50 +0200 8790 8791 Build: Use only the generic symbol versioning with NVIDIA HPC Compiler. 8792 8793 This does the previous commit with CMake. 8794 8795 AC_EGREP_CPP uses AC_REQUIRE so the outermost if-commands must 8796 be changed to AS_IF to ensure that things wont break some day. 8797 See 5a5bd7f871818029d5ccbe189f087f591258c294. 8798 8799 configure.ac | 18 +++++++++++++----- 8800 1 file changed, 13 insertions(+), 5 deletions(-) 8801 8802commit c273123ed0ebaebf49994057a7fe98aae7f42c40 8803Author: Lasse Collin <lasse.collin@tukaani.org> 8804Date: 2024-03-15 16:36:35 +0200 8805 8806 CMake: Use only the generic symbol versioning with NVIDIA HPC Compiler. 8807 8808 It doesn't support the __symver__ attribute or __asm__(".symver ..."). 8809 The generic symbol versioning can still be used since it only needs 8810 linker support. 8811 8812 CMakeLists.txt | 7 ++++++- 8813 1 file changed, 6 insertions(+), 1 deletion(-) 8814 8815commit df7f487648d18a3992386a59b8a061edca862d17 8816Author: Lasse Collin <lasse.collin@tukaani.org> 8817Date: 2024-03-13 21:38:24 +0200 8818 8819 Update THANKS. 8820 8821 THANKS | 1 + 8822 1 file changed, 1 insertion(+) 8823 8824commit 3217b82b3ec023bf8338249134a076bea0ea30ec 8825Author: Lasse Collin <lasse.collin@tukaani.org> 8826Date: 2024-03-13 21:30:18 +0200 8827 8828 liblzma: Minor comment edits. 8829 8830 src/liblzma/common/string_conversion.c | 4 ++-- 8831 src/liblzma/delta/delta_decoder.c | 2 ++ 8832 2 files changed, 4 insertions(+), 2 deletions(-) 8833 8834commit 096bc0e3f8fb4bfc4d2f3f64a7f219401ffb4c31 8835Author: Sergey Kosukhin <sergey.kosukhin@mpimet.mpg.de> 8836Date: 2024-03-13 13:07:13 +0100 8837 8838 liblzma: Fix building with NVHPC (NVIDIA HPC SDK). 8839 8840 NVHPC compiler has several issues that make it impossible to 8841 build liblzma: 8842 - the compiler cannot handle unions that contain pointers that 8843 are not the first members; 8844 - the compiler cannot handle the assembler code in range_decoder.h 8845 (LZMA_RANGE_DECODER_CONFIG has to be set to zero); 8846 - the compiler fails to produce valid code for delta_decode if the 8847 vectorization is enabled, which results in failed tests. 8848 8849 This introduces NVHPC-specific workarounds that address the issues. 8850 8851 src/liblzma/common/string_conversion.c | 6 ++++-- 8852 src/liblzma/delta/delta_decoder.c | 3 +++ 8853 src/liblzma/rangecoder/range_decoder.h | 1 + 8854 3 files changed, 8 insertions(+), 2 deletions(-) 8855 8856commit 2ad7fad67080e88fa7fc191f9d613d8b7add9c62 8857Author: Lasse Collin <lasse.collin@tukaani.org> 8858Date: 2024-03-13 21:17:10 +0200 8859 8860 CMake: Disable symbol versioning on non-glibc Linux. 8861 8862 This better matches what configure.ac does. For example, musl has 8863 only basic symbol versioning support: 8864 8865 https://wiki.musl-libc.org/functional-differences-from-glibc.html#Symbol_versioning 8866 8867 configure.ac tries to enable symbol versioning only with glibc 8868 so now CMake does the same. 8869 8870 CMakeLists.txt | 22 ++++++++++++++++++++-- 8871 1 file changed, 20 insertions(+), 2 deletions(-) 8872 8873commit 82f0c0d39eb2c026b1d96ee706f70ace868d4ed4 8874Author: Lasse Collin <lasse.collin@tukaani.org> 8875Date: 2024-03-13 20:32:46 +0200 8876 8877 CMake: Make symbol versioning configurable. 8878 8879 CMakeLists.txt | 62 +++++++++++++++++++++++++++++++++++++++------------------- 8880 1 file changed, 42 insertions(+), 20 deletions(-) 8881 8882commit 45d33bfc45e4295b8ad743bc2ae61cc724f98076 8883Author: Lasse Collin <lasse.collin@tukaani.org> 8884Date: 2024-03-13 19:47:36 +0200 8885 8886 Build: Style tweaks to configure.ac. 8887 8888 The AC_MSG_ERROR line is overlong anyway as are a few other 8889 AC_MSG_ERROR lines already. 8890 8891 configure.ac | 16 +++++++++------- 8892 1 file changed, 9 insertions(+), 7 deletions(-) 8893 8894commit f56ed6fac6619b56b005878d3b5210e2f0d721c0 8895Author: Sergey Kosukhin <sergey.kosukhin@mpimet.mpg.de> 8896Date: 2024-03-12 20:03:49 +0100 8897 8898 Build: Let the users override the symbol versioning variant. 8899 8900 There are cases when the users want to decide themselves whether 8901 they want to have the generic (even on GNU/Linux) or the linux 8902 (even if we do not recommend that) symbol versioning variant. 8903 The former might be needed to circumvent compiler issues (i.e. 8904 the compiler does not support all features that are required 8905 for the linux versioning), the latter might help in overriding 8906 the assumptions made in the configure script. 8907 8908 configure.ac | 91 +++++++++++++++++++++++++++++++++--------------------------- 8909 1 file changed, 50 insertions(+), 41 deletions(-) 8910 8911commit a4f2e20d8466369b1bb277c66f75c9e4ba9cc378 8912Author: Jia Tan <jiat0218@gmail.com> 8913Date: 2024-03-09 11:27:27 +0800 8914 8915 Add NEWS for 5.6.1 8916 8917 NEWS | 26 ++++++++++++++++++++++++++ 8918 1 file changed, 26 insertions(+) 8919 8920commit f01be8ad754a905d8c418601767480ec11621b02 8921Author: Jia Tan <jiat0218@gmail.com> 8922Date: 2024-03-09 10:43:20 +0800 8923 8924 Translations: Add missing --riscv option to man page translations. 8925 8926 po4a/de.po | 702 +++++++++++++++++++++++++++++----------------------------- 8927 po4a/fr.po | 549 ++++++++++++++++++++++----------------------- 8928 po4a/ko.po | 702 +++++++++++++++++++++++++++++----------------------------- 8929 po4a/pt_BR.po | 641 +++++++++++++++++++++++++++-------------------------- 8930 po4a/ro.po | 702 +++++++++++++++++++++++++++++----------------------------- 8931 po4a/uk.po | 702 +++++++++++++++++++++++++++++----------------------------- 8932 6 files changed, 2024 insertions(+), 1974 deletions(-) 8933 8934commit 6e636819e8f070330d835fce46289a3ff72a7b89 8935Author: Jia Tan <jiat0218@gmail.com> 8936Date: 2024-03-09 10:18:29 +0800 8937 8938 Tests: Update two test files. 8939 8940 The original files were generated with random local to my machine. 8941 To better reproduce these files in the future, a constant seed was used 8942 to recreate these files. 8943 8944 tests/files/bad-3-corrupt_lzma2.xz | Bin 484 -> 512 bytes 8945 tests/files/good-large_compressed.lzma | Bin 35430 -> 35421 bytes 8946 2 files changed, 0 insertions(+), 0 deletions(-) 8947 8948commit a3a29bbd5d86183fc7eae8f0182dace374e778d8 8949Author: Jia Tan <jiat0218@gmail.com> 8950Date: 2024-03-09 10:08:32 +0800 8951 8952 Tests: Test --single-stream can decompress bad-3-corrupt_lzma2.xz. 8953 8954 The first stream in this file is valid, so this tests that xz properly 8955 stops after decompressing it. 8956 8957 tests/test_files.sh | 11 +++++++++++ 8958 1 file changed, 11 insertions(+) 8959 8960commit 0b4ccc91454dbcf0bf521b9bd51aa270581ee23c 8961Author: Jia Tan <jiat0218@gmail.com> 8962Date: 2024-03-09 10:05:32 +0800 8963 8964 Tests: Update RISC-V test files. 8965 8966 This increases code coverage and tests for possible shifting bugs. 8967 8968 tests/files/good-1-riscv-lzma2-1.xz | Bin 7512 -> 7424 bytes 8969 tests/files/good-1-riscv-lzma2-2.xz | Bin 7512 -> 7432 bytes 8970 2 files changed, 0 insertions(+), 0 deletions(-) 8971 8972commit 8c9b8b2063daa78ead9f648c2ec3c91e8615dffb 8973Author: Jia Tan <jiat0218@gmail.com> 8974Date: 2024-03-09 09:52:32 +0800 8975 8976 liblzma: Fix typos in crc32_fast.c and crc64_fast.c. 8977 8978 src/liblzma/check/crc32_fast.c | 4 ++-- 8979 src/liblzma/check/crc64_fast.c | 3 +-- 8980 2 files changed, 3 insertions(+), 4 deletions(-) 8981 8982commit b93a8d7631d9517da63f03e0185455024a4609e8 8983Author: Jia Tan <jiat0218@gmail.com> 8984Date: 2024-03-09 09:49:55 +0800 8985 8986 Tests: Replace HAVE_MICROLZMA usage in CMake and Autotools builds. 8987 8988 This reverts commit adaacafde6661496ca2814b1e94a3ba5186428cb. 8989 8990 CMakeLists.txt | 15 ++++++++++----- 8991 configure.ac | 9 ++------- 8992 tests/Makefile.am | 9 ++++++--- 8993 tests/test_microlzma.c | 12 ++++-------- 8994 4 files changed, 22 insertions(+), 23 deletions(-) 8995 8996commit 82ecc538193b380a21622aea02b0ba078e7ade92 8997Author: Jia Tan <jiat0218@gmail.com> 8998Date: 2024-03-09 09:20:57 +0800 8999 9000 liblzma: Fix false Valgrind error report with GCC. 9001 9002 With GCC and a certain combination of flags, Valgrind will falsely 9003 trigger an invalid write. This appears to be due to the omission of 9004 instructions to properly save, set up, and restore the frame pointer. 9005 9006 The IFUNC resolver is a leaf function since it only calls a function 9007 that is inlined. So sometimes GCC omits the frame pointer instructions 9008 in the resolver unless this optimization is explictly disabled. 9009 9010 This fixes https://bugzilla.redhat.com/show_bug.cgi?id=2267598. 9011 9012 src/liblzma/check/crc32_fast.c | 9 +++------ 9013 src/liblzma/check/crc64_fast.c | 7 +++---- 9014 src/liblzma/check/crc_common.h | 25 +++++++++++++++++++++++++ 9015 3 files changed, 31 insertions(+), 10 deletions(-) 9016 9017commit 3007e74ef250f0ce95d97ffbdf2282284f93764d 9018Author: Lasse Collin <lasse.collin@tukaani.org> 9019Date: 2024-03-05 23:21:26 +0200 9020 9021 liblzma: Fix a typo in a comment in the RISC-V filter. 9022 9023 src/liblzma/simple/riscv.c | 2 +- 9024 1 file changed, 1 insertion(+), 1 deletion(-) 9025 9026commit 72d2933bfae514e0dbb123488e9f1eb7cf64175f 9027Author: Jia Tan <jiat0218@gmail.com> 9028Date: 2024-03-05 00:34:46 +0800 9029 9030 liblzma: Use attribute no_profile_instrument_function with ifunc. 9031 9032 Thanks to Sam James for determining this was the attribute needed to 9033 workaround the GCC bug and for his version of the patch in Gentoo. 9034 9035 src/liblzma/check/crc32_fast.c | 5 +++++ 9036 src/liblzma/check/crc64_fast.c | 3 +++ 9037 2 files changed, 8 insertions(+) 9038 9039commit e5faaebbcf02ea880cfc56edc702d4f7298788ad 9040Author: Jia Tan <jiat0218@gmail.com> 9041Date: 2024-03-05 00:27:31 +0800 9042 9043 Build: Require attribute no_profile_instrument_function for ifunc usage. 9044 9045 Using __attribute__((__no_profile_instrument_function__)) on the ifunc 9046 resolver works around a bug in GCC -fprofile-generate: 9047 it adds profiling code even to ifunc resolvers which can make 9048 the ifunc resolver crash at program startup. This attribute 9049 was not introduced until GCC 7 and Clang 13, so ifunc won't 9050 be used with prior versions of these compilers. 9051 9052 This bug was brought to our attention by: 9053 9054 https://bugs.gentoo.org/925415 9055 9056 And was reported to upstream GCC by: 9057 9058 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=11411 9059 9060 CMakeLists.txt | 7 +++++++ 9061 configure.ac | 7 +++++++ 9062 2 files changed, 14 insertions(+) 9063 9064commit 7eeadd279a24c26ca7ff1292b7df802b89409eb7 9065Author: Lasse Collin <lasse.collin@tukaani.org> 9066Date: 2024-03-04 19:23:18 +0200 9067 9068 liblzma: Fix a comment in the RISC-V filter. 9069 9070 src/liblzma/simple/riscv.c | 4 ++-- 9071 1 file changed, 2 insertions(+), 2 deletions(-) 9072 9073commit 5f3d0595296cc3035eae9e7bb6c3ffb1e1267333 9074Author: Lasse Collin <lasse.collin@tukaani.org> 9075Date: 2024-02-29 16:35:52 +0200 9076 9077 CMake: Warn if translated man pages are missing. 9078 9079 CMakeLists.txt | 9 +++++++++ 9080 1 file changed, 9 insertions(+) 9081 9082commit 4cd1042ee752d61370c685d0d8b20c1e935672f7 9083Author: Lasse Collin <lasse.collin@tukaani.org> 9084Date: 2024-02-29 16:35:52 +0200 9085 9086 CMake: Warn if gettext tools and pre-created .gmo files are missing. 9087 9088 It's only done with CMake >= 3.20 and if library support 9089 for translation was already found. 9090 9091 Sort of fixes: https://github.com/tukaani-project/xz/issues/82 9092 9093 CMakeLists.txt | 25 +++++++++++++++++++++++++ 9094 1 file changed, 25 insertions(+) 9095 9096commit a94b42362c8e807f92236d6d63373f04991e3a50 9097Author: Lasse Collin <lasse.collin@tukaani.org> 9098Date: 2024-02-28 18:26:25 +0200 9099 9100 xz: Add comments. 9101 9102 src/xz/coder.c | 10 ++++++++++ 9103 1 file changed, 10 insertions(+) 9104 9105commit bbf112e32307a75a54a9e170bc392811443d5c87 9106Author: Jia Tan <jiat0218@gmail.com> 9107Date: 2024-02-27 23:42:41 +0800 9108 9109 xz: Change logging level for thread reduction to highest verbosity only. 9110 9111 Now that multi threaded encoding is the default, users do not need to 9112 see a warning message everytime the number of threads is reduced. On 9113 some machines, this could happen very often. It is not unreasonable for 9114 users to need to set double verbose mode to see this kind of 9115 information. 9116 9117 To see these warning messages -vv or --verbose --verbose must be passed 9118 to set xz into the highest possible verbosity mode. 9119 9120 These warnings had caused automated testing frameworks to fail when they 9121 expected no output to stderr. 9122 9123 Thanks to Sebastian Andrzej Siewior for reporting this and for the 9124 initial version of the patch. 9125 9126 src/xz/coder.c | 4 ++-- 9127 1 file changed, 2 insertions(+), 2 deletions(-) 9128 9129commit 649f6447441510d593a88475ad6df4bcdf74ce48 9130Author: Lasse Collin <lasse.collin@tukaani.org> 9131Date: 2024-02-26 23:06:13 +0200 9132 9133 Fix sorting in THANKS. 9134 9135 THANKS | 4 ++-- 9136 1 file changed, 2 insertions(+), 2 deletions(-) 9137 9138commit 1255b7d849bf53f196a842ef2a508ed0ff577eaa 9139Author: Jia Tan <jiat0218@gmail.com> 9140Date: 2024-02-26 23:39:29 +0800 9141 9142 Update THANKS. 9143 9144 THANKS | 1 + 9145 1 file changed, 1 insertion(+) 9146 9147commit eee579fff50099ba163c12305e81a4bd42b7dd53 9148Author: Chien Wong <m@xv97.com> 9149Date: 2024-02-25 21:38:13 +0800 9150 9151 xz: Add missing RISC-V on the filter list in the man page 9152 9153 Signed-off-by: Chien Wong <m@xv97.com> 9154 9155 src/xz/xz.1 | 4 +++- 9156 1 file changed, 3 insertions(+), 1 deletion(-) 9157 9158commit 328c52da8a2bbb81307644efdb58db2c422d9ba7 9159Author: Jia Tan <jiat0218@gmail.com> 9160Date: 2024-02-26 23:02:06 +0800 9161 9162 Build: Fix Linux Landlock feature test in Autotools and CMake builds. 9163 9164 The previous Linux Landlock feature test assumed that having the 9165 linux/landlock.h header file was enough. The new feature tests also 9166 requires that prctl() and the required Landlock system calls are 9167 supported. 9168 9169 CMakeLists.txt | 25 ++++++++++++++++++++++--- 9170 configure.ac | 27 ++++++++++++++++++++++++++- 9171 src/xz/sandbox.c | 2 +- 9172 src/xz/sandbox.h | 2 +- 9173 src/xzdec/xzdec.c | 8 ++++---- 9174 5 files changed, 54 insertions(+), 10 deletions(-) 9175 9176commit eb8ad59e9bab32a8d655796afd39597ea6dcc64d 9177Author: Jia Tan <jiat0218@gmail.com> 9178Date: 2024-02-26 20:06:10 +0800 9179 9180 Tests: Add test_microlzma to .gitignore and CMakeLists.txt. 9181 9182 .gitignore | 1 + 9183 CMakeLists.txt | 1 + 9184 2 files changed, 2 insertions(+) 9185 9186commit 9eed1b9a3ae140e93a82febc05a0181e9a4f5093 9187Author: Jia Tan <jiat0218@gmail.com> 9188Date: 2024-02-26 19:56:25 +0800 9189 9190 Tests: Correct license header in test_microlzma.c. 9191 9192 tests/test_microlzma.c | 5 ++--- 9193 1 file changed, 2 insertions(+), 3 deletions(-) 9194 9195commit 8bf9f72ee1c05b9e205a72807e8a9e304785673d 9196Author: Jia Tan <jiat0218@gmail.com> 9197Date: 2024-02-25 21:41:55 +0800 9198 9199 Fix typos in NEWS and CMakeLists. 9200 9201 CMakeLists.txt | 2 +- 9202 NEWS | 2 +- 9203 2 files changed, 2 insertions(+), 2 deletions(-) 9204 9205commit 5d8d915ebe2e345820a0f54d1baf8d7d4824c0c7 9206Author: Jia Tan <jiat0218@gmail.com> 9207Date: 2024-02-24 16:30:06 +0800 9208 9209 Bump version and soname for 5.7.0alpha. 9210 9211 Like 5.5.0alpha, 5.7.0alpha won't be released, it's just to mark that 9212 the branch is not stable. 9213 9214 Once again there is no API/ABI stability for new features in devel 9215 versions. The major soname won't be bumped even if API/ABI of new 9216 features breaks between devel releases. 9217 9218 src/liblzma/Makefile.am | 2 +- 9219 src/liblzma/api/lzma/version.h | 6 +++--- 9220 src/liblzma/liblzma_generic.map | 2 +- 9221 src/liblzma/liblzma_linux.map | 2 +- 9222 4 files changed, 6 insertions(+), 6 deletions(-) 9223 9224commit a18fb1edef0d0aac12a09eed05e9c448c777af7b 9225Author: Jia Tan <jiat0218@gmail.com> 9226Date: 2024-02-24 15:50:36 +0800 9227 9228 Add NEWS for 5.6.0. 9229 9230 NEWS | 143 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 9231 1 file changed, 143 insertions(+) 9232 9233commit 24355c5280bc95e3d594432d60bb8432aa6af173 9234Author: Jia Tan <jiat0218@gmail.com> 9235Date: 2024-02-22 22:27:01 +0800 9236 9237 Translations: Remove obsolete and fuzzy matches from some translations. 9238 9239 The French and Brazilian Portuguese man page translations have not been 9240 updated since the switch from public domain to 0BSD. The old GPLv2 9241 strings have now been removed from these files. 9242 9243 po4a/fr.po | 4702 +++++++++++++++++++++++++++++++++++++---------------- 9244 po4a/pt_BR.po | 4987 ++++++++++++++++++++++++++++++++++++++++----------------- 9245 2 files changed, 6832 insertions(+), 2857 deletions(-) 9246 9247commit 02ca4a7d7b703e2ec63e00b70feec825e919dbc1 9248Author: Jia Tan <jiat0218@gmail.com> 9249Date: 2024-02-21 00:31:54 +0800 9250 9251 Translations: Patch man pages to avoid fuzzy matches. 9252 9253 This will be fixed in the next round of translations, but this avoids 9254 having a fuzzy match or not fixing the English version. 9255 9256 po4a/de.po | 2 +- 9257 po4a/ko.po | 2 +- 9258 po4a/ro.po | 2 +- 9259 po4a/uk.po | 2 +- 9260 4 files changed, 4 insertions(+), 4 deletions(-) 9261 9262commit 898aad9fc711e03452d24d9e2c5b7f77a6f9ce64 9263Author: Jia Tan <jiat0218@gmail.com> 9264Date: 2024-02-21 00:30:43 +0800 9265 9266 xzmore: Fix typo in xzmore.1. 9267 9268 Thanks to Yuri Chornoivan. 9269 9270 src/scripts/xzmore.1 | 2 +- 9271 1 file changed, 1 insertion(+), 1 deletion(-) 9272 9273commit 5631aa206c8d16b4eeab85a46b8b698f4fc4cdba 9274Author: Jia Tan <jiat0218@gmail.com> 9275Date: 2024-02-24 12:12:16 +0800 9276 9277 Translations: Update the Vietnamese translation. 9278 9279 po/vi.po | 505 ++++++++++++++++++++++++++++++++++++++------------------------- 9280 1 file changed, 309 insertions(+), 196 deletions(-) 9281 9282commit a65fd7ce9d6228e87faf61dc56a35984d0088248 9283Author: Jia Tan <jiat0218@gmail.com> 9284Date: 2024-02-24 12:06:40 +0800 9285 9286 Translations: Update the Esperanto translation. 9287 9288 po/eo.po | 502 ++++++++++++++++++++++++++++++++++++++------------------------- 9289 1 file changed, 306 insertions(+), 196 deletions(-) 9290 9291commit cf44e4b7f5dfdbf8c78aef377c10f71e274f63c0 9292Author: Jia Tan <jiat0218@gmail.com> 9293Date: 2024-02-23 23:09:59 +0800 9294 9295 Tests: Add a few test files. 9296 9297 tests/files/README | 19 +++++++++++++++++++ 9298 tests/files/bad-3-corrupt_lzma2.xz | Bin 0 -> 484 bytes 9299 tests/files/bad-dict_size.lzma | Bin 0 -> 41 bytes 9300 tests/files/good-2cat.xz | Bin 0 -> 136 bytes 9301 tests/files/good-large_compressed.lzma | Bin 0 -> 35430 bytes 9302 tests/files/good-small_compressed.lzma | Bin 0 -> 258 bytes 9303 6 files changed, 19 insertions(+) 9304 9305commit 39f4a1a86ad80b2d064b812cee42668e6c8b8c73 9306Author: Jia Tan <jiat0218@gmail.com> 9307Date: 2024-02-23 20:58:36 +0800 9308 9309 Tests: Add MicroLZMA test. 9310 9311 tests/Makefile.am | 4 +- 9312 tests/test_microlzma.c | 548 +++++++++++++++++++++++++++++++++++++++++++++++++ 9313 2 files changed, 551 insertions(+), 1 deletion(-) 9314 9315commit adaacafde6661496ca2814b1e94a3ba5186428cb 9316Author: Jia Tan <jiat0218@gmail.com> 9317Date: 2024-02-23 20:57:59 +0800 9318 9319 Build: Define HAVE_MICROLZMA when it is configured. 9320 9321 CMakeLists.txt | 4 ++++ 9322 configure.ac | 9 +++++++-- 9323 2 files changed, 11 insertions(+), 2 deletions(-) 9324 9325commit eea78216d27182ca917bf00e02feaab058a4d21e 9326Author: Jia Tan <jiat0218@gmail.com> 9327Date: 2024-02-23 20:27:15 +0800 9328 9329 xz: Fix Capsicum sandbox compile error. 9330 9331 user_abort_pipe[] was still being used instead of the parameters. 9332 9333 src/xz/sandbox.c | 4 ++-- 9334 1 file changed, 2 insertions(+), 2 deletions(-) 9335 9336commit 32b0a3ce19224f9074d01a4ffbc1655b05fcb82d 9337Author: Jia Tan <jiat0218@gmail.com> 9338Date: 2024-02-23 16:12:32 +0800 9339 9340 Build: Fix ARM64 CRC32 instruction feature test. 9341 9342 Old versions of Clang reported the unsupported function attribute and 9343 __crc32d() function as warnings instead of errors, so the feature test 9344 passed when it shouldn't have, causing a compile error at build time. 9345 -Werror was added to this feature test to fix this. The change is not 9346 needed for CMake because check_c_source_compiles() also performs 9347 linking and the error is caught then. 9348 9349 Thanks to Sebastian Andrzej Siewior for reporting this. 9350 9351 configure.ac | 10 ++++++++++ 9352 1 file changed, 10 insertions(+) 9353 9354commit 4c81c9611f8b2e1ad65eb7fa166afc570c58607e 9355Author: Lasse Collin <lasse.collin@tukaani.org> 9356Date: 2024-02-22 19:16:35 +0200 9357 9358 CMake: Add LOCALEDIR to the windres workaround. 9359 9360 LOCALEDIR may contain spaces like in "C:\Program Files". 9361 9362 CMakeLists.txt | 16 +++++++++++----- 9363 1 file changed, 11 insertions(+), 5 deletions(-) 9364 9365commit de4337fd89ca7db5feb97b5c40143404f6e22986 9366Author: Lasse Collin <lasse.collin@tukaani.org> 9367Date: 2024-02-22 15:18:25 +0200 9368 9369 xz: Landlock: Fix error message if input file is a directory. 9370 9371 If xz is given a directory, it should look like this: 9372 9373 $ xz /usr/bin 9374 xz: /usr/bin: Is a directory, skipping 9375 9376 The Landlock rules didn't allow opening directories for reading: 9377 9378 $ xz /usr/bin 9379 xz: /usr/bin: Permission denied 9380 9381 The simplest fix was to allow opening directories for reading. 9382 While it's a bit silly to allow it solely for the error message, 9383 it shouldn't make the sandbox significantly weaker. 9384 9385 The single-file use case (like when called from GNU tar) is 9386 still as strict as possible: all Landlock restrictions are 9387 enabled before (de)compression starts. 9388 9389 src/xz/sandbox.c | 15 ++++++++++++++- 9390 1 file changed, 14 insertions(+), 1 deletion(-) 9391 9392commit 120da10ae139ea52ca4275452adf8eda02d07cc8 9393Author: Lasse Collin <lasse.collin@tukaani.org> 9394Date: 2024-02-22 14:41:29 +0200 9395 9396 liblzma: Disable branchless C version in range decoder. 9397 9398 Thanks to Sebastian Andrzej Siewior and Sam James for 9399 benchmarking on various systems. 9400 9401 src/liblzma/rangecoder/range_decoder.h | 13 ++++++++++--- 9402 1 file changed, 10 insertions(+), 3 deletions(-) 9403 9404commit 00440f52be9ac2c7438c7b0cb1082f12399632c6 9405Author: Lasse Collin <lasse.collin@tukaani.org> 9406Date: 2024-02-21 17:41:32 +0200 9407 9408 INSTALL: Clarify that --disable-assembler affects only 32-bit x86. 9409 9410 INSTALL | 18 +++++++++--------- 9411 1 file changed, 9 insertions(+), 9 deletions(-) 9412 9413commit 11405be84ea294497e12d03d7219f607063f4a00 9414Author: Lasse Collin <lasse.collin@tukaani.org> 9415Date: 2024-02-19 18:41:37 +0200 9416 9417 Windows: build.bash: Include COPYING.0BSD in the package. 9418 9419 windows/build.bash | 2 +- 9420 1 file changed, 1 insertion(+), 1 deletion(-) 9421 9422commit c27cf64e3e27f4968431d65be7098a12a3a80d30 9423Author: Lasse Collin <lasse.collin@tukaani.org> 9424Date: 2024-02-18 17:59:46 +0200 9425 9426 Windows: build.bash: include liblzma-crt-mixing.txt in the package. 9427 9428 windows/build.bash | 6 ++++-- 9429 1 file changed, 4 insertions(+), 2 deletions(-) 9430 9431commit 8d38941baed05de4ff7cc775de14833108f62184 9432Author: Lasse Collin <lasse.collin@tukaani.org> 9433Date: 2024-02-18 17:17:43 +0200 9434 9435 Windows: Major update to Windows build instructions. 9436 9437 INSTALL | 68 ++++----- 9438 windows/INSTALL-MSVC.txt | 23 +-- 9439 windows/INSTALL-MinGW-w64_with_Autotools.txt | 49 +++++++ 9440 windows/INSTALL-MinGW-w64_with_CMake.txt | 203 +++++++++++++++++++++++++++ 9441 windows/INSTALL-MinGW.txt | 138 ------------------ 9442 windows/README-Windows.txt | 2 + 9443 windows/build-with-cmake.bat | 35 +++++ 9444 windows/liblzma-crt-mixing.txt | 70 +++++++++ 9445 8 files changed, 404 insertions(+), 184 deletions(-) 9446 9447commit 4b5b0d352348ff510ffb50a3b5b71788857d37a1 9448Author: Lasse Collin <lasse.collin@tukaani.org> 9449Date: 2024-02-18 15:15:04 +0200 9450 9451 Windows: Update windows/README-Windows.txt. 9452 9453 It's for binary packages built with windows/build.bash. 9454 9455 windows/README-Windows.txt | 104 ++++++++++++++++++--------------------------- 9456 1 file changed, 41 insertions(+), 63 deletions(-) 9457 9458commit 1ee716f74085223c8fbcae1d5a384e6bf53c0f6a 9459Author: Lasse Collin <lasse.collin@tukaani.org> 9460Date: 2024-02-18 15:15:04 +0200 9461 9462 Windows: Update windows/build.bash. 9463 9464 Support for the old MinGW was dropped. Only MinGW-w64 with GCC 9465 is supported now. 9466 9467 The script now supports also cross-compilation from GNU/Linux 9468 (tests are not run). MSYS2 and also the old MSYS 1.0.11 work 9469 for building on Windows. The i686 and x86_64 toolchains must 9470 be in PATH to build both 32-bit and 64-bit versions. 9471 9472 Parallel builds are done if "nproc" from GNU coreutils is available. 9473 9474 MinGW-w64 runtime copyright information file was renamed from 9475 COPYING-Windows.txt to COPYING.MinGW-w64-runtime.txt which 9476 is the filename used by MinGW-w64 itself. Its existence 9477 is now mandatory, it's checked at the beginning of the script. 9478 9479 The file TODO is no longer copied to the package. 9480 9481 windows/build.bash | 191 +++++++++++++++++++++++++++++++---------------------- 9482 1 file changed, 112 insertions(+), 79 deletions(-) 9483 9484commit 60462e42609a1d961868a1d1ebecc713c6d27e2e 9485Author: Jia Tan <jiat0218@gmail.com> 9486Date: 2024-02-20 23:32:22 +0800 9487 9488 Translations: Update the Romanian man page translations. 9489 9490 po4a/ro.po | 1715 +++++++++++++++++++++++++++++++----------------------------- 9491 1 file changed, 875 insertions(+), 840 deletions(-) 9492 9493commit 10d733e5b8929c642e00891cfa9ead9c2cdd2e05 9494Author: Jia Tan <jiat0218@gmail.com> 9495Date: 2024-02-20 23:30:25 +0800 9496 9497 Translations: Update the Korean man page translations. 9498 9499 po4a/ko.po | 6 +++--- 9500 1 file changed, 3 insertions(+), 3 deletions(-) 9501 9502commit 797a34b72ac6baff237d7a546fa941d8f78f2f62 9503Author: Jia Tan <jiat0218@gmail.com> 9504Date: 2024-02-20 21:03:53 +0800 9505 9506 Translations: Update the Spanish translation. 9507 9508 po/es.po | 6 +++--- 9509 1 file changed, 3 insertions(+), 3 deletions(-) 9510 9511commit 5c3751d019f023e091df9a653e2bb1f6ea8b0d49 9512Author: Jia Tan <jiat0218@gmail.com> 9513Date: 2024-02-20 20:18:07 +0800 9514 9515 Translations: Update the Romanian translation. 9516 9517 po/ro.po | 470 ++++++++++++++++++++++++++++++--------------------------------- 9518 1 file changed, 227 insertions(+), 243 deletions(-) 9519 9520commit e2d31154ecc750935436e8b62c6b073b2cfa84e3 9521Author: Jia Tan <jiat0218@gmail.com> 9522Date: 2024-02-20 20:15:50 +0800 9523 9524 Translations: Update the Croatian translation. 9525 9526 po/hr.po | 648 ++++++++++++++++++++++++++++++++++----------------------------- 9527 1 file changed, 355 insertions(+), 293 deletions(-) 9528 9529commit 704500f994d5ac271bfcfd592275c5a7da4dc8d2 9530Author: Jia Tan <jiat0218@gmail.com> 9531Date: 2024-02-20 20:05:44 +0800 9532 9533 Translations: Update the German man page translations. 9534 9535 po4a/de.po | 1696 +++++++++++++++++++++++++++++++----------------------------- 9536 1 file changed, 873 insertions(+), 823 deletions(-) 9537 9538commit 1cfd3dca3fef321b06db73c3c9e13f347c2e2f5f 9539Author: Jia Tan <jiat0218@gmail.com> 9540Date: 2024-02-20 19:58:25 +0800 9541 9542 Translations: Update the German translation. 9543 9544 po/de.po | 427 +++++++++++++++++++++++++++++++++------------------------------ 9545 1 file changed, 225 insertions(+), 202 deletions(-) 9546 9547commit 28b9b3f16cc7c6e5b42e691994569c17f4561c9a 9548Author: Jia Tan <jiat0218@gmail.com> 9549Date: 2024-02-20 19:56:52 +0800 9550 9551 Translations: Update the Hungarian translation. 9552 9553 po/hu.po | 556 ++++++++++++++++++++++++++++++++++++++------------------------- 9554 1 file changed, 338 insertions(+), 218 deletions(-) 9555 9556commit 00b06cd0af6ad2ee93d3006bf80417db060c2b04 9557Author: Lasse Collin <lasse.collin@tukaani.org> 9558Date: 2024-02-19 16:48:05 +0200 9559 9560 CMake: Fix building of lzmainfo when translations are enabled. 9561 9562 CMakeLists.txt | 2 ++ 9563 1 file changed, 2 insertions(+) 9564 9565commit b0d1422b6037bfea6f6723683bd82a8e6d77026c 9566Author: Lasse Collin <lasse.collin@tukaani.org> 9567Date: 2024-02-19 13:38:42 +0200 9568 9569 CMake: Don't assume that -fvisibility=hidden is supported outside Windows. 9570 9571 The original code was good enough for supporting GNU/Linux 9572 and a few others but it wasn't very portable. 9573 9574 CMake doesn't support Solaris Studio's -xldscope=hidden. 9575 If it ever does, things should still work with this commit 9576 as Solaris Studio supports not only its own __global but also 9577 the GNU C __attribute__((visibility("default"))). Support for the 9578 attribute was added in 2007 to Sun Studio 12 compiler version 5.9. 9579 9580 CMakeLists.txt | 26 ++++++++++++++++++++++---- 9581 1 file changed, 22 insertions(+), 4 deletions(-) 9582 9583commit 2ced9d34bef4dce52ecbbf84d0903ab0aae1442c 9584Author: Lasse Collin <lasse.collin@tukaani.org> 9585Date: 2024-02-19 12:20:59 +0200 9586 9587 CMake: Revise the component splitting. 9588 9589 CMakeLists.txt | 57 +++++++++++++++++++++++++++++++-------------------------- 9590 1 file changed, 31 insertions(+), 26 deletions(-) 9591 9592commit 426bdc709c169d39b31dec410016779de117ef69 9593Author: Lasse Collin <lasse.collin@tukaani.org> 9594Date: 2024-02-17 21:45:07 +0200 9595 9596 CMake: Update the main comment and document CMAKE_BUILD_TYPE=Release. 9597 9598 CMakeLists.txt | 79 ++++++++++++++++++++++++++++++++++++++++++++++------------ 9599 1 file changed, 63 insertions(+), 16 deletions(-) 9600 9601commit 4430e075f7ccfc47972d6ca0aa1c3779fc265e10 9602Author: Lasse Collin <lasse.collin@tukaani.org> 9603Date: 2024-02-17 21:27:48 +0200 9604 9605 CMake: Use -O2 instead of -O3 in CMAKE_BUILD_TYPE=Release. 9606 9607 -O3 doesn't seem useful for speed but it makes the code bigger. 9608 CMake makes is difficult for users to simply override the 9609 optimization level: CFLAGS / CMAKE_C_FLAGS aren't helpful because 9610 they go before CMAKE_C_FLAGS_RELEASE. Of course, users can override 9611 CMAKE_C_FLAGS_RELEASE directly but then they have to remember to 9612 add also -DNDEBUG to disable assertions. 9613 9614 This commit changes -O3 to -O2 in CMAKE_C_FLAGS_RELEASE if and only if 9615 CMAKE_C_FLAGS_RELEASE cache variable doesn't already exist. So if 9616 a custom value is passed on the command line (or reconfiguring an 9617 already-configured build), the cache variable won't be modified. 9618 9619 CMakeLists.txt | 19 +++++++++++++++++++ 9620 1 file changed, 19 insertions(+) 9621 9622commit 025eb6d7879e4c4e8cb29716b371e0f4c1aea660 9623Author: Lasse Collin <lasse.collin@tukaani.org> 9624Date: 2024-02-18 14:59:52 +0200 9625 9626 CMake: Handle symbol versioning on MicroBlaze specially. 9627 9628 This is to match configure.ac. 9629 9630 CMakeLists.txt | 23 +++++++++++++++++++---- 9631 1 file changed, 19 insertions(+), 4 deletions(-) 9632 9633commit 2edd1a35b2507d1ce68b52dbaebe23c4850a74ce 9634Author: Lasse Collin <lasse.collin@tukaani.org> 9635Date: 2024-02-17 22:18:12 +0200 9636 9637 CMake: Keep build working even if lib/*.[ch] are removed. 9638 9639 CMakeLists.txt | 7 ++++++- 9640 1 file changed, 6 insertions(+), 1 deletion(-) 9641 9642commit d753e2ce4715552884afadc4ed6fbf8ccca6efac 9643Author: Lasse Collin <lasse.collin@tukaani.org> 9644Date: 2024-02-17 18:10:40 +0200 9645 9646 CMake: Install documentation. 9647 9648 CMakeLists.txt | 32 ++++++++++++++++++++++++++++++++ 9649 1 file changed, 32 insertions(+) 9650 9651commit 7a0405bea9cb0df9318b70f779f82b2c473e98ac 9652Author: Lasse Collin <lasse.collin@tukaani.org> 9653Date: 2024-02-17 15:35:35 +0200 9654 9655 CMake: Bump maximum policy version to 3.28. 9656 9657 CMP0154 doesn't affect us since we don't use FILE_SET. 9658 9659 CMakeLists.txt | 2 +- 9660 1 file changed, 1 insertion(+), 1 deletion(-) 9661 9662commit c2264ffbe3892d28930b89b0123efc369cabc143 9663Author: Lasse Collin <lasse.collin@tukaani.org> 9664Date: 2024-02-17 15:35:35 +0200 9665 9666 CMake: Build lzmainfo. 9667 9668 CMakeLists.txt | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 9669 1 file changed, 54 insertions(+) 9670 9671commit 998d0b29536094a89cf385a3b894e157db1ccefe 9672Author: Lasse Collin <lasse.collin@tukaani.org> 9673Date: 2024-02-17 15:35:35 +0200 9674 9675 CMake: Build lzmadec. 9676 9677 CMakeLists.txt | 76 ++++++++++++++++++++++++++++++++-------------------------- 9678 1 file changed, 42 insertions(+), 34 deletions(-) 9679 9680commit 74e8bc7417a0f37ca7ed5ee0127d33c69b3100b9 9681Author: Lasse Collin <lasse.collin@tukaani.org> 9682Date: 2024-02-17 15:35:35 +0200 9683 9684 CMake: Add test_scripts.sh to the tests. 9685 9686 In contrast to Automake, skipping of this test when decoders 9687 are disabled is handled at CMake side instead of test_scripts.sh 9688 because CMake-build doesn't create config.h. 9689 9690 CMakeLists.txt | 14 ++++++++++++++ 9691 tests/test_scripts.sh | 13 ++++++++----- 9692 2 files changed, 22 insertions(+), 5 deletions(-) 9693 9694commit 4808f238a731befcd46c2117c62a1caaf4403989 9695Author: Lasse Collin <lasse.collin@tukaani.org> 9696Date: 2024-02-17 15:35:35 +0200 9697 9698 CMake: Install scripts. 9699 9700 Compared to the Autotools-based build, this has simpler handling 9701 for the shell (@POSIX_SHELL@) and extra PATH entry for the scripts 9702 (configure has --enable-path-for-scripts=PREFIX). The simpler 9703 metho should be enough for non-ancient systems and Solaris. 9704 9705 CMakeLists.txt | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 9706 1 file changed, 82 insertions(+), 1 deletion(-) 9707 9708commit 3462362ebd94d835c664e94ad8f414cfe7590ca7 9709Author: Lasse Collin <lasse.collin@tukaani.org> 9710Date: 2024-02-17 15:35:35 +0200 9711 9712 Scripts: Use @PACKAGE_VERSION@ instead of @VERSION@. 9713 9714 PACKAGE_VERSION was already used in liblzma.pc.in. 9715 This way only one version @foo@ is used. 9716 9717 src/scripts/xzdiff.in | 2 +- 9718 src/scripts/xzgrep.in | 2 +- 9719 src/scripts/xzless.in | 2 +- 9720 src/scripts/xzmore.in | 2 +- 9721 4 files changed, 4 insertions(+), 4 deletions(-) 9722 9723commit 67610c245ba6c68cf65991693bab9312b7dc987b 9724Author: Lasse Collin <lasse.collin@tukaani.org> 9725Date: 2024-02-17 15:35:35 +0200 9726 9727 CMake: Simplify symlink creation and install translated man pages. 9728 9729 It helps that cmake_install.cmake doesn't parallelize installation 9730 so symlinks can be created so that the target is always known to 9731 exist (a requirement on Windows in some cases). 9732 9733 This bumps the minimum CMake version from 3.13 to 3.14 to use 9734 file(CREATE_LINK ...). It could be made to work on 3.13 by 9735 calling "cmake -E create_symlink" but it's uglier code and 9736 slower in "make install". 3.14 should be a reasonable version 9737 to require nowadays, especially since the Autotools build 9738 is still the primary build system for most OSes. 9739 9740 CMakeLists.txt | 195 +++++++++++++++++++++++++++++---------------------------- 9741 1 file changed, 98 insertions(+), 97 deletions(-) 9742 9743commit 50cc1d8a5a8154428bf240c7e4972e32b17d99bf 9744Author: Lasse Collin <lasse.collin@tukaani.org> 9745Date: 2024-02-17 15:35:35 +0200 9746 9747 CMake: Add support for building and installing xz with translations. 9748 9749 If gettext tools are available, the .po files listed in po/LINGUAS 9750 are converted using msgfmt. This allows building with translations 9751 directly from xz.git without Autotools. 9752 9753 If gettext tools aren't available, the Autotools-created .gmo files 9754 in the "po" directory will be used. This allows CMake-based build 9755 to use translations from Autotools-generated tarball. 9756 9757 If translation support is found (Intl_FOUND) but both the 9758 gettext tools and the pre-generated .gmo files are missing, 9759 then "make" will fail. 9760 9761 CMakeLists.txt | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 9762 1 file changed, 66 insertions(+), 2 deletions(-) 9763 9764commit 746c471643009947f94a3494a1148f74c7381b56 9765Author: Lasse Collin <lasse.collin@tukaani.org> 9766Date: 2024-02-19 11:58:33 +0200 9767 9768 liblzma: Remove commented-out code. 9769 9770 src/liblzma/rangecoder/range_decoder.h | 3 --- 9771 1 file changed, 3 deletions(-) 9772 9773commit 4ce300ce0884c6e552de2af9ae8050b47b01f0e7 9774Author: Lasse Collin <lasse.collin@tukaani.org> 9775Date: 2024-02-17 23:07:35 +0200 9776 9777 xz: Delete old commented-out code. 9778 9779 src/xz/message.c | 19 ------------------- 9780 1 file changed, 19 deletions(-) 9781 9782commit cae9a5e0bf422e6c5e64180805904f7ed02dc3aa 9783Author: Lasse Collin <lasse.collin@tukaani.org> 9784Date: 2024-02-17 23:07:35 +0200 9785 9786 xz: Use stricter pledge(2) and Landlock sandbox. 9787 9788 This makes these sandboxing methods stricter when no files are 9789 created or deleted. That is, it's a middle ground between the 9790 initial sandbox and the strictest single-file-to-stdout sandbox: 9791 this allows opening files for reading but output has to go to stdout. 9792 9793 src/xz/main.c | 46 +++++++++++++++++++++++++++++++++------------- 9794 src/xz/sandbox.c | 32 ++++++++++++++++++++++++++++++++ 9795 src/xz/sandbox.h | 4 ++++ 9796 3 files changed, 69 insertions(+), 13 deletions(-) 9797 9798commit 02e3505991233901575b7eabc06b2c6c62a96899 9799Author: Lasse Collin <lasse.collin@tukaani.org> 9800Date: 2024-02-17 23:07:35 +0200 9801 9802 xz: Support Landlock ABI version 4. 9803 9804 Linux 6.7 added support for ABI version 4 which restricts 9805 TCP connections which xz won't need and thus those can be 9806 forbidden now. Since the ABI version is handled at runtime, 9807 supporting version 4 won't cause any compatibility issues. 9808 9809 Note that new enough kernel headers are required to get 9810 version 4 support enabled at build time. 9811 9812 src/xz/sandbox.c | 25 ++++++++++++++++++++----- 9813 1 file changed, 20 insertions(+), 5 deletions(-) 9814 9815commit 374868d81d473ab56556a1cfd6b1b36a1fab348b 9816Author: Lasse Collin <lasse.collin@tukaani.org> 9817Date: 2024-02-17 23:07:35 +0200 9818 9819 xz: Move sandboxing code to sandbox.c and improve Landlock sandbox. 9820 9821 Landlock is now always used just like pledge(2) is: first in more 9822 permissive mode and later (under certain common conditions) in 9823 a strict mode that doesn't allow opening more files. 9824 9825 I put pledge(2) first in sandbox.c because it's the simplest API 9826 to use and still somewhat fine-grained for basic applications. 9827 So it's the simplest thing to understand for anyone reading sandbox.c. 9828 9829 CMakeLists.txt | 2 + 9830 src/xz/Makefile.am | 2 + 9831 src/xz/file_io.c | 170 +----------------------------- 9832 src/xz/file_io.h | 6 -- 9833 src/xz/main.c | 50 +++------ 9834 src/xz/private.h | 6 +- 9835 src/xz/sandbox.c | 295 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 9836 src/xz/sandbox.h | 39 +++++++ 9837 8 files changed, 357 insertions(+), 213 deletions(-) 9838 9839commit 7312dfbb02197c7f990c7a3cefd027a9387d1473 9840Author: Lasse Collin <lasse.collin@tukaani.org> 9841Date: 2024-02-17 23:07:35 +0200 9842 9843 xz: Tweak comments. 9844 9845 src/xz/main.c | 4 +++- 9846 1 file changed, 3 insertions(+), 1 deletion(-) 9847 9848commit c701a5909ad9882469fbab4fab5d2d5556d3ba78 9849Author: Lasse Collin <lasse.collin@tukaani.org> 9850Date: 2024-02-17 23:07:35 +0200 9851 9852 xz: Fix message_init() description. 9853 9854 Also explicitly initialize progress_automatic to make it clear 9855 that it can be read before message_init() sets it. Static variable 9856 was initialized to false by default already so this is only for 9857 clarity. 9858 9859 src/xz/main.c | 3 ++- 9860 src/xz/message.c | 2 +- 9861 src/xz/message.h | 5 ++++- 9862 3 files changed, 7 insertions(+), 3 deletions(-) 9863 9864commit 9466306719f3b76e92fac4e55fbfd89ec92295fa 9865Author: Lasse Collin <lasse.collin@tukaani.org> 9866Date: 2024-02-17 19:35:47 +0200 9867 9868 Build: Makefile.am: Sort EXTRA_DIST. 9869 9870 Dirs first, then files in case-sensitive ASCII order. 9871 9872 Makefile.am | 14 +++++++------- 9873 1 file changed, 7 insertions(+), 7 deletions(-) 9874 9875commit f3440e78c9517db75bfa52e1a378fad60b073bbe 9876Author: Lasse Collin <lasse.collin@tukaani.org> 9877Date: 2024-02-17 19:25:05 +0200 9878 9879 Build: Don't install TODO. 9880 9881 Makefile.am | 2 +- 9882 1 file changed, 1 insertion(+), 1 deletion(-) 9883 9884commit a7a3b62e2ab03c82b2bd5c78da1d1fb8b8490381 9885Author: Jia Tan <jiat0218@gmail.com> 9886Date: 2024-02-18 01:09:11 +0800 9887 9888 Translations: Update the Korean man page translations. 9889 9890 po4a/ko.po | 1707 +++++++++++++++++++++++++++++++----------------------------- 9891 1 file changed, 871 insertions(+), 836 deletions(-) 9892 9893commit 9b315db2d5e74700f3dc0755eb86c27947c0b393 9894Author: Jia Tan <jiat0218@gmail.com> 9895Date: 2024-02-18 01:08:32 +0800 9896 9897 Translations: Update the Korean translation. 9898 9899 po/ko.po | 423 +++++++++++++++++++++++++++++++++------------------------------ 9900 1 file changed, 223 insertions(+), 200 deletions(-) 9901 9902commit 56246607dff177b0410d140fcca4a42c865723dc 9903Author: Lasse Collin <lasse.collin@tukaani.org> 9904Date: 2024-02-17 16:23:14 +0200 9905 9906 Build: Install translated lzmainfo man pages. 9907 9908 All other translated man pages were being installed but 9909 lzmainfo had been forgotten. 9910 9911 src/lzmainfo/Makefile.am | 26 ++++++++++++++++++++++++++ 9912 1 file changed, 26 insertions(+) 9913 9914commit f1d6b88aefcced538403c5c2606ba57065b16e70 9915Author: Lasse Collin <lasse.collin@tukaani.org> 9916Date: 2024-02-17 16:01:32 +0200 9917 9918 liblzma: Avoid implementation-defined behavior in the RISC-V filter. 9919 9920 GCC docs promise that it works and a few other compilers do 9921 too. Clang/LLVM is documented source code only but unsurprisingly 9922 it behaves the same as others on x86-64 at least. But the 9923 certainly-portable way is good enough here so use that. 9924 9925 src/liblzma/simple/riscv.c | 30 ++++++++++++++++++++++-------- 9926 1 file changed, 22 insertions(+), 8 deletions(-) 9927 9928commit 843ddc5f617b91ae132d6bab0f2f2d9c9fcd214a 9929Author: Lasse Collin <lasse.collin@tukaani.org> 9930Date: 2024-02-17 15:48:28 +0200 9931 9932 liblzma: Wrap a line exceeding 80 chars. 9933 9934 src/liblzma/rangecoder/range_decoder.h | 3 ++- 9935 1 file changed, 2 insertions(+), 1 deletion(-) 9936 9937commit e9053c907250c70d98b319d95fa54cb94fc76869 9938Author: Sebastian Andrzej Siewior <sebastian@breakpoint.cc> 9939Date: 2024-02-16 21:50:15 +0100 9940 9941 liblzma/rangecoder: Exclude x32 from the x86-64 optimisation. 9942 9943 The x32 port has a x86-64 ABI in term of all registers but uses only 9944 32bit pointer like x86-32. The assembly optimisation fails to compile on 9945 x32. Given the state of x32 I suggest to exclude it from the 9946 optimisation rather than trying to fix it. 9947 9948 Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc> 9949 9950 src/liblzma/rangecoder/range_decoder.h | 2 +- 9951 1 file changed, 1 insertion(+), 1 deletion(-) 9952 9953commit 3d198fb13b87f8803442e5799d465f7434a70555 9954Author: Jia Tan <jiat0218@gmail.com> 9955Date: 2024-02-17 21:05:07 +0800 9956 9957 Translations: Update the Spanish translation. 9958 9959 po/es.po | 427 +++++++++++++++++++++++++++++++++------------------------------ 9960 1 file changed, 226 insertions(+), 201 deletions(-) 9961 9962commit cf278bfe60a25b54b3786f06503bc61272970820 9963Author: Jia Tan <jiat0218@gmail.com> 9964Date: 2024-02-17 20:43:29 +0800 9965 9966 Translations: Update the Swedish translation. 9967 9968 po/sv.po | 434 +++++++++++++++++++++++++++++++++------------------------------ 9969 1 file changed, 230 insertions(+), 204 deletions(-) 9970 9971commit b0f1a41be50560cc6cb528e8e96b02b2067c52c2 9972Author: Jia Tan <jiat0218@gmail.com> 9973Date: 2024-02-17 20:41:38 +0800 9974 9975 Translations: Update the Polish translation. 9976 9977 po/pl.po | 424 +++++++++++++++++++++++++++++++++------------------------------ 9978 1 file changed, 224 insertions(+), 200 deletions(-) 9979 9980commit d74ed48b30c631b6a4c7e7858b06828293bf8520 9981Author: Jia Tan <jiat0218@gmail.com> 9982Date: 2024-02-17 20:41:02 +0800 9983 9984 Translations: Update the Ukrainian translation. 9985 9986 po/uk.po | 2 +- 9987 1 file changed, 1 insertion(+), 1 deletion(-) 9988 9989commit 711e22d5c5f3bac39ac904efb3ede874a66e2045 9990Author: Lasse Collin <lasse.collin@tukaani.org> 9991Date: 2024-02-16 17:53:34 +0200 9992 9993 Translations: Use the same sentence in xz.pot-header that the TP uses. 9994 9995 po/xz.pot-header | 2 +- 9996 1 file changed, 1 insertion(+), 1 deletion(-) 9997 9998commit fb5f6aaf18584672d0fee5dbe41fd30fc6bf5422 9999Author: Jia Tan <jiat0218@gmail.com> 10000Date: 2024-02-16 22:53:46 +0800 10001 10002 Fix typos discovered by codespell. 10003 10004 AUTHORS | 2 +- 10005 NEWS | 2 +- 10006 src/liblzma/rangecoder/range_decoder.h | 4 ++-- 10007 3 files changed, 4 insertions(+), 4 deletions(-) 10008 10009commit c64723bbb094e29b4edd98f6fcce866e1b569b42 10010Author: Jia Tan <jiat0218@gmail.com> 10011Date: 2024-02-16 22:52:41 +0800 10012 10013 Translations: Update the Ukrainian man page translations. 10014 10015 po4a/uk.po | 1710 +++++++++++++++++++++++++++++++----------------------------- 10016 1 file changed, 873 insertions(+), 837 deletions(-) 10017 10018commit 2895195ed0f68b245c7bd568c126ba6e685fa1d6 10019Author: Jia Tan <jiat0218@gmail.com> 10020Date: 2024-02-16 22:51:04 +0800 10021 10022 Translations: Update the Ukrainian translation. 10023 10024 po/uk.po | 466 ++++++++++++++++++++++++++++++--------------------------------- 10025 1 file changed, 225 insertions(+), 241 deletions(-) 10026 10027commit 4c20781f4c8f04879b64d631a4f44b4909147bde 10028Author: Lasse Collin <lasse.collin@tukaani.org> 10029Date: 2024-02-15 22:32:52 +0200 10030 10031 Translations: Omit the generic copyright line from man page headers. 10032 10033 po4a/update-po | 1 + 10034 1 file changed, 1 insertion(+) 10035 10036commit 4323bc3e0c1e1d2037d5e670a3bf6633e8a3031e 10037Author: Jia Tan <jiat0218@gmail.com> 10038Date: 2024-02-15 22:26:43 +0800 10039 10040 Update m4/.gitignore. 10041 10042 m4/.gitignore | 1 + 10043 1 file changed, 1 insertion(+) 10044 10045commit 5394a1665b7a108a54cb8b4ef3ebe59d3dbcca3a 10046Author: Lasse Collin <lasse.collin@tukaani.org> 10047Date: 2024-02-14 21:11:49 +0200 10048 10049 Tests: tuktest.h: Treat Clang separately from GCC. 10050 10051 Don't assume that Clang defines __GNUC__ as the extensions 10052 are available in clang-cl as well (and possibly in some other 10053 Clang variants?). 10054 10055 tests/tuktest.h | 6 +++--- 10056 1 file changed, 3 insertions(+), 3 deletions(-) 10057 10058commit cce7330b9f23485a0879422e0c3395a7065439ac 10059Author: Lasse Collin <lasse.collin@tukaani.org> 10060Date: 2024-02-14 21:11:03 +0200 10061 10062 Tests: tuktest.h: Add a missing word to a comment. 10063 10064 tests/tuktest.h | 4 ++-- 10065 1 file changed, 2 insertions(+), 2 deletions(-) 10066 10067commit 5dd8fc9452a3373cedc27379067ce638f992c741 10068Author: Lasse Collin <lasse.collin@tukaani.org> 10069Date: 2024-02-14 21:10:10 +0200 10070 10071 Tests: tuktest.h: Fix the comment about STest. 10072 10073 tests/tuktest.h | 3 ++- 10074 1 file changed, 2 insertions(+), 1 deletion(-) 10075 10076commit 6f1790254a03c5edf0f2976f773220f070450acd 10077Author: Jia Tan <jiat0218@gmail.com> 10078Date: 2024-02-15 01:53:40 +0800 10079 10080 Bump version for 5.5.2beta. 10081 10082 src/liblzma/api/lzma/version.h | 4 ++-- 10083 src/liblzma/liblzma_generic.map | 2 +- 10084 src/liblzma/liblzma_linux.map | 2 +- 10085 3 files changed, 4 insertions(+), 4 deletions(-) 10086 10087commit 924fdeedf48113fb1e0646d86bd89a356d21a055 10088Author: Lasse Collin <lasse.collin@tukaani.org> 10089Date: 2024-02-14 19:46:11 +0200 10090 10091 liblzma: Fix validate_map.sh. 10092 10093 Adding the SPDX license identifier changed the line numbers. 10094 10095 src/liblzma/validate_map.sh | 2 +- 10096 1 file changed, 1 insertion(+), 1 deletion(-) 10097 10098commit 22140a2df6161b0110e6b4afa5ea0a07c5b60b01 10099Author: Lasse Collin <lasse.collin@tukaani.org> 10100Date: 2024-02-14 19:38:34 +0200 10101 10102 Build: Start the generated ChangeLog from around 5.4.0 instead of 5.2.0. 10103 10104 Makefile.am | 2 +- 10105 1 file changed, 1 insertion(+), 1 deletion(-) 10106 10107commit 0b8cefa136c21d403a01b78517f4decb50172bdb 10108Author: Lasse Collin <lasse.collin@tukaani.org> 10109Date: 2024-02-14 19:27:46 +0200 10110 10111 Fixed NEWS for 5.5.2beta. 10112 10113 NEWS | 8 ++++++-- 10114 1 file changed, 6 insertions(+), 2 deletions(-) 10115 10116commit a4557bad96361d93ea171ed859ac5a696fca824f 10117Author: Lasse Collin <lasse.collin@tukaani.org> 10118Date: 2024-02-14 19:21:45 +0200 10119 10120 liblzma: Silence warnings in --enable-small build. 10121 10122 src/liblzma/lzma/lzma_decoder.c | 2 ++ 10123 src/liblzma/rangecoder/range_decoder.h | 1 + 10124 2 files changed, 3 insertions(+) 10125 10126commit 38edf473236d00b3e100dc4c4f0bf43a4993fed2 10127Author: Lasse Collin <lasse.collin@tukaani.org> 10128Date: 2024-02-14 19:15:58 +0200 10129 10130 Build: Install COPYING.0BSD as part of docs. 10131 10132 Makefile.am | 1 + 10133 1 file changed, 1 insertion(+) 10134 10135commit b74e10bd839bcdc239afb5300ffaee195f34c217 10136Author: Lasse Collin <lasse.collin@tukaani.org> 10137Date: 2024-02-14 19:14:05 +0200 10138 10139 Docs: List COPYING.0BSD in README. 10140 10141 README | 1 + 10142 1 file changed, 1 insertion(+) 10143 10144commit dfdb60ffe933a1f1497d300dbb4513ed17ec6f0e 10145Author: Lasse Collin <lasse.collin@tukaani.org> 10146Date: 2024-02-14 19:11:48 +0200 10147 10148 Docs: Include doc/examples/11_file_info.c in tarballs. 10149 10150 It was added in 2017 in c2e29f06a7d1e3ba242ac2fafc69f5d6e92f62cd 10151 but it never got into any release tarballs because it was 10152 forgotten to be added to Makefile.am. 10153 10154 Makefile.am | 1 + 10155 1 file changed, 1 insertion(+) 10156 10157commit 160b6862646d95dfdbd73ab7f1031ede0f54992d 10158Author: Lasse Collin <lasse.collin@tukaani.org> 10159Date: 2024-02-14 19:05:58 +0200 10160 10161 liblzma: Silence a warning. 10162 10163 src/liblzma/rangecoder/range_decoder.h | 2 +- 10164 1 file changed, 1 insertion(+), 1 deletion(-) 10165 10166commit eeedd4d0925ea417add04ceb42a6c0829244b50c 10167Author: Lasse Collin <lasse.collin@tukaani.org> 10168Date: 2024-02-14 18:32:27 +0200 10169 10170 Add NEWS for 5.5.2beta. 10171 10172 NEWS | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 10173 1 file changed, 60 insertions(+) 10174 10175commit 8af7db854f903068d72a9a0d21103cb0c5027fa8 10176Author: Lasse Collin <lasse.collin@tukaani.org> 10177Date: 2024-02-13 14:32:47 +0200 10178 10179 xz: Mention lzmainfo if trying to use 'lzma --list'. 10180 10181 This kind of fixes the problem reported here: 10182 https://bugs.launchpad.net/ubuntu/+source/xz-utils/+bug/1291020 10183 10184 src/xz/list.c | 16 ++++++++++++++-- 10185 1 file changed, 14 insertions(+), 2 deletions(-) 10186 10187commit 0668907ff736e4cd16738c10d39a2bc9e851aefb 10188Author: Lasse Collin <lasse.collin@tukaani.org> 10189Date: 2024-02-14 14:58:36 +0200 10190 10191 liblzma: Add comments. 10192 10193 src/liblzma/lzma/lzma_decoder.c | 9 +++++++++ 10194 src/liblzma/rangecoder/range_decoder.h | 11 +++++++++-- 10195 2 files changed, 18 insertions(+), 2 deletions(-) 10196 10197commit 109f1913d4824c8214d5bbd38ebebf62c37572da 10198Author: Lasse Collin <lasse.collin@tukaani.org> 10199Date: 2024-02-13 17:00:17 +0200 10200 10201 Scripts: Add lz4 support to xzgrep and xzdiff. 10202 10203 src/scripts/xzdiff.1 | 8 +++++--- 10204 src/scripts/xzdiff.in | 14 +++++++++----- 10205 src/scripts/xzgrep.1 | 6 ++++-- 10206 src/scripts/xzgrep.in | 1 + 10207 4 files changed, 19 insertions(+), 10 deletions(-) 10208 10209commit de55485cb23af56c5adbe3239b935c957ff8ac4f 10210Author: Lasse Collin <lasse.collin@tukaani.org> 10211Date: 2024-02-13 14:05:13 +0200 10212 10213 liblzma: Choose the range decoder variants using a bitmask macro. 10214 10215 src/liblzma/rangecoder/range_decoder.h | 64 ++++++++++++++++++++++++++++------ 10216 1 file changed, 53 insertions(+), 11 deletions(-) 10217 10218commit 0709c2b2d7c1d8f437b003f691880fd7810e5be5 10219Author: Lasse Collin <lasse.collin@tukaani.org> 10220Date: 2024-02-13 11:38:10 +0200 10221 10222 xz: Fix outdated threading related info on the man page. 10223 10224 src/xz/xz.1 | 22 ++++++++++++++-------- 10225 1 file changed, 14 insertions(+), 8 deletions(-) 10226 10227commit 3182a330c1512cc1f5c87b5c5a272578e60a5158 10228Author: Lasse Collin <lasse.collin@tukaani.org> 10229Date: 2024-02-12 17:09:10 +0200 10230 10231 liblzma: Range decoder: Add x86-64 inline assembly. 10232 10233 It's compatible with GCC and Clang. 10234 10235 src/liblzma/rangecoder/range_decoder.h | 491 +++++++++++++++++++++++++++++++++ 10236 1 file changed, 491 insertions(+) 10237 10238commit cba2edc991dffba7cd4891dbc1bd26cb950cf053 10239Author: Lasse Collin <lasse.collin@tukaani.org> 10240Date: 2024-02-12 17:09:10 +0200 10241 10242 liblzma: Range decoder: Add branchless C code. 10243 10244 It's used only for basic bittrees and fixed-size reverse bittree 10245 because those showed a clear benefit on x86-64 with GCC and Clang. 10246 The other methods were more mixed and thus are commented out but 10247 they should be tested on other archs. 10248 10249 src/liblzma/rangecoder/range_decoder.h | 76 ++++++++++++++++++++++++++++++++++ 10250 1 file changed, 76 insertions(+) 10251 10252commit e290a72d6dee71faf3a90c9678b2f730083666a7 10253Author: Lasse Collin <lasse.collin@tukaani.org> 10254Date: 2024-02-12 17:09:10 +0200 10255 10256 liblzma: Clarify a comment. 10257 10258 src/liblzma/lzma/lzma_decoder.c | 9 ++++++--- 10259 1 file changed, 6 insertions(+), 3 deletions(-) 10260 10261commit 5e04706b91ca90d6befd4da24a588a55e631d4a9 10262Author: Lasse Collin <lasse.collin@tukaani.org> 10263Date: 2024-02-12 17:09:10 +0200 10264 10265 liblzma: LZMA decoder: Optimize loop comparison. 10266 10267 But now it needs one more local variable. 10268 10269 src/liblzma/lzma/lzma_decoder.c | 5 ++--- 10270 src/liblzma/rangecoder/range_decoder.h | 10 +++++++++- 10271 2 files changed, 11 insertions(+), 4 deletions(-) 10272 10273commit 88276f9f2cb4871c7eb86952d93d07c1cf6caa66 10274Author: Lasse Collin <lasse.collin@tukaani.org> 10275Date: 2024-02-12 17:09:10 +0200 10276 10277 liblzma: Optimize literal_subcoder() macro slightly. 10278 10279 src/liblzma/lzma/lzma_common.h | 22 ++++++++++++---------- 10280 src/liblzma/lzma/lzma_decoder.c | 12 ++++++------ 10281 src/liblzma/lzma/lzma_encoder.c | 6 +++--- 10282 src/liblzma/lzma/lzma_encoder_optimum_normal.c | 2 +- 10283 src/liblzma/lzma/lzma_encoder_private.h | 4 ++-- 10284 5 files changed, 24 insertions(+), 22 deletions(-) 10285 10286commit 5938f6de4d8ec9656776cd69e78ddfd6c3ad84e5 10287Author: Lasse Collin <lasse.collin@tukaani.org> 10288Date: 2024-02-12 17:09:10 +0200 10289 10290 liblzma: LZ decoder: Add unlikely(). 10291 10292 src/liblzma/lz/lz_decoder.h | 2 +- 10293 1 file changed, 1 insertion(+), 1 deletion(-) 10294 10295commit 9c252e3ed086c6b72590b2531586c42596d4a9d9 10296Author: Lasse Collin <lasse.collin@tukaani.org> 10297Date: 2024-02-12 17:09:10 +0200 10298 10299 liblzma: LZ decoder: Remove a useless unlikely(). 10300 10301 src/liblzma/lz/lz_decoder.h | 2 +- 10302 1 file changed, 1 insertion(+), 1 deletion(-) 10303 10304commit f3872a59475456c5d365cad9f1c5be514cfa54b5 10305Author: Lasse Collin <lasse.collin@tukaani.org> 10306Date: 2024-02-12 17:09:10 +0200 10307 10308 liblzma: Optimize LZ decoder slightly. 10309 10310 Now extra buffer space is reserved so that repeating bytes for 10311 any single match will never need to copy from two places (both 10312 the beginning and the end of the buffer). This simplifies 10313 dict_repeat() and helps a little with speed. 10314 10315 This seems to reduce .lzma decompression time about 2 %, so 10316 with .xz and CRC it could be slightly less. The small things 10317 add up still. 10318 10319 src/liblzma/lz/lz_decoder.c | 43 ++++++++++++----- 10320 src/liblzma/lz/lz_decoder.h | 101 +++++++++++++++++++++------------------- 10321 src/liblzma/lzma/lzma_decoder.c | 4 +- 10322 3 files changed, 88 insertions(+), 60 deletions(-) 10323 10324commit eb518446e578acf079abae5f1ce28db7b6e59bc1 10325Author: Lasse Collin <lasse.collin@tukaani.org> 10326Date: 2024-02-12 17:09:10 +0200 10327 10328 liblzma: LZMA decoder: Get rid of next_state[]. 10329 10330 It's not completely obvious if this is better in the decoder. 10331 It should be good if compiler can avoid creating a branch 10332 (like using CMOV on x86). 10333 10334 This also makes lzma_encoder.c use the new macros. 10335 10336 src/liblzma/lzma/lzma_common.h | 14 ++++++++++++++ 10337 src/liblzma/lzma/lzma_decoder.c | 30 ++++++++---------------------- 10338 src/liblzma/lzma/lzma_encoder.c | 4 ++-- 10339 3 files changed, 24 insertions(+), 24 deletions(-) 10340 10341commit e0c0ee475c0800c08291ae45e0d66aa00d5ce604 10342Author: Lasse Collin <lasse.collin@tukaani.org> 10343Date: 2024-02-12 17:09:10 +0200 10344 10345 liblzma: LZMA decoder improvements. 10346 10347 This adds macros for bittree decoding which prepares the code 10348 for alternative C versions and inline assembly. 10349 10350 src/liblzma/lzma/lzma_decoder.c | 264 ++++++++++----------------------- 10351 src/liblzma/rangecoder/range_common.h | 4 + 10352 src/liblzma/rangecoder/range_decoder.h | 142 ++++++++++++++++-- 10353 3 files changed, 210 insertions(+), 200 deletions(-) 10354 10355commit de5c5e417645ad8906ef914bc059d08c1462fc29 10356Author: Jia Tan <jiat0218@gmail.com> 10357Date: 2024-02-12 17:09:10 +0200 10358 10359 liblzma: Creates Non-resumable and Resumable modes for lzma_decoder. 10360 10361 The new decoder resumes the first decoder loop in the Resumable mode. 10362 Then, the code executes in Non-resumable mode until it detects that it 10363 cannot guarantee to have enough input/output to decode another symbol. 10364 10365 The Resumable mode is how the decoder has always worked. Before decoding 10366 every input bit, it checks if there is enough space and will save its 10367 location to be resumed later. When the decoder has more input/output, 10368 it jumps back to the correct sequence in the Resumable mode code. 10369 10370 When the input/output buffers are large, the Resumable mode is much 10371 slower than the Non-resumable because it has more branches and is harder 10372 for the compiler to optimize since it is in a large switch block. 10373 10374 Early benchmarking shows significant time improvement (8-10% on gcc and 10375 clang x86) by using the Non-resumable code as much as possible. 10376 10377 src/liblzma/lz/lz_decoder.h | 14 +- 10378 src/liblzma/lzma/lzma_decoder.c | 720 ++++++++++++++++++++++++++++------------ 10379 2 files changed, 521 insertions(+), 213 deletions(-) 10380 10381commit e446ab7a18abfde18f8d1cf02a914df72b1370e3 10382Author: Jia Tan <jiat0218@gmail.com> 10383Date: 2024-02-12 17:09:10 +0200 10384 10385 liblzma: Creates separate "safe" range decoder mode. 10386 10387 The new "safe" range decoder mode is the same as old range decoder, but 10388 now the default behavior of the range decoder will not check if there is 10389 enough input or output to complete the operation. When the buffers are 10390 close to fully consumed, the "safe" operations must be used instead. This 10391 will improve speed because it will reduce the number of branches needed 10392 for most of the range decoder operations. 10393 10394 src/liblzma/lzma/lzma_decoder.c | 108 ++++++++------------------------- 10395 src/liblzma/rangecoder/range_decoder.h | 77 +++++++++++++++++------ 10396 2 files changed, 82 insertions(+), 103 deletions(-) 10397 10398commit 7f6d9ca329ff3e01d4b0be7366eb4f5c93da41b9 10399Author: Lasse Collin <lasse.collin@tukaani.org> 10400Date: 2024-02-12 17:09:10 +0200 10401 10402 doxygen/footer.html: Add missing closing tags and don't open a new tab. 10403 10404 The footer template from Doxygen has the closing </body> </html> 10405 as Doxygen doesn't add them otherwise. 10406 10407 target="_blank" was omitted as it's not useful here but 10408 it can be slightly annoying as one cannot just go back 10409 in the browser history. 10410 10411 Since the footer links to the license file in the same 10412 directory and not to CC website, the rel attributes 10413 can be omitted. 10414 10415 doxygen/footer.html | 6 ++++-- 10416 1 file changed, 4 insertions(+), 2 deletions(-) 10417 10418commit 26d1527d34d52b0f5d632d4fb636fb33d0867e92 10419Author: Lasse Collin <lasse.collin@tukaani.org> 10420Date: 2024-02-13 13:19:10 +0200 10421 10422 Tweak the expressions in AUTHORS. 10423 10424 AUTHORS | 31 +++++++++++++++++++++++-------- 10425 1 file changed, 23 insertions(+), 8 deletions(-) 10426 10427commit d231d56580175fa040fdd3c6207a58243ce6217b 10428Author: Lasse Collin <lasse.collin@tukaani.org> 10429Date: 2024-02-13 13:07:33 +0200 10430 10431 Translations: Add the man page translators into man page header comment. 10432 10433 It looked odd to only have the original English authors listed 10434 in the header comments of the translated files. 10435 10436 po4a/.gitignore | 1 + 10437 po4a/po4a.conf | 14 +++++++------- 10438 po4a/update-po | 18 ++++++++++++++++++ 10439 3 files changed, 26 insertions(+), 7 deletions(-) 10440 10441commit 6d35fcb936474fca1acaebfd9502c097b6fde88e 10442Author: Lasse Collin <lasse.collin@tukaani.org> 10443Date: 2024-02-12 17:09:10 +0200 10444 10445 Translations: Translate also messages of lzmainfo. 10446 10447 lzmainfo has had translation support since 2009 at least but 10448 it was never added to po/POTFILES.in so the messages weren't 10449 translated. It's a very rarely needed tool so it's not too bad. 10450 10451 This also adds src/xz/mytime.c to po/POTFILES.in although there 10452 are no translatable strings. It's simpler this way so that it 10453 won't be forgotten if strings were ever added to that file. 10454 10455 po/POTFILES.in | 2 ++ 10456 1 file changed, 2 insertions(+) 10457 10458commit a9f369dd54b05f9ac4e00ead9d765d04fc259868 10459Author: Lasse Collin <lasse.collin@tukaani.org> 10460Date: 2024-02-12 17:09:10 +0200 10461 10462 Translations: Add custom .pot header with SPDX license identifier. 10463 10464 The same is used for both po/xz.pot and po4a/xz-man.pot. 10465 10466 Makefile.am | 1 + 10467 po/xz.pot-header | 7 +++++++ 10468 po4a/update-po | 8 ++++++++ 10469 3 files changed, 16 insertions(+) 10470 10471commit 469cd6653bb96e83c5cf1031c204d34566b15f44 10472Author: Lasse Collin <lasse.collin@tukaani.org> 10473Date: 2024-02-12 17:09:10 +0200 10474 10475 Translations: po4a/update-po: Add copyright notice to xz-man.pot. 10476 10477 All man pages are under 0BSD now so this is simple now. 10478 10479 po4a/update-po | 2 +- 10480 1 file changed, 1 insertion(+), 1 deletion(-) 10481 10482commit 28ce45e38fbed4b5f54f2013e38dab47d22bf699 10483Author: Lasse Collin <lasse.collin@tukaani.org> 10484Date: 2024-02-12 17:09:10 +0200 10485 10486 Update COPYING about the man pages of the scripts. 10487 10488 COPYING | 6 +++--- 10489 1 file changed, 3 insertions(+), 3 deletions(-) 10490 10491commit e48287bf51afd5184ea74de1dcade9e153f873f7 10492Author: Lasse Collin <lasse.collin@tukaani.org> 10493Date: 2024-02-12 17:09:10 +0200 10494 10495 xzdiff, xzgrep, and xzmore: Rewrite the man pages. 10496 10497 The main reason is a kind of silly one: 10498 10499 xz-man.pot contains strings from all man pages in XZ Utils. 10500 The man pages of xzdiff, xzgrep, and xzmore were under GPLv2 10501 and the rest under 0BSD. Thus xz-man.pot contained strings 10502 under two licences. po4a creates the translated man pages 10503 from the combined 0BSD+GPLv2 xz-man.pot. 10504 10505 I haven't liked this mixing in xz-man.pot but the 10506 Translation Project requires that all man pages must be 10507 in the same .pot file. So a separate xz-man-gpl.pot 10508 wasn't an option. 10509 10510 Since these man pages are short, rewriting them was quick enough. 10511 Now xz-man.pot is entirely under 0BSD and marking the per-file 10512 licenses is simpler. 10513 10514 As a bonus, some wording hopefully is now slightly better 10515 although it's perhaps a matter of taste. 10516 10517 NOTE: In xzgrep.1, the EXIT STATUS section was written by me 10518 in the commit d796b6d7fdb8b7238b277056cf9146cce25db604 so that's 10519 why that section could be taken as is from the old xzgrep.1. 10520 10521 src/scripts/xzdiff.1 | 94 ++++++++++++++++++++++++----------------- 10522 src/scripts/xzgrep.1 | 116 ++++++++++++++++++++++++++++++++------------------- 10523 src/scripts/xzmore.1 | 79 ++++++++++++++++++++--------------- 10524 3 files changed, 173 insertions(+), 116 deletions(-) 10525 10526commit 3e551b111b8ae8150f1a1040364dbafc034f22be 10527Author: Lasse Collin <lasse.collin@tukaani.org> 10528Date: 2024-02-12 17:09:10 +0200 10529 10530 xzless: Update man page slightly. 10531 10532 The xz tool can decompress three file formats and xzless 10533 has always supported uncompressed files too. 10534 10535 src/scripts/xzless.1 | 8 ++++---- 10536 1 file changed, 4 insertions(+), 4 deletions(-) 10537 10538commit 40f36da2262d13d6e1ba8449caa855512ae626d7 10539Author: Lasse Collin <lasse.collin@tukaani.org> 10540Date: 2024-02-12 17:09:10 +0200 10541 10542 Translations: Change po/Makevars to add a copyright notice to po/xz.pot. 10543 10544 po/Makevars | 4 ++-- 10545 1 file changed, 2 insertions(+), 2 deletions(-) 10546 10547commit 24192854e2ea5c06997431a98bda3c36c5da1497 10548Author: Lasse Collin <lasse.collin@tukaani.org> 10549Date: 2024-02-12 17:09:10 +0200 10550 10551 Translations: Update po/Makevars to use the template from gettext 0.22.4. 10552 10553 Also add SPDX license identifier now that there is a known license. 10554 10555 po/Makevars | 51 ++++++++++++++++++++++++++++++++++++++++++++++----- 10556 1 file changed, 46 insertions(+), 5 deletions(-) 10557 10558commit b94154957370116480b43bcabca25fc52deb9853 10559Author: Lasse Collin <lasse.collin@tukaani.org> 10560Date: 2024-02-12 17:09:10 +0200 10561 10562 liblzma: Include the SPDX license identifier 0BSD to generated files. 10563 10564 Perhaps the generated files aren't even copyrightable but 10565 using the same license for them as for the rest of the liblzma 10566 keeps things more consistent for tools that look for license info. 10567 10568 src/liblzma/check/crc32_table_be.h | 4 +++- 10569 src/liblzma/check/crc32_table_le.h | 4 +++- 10570 src/liblzma/check/crc32_tablegen.c | 16 ++++++++++------ 10571 src/liblzma/check/crc64_table_be.h | 4 +++- 10572 src/liblzma/check/crc64_table_le.h | 4 +++- 10573 src/liblzma/check/crc64_tablegen.c | 8 +++++--- 10574 src/liblzma/lz/lz_encoder_hash_table.h | 4 +++- 10575 src/liblzma/lzma/fastpos_table.c | 4 +++- 10576 src/liblzma/lzma/fastpos_tablegen.c | 12 +++++++----- 10577 src/liblzma/rangecoder/price_table.c | 4 +++- 10578 src/liblzma/rangecoder/price_tablegen.c | 12 +++++++----- 10579 11 files changed, 50 insertions(+), 26 deletions(-) 10580 10581commit 8e4ec794836bc1701d8c9bd5e347b8ce8cc5bbb4 10582Author: Lasse Collin <lasse.collin@tukaani.org> 10583Date: 2024-02-12 17:09:10 +0200 10584 10585 liblzma: Fix compilation of price_tablegen.c. 10586 10587 It is built and run only manually so this didn't matter 10588 unless one wanted to regenerate the price_table.c. 10589 10590 src/liblzma/rangecoder/price_tablegen.c | 5 +++++ 10591 src/liblzma/rangecoder/range_common.h | 5 ++++- 10592 2 files changed, 9 insertions(+), 1 deletion(-) 10593 10594commit e99bff3ffbcdf2634fd5bd13887627ec7dbfecaf 10595Author: Lasse Collin <lasse.collin@tukaani.org> 10596Date: 2024-02-12 17:09:10 +0200 10597 10598 Add SPDX license identifiers to GPL, LGPL, and FSFULLR files. 10599 10600 extra/scanlzma/scanlzma.c | 2 ++ 10601 lib/Makefile.am | 2 ++ 10602 lib/getopt-cdefs.h | 2 ++ 10603 lib/getopt-core.h | 2 ++ 10604 lib/getopt-ext.h | 2 ++ 10605 lib/getopt-pfx-core.h | 2 ++ 10606 lib/getopt-pfx-ext.h | 2 ++ 10607 lib/getopt.c | 2 ++ 10608 lib/getopt.in.h | 2 ++ 10609 lib/getopt1.c | 2 ++ 10610 lib/getopt_int.h | 2 ++ 10611 m4/ax_pthread.m4 | 2 ++ 10612 m4/getopt.m4 | 2 ++ 10613 m4/posix-shell.m4 | 2 ++ 10614 m4/visibility.m4 | 2 ++ 10615 src/scripts/xzdiff.1 | 3 +-- 10616 src/scripts/xzdiff.in | 1 + 10617 src/scripts/xzgrep.1 | 3 +-- 10618 src/scripts/xzgrep.in | 1 + 10619 src/scripts/xzless.in | 1 + 10620 src/scripts/xzmore.1 | 3 +-- 10621 src/scripts/xzmore.in | 1 + 10622 22 files changed, 37 insertions(+), 6 deletions(-) 10623 10624commit 22af94128b89a131f5e58ae69bee5e50227c15da 10625Author: Lasse Collin <lasse.collin@tukaani.org> 10626Date: 2024-02-12 17:09:10 +0200 10627 10628 Add SPDX license identifier into 0BSD source code files. 10629 10630 .github/workflows/ci.yml | 2 ++ 10631 .github/workflows/windows-ci.yml | 2 ++ 10632 CMakeLists.txt | 2 ++ 10633 Makefile.am | 3 +-- 10634 autogen.sh | 1 + 10635 build-aux/ci_build.sh | 3 ++- 10636 build-aux/manconv.sh | 3 ++- 10637 build-aux/version.sh | 3 ++- 10638 cmake/remove-ordinals.cmake | 2 ++ 10639 cmake/tuklib_common.cmake | 4 ++++ 10640 cmake/tuklib_cpucores.cmake | 4 ++++ 10641 cmake/tuklib_integer.cmake | 4 ++++ 10642 cmake/tuklib_large_file_support.cmake | 4 ++++ 10643 cmake/tuklib_mbstr.cmake | 4 ++++ 10644 cmake/tuklib_physmem.cmake | 4 ++++ 10645 cmake/tuklib_progname.cmake | 4 ++++ 10646 configure.ac | 4 +++- 10647 debug/Makefile.am | 3 +-- 10648 debug/crc32.c | 2 ++ 10649 debug/full_flush.c | 2 ++ 10650 debug/hex2bin.c | 2 ++ 10651 debug/known_sizes.c | 2 ++ 10652 debug/memusage.c | 2 ++ 10653 debug/repeat.c | 2 ++ 10654 debug/sync_flush.c | 2 ++ 10655 debug/translation.bash | 1 + 10656 doc/examples/01_compress_easy.c | 2 ++ 10657 doc/examples/02_decompress.c | 2 ++ 10658 doc/examples/03_compress_custom.c | 2 ++ 10659 doc/examples/04_compress_easy_mt.c | 2 ++ 10660 doc/examples/11_file_info.c | 2 ++ 10661 doc/examples/Makefile | 3 +-- 10662 dos/Makefile | 2 ++ 10663 dos/config.h | 2 ++ 10664 doxygen/update-doxygen | 3 ++- 10665 extra/7z2lzma/7z2lzma.bash | 3 ++- 10666 m4/tuklib_common.m4 | 8 ++++++-- 10667 m4/tuklib_cpucores.m4 | 8 ++++++-- 10668 m4/tuklib_integer.m4 | 8 ++++++-- 10669 m4/tuklib_mbstr.m4 | 8 ++++++-- 10670 m4/tuklib_physmem.m4 | 8 ++++++-- 10671 m4/tuklib_progname.m4 | 8 ++++++-- 10672 po/POTFILES.in | 2 ++ 10673 po4a/po4a.conf | 2 ++ 10674 po4a/update-po | 3 ++- 10675 src/Makefile.am | 3 +-- 10676 src/common/common_w32res.rc | 2 ++ 10677 src/common/mythread.h | 2 ++ 10678 src/common/sysdefs.h | 2 ++ 10679 src/common/tuklib_common.h | 2 ++ 10680 src/common/tuklib_config.h | 2 ++ 10681 src/common/tuklib_cpucores.c | 2 ++ 10682 src/common/tuklib_cpucores.h | 2 ++ 10683 src/common/tuklib_exit.c | 2 ++ 10684 src/common/tuklib_exit.h | 2 ++ 10685 src/common/tuklib_gettext.h | 2 ++ 10686 src/common/tuklib_integer.h | 2 ++ 10687 src/common/tuklib_mbstr.h | 2 ++ 10688 src/common/tuklib_mbstr_fw.c | 2 ++ 10689 src/common/tuklib_mbstr_width.c | 2 ++ 10690 src/common/tuklib_open_stdxxx.c | 2 ++ 10691 src/common/tuklib_open_stdxxx.h | 2 ++ 10692 src/common/tuklib_physmem.c | 2 ++ 10693 src/common/tuklib_physmem.h | 2 ++ 10694 src/common/tuklib_progname.c | 2 ++ 10695 src/common/tuklib_progname.h | 2 ++ 10696 src/liblzma/Makefile.am | 3 +-- 10697 src/liblzma/api/Makefile.am | 3 +-- 10698 src/liblzma/api/lzma.h | 2 ++ 10699 src/liblzma/api/lzma/base.h | 2 ++ 10700 src/liblzma/api/lzma/bcj.h | 2 ++ 10701 src/liblzma/api/lzma/block.h | 2 ++ 10702 src/liblzma/api/lzma/check.h | 2 ++ 10703 src/liblzma/api/lzma/container.h | 2 ++ 10704 src/liblzma/api/lzma/delta.h | 2 ++ 10705 src/liblzma/api/lzma/filter.h | 2 ++ 10706 src/liblzma/api/lzma/hardware.h | 2 ++ 10707 src/liblzma/api/lzma/index.h | 2 ++ 10708 src/liblzma/api/lzma/index_hash.h | 2 ++ 10709 src/liblzma/api/lzma/lzma12.h | 2 ++ 10710 src/liblzma/api/lzma/stream_flags.h | 2 ++ 10711 src/liblzma/api/lzma/version.h | 2 ++ 10712 src/liblzma/api/lzma/vli.h | 2 ++ 10713 src/liblzma/check/Makefile.inc | 4 ++-- 10714 src/liblzma/check/check.c | 2 ++ 10715 src/liblzma/check/check.h | 2 ++ 10716 src/liblzma/check/crc32_arm64.h | 2 ++ 10717 src/liblzma/check/crc32_fast.c | 2 ++ 10718 src/liblzma/check/crc32_small.c | 2 ++ 10719 src/liblzma/check/crc32_table.c | 2 ++ 10720 src/liblzma/check/crc32_tablegen.c | 2 ++ 10721 src/liblzma/check/crc32_x86.S | 2 ++ 10722 src/liblzma/check/crc64_fast.c | 2 ++ 10723 src/liblzma/check/crc64_small.c | 2 ++ 10724 src/liblzma/check/crc64_table.c | 2 ++ 10725 src/liblzma/check/crc64_tablegen.c | 2 ++ 10726 src/liblzma/check/crc64_x86.S | 2 ++ 10727 src/liblzma/check/crc_common.h | 2 ++ 10728 src/liblzma/check/crc_x86_clmul.h | 2 ++ 10729 src/liblzma/check/sha256.c | 2 ++ 10730 src/liblzma/common/Makefile.inc | 3 +-- 10731 src/liblzma/common/alone_decoder.c | 2 ++ 10732 src/liblzma/common/alone_decoder.h | 2 ++ 10733 src/liblzma/common/alone_encoder.c | 2 ++ 10734 src/liblzma/common/auto_decoder.c | 2 ++ 10735 src/liblzma/common/block_buffer_decoder.c | 2 ++ 10736 src/liblzma/common/block_buffer_encoder.c | 2 ++ 10737 src/liblzma/common/block_buffer_encoder.h | 2 ++ 10738 src/liblzma/common/block_decoder.c | 2 ++ 10739 src/liblzma/common/block_decoder.h | 2 ++ 10740 src/liblzma/common/block_encoder.c | 2 ++ 10741 src/liblzma/common/block_encoder.h | 2 ++ 10742 src/liblzma/common/block_header_decoder.c | 2 ++ 10743 src/liblzma/common/block_header_encoder.c | 2 ++ 10744 src/liblzma/common/block_util.c | 2 ++ 10745 src/liblzma/common/common.c | 2 ++ 10746 src/liblzma/common/common.h | 2 ++ 10747 src/liblzma/common/easy_buffer_encoder.c | 2 ++ 10748 src/liblzma/common/easy_decoder_memusage.c | 2 ++ 10749 src/liblzma/common/easy_encoder.c | 2 ++ 10750 src/liblzma/common/easy_encoder_memusage.c | 2 ++ 10751 src/liblzma/common/easy_preset.c | 2 ++ 10752 src/liblzma/common/easy_preset.h | 2 ++ 10753 src/liblzma/common/file_info.c | 2 ++ 10754 src/liblzma/common/filter_buffer_decoder.c | 2 ++ 10755 src/liblzma/common/filter_buffer_encoder.c | 2 ++ 10756 src/liblzma/common/filter_common.c | 2 ++ 10757 src/liblzma/common/filter_common.h | 2 ++ 10758 src/liblzma/common/filter_decoder.c | 2 ++ 10759 src/liblzma/common/filter_decoder.h | 2 ++ 10760 src/liblzma/common/filter_encoder.c | 2 ++ 10761 src/liblzma/common/filter_encoder.h | 2 ++ 10762 src/liblzma/common/filter_flags_decoder.c | 2 ++ 10763 src/liblzma/common/filter_flags_encoder.c | 2 ++ 10764 src/liblzma/common/hardware_cputhreads.c | 2 ++ 10765 src/liblzma/common/hardware_physmem.c | 2 ++ 10766 src/liblzma/common/index.c | 2 ++ 10767 src/liblzma/common/index.h | 2 ++ 10768 src/liblzma/common/index_decoder.c | 2 ++ 10769 src/liblzma/common/index_decoder.h | 2 ++ 10770 src/liblzma/common/index_encoder.c | 2 ++ 10771 src/liblzma/common/index_encoder.h | 2 ++ 10772 src/liblzma/common/index_hash.c | 2 ++ 10773 src/liblzma/common/lzip_decoder.c | 2 ++ 10774 src/liblzma/common/lzip_decoder.h | 2 ++ 10775 src/liblzma/common/memcmplen.h | 2 ++ 10776 src/liblzma/common/microlzma_decoder.c | 2 ++ 10777 src/liblzma/common/microlzma_encoder.c | 2 ++ 10778 src/liblzma/common/outqueue.c | 2 ++ 10779 src/liblzma/common/outqueue.h | 2 ++ 10780 src/liblzma/common/stream_buffer_decoder.c | 2 ++ 10781 src/liblzma/common/stream_buffer_encoder.c | 2 ++ 10782 src/liblzma/common/stream_decoder.c | 2 ++ 10783 src/liblzma/common/stream_decoder.h | 2 ++ 10784 src/liblzma/common/stream_decoder_mt.c | 2 ++ 10785 src/liblzma/common/stream_encoder.c | 2 ++ 10786 src/liblzma/common/stream_encoder_mt.c | 2 ++ 10787 src/liblzma/common/stream_flags_common.c | 2 ++ 10788 src/liblzma/common/stream_flags_common.h | 2 ++ 10789 src/liblzma/common/stream_flags_decoder.c | 2 ++ 10790 src/liblzma/common/stream_flags_encoder.c | 2 ++ 10791 src/liblzma/common/string_conversion.c | 2 ++ 10792 src/liblzma/common/vli_decoder.c | 2 ++ 10793 src/liblzma/common/vli_encoder.c | 2 ++ 10794 src/liblzma/common/vli_size.c | 2 ++ 10795 src/liblzma/delta/Makefile.inc | 3 +-- 10796 src/liblzma/delta/delta_common.c | 2 ++ 10797 src/liblzma/delta/delta_common.h | 2 ++ 10798 src/liblzma/delta/delta_decoder.c | 2 ++ 10799 src/liblzma/delta/delta_decoder.h | 2 ++ 10800 src/liblzma/delta/delta_encoder.c | 2 ++ 10801 src/liblzma/delta/delta_encoder.h | 2 ++ 10802 src/liblzma/delta/delta_private.h | 2 ++ 10803 src/liblzma/liblzma.pc.in | 3 +-- 10804 src/liblzma/liblzma_generic.map | 2 ++ 10805 src/liblzma/liblzma_linux.map | 2 ++ 10806 src/liblzma/liblzma_w32res.rc | 2 ++ 10807 src/liblzma/lz/Makefile.inc | 3 +-- 10808 src/liblzma/lz/lz_decoder.c | 2 ++ 10809 src/liblzma/lz/lz_decoder.h | 2 ++ 10810 src/liblzma/lz/lz_encoder.c | 2 ++ 10811 src/liblzma/lz/lz_encoder.h | 2 ++ 10812 src/liblzma/lz/lz_encoder_hash.h | 2 ++ 10813 src/liblzma/lz/lz_encoder_mf.c | 2 ++ 10814 src/liblzma/lzma/Makefile.inc | 3 +-- 10815 src/liblzma/lzma/fastpos.h | 2 ++ 10816 src/liblzma/lzma/fastpos_tablegen.c | 2 ++ 10817 src/liblzma/lzma/lzma2_decoder.c | 2 ++ 10818 src/liblzma/lzma/lzma2_decoder.h | 2 ++ 10819 src/liblzma/lzma/lzma2_encoder.c | 2 ++ 10820 src/liblzma/lzma/lzma2_encoder.h | 2 ++ 10821 src/liblzma/lzma/lzma_common.h | 2 ++ 10822 src/liblzma/lzma/lzma_decoder.c | 2 ++ 10823 src/liblzma/lzma/lzma_decoder.h | 2 ++ 10824 src/liblzma/lzma/lzma_encoder.c | 2 ++ 10825 src/liblzma/lzma/lzma_encoder.h | 2 ++ 10826 src/liblzma/lzma/lzma_encoder_optimum_fast.c | 2 ++ 10827 src/liblzma/lzma/lzma_encoder_optimum_normal.c | 2 ++ 10828 src/liblzma/lzma/lzma_encoder_presets.c | 2 ++ 10829 src/liblzma/lzma/lzma_encoder_private.h | 2 ++ 10830 src/liblzma/rangecoder/Makefile.inc | 3 +-- 10831 src/liblzma/rangecoder/price.h | 2 ++ 10832 src/liblzma/rangecoder/price_tablegen.c | 2 ++ 10833 src/liblzma/rangecoder/range_common.h | 2 ++ 10834 src/liblzma/rangecoder/range_decoder.h | 2 ++ 10835 src/liblzma/rangecoder/range_encoder.h | 2 ++ 10836 src/liblzma/simple/Makefile.inc | 3 +-- 10837 src/liblzma/simple/arm.c | 2 ++ 10838 src/liblzma/simple/arm64.c | 2 ++ 10839 src/liblzma/simple/armthumb.c | 2 ++ 10840 src/liblzma/simple/ia64.c | 2 ++ 10841 src/liblzma/simple/powerpc.c | 2 ++ 10842 src/liblzma/simple/riscv.c | 2 ++ 10843 src/liblzma/simple/simple_coder.c | 2 ++ 10844 src/liblzma/simple/simple_coder.h | 2 ++ 10845 src/liblzma/simple/simple_decoder.c | 2 ++ 10846 src/liblzma/simple/simple_decoder.h | 2 ++ 10847 src/liblzma/simple/simple_encoder.c | 2 ++ 10848 src/liblzma/simple/simple_encoder.h | 2 ++ 10849 src/liblzma/simple/simple_private.h | 2 ++ 10850 src/liblzma/simple/sparc.c | 2 ++ 10851 src/liblzma/simple/x86.c | 2 ++ 10852 src/liblzma/validate_map.sh | 1 + 10853 src/lzmainfo/Makefile.am | 3 +-- 10854 src/lzmainfo/lzmainfo.c | 2 ++ 10855 src/lzmainfo/lzmainfo_w32res.rc | 2 ++ 10856 src/scripts/Makefile.am | 3 +-- 10857 src/xz/Makefile.am | 3 +-- 10858 src/xz/args.c | 2 ++ 10859 src/xz/args.h | 2 ++ 10860 src/xz/coder.c | 2 ++ 10861 src/xz/coder.h | 2 ++ 10862 src/xz/file_io.c | 2 ++ 10863 src/xz/file_io.h | 2 ++ 10864 src/xz/hardware.c | 2 ++ 10865 src/xz/hardware.h | 2 ++ 10866 src/xz/list.c | 2 ++ 10867 src/xz/list.h | 2 ++ 10868 src/xz/main.c | 2 ++ 10869 src/xz/main.h | 2 ++ 10870 src/xz/message.c | 2 ++ 10871 src/xz/message.h | 2 ++ 10872 src/xz/mytime.c | 2 ++ 10873 src/xz/mytime.h | 2 ++ 10874 src/xz/options.c | 2 ++ 10875 src/xz/options.h | 2 ++ 10876 src/xz/private.h | 2 ++ 10877 src/xz/signals.c | 2 ++ 10878 src/xz/signals.h | 2 ++ 10879 src/xz/suffix.c | 2 ++ 10880 src/xz/suffix.h | 2 ++ 10881 src/xz/util.c | 2 ++ 10882 src/xz/util.h | 2 ++ 10883 src/xz/xz_w32res.rc | 2 ++ 10884 src/xzdec/Makefile.am | 3 +-- 10885 src/xzdec/lzmadec_w32res.rc | 2 ++ 10886 src/xzdec/xzdec.c | 2 ++ 10887 src/xzdec/xzdec_w32res.rc | 2 ++ 10888 tests/Makefile.am | 3 +-- 10889 tests/bcj_test.c | 2 ++ 10890 tests/code_coverage.sh | 1 + 10891 tests/create_compress_files.c | 2 ++ 10892 tests/ossfuzz/fuzz_common.h | 2 ++ 10893 tests/ossfuzz/fuzz_decode_alone.c | 2 ++ 10894 tests/ossfuzz/fuzz_decode_stream.c | 2 ++ 10895 tests/ossfuzz/fuzz_encode_stream.c | 2 ++ 10896 tests/test_bcj_exact_size.c | 2 ++ 10897 tests/test_block_header.c | 2 ++ 10898 tests/test_check.c | 2 ++ 10899 tests/test_compress.sh | 1 + 10900 tests/test_compress_generated_abc | 1 + 10901 tests/test_compress_generated_random | 1 + 10902 tests/test_compress_generated_text | 1 + 10903 tests/test_compress_prepared_bcj_sparc | 1 + 10904 tests/test_compress_prepared_bcj_x86 | 1 + 10905 tests/test_files.sh | 1 + 10906 tests/test_filter_flags.c | 2 ++ 10907 tests/test_filter_str.c | 2 ++ 10908 tests/test_hardware.c | 2 ++ 10909 tests/test_index.c | 2 ++ 10910 tests/test_index_hash.c | 2 ++ 10911 tests/test_lzip_decoder.c | 2 ++ 10912 tests/test_memlimit.c | 2 ++ 10913 tests/test_scripts.sh | 1 + 10914 tests/test_stream_flags.c | 2 ++ 10915 tests/test_suffix.sh | 1 + 10916 tests/test_vli.c | 2 ++ 10917 tests/tests.h | 2 ++ 10918 tests/tuktest.h | 2 ++ 10919 windows/build.bash | 3 ++- 10920 290 files changed, 588 insertions(+), 58 deletions(-) 10921 10922commit 23de53421ea258cde6a3c33a038b1e9d08f771d1 10923Author: Lasse Collin <lasse.collin@tukaani.org> 10924Date: 2024-02-12 23:25:54 +0200 10925 10926 liblzma: Sync the AUTHORS fix about SHA-256 to lzma.h. 10927 10928 src/liblzma/api/lzma.h | 10 ++++------ 10929 1 file changed, 4 insertions(+), 6 deletions(-) 10930 10931commit 689e0228baeb95232430e90d628379db89583d71 10932Author: Lasse Collin <lasse.collin@tukaani.org> 10933Date: 2024-02-12 17:09:10 +0200 10934 10935 Change most public domain parts to 0BSD. 10936 10937 Translations and doc/xz-file-format.txt and doc/lzma-file-format.txt 10938 were not touched. 10939 10940 COPYING.0BSD was added. 10941 10942 .github/workflows/ci.yml | 3 - 10943 .github/workflows/windows-ci.yml | 3 - 10944 CMakeLists.txt | 3 - 10945 COPYING | 112 ++++++++++++++----------- 10946 COPYING.0BSD | 11 +++ 10947 Makefile.am | 3 - 10948 PACKAGERS | 11 +-- 10949 autogen.sh | 3 - 10950 build-aux/ci_build.sh | 3 - 10951 build-aux/manconv.sh | 3 - 10952 build-aux/version.sh | 3 - 10953 cmake/remove-ordinals.cmake | 3 - 10954 cmake/tuklib_common.cmake | 3 - 10955 cmake/tuklib_cpucores.cmake | 3 - 10956 cmake/tuklib_integer.cmake | 3 - 10957 cmake/tuklib_large_file_support.cmake | 3 - 10958 cmake/tuklib_mbstr.cmake | 3 - 10959 cmake/tuklib_physmem.cmake | 3 - 10960 cmake/tuklib_progname.cmake | 3 - 10961 configure.ac | 3 - 10962 debug/Makefile.am | 3 - 10963 debug/crc32.c | 3 - 10964 debug/full_flush.c | 3 - 10965 debug/hex2bin.c | 3 - 10966 debug/known_sizes.c | 3 - 10967 debug/memusage.c | 3 - 10968 debug/repeat.c | 3 - 10969 debug/sync_flush.c | 3 - 10970 debug/translation.bash | 3 - 10971 doc/examples/01_compress_easy.c | 3 - 10972 doc/examples/02_decompress.c | 3 - 10973 doc/examples/03_compress_custom.c | 3 - 10974 doc/examples/04_compress_easy_mt.c | 3 - 10975 doc/examples/11_file_info.c | 3 - 10976 doc/examples/Makefile | 3 - 10977 dos/Makefile | 3 - 10978 doxygen/update-doxygen | 3 - 10979 extra/7z2lzma/7z2lzma.bash | 3 - 10980 m4/tuklib_common.m4 | 3 - 10981 m4/tuklib_cpucores.m4 | 3 - 10982 m4/tuklib_integer.m4 | 3 - 10983 m4/tuklib_mbstr.m4 | 3 - 10984 m4/tuklib_physmem.m4 | 3 - 10985 m4/tuklib_progname.m4 | 3 - 10986 po4a/update-po | 3 - 10987 src/Makefile.am | 3 - 10988 src/common/common_w32res.rc | 3 - 10989 src/common/mythread.h | 3 - 10990 src/common/sysdefs.h | 3 - 10991 src/common/tuklib_common.h | 3 - 10992 src/common/tuklib_cpucores.c | 3 - 10993 src/common/tuklib_cpucores.h | 3 - 10994 src/common/tuklib_exit.c | 3 - 10995 src/common/tuklib_exit.h | 3 - 10996 src/common/tuklib_gettext.h | 3 - 10997 src/common/tuklib_integer.h | 3 - 10998 src/common/tuklib_mbstr.h | 3 - 10999 src/common/tuklib_mbstr_fw.c | 3 - 11000 src/common/tuklib_mbstr_width.c | 3 - 11001 src/common/tuklib_open_stdxxx.c | 3 - 11002 src/common/tuklib_open_stdxxx.h | 3 - 11003 src/common/tuklib_physmem.c | 3 - 11004 src/common/tuklib_physmem.h | 3 - 11005 src/common/tuklib_progname.c | 3 - 11006 src/common/tuklib_progname.h | 3 - 11007 src/liblzma/Makefile.am | 3 - 11008 src/liblzma/api/Makefile.am | 3 - 11009 src/liblzma/api/lzma.h | 13 ++- 11010 src/liblzma/api/lzma/base.h | 3 - 11011 src/liblzma/api/lzma/bcj.h | 3 - 11012 src/liblzma/api/lzma/block.h | 3 - 11013 src/liblzma/api/lzma/check.h | 3 - 11014 src/liblzma/api/lzma/container.h | 3 - 11015 src/liblzma/api/lzma/delta.h | 3 - 11016 src/liblzma/api/lzma/filter.h | 3 - 11017 src/liblzma/api/lzma/hardware.h | 3 - 11018 src/liblzma/api/lzma/index.h | 3 - 11019 src/liblzma/api/lzma/index_hash.h | 3 - 11020 src/liblzma/api/lzma/lzma12.h | 3 - 11021 src/liblzma/api/lzma/stream_flags.h | 3 - 11022 src/liblzma/api/lzma/version.h | 3 - 11023 src/liblzma/api/lzma/vli.h | 3 - 11024 src/liblzma/check/Makefile.inc | 3 - 11025 src/liblzma/check/check.c | 3 - 11026 src/liblzma/check/check.h | 3 - 11027 src/liblzma/check/crc32_arm64.h | 3 - 11028 src/liblzma/check/crc32_fast.c | 3 - 11029 src/liblzma/check/crc32_small.c | 3 - 11030 src/liblzma/check/crc32_table.c | 3 - 11031 src/liblzma/check/crc32_tablegen.c | 3 - 11032 src/liblzma/check/crc32_x86.S | 3 - 11033 src/liblzma/check/crc64_fast.c | 3 - 11034 src/liblzma/check/crc64_small.c | 3 - 11035 src/liblzma/check/crc64_table.c | 3 - 11036 src/liblzma/check/crc64_tablegen.c | 3 - 11037 src/liblzma/check/crc64_x86.S | 3 - 11038 src/liblzma/check/crc_common.h | 3 - 11039 src/liblzma/check/crc_x86_clmul.h | 3 - 11040 src/liblzma/check/sha256.c | 3 - 11041 src/liblzma/common/Makefile.inc | 3 - 11042 src/liblzma/common/alone_decoder.c | 3 - 11043 src/liblzma/common/alone_decoder.h | 3 - 11044 src/liblzma/common/alone_encoder.c | 3 - 11045 src/liblzma/common/auto_decoder.c | 3 - 11046 src/liblzma/common/block_buffer_decoder.c | 3 - 11047 src/liblzma/common/block_buffer_encoder.c | 3 - 11048 src/liblzma/common/block_buffer_encoder.h | 3 - 11049 src/liblzma/common/block_decoder.c | 3 - 11050 src/liblzma/common/block_decoder.h | 3 - 11051 src/liblzma/common/block_encoder.c | 3 - 11052 src/liblzma/common/block_encoder.h | 3 - 11053 src/liblzma/common/block_header_decoder.c | 3 - 11054 src/liblzma/common/block_header_encoder.c | 3 - 11055 src/liblzma/common/block_util.c | 3 - 11056 src/liblzma/common/common.c | 3 - 11057 src/liblzma/common/common.h | 3 - 11058 src/liblzma/common/easy_buffer_encoder.c | 3 - 11059 src/liblzma/common/easy_decoder_memusage.c | 3 - 11060 src/liblzma/common/easy_encoder.c | 3 - 11061 src/liblzma/common/easy_encoder_memusage.c | 3 - 11062 src/liblzma/common/easy_preset.c | 3 - 11063 src/liblzma/common/easy_preset.h | 3 - 11064 src/liblzma/common/file_info.c | 3 - 11065 src/liblzma/common/filter_buffer_decoder.c | 3 - 11066 src/liblzma/common/filter_buffer_encoder.c | 3 - 11067 src/liblzma/common/filter_common.c | 3 - 11068 src/liblzma/common/filter_common.h | 3 - 11069 src/liblzma/common/filter_decoder.c | 3 - 11070 src/liblzma/common/filter_decoder.h | 3 - 11071 src/liblzma/common/filter_encoder.c | 3 - 11072 src/liblzma/common/filter_encoder.h | 3 - 11073 src/liblzma/common/filter_flags_decoder.c | 3 - 11074 src/liblzma/common/filter_flags_encoder.c | 3 - 11075 src/liblzma/common/hardware_cputhreads.c | 3 - 11076 src/liblzma/common/hardware_physmem.c | 3 - 11077 src/liblzma/common/index.c | 3 - 11078 src/liblzma/common/index.h | 3 - 11079 src/liblzma/common/index_decoder.c | 3 - 11080 src/liblzma/common/index_decoder.h | 3 - 11081 src/liblzma/common/index_encoder.c | 3 - 11082 src/liblzma/common/index_encoder.h | 3 - 11083 src/liblzma/common/index_hash.c | 3 - 11084 src/liblzma/common/lzip_decoder.c | 3 - 11085 src/liblzma/common/lzip_decoder.h | 3 - 11086 src/liblzma/common/memcmplen.h | 3 - 11087 src/liblzma/common/microlzma_decoder.c | 3 - 11088 src/liblzma/common/microlzma_encoder.c | 3 - 11089 src/liblzma/common/outqueue.c | 3 - 11090 src/liblzma/common/outqueue.h | 3 - 11091 src/liblzma/common/stream_buffer_decoder.c | 3 - 11092 src/liblzma/common/stream_buffer_encoder.c | 3 - 11093 src/liblzma/common/stream_decoder.c | 3 - 11094 src/liblzma/common/stream_decoder.h | 3 - 11095 src/liblzma/common/stream_decoder_mt.c | 3 - 11096 src/liblzma/common/stream_encoder.c | 3 - 11097 src/liblzma/common/stream_encoder_mt.c | 3 - 11098 src/liblzma/common/stream_flags_common.c | 3 - 11099 src/liblzma/common/stream_flags_common.h | 3 - 11100 src/liblzma/common/stream_flags_decoder.c | 3 - 11101 src/liblzma/common/stream_flags_encoder.c | 3 - 11102 src/liblzma/common/string_conversion.c | 3 - 11103 src/liblzma/common/vli_decoder.c | 3 - 11104 src/liblzma/common/vli_encoder.c | 3 - 11105 src/liblzma/common/vli_size.c | 3 - 11106 src/liblzma/delta/Makefile.inc | 3 - 11107 src/liblzma/delta/delta_common.c | 3 - 11108 src/liblzma/delta/delta_common.h | 3 - 11109 src/liblzma/delta/delta_decoder.c | 3 - 11110 src/liblzma/delta/delta_decoder.h | 3 - 11111 src/liblzma/delta/delta_encoder.c | 3 - 11112 src/liblzma/delta/delta_encoder.h | 3 - 11113 src/liblzma/delta/delta_private.h | 3 - 11114 src/liblzma/liblzma.pc.in | 3 - 11115 src/liblzma/liblzma_w32res.rc | 3 - 11116 src/liblzma/lz/Makefile.inc | 3 - 11117 src/liblzma/lz/lz_decoder.c | 3 - 11118 src/liblzma/lz/lz_decoder.h | 3 - 11119 src/liblzma/lz/lz_encoder.c | 3 - 11120 src/liblzma/lz/lz_encoder.h | 3 - 11121 src/liblzma/lz/lz_encoder_hash.h | 3 - 11122 src/liblzma/lz/lz_encoder_mf.c | 3 - 11123 src/liblzma/lzma/Makefile.inc | 3 - 11124 src/liblzma/lzma/fastpos.h | 3 - 11125 src/liblzma/lzma/fastpos_tablegen.c | 3 - 11126 src/liblzma/lzma/lzma2_decoder.c | 3 - 11127 src/liblzma/lzma/lzma2_decoder.h | 3 - 11128 src/liblzma/lzma/lzma2_encoder.c | 3 - 11129 src/liblzma/lzma/lzma2_encoder.h | 3 - 11130 src/liblzma/lzma/lzma_common.h | 3 - 11131 src/liblzma/lzma/lzma_decoder.c | 3 - 11132 src/liblzma/lzma/lzma_decoder.h | 3 - 11133 src/liblzma/lzma/lzma_encoder.c | 3 - 11134 src/liblzma/lzma/lzma_encoder.h | 3 - 11135 src/liblzma/lzma/lzma_encoder_optimum_fast.c | 3 - 11136 src/liblzma/lzma/lzma_encoder_optimum_normal.c | 3 - 11137 src/liblzma/lzma/lzma_encoder_presets.c | 3 - 11138 src/liblzma/lzma/lzma_encoder_private.h | 3 - 11139 src/liblzma/rangecoder/Makefile.inc | 3 - 11140 src/liblzma/rangecoder/price.h | 3 - 11141 src/liblzma/rangecoder/price_tablegen.c | 3 - 11142 src/liblzma/rangecoder/range_common.h | 3 - 11143 src/liblzma/rangecoder/range_decoder.h | 3 - 11144 src/liblzma/rangecoder/range_encoder.h | 3 - 11145 src/liblzma/simple/Makefile.inc | 3 - 11146 src/liblzma/simple/arm.c | 3 - 11147 src/liblzma/simple/arm64.c | 3 - 11148 src/liblzma/simple/armthumb.c | 3 - 11149 src/liblzma/simple/ia64.c | 3 - 11150 src/liblzma/simple/powerpc.c | 3 - 11151 src/liblzma/simple/riscv.c | 3 - 11152 src/liblzma/simple/simple_coder.c | 3 - 11153 src/liblzma/simple/simple_coder.h | 3 - 11154 src/liblzma/simple/simple_decoder.c | 3 - 11155 src/liblzma/simple/simple_decoder.h | 3 - 11156 src/liblzma/simple/simple_encoder.c | 3 - 11157 src/liblzma/simple/simple_encoder.h | 3 - 11158 src/liblzma/simple/simple_private.h | 3 - 11159 src/liblzma/simple/sparc.c | 3 - 11160 src/liblzma/simple/x86.c | 3 - 11161 src/liblzma/validate_map.sh | 3 - 11162 src/lzmainfo/Makefile.am | 3 - 11163 src/lzmainfo/lzmainfo.1 | 4 +- 11164 src/lzmainfo/lzmainfo.c | 3 - 11165 src/lzmainfo/lzmainfo_w32res.rc | 3 - 11166 src/scripts/Makefile.am | 3 - 11167 src/scripts/xzless.1 | 4 +- 11168 src/xz/Makefile.am | 3 - 11169 src/xz/args.c | 3 - 11170 src/xz/args.h | 3 - 11171 src/xz/coder.c | 3 - 11172 src/xz/coder.h | 3 - 11173 src/xz/file_io.c | 3 - 11174 src/xz/file_io.h | 3 - 11175 src/xz/hardware.c | 3 - 11176 src/xz/hardware.h | 3 - 11177 src/xz/list.c | 3 - 11178 src/xz/list.h | 3 - 11179 src/xz/main.c | 3 - 11180 src/xz/main.h | 3 - 11181 src/xz/message.c | 3 - 11182 src/xz/message.h | 3 - 11183 src/xz/mytime.c | 3 - 11184 src/xz/mytime.h | 3 - 11185 src/xz/options.c | 3 - 11186 src/xz/options.h | 3 - 11187 src/xz/private.h | 3 - 11188 src/xz/signals.c | 3 - 11189 src/xz/signals.h | 3 - 11190 src/xz/suffix.c | 3 - 11191 src/xz/suffix.h | 3 - 11192 src/xz/util.c | 3 - 11193 src/xz/util.h | 3 - 11194 src/xz/xz.1 | 4 +- 11195 src/xz/xz_w32res.rc | 3 - 11196 src/xzdec/Makefile.am | 3 - 11197 src/xzdec/lzmadec_w32res.rc | 3 - 11198 src/xzdec/xzdec.1 | 4 +- 11199 src/xzdec/xzdec.c | 3 - 11200 src/xzdec/xzdec_w32res.rc | 3 - 11201 tests/Makefile.am | 3 - 11202 tests/bcj_test.c | 3 - 11203 tests/code_coverage.sh | 3 - 11204 tests/create_compress_files.c | 3 - 11205 tests/files/README | 3 +- 11206 tests/ossfuzz/fuzz_common.h | 3 - 11207 tests/ossfuzz/fuzz_decode_alone.c | 3 - 11208 tests/ossfuzz/fuzz_decode_stream.c | 3 - 11209 tests/ossfuzz/fuzz_encode_stream.c | 3 - 11210 tests/test_bcj_exact_size.c | 3 - 11211 tests/test_block_header.c | 3 - 11212 tests/test_check.c | 3 - 11213 tests/test_compress.sh | 3 - 11214 tests/test_files.sh | 3 - 11215 tests/test_filter_flags.c | 3 - 11216 tests/test_filter_str.c | 3 - 11217 tests/test_hardware.c | 3 - 11218 tests/test_index.c | 3 - 11219 tests/test_index_hash.c | 3 - 11220 tests/test_lzip_decoder.c | 3 - 11221 tests/test_memlimit.c | 3 - 11222 tests/test_scripts.sh | 3 - 11223 tests/test_stream_flags.c | 3 - 11224 tests/test_suffix.sh | 3 - 11225 tests/test_vli.c | 3 - 11226 tests/tests.h | 3 - 11227 tests/tuktest.h | 3 - 11228 windows/README-Windows.txt | 11 +-- 11229 windows/build.bash | 3 - 11230 288 files changed, 100 insertions(+), 911 deletions(-) 11231 11232commit 76946dc4336c831fe2cc26696a035d807dd3cf13 11233Author: Lasse Collin <lasse.collin@tukaani.org> 11234Date: 2024-02-09 17:20:31 +0200 11235 11236 Fix SHA-256 authors. 11237 11238 The initial commit 5d018dc03549c1ee4958364712fb0c94e1bf2741 11239 in 2007 had a comment in sha256.c that the code is based on 11240 Crypto++ Library 5.5.1. In 2009 the Authors list in sha256.c 11241 and the AUTHORS file was updated with information that the 11242 code had come from Crypto++ but via 7-Zip. I know I had viewed 11243 7-Zip's SHA-256 code but back then the C code has been identical 11244 enough with Crypto++, so I don't why I thought the author info 11245 would need that extra step via 7-Zip for this single file. 11246 11247 Another error is that I had mixed sha.* and shacal2.* files 11248 when checking for author info in Crypto++. The shacal2.* files 11249 aren't related to liblzma's sha256.c and thus Kevin Springle's 11250 code in Crypto++ isn't either. 11251 11252 AUTHORS | 6 ++---- 11253 src/liblzma/check/sha256.c | 14 ++++---------- 11254 2 files changed, 6 insertions(+), 14 deletions(-) 11255 11256commit 21d9cbae9eecca28ce373d3d9464defd2cf5d851 11257Author: Lasse Collin <lasse.collin@tukaani.org> 11258Date: 2024-02-09 17:20:31 +0200 11259 11260 Remove macosx/build.sh. 11261 11262 It was last updated in 2013. 11263 11264 Makefile.am | 1 - 11265 macosx/build.sh | 113 -------------------------------------------------------- 11266 2 files changed, 114 deletions(-) 11267 11268commit eac2c3c67f9113a225fb6667df862edd30366931 11269Author: Lasse Collin <lasse.collin@tukaani.org> 11270Date: 2024-02-09 17:20:31 +0200 11271 11272 Doc: Remove doc/examples_old. 11273 11274 It was good to keep these around in parallel with the newer examples 11275 but I think it's OK to remove the old ones at this point. 11276 11277 Makefile.am | 5 -- 11278 doc/examples_old/xz_pipe_comp.c | 127 -------------------------------------- 11279 doc/examples_old/xz_pipe_decomp.c | 123 ------------------------------------ 11280 3 files changed, 255 deletions(-) 11281 11282commit 89ea1a22f4ed3685b053b7260bc5acf6c75d1664 11283Author: Jia Tan <jiat0218@gmail.com> 11284Date: 2024-02-13 22:38:58 +0800 11285 11286 Tests: Add RISC-V filter support in a few places. 11287 11288 tests/test_filter_flags.c | 6 ++++++ 11289 tests/test_filter_str.c | 6 ++++++ 11290 2 files changed, 12 insertions(+) 11291 11292commit 45663443eb2b377e6171529380fee312f1adcdf4 11293Author: Jia Tan <jiat0218@gmail.com> 11294Date: 2024-02-13 22:37:07 +0800 11295 11296 liblzma: Fix build error if only RISC-V BCJ filter is enabled. 11297 11298 If any other BCJ filter was enabled for encoding or decoding, then this 11299 was not a problem. 11300 11301 src/liblzma/common/string_conversion.c | 4 +++- 11302 1 file changed, 3 insertions(+), 1 deletion(-) 11303 11304commit 2f15597d677bc35743c777d4cf3bfa698b478681 11305Author: Jia Tan <jiat0218@gmail.com> 11306Date: 2024-02-13 22:56:24 +0800 11307 11308 Translations: Update the Korean translation. 11309 11310 po/ko.po | 526 ++++++++++++++++++++++++++++++++++----------------------------- 11311 1 file changed, 284 insertions(+), 242 deletions(-) 11312 11313commit df873143ad1615c6d6aaa1bf8808b1676091dfe3 11314Author: Jia Tan <jiat0218@gmail.com> 11315Date: 2024-02-13 01:55:53 +0800 11316 11317 Translations: Update the Korean man page translations. 11318 11319 po4a/ko.po | 1375 ++++++++++++++++++++++++++++++++++-------------------------- 11320 1 file changed, 770 insertions(+), 605 deletions(-) 11321 11322commit b3f415eddb150341865a1af47959c3baba076b33 11323Author: Jia Tan <jiat0218@gmail.com> 11324Date: 2024-02-13 01:53:33 +0800 11325 11326 Translations: Update the Chinese (simplified) translation. 11327 11328 po/zh_CN.po | 424 ++++++++++++++++++++++++++++++++++++++---------------------- 11329 1 file changed, 268 insertions(+), 156 deletions(-) 11330 11331commit 9860d418d296eb3c721e5384fb367c0499b579c8 11332Author: Lasse Collin <lasse.collin@tukaani.org> 11333Date: 2024-02-09 23:21:01 +0200 11334 11335 xzless: Use ||- in LESSOPEN with with "less" 451 and newer. 11336 11337 src/scripts/xzless.in | 9 ++++++++- 11338 1 file changed, 8 insertions(+), 1 deletion(-) 11339 11340commit fd0692b0525e6c26b496492be9e2c865cab734f8 11341Author: Lasse Collin <lasse.collin@tukaani.org> 11342Date: 2024-02-09 23:00:05 +0200 11343 11344 xzless: Use --show-preproc-errors with "less" 632 and newer. 11345 11346 This makes "less" show a warning if a decompression error occurred. 11347 11348 src/scripts/xzless.in | 11 +++++++++-- 11349 1 file changed, 9 insertions(+), 2 deletions(-) 11350 11351commit adb073da76a920b5a81e6b32254f4ddb054dc57a 11352Author: Jia Tan <jiat0218@gmail.com> 11353Date: 2024-02-09 23:59:54 +0800 11354 11355 liblzma: Fix typo discovered by codespell. 11356 11357 src/liblzma/check/crc32_arm64.h | 2 +- 11358 1 file changed, 1 insertion(+), 1 deletion(-) 11359 11360commit 55d9fc883d221cbace951a370f1fb144698f8c2e 11361Author: Jia Tan <jiat0218@gmail.com> 11362Date: 2024-02-09 20:01:06 +0800 11363 11364 Translations: Update the Swedish translation. 11365 11366 po/sv.po | 420 ++++++++++++++++++++++++++++++++++++++------------------------- 11367 1 file changed, 254 insertions(+), 166 deletions(-) 11368 11369commit 55ba4a1ea321499c805eedfa811ffde690bae311 11370Author: Jia Tan <jiat0218@gmail.com> 11371Date: 2024-02-08 20:09:04 +0800 11372 11373 Translations: Update the Spanish translation. 11374 11375 po/es.po | 22 +++++++++++----------- 11376 1 file changed, 11 insertions(+), 11 deletions(-) 11377 11378commit 7f2293cd804a89d3c3b2d3ed573560ca9e1520ae 11379Author: Jia Tan <jiat0218@gmail.com> 11380Date: 2024-02-07 21:34:35 +0800 11381 11382 Translations: Update the Spanish translation. 11383 11384 po/es.po | 419 ++++++++++++++++++++++++++++++++++++++------------------------- 11385 1 file changed, 253 insertions(+), 166 deletions(-) 11386 11387commit f4af2036bc625739d6d33d9e1fede583a25c3828 11388Author: Jia Tan <jiat0218@gmail.com> 11389Date: 2024-02-07 21:28:32 +0800 11390 11391 Translations: Update the Polish translation. 11392 11393 po/pl.po | 411 ++++++++++++++++++++++++++++++++++++++------------------------- 11394 1 file changed, 249 insertions(+), 162 deletions(-) 11395 11396commit e5e93bb816043c559cddf03a3b7ba13bec353ee4 11397Author: Jia Tan <jiat0218@gmail.com> 11398Date: 2024-02-07 19:40:12 +0800 11399 11400 Translations: Update the German translation. 11401 11402 po/de.po | 396 ++++++++++++++++++++++++++++++++++++++------------------------- 11403 1 file changed, 242 insertions(+), 154 deletions(-) 11404 11405commit 28f18ff8e26902762fb007c13be235b4ac1ac071 11406Author: Jia Tan <jiat0218@gmail.com> 11407Date: 2024-02-07 19:27:25 +0800 11408 11409 Translations: Update the German man page translations. 11410 11411 po4a/de.po | 1353 +++++++++++++++++++++++++++++++++--------------------------- 11412 1 file changed, 752 insertions(+), 601 deletions(-) 11413 11414commit cabfbc7947da05aa5dfe39bec9759e076f940e3c 11415Author: Jia Tan <jiat0218@gmail.com> 11416Date: 2024-02-06 23:44:06 +0800 11417 11418 Translations: Update the Romanian translation. 11419 11420 po/ro.po | 416 ++++++++++++++++++++++++++++++++++++++------------------------- 11421 1 file changed, 252 insertions(+), 164 deletions(-) 11422 11423commit bf20c94f5d748cea2147779f4fa7e2fd2eb8555e 11424Author: Jia Tan <jiat0218@gmail.com> 11425Date: 2024-02-06 23:45:02 +0800 11426 11427 Translations: Update the Romanian man page translations. 11428 11429 po4a/ro.po | 1759 +++++++++++++++++++++++++++++++++--------------------------- 11430 1 file changed, 966 insertions(+), 793 deletions(-) 11431 11432commit 7c25ec9feb0241e4affb7432681cc4f5696f3a96 11433Author: Jia Tan <jiat0218@gmail.com> 11434Date: 2024-02-07 20:56:57 +0800 11435 11436 Translations: Update the Ukrainian translation. 11437 11438 po/uk.po | 397 ++++++++++++++++++++++++++++++++++++++------------------------- 11439 1 file changed, 242 insertions(+), 155 deletions(-) 11440 11441commit b3523250e9eef10b017473754c1e1c9e31f10374 11442Author: Jia Tan <jiat0218@gmail.com> 11443Date: 2024-02-06 23:30:03 +0800 11444 11445 Translations: Update the Ukrainian man page translations. 11446 11447 po4a/uk.po | 1363 ++++++++++++++++++++++++++++++++++-------------------------- 11448 1 file changed, 764 insertions(+), 599 deletions(-) 11449 11450commit a5c177f514f4c90e0d2f6045636fca6c2e80a20d 11451Author: Jia Tan <jiat0218@gmail.com> 11452Date: 2024-02-02 01:39:28 +0800 11453 11454 Update AUTHORS. 11455 11456 AUTHORS | 3 ++- 11457 1 file changed, 2 insertions(+), 1 deletion(-) 11458 11459commit 7f68a68c19d0ae57bd0e802be0ea8f974e41299f 11460Author: Jia Tan <jiat0218@gmail.com> 11461Date: 2024-02-02 01:38:51 +0800 11462 11463 liblzma: Update Authors list in crc32_arm64.h. 11464 11465 src/liblzma/check/crc32_arm64.h | 1 + 11466 1 file changed, 1 insertion(+) 11467 11468commit 97f9ba50b84e67b3dcb5b17dd5d3e1d14f9ad1d0 11469Author: Jia Tan <jiat0218@gmail.com> 11470Date: 2024-02-01 16:07:03 +0800 11471 11472 liblzma: Check HAVE_USABLE_CLMUL before omitting CRC32 table. 11473 11474 This was split from the prior commit so it could be easily applied to 11475 the 5.4 branch. 11476 11477 Closes: https://github.com/tukaani-project/xz/pull/77 11478 11479 src/liblzma/check/crc32_table.c | 4 ++-- 11480 1 file changed, 2 insertions(+), 2 deletions(-) 11481 11482commit ca9015f4dead2c97b48f5a6933631b0a448b65b9 11483Author: Jia Tan <jiat0218@gmail.com> 11484Date: 2024-02-01 16:06:29 +0800 11485 11486 liblzma: Check HAVE_USABLE_CLMUL before omitting CRC64 table. 11487 11488 If liblzma is configured with --disable-clmul-crc 11489 CFLAGS="-msse4.1 -mpclmul", then it will fail to compile because the 11490 generic version must be used but the CRC tables were not included. 11491 11492 src/liblzma/check/crc64_table.c | 4 ++-- 11493 1 file changed, 2 insertions(+), 2 deletions(-) 11494 11495commit 2f1552a91c825e87013925e1a67a0930e7aef592 11496Author: Jia Tan <jiat0218@gmail.com> 11497Date: 2024-01-23 18:02:13 +0800 11498 11499 liblzma: Only use ifunc in crcXX_fast.c if its needed. 11500 11501 The code was using HAVE_FUNC_ATTRIBUTE_IFUNC instead of CRC_USE_IFUNC. 11502 With ARM64, ifunc is incompatible because it requires non-inline 11503 function calls for runtime detection. 11504 11505 src/liblzma/check/crc32_fast.c | 6 +++--- 11506 src/liblzma/check/crc64_fast.c | 6 +++--- 11507 2 files changed, 6 insertions(+), 6 deletions(-) 11508 11509commit 30a25f3742287697bc57a1bef86c19ecf5129322 11510Author: Jia Tan <jiat0218@gmail.com> 11511Date: 2024-01-22 22:08:45 +0800 11512 11513 Docs: Add --disable-arm64-crc32 description to INSTALL. 11514 11515 INSTALL | 12 +++++++++++- 11516 1 file changed, 11 insertions(+), 1 deletion(-) 11517 11518commit 1940f0ec28f08c0ac72c1413d9706fb82eabe6ad 11519Author: Jia Tan <jiat0218@gmail.com> 11520Date: 2024-01-22 21:36:09 +0800 11521 11522 liblzma: Omit CRC tables when not needed with ARM64 optimizations. 11523 11524 This is similar to the existing x86-64 CLMUL conditions to omit the 11525 tables. They were slightly refactored to improve readability. 11526 11527 src/liblzma/check/crc32_table.c | 18 +++++++++++++++--- 11528 src/liblzma/check/crc64_table.c | 7 ++++++- 11529 src/liblzma/check/crc_common.h | 5 ++++- 11530 3 files changed, 25 insertions(+), 5 deletions(-) 11531 11532commit 761f5b69a4c778c8bcb09279b845b07c28790575 11533Author: Jia Tan <jiat0218@gmail.com> 11534Date: 2024-01-22 20:54:56 +0800 11535 11536 liblzma: Rename crc32_aarch64.h to crc32_arm64.h. 11537 11538 Even though the proper name for the architecture is aarch64, this 11539 project uses ARM64 throughout. So the rename is for consistency. 11540 11541 Additionally, crc32_arm64.h was slightly refactored for the following 11542 changes: 11543 11544 * Added MSVC, FreeBSD, and macOS support in 11545 is_arch_extension_supported(). 11546 11547 * crc32_arch_optimized() now checks the size when aligning the 11548 buffer. 11549 11550 * crc32_arch_optimized() loop conditions were slightly modified to 11551 avoid both decrementing the size and incrementing the buffer 11552 pointer. 11553 11554 * Use the intrinsic wrappers defined in <arm_acle.h> because GCC and 11555 Clang name them differently. 11556 11557 * Minor spacing and comment changes. 11558 11559 CMakeLists.txt | 2 +- 11560 src/liblzma/check/Makefile.inc | 2 +- 11561 src/liblzma/check/crc32_aarch64.h | 109 ---------------------------------- 11562 src/liblzma/check/crc32_arm64.h | 119 ++++++++++++++++++++++++++++++++++++++ 11563 src/liblzma/check/crc32_fast.c | 3 +- 11564 src/liblzma/check/crc64_fast.c | 3 - 11565 6 files changed, 122 insertions(+), 116 deletions(-) 11566 11567commit 455a08609caa3223066a717fb01bfa42c5dba47d 11568Author: Jia Tan <jiat0218@gmail.com> 11569Date: 2024-01-22 20:49:30 +0800 11570 11571 liblzma: Refactor crc_common.h. 11572 11573 The CRC_GENERIC is now split into CRC32_GENERIC and CRC64_GENERIC, since 11574 the ARM64 optimizations will be different between CRC32 and CRC64. 11575 11576 For the same reason, CRC_ARCH_OPTIMIZED is split into 11577 CRC32_ARCH_OPTIMIZED and CRC64_ARCH_OPTIMIZED. 11578 11579 ifunc will only be used with x86-64 CLMUL because the runtime detection 11580 methods needed with ARM64 are not compatible with ifunc. 11581 11582 src/liblzma/check/crc32_fast.c | 8 +-- 11583 src/liblzma/check/crc64_fast.c | 8 +-- 11584 src/liblzma/check/crc_common.h | 108 ++++++++++++++++++++++++++++------------- 11585 3 files changed, 82 insertions(+), 42 deletions(-) 11586 11587commit 61908e816049af7a9f43ea804a57ee8570e2e644 11588Author: Jia Tan <jiat0218@gmail.com> 11589Date: 2024-01-22 00:42:28 +0800 11590 11591 CMake: Add support for ARM64 CRC32 instruction detection. 11592 11593 CMakeLists.txt | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 11594 1 file changed, 50 insertions(+) 11595 11596commit c5f6d79cc9515a7f22d7ea4860c6cc394b295732 11597Author: Jia Tan <jiat0218@gmail.com> 11598Date: 2024-01-22 00:36:47 +0800 11599 11600 Build: Add support for ARM64 CRC32 instruction detection. 11601 11602 This adds --enable-arm64-crc32/--disable-arm64-crc32 (enabled by 11603 default) for using the ARM64 CRC32 instruction. This can be disabled if 11604 one knows the binary will never need to run on an ARM64 machine 11605 with this instruction extension. 11606 11607 configure.ac | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 11608 1 file changed, 52 insertions(+) 11609 11610commit 849d0f282a6a890c5cf5a0e0f02980b12d9ebb0f 11611Author: Chenxi Mao <chenxi.mao2013@gmail.com> 11612Date: 2024-01-09 17:23:11 +0800 11613 11614 Speed up CRC32 calculation on ARM64 11615 11616 The CRC32 instructions in ARM64 can calculate the CRC32 result 11617 for 8 bytes in a single operation, making the use of ARM64 11618 instructions much faster compared to the general CRC32 algorithm. 11619 11620 Optimized CRC32 will be enabled if ARM64 has CRC extension 11621 running on Linux. 11622 11623 Signed-off-by: Chenxi Mao <chenxi.mao2013@gmail.com> 11624 11625 CMakeLists.txt | 1 + 11626 src/liblzma/check/Makefile.inc | 3 +- 11627 src/liblzma/check/crc32_aarch64.h | 109 ++++++++++++++++++++++++++++++++++++++ 11628 src/liblzma/check/crc32_fast.c | 5 +- 11629 src/liblzma/check/crc64_fast.c | 5 +- 11630 src/liblzma/check/crc_common.h | 16 +++--- 11631 6 files changed, 130 insertions(+), 9 deletions(-) 11632 11633commit b43c3e48bf6097095eef36d44cdbec811074940a 11634Author: Jia Tan <jiat0218@gmail.com> 11635Date: 2024-01-26 19:05:51 +0800 11636 11637 Bump version number for 5.5.1alpha. 11638 11639 src/liblzma/api/lzma/version.h | 2 +- 11640 src/liblzma/liblzma_generic.map | 2 +- 11641 src/liblzma/liblzma_linux.map | 2 +- 11642 3 files changed, 3 insertions(+), 3 deletions(-) 11643 11644commit c7a7ae1500ea90bd3c2d54533e4f433933eb598f 11645Author: Jia Tan <jiat0218@gmail.com> 11646Date: 2024-01-26 19:00:52 +0800 11647 11648 Add NEWS for 5.5.1alpha 11649 11650 NEWS | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 11651 1 file changed, 80 insertions(+) 11652 11653commit 0ef8192e8d5af4e6200d5d4aee22d1f177f7a2df 11654Author: Jia Tan <jiat0218@gmail.com> 11655Date: 2024-01-26 18:54:24 +0800 11656 11657 Add NEWS for 5.4.6. 11658 11659 NEWS | 22 ++++++++++++++++++++++ 11660 1 file changed, 22 insertions(+) 11661 11662commit 93de7e751d17731315a899264f2a7239d7d2d316 11663Author: Lasse Collin <lasse.collin@tukaani.org> 11664Date: 2024-01-24 20:00:57 +0200 11665 11666 Move doc/logo/xz-logo.png to "doc" and Doxygen footer to "doxygen". 11667 11668 The footer isn't a complete HTML file so having it in the doxygen 11669 directory is a tiny bit clearer. 11670 11671 Makefile.am | 2 +- 11672 doc/{logo => }/xz-logo.png | Bin 11673 doxygen/Doxyfile | 4 ++-- 11674 doc/logo/copyright.html => doxygen/footer.html | 0 11675 4 files changed, 3 insertions(+), 3 deletions(-) 11676 11677commit 00fa01698df51c58ae2acf8c7fa4e1fb159f75a9 11678Author: Jia Tan <jiat0218@gmail.com> 11679Date: 2024-01-09 17:05:01 +0800 11680 11681 README: Add COPYING.CC-BY-SA-4.0 entry to section 1.1. 11682 11683 The Overall documentation section (1.1) table spacing had to be adjusted 11684 since the filename was very long. 11685 11686 README | 38 ++++++++++++++++++++------------------ 11687 1 file changed, 20 insertions(+), 18 deletions(-) 11688 11689commit e280470040b27c5e58d78b25b9e2bb71fc6c3882 11690Author: Jia Tan <jiat0218@gmail.com> 11691Date: 2024-01-09 16:56:16 +0800 11692 11693 Build: Add the logo and license to the release. 11694 11695 Makefile.am | 2 ++ 11696 1 file changed, 2 insertions(+) 11697 11698commit b1ee6cf259bb49ce91abe9f622294524e37edf4c 11699Author: Jia Tan <jiat0218@gmail.com> 11700Date: 2024-01-09 16:44:42 +0800 11701 11702 COPYING: Add the license for the XZ logo. 11703 11704 COPYING | 5 + 11705 COPYING.CC-BY-SA-4.0 | 427 +++++++++++++++++++++++++++++++++++++++++++++++++++ 11706 2 files changed, 432 insertions(+) 11707 11708commit 31293ae7074802cc7286089a89c7b552d930c97f 11709Author: Jia Tan <jiat0218@gmail.com> 11710Date: 2024-01-09 16:40:56 +0800 11711 11712 Doxygen: Added the XZ logo and copyright information. 11713 11714 The PROJECT_LOGO field is now used to include the XZ logo. The footer 11715 of each page now lists the copyright information instead of the default 11716 footer. The license is also copied to statisfy the copyright and so the 11717 link in the documentation can be local. 11718 11719 doc/logo/copyright.html | 11 +++++++++++ 11720 doc/logo/xz-logo.png | Bin 0 -> 6771 bytes 11721 doxygen/Doxyfile | 6 +++--- 11722 3 files changed, 14 insertions(+), 3 deletions(-) 11723 11724commit 6daa4d0ea46a8441f21f609149f3633158bf4704 11725Author: Lasse Collin <lasse.collin@tukaani.org> 11726Date: 2024-01-23 18:29:28 +0200 11727 11728 xz: Use threaded mode by defaut (as if --threads=0 was used). 11729 11730 This hopefully does more good than bad: 11731 11732 + It's faster by default. 11733 11734 + Only the threaded compressor creates files that 11735 can be decompressed in threaded mode. 11736 11737 - Compression ratio is worse, usually not too much though. 11738 When it matters, -T1 must be used. 11739 11740 - Memory usage increases. 11741 11742 - Scripts that assume single-threaded mode but don't use -T1 will 11743 possibly use too much resources, for example, if they run 11744 multiple xz processes in parallel to compress multiple files. 11745 11746 - Output from single-threaded and multi-threaded compressors 11747 differ but such changes could happen for other reasons too 11748 (they just haven't happened since 5.0.0). 11749 11750 src/xz/hardware.c | 6 +++++- 11751 src/xz/message.c | 4 ++-- 11752 src/xz/xz.1 | 9 +++++++++ 11753 3 files changed, 16 insertions(+), 3 deletions(-) 11754 11755commit a2dd2dc8e5307a7280bb99868bc478560facba2c 11756Author: Jia Tan <jiat0218@gmail.com> 11757Date: 2024-01-23 23:52:49 +0800 11758 11759 CI: Use RISC-V filter when building with BCJ support. 11760 11761 build-aux/ci_build.sh | 4 ++-- 11762 1 file changed, 2 insertions(+), 2 deletions(-) 11763 11764commit 3060e1070b2421b26c0e17794c1307ec5622f11d 11765Author: Jia Tan <jiat0218@gmail.com> 11766Date: 2024-01-23 23:52:14 +0800 11767 11768 Tests: Use smaller dictionary size in RISC-V test files. 11769 11770 tests/files/good-1-riscv-lzma2-1.xz | Bin 7512 -> 7512 bytes 11771 tests/files/good-1-riscv-lzma2-2.xz | Bin 7516 -> 7512 bytes 11772 2 files changed, 0 insertions(+), 0 deletions(-) 11773 11774commit 44ff2fa5c94dc345c4dd69195a19fc5238df60b3 11775Author: Jia Tan <jiat0218@gmail.com> 11776Date: 2024-01-23 23:50:57 +0800 11777 11778 Tests: Skip RISC-V test files if decoder was not built. 11779 11780 tests/test_files.sh | 5 +++++ 11781 1 file changed, 5 insertions(+) 11782 11783commit 6133a3f30049d3beaf7d22535b1e5d38e109be4e 11784Author: Lasse Collin <lasse.collin@tukaani.org> 11785Date: 2024-01-23 16:11:54 +0200 11786 11787 xz: Man page: Add more examples of LZMA2 options with BCJ filters. 11788 11789 src/xz/xz.1 | 38 +++++++++++++++++++++++++++++++------- 11790 1 file changed, 31 insertions(+), 7 deletions(-) 11791 11792commit 50255feeaabcc7e7db22b858a6bd64a9b5b4f16d 11793Author: Lasse Collin <lasse.collin@tukaani.org> 11794Date: 2024-01-23 00:09:48 +0200 11795 11796 liblzma: RISC-V filter: Use byte-by-byte access. 11797 11798 Not all RISC-V processors support fast unaligned access so 11799 it's better to read only one byte in the main loop. This can 11800 be faster even on x86-64 when compared to reading 32 bits at 11801 a time as half the time the address is only 16-bit aligned. 11802 11803 The downside is larger code size on archs that do support 11804 fast unaligned access. 11805 11806 src/liblzma/simple/riscv.c | 114 +++++++++++++++++++++++++++++++++------------ 11807 1 file changed, 84 insertions(+), 30 deletions(-) 11808 11809commit db5eb5f563e8baa8d912ecf576f53391ff861596 11810Author: Jia Tan <jiat0218@gmail.com> 11811Date: 2024-01-22 23:33:39 +0800 11812 11813 xz: Update xz -lvv for RISC-V filter. 11814 11815 Version 5.6.0 will be shown, even though upcoming alphas and betas 11816 will be able to support this filter. 5.6.0 looks nicer in the output and 11817 people shouldn't be encouraged to use an unstable version in production 11818 in any way. 11819 11820 src/xz/list.c | 10 ++++++++++ 11821 1 file changed, 10 insertions(+) 11822 11823commit e2870db5be1503e6a489fc3d47daf950d6f62723 11824Author: Jia Tan <jiat0218@gmail.com> 11825Date: 2024-01-22 23:33:39 +0800 11826 11827 Tests: Add two RISC-V Filter test files. 11828 11829 These test files achieve 100% code coverage in 11830 src/liblzma/simple/riscv.c. They contain all of the instructions that 11831 should be filtered and a few cases that should not. 11832 11833 tests/files/README | 8 ++++++++ 11834 tests/files/good-1-riscv-lzma2-1.xz | Bin 0 -> 7512 bytes 11835 tests/files/good-1-riscv-lzma2-2.xz | Bin 0 -> 7516 bytes 11836 3 files changed, 8 insertions(+) 11837 11838commit b26a89869315ece2f6d9d10d32d45f672550f245 11839Author: Jia Tan <jiat0218@gmail.com> 11840Date: 2024-01-22 23:33:39 +0800 11841 11842 xz: Update message in --long-help for RISC-V Filter. 11843 11844 src/xz/message.c | 1 + 11845 1 file changed, 1 insertion(+) 11846 11847commit 283f778908873eca61388029fc418fa800c9d7d7 11848Author: Jia Tan <jiat0218@gmail.com> 11849Date: 2024-01-22 23:33:39 +0800 11850 11851 xz: Update the man page for the RISC-V Filter. 11852 11853 A special note was added to suggest using four-byte alignment when the 11854 compressed instruction extension is not present in a RISC-V binary. 11855 11856 src/xz/xz.1 | 3 ++- 11857 1 file changed, 2 insertions(+), 1 deletion(-) 11858 11859commit ac3691ccca051d67f60b4a3b05b88e511d0b1b28 11860Author: Jia Tan <jiat0218@gmail.com> 11861Date: 2024-01-22 23:33:39 +0800 11862 11863 Tests: Add RISC-V Filter test in test_compress.sh. 11864 11865 tests/test_compress.sh | 1 + 11866 1 file changed, 1 insertion(+) 11867 11868commit 2959dbc7358efcf421ce51bc9cd7eae8fdd8fec4 11869Author: Jia Tan <jiat0218@gmail.com> 11870Date: 2024-01-22 23:33:39 +0800 11871 11872 liblzma: Update string_conversion.c to support RISC-V Filter. 11873 11874 src/liblzma/common/string_conversion.c | 5 +++++ 11875 1 file changed, 5 insertions(+) 11876 11877commit 34372a5adbe5a7f6bf29498410ba3a463a720966 11878Author: Jia Tan <jiat0218@gmail.com> 11879Date: 2024-01-22 23:33:39 +0800 11880 11881 CMake: Support RISC-V BCJ Filter for encoding and decoding. 11882 11883 CMakeLists.txt | 1 + 11884 1 file changed, 1 insertion(+) 11885 11886commit 440a2eccb082dc13400c09e22308a58fef85146c 11887Author: Jia Tan <jiat0218@gmail.com> 11888Date: 2024-01-22 23:33:39 +0800 11889 11890 liblzma: Add RISC-V BCJ filter. 11891 11892 The new Filter ID is 0x0B. 11893 11894 Thanks to Chien Wong <m@xv97.com> for the initial version of the Filter, 11895 the xz CLI updates, and the Autotools build system modifications. 11896 11897 Thanks to Igor Pavlov for his many contributions to the design of 11898 the filter. 11899 11900 configure.ac | 4 +- 11901 src/liblzma/api/lzma/bcj.h | 5 + 11902 src/liblzma/common/filter_common.c | 9 + 11903 src/liblzma/common/filter_decoder.c | 8 + 11904 src/liblzma/common/filter_encoder.c | 10 + 11905 src/liblzma/simple/Makefile.inc | 4 + 11906 src/liblzma/simple/riscv.c | 688 ++++++++++++++++++++++++++++++++++++ 11907 src/liblzma/simple/simple_coder.h | 9 + 11908 src/xz/args.c | 7 + 11909 9 files changed, 742 insertions(+), 2 deletions(-) 11910 11911commit 5540f4329bbdb4deb4850d4af48b18ad074bba19 11912Author: Jia Tan <jiat0218@gmail.com> 11913Date: 2024-01-19 23:08:14 +0800 11914 11915 Docs: Update .xz file format specification to 1.2.0. 11916 11917 The new RISC-V filter was added to the specification, in addition to 11918 updating the specification URL. 11919 11920 doc/xz-file-format.txt | 29 +++++++++++++++++------------ 11921 1 file changed, 17 insertions(+), 12 deletions(-) 11922 11923commit 22d86192f8cf00902a1f90ee2a83ca600794459b 11924Author: Jia Tan <jiat0218@gmail.com> 11925Date: 2024-01-19 23:08:14 +0800 11926 11927 xz: Update website URLs in the man pages. 11928 11929 src/xz/xz.1 | 6 +++--- 11930 src/xzdec/xzdec.1 | 4 ++-- 11931 2 files changed, 5 insertions(+), 5 deletions(-) 11932 11933commit 6b63c4c6139fa1bb21b570521d3d2b4a608bc34d 11934Author: Jia Tan <jiat0218@gmail.com> 11935Date: 2024-01-19 23:08:14 +0800 11936 11937 liblzma: Update website URL. 11938 11939 dos/config.h | 2 +- 11940 src/liblzma/api/lzma.h | 6 +++--- 11941 2 files changed, 4 insertions(+), 4 deletions(-) 11942 11943commit fce4758018f3a3589236f3fe7999fd9dd08c77e9 11944Author: Jia Tan <jiat0218@gmail.com> 11945Date: 2024-01-19 23:08:14 +0800 11946 11947 Docs: Update website URLs. 11948 11949 .github/SECURITY.md | 2 +- 11950 COPYING | 3 ++- 11951 README | 4 ++-- 11952 doc/faq.txt | 2 +- 11953 doc/lzma-file-format.txt | 18 +++++++++--------- 11954 windows/README-Windows.txt | 3 ++- 11955 6 files changed, 17 insertions(+), 15 deletions(-) 11956 11957commit c26812c5b2c8a2a47f43214afe6b0b840c73e4f5 11958Author: Jia Tan <jiat0218@gmail.com> 11959Date: 2024-01-19 23:08:14 +0800 11960 11961 Build: Update website URL. 11962 11963 CMakeLists.txt | 2 +- 11964 configure.ac | 2 +- 11965 2 files changed, 2 insertions(+), 2 deletions(-) 11966 11967commit fbb3ce541ef79cad1710e88a27a5babb5f6f8e5b 11968Author: Lasse Collin <lasse.collin@tukaani.org> 11969Date: 2024-01-11 15:01:50 +0200 11970 11971 liblzma: CRC: Add a comment to crc_x86_clmul.h about BUILDING_ macros. 11972 11973 src/liblzma/check/crc_x86_clmul.h | 6 ++++++ 11974 1 file changed, 6 insertions(+) 11975 11976commit 4f518c1b6b7b7ce5dcefea81acd44d7a086a8882 11977Author: Lasse Collin <lasse.collin@tukaani.org> 11978Date: 2024-01-11 15:22:36 +0200 11979 11980 liblzma: CRC: Remove crc_always_inline, use lzma_always_inline instead. 11981 11982 Now crc_simd_body() in crc_x86_clmul.h is only called once 11983 in a translation unit, we no longer need to be so cautious 11984 about ensuring the always-inline behavior. 11985 11986 src/liblzma/check/crc_common.h | 20 -------------------- 11987 src/liblzma/check/crc_x86_clmul.h | 2 +- 11988 2 files changed, 1 insertion(+), 21 deletions(-) 11989 11990commit 35c03ec6bf66f1b159964c9721a2dce0e2859b20 11991Author: Lasse Collin <lasse.collin@tukaani.org> 11992Date: 2024-01-11 14:39:46 +0200 11993 11994 liblzma: CRC: Update CLMUL comments to more generic wording. 11995 11996 src/liblzma/check/crc32_fast.c | 16 ++++++++-------- 11997 src/liblzma/check/crc64_fast.c | 10 +++++----- 11998 2 files changed, 13 insertions(+), 13 deletions(-) 11999 12000commit 66f080e8016129576536482ac377e2ecac7a2b90 12001Author: Lasse Collin <lasse.collin@tukaani.org> 12002Date: 2024-01-10 18:23:31 +0200 12003 12004 liblzma: Rename arch-specific CRC functions and macros. 12005 12006 CRC_CLMUL was split to CRC_ARCH_OPTIMIZED and CRC_X86_CLMUL. 12007 CRC_ARCH_OPTIMIZED is defined when an arch-optimized version is used. 12008 Currently the x86 CLMUL implementations are the only arch-optimized 12009 versions, and these also use the CRC_x86_CLMUL macro to tell when 12010 crc_x86_clmul.h needs to be included. 12011 12012 is_clmul_supported() was renamed to is_arch_extension_supported(). 12013 crc32_clmul() and crc64_clmul() were renamed to 12014 crc32_arch_optimized() and crc64_arch_optimized(). 12015 This way the names make sense with arch-specific non-CLMUL 12016 implementations as well. 12017 12018 src/liblzma/check/crc32_fast.c | 13 +++++++------ 12019 src/liblzma/check/crc64_fast.c | 13 +++++++------ 12020 src/liblzma/check/crc_common.h | 9 ++++++--- 12021 src/liblzma/check/crc_x86_clmul.h | 21 +++++++++++---------- 12022 4 files changed, 31 insertions(+), 25 deletions(-) 12023 12024commit 3dbed75b0b9c7087c76fe687acb5cf582cd57b99 12025Author: Lasse Collin <lasse.collin@tukaani.org> 12026Date: 2024-01-10 18:19:21 +0200 12027 12028 liblzma: Fix a comment in crc_common.h. 12029 12030 src/liblzma/check/crc_common.h | 3 ++- 12031 1 file changed, 2 insertions(+), 1 deletion(-) 12032 12033commit 419f55f9dfc2df8792902b8953d50690121afeea 12034Author: Lasse Collin <lasse.collin@tukaani.org> 12035Date: 2023-10-20 23:35:10 +0300 12036 12037 liblzma: Avoid extern lzma_crc32_clmul() and lzma_crc64_clmul(). 12038 12039 A CLMUL-only build will have the crcxx_clmul() inlined into 12040 lzma_crcxx(). Previously a jump to the extern lzma_crcxx_clmul() 12041 was needed. Notes about shared liblzma on ELF platforms: 12042 12043 - On platforms that support ifunc and -fvisibility=hidden, this 12044 was silly because CLMUL-only build would have that single extra 12045 jump instruction of extra overhead. 12046 12047 - On platforms that support neither -fvisibility=hidden nor linker 12048 version script (liblzma*.map), jumping to lzma_crcxx_clmul() 12049 would go via PLT so a few more instructions of overhead (still 12050 not a big issue but silly nevertheless). 12051 12052 There was a downside with static liblzma too: if an application only 12053 needs lzma_crc64(), static linking would make the linker include the 12054 CLMUL code for both CRC32 and CRC64 from crc_x86_clmul.o even though 12055 the CRC32 code wouldn't be needed, thus increasing code size of the 12056 executable (assuming that -ffunction-sections isn't used). 12057 12058 Also, now compilers are likely to inline crc_simd_body() 12059 even if they don't support the always_inline attribute 12060 (or MSVC's __forceinline). Quite possibly all compilers 12061 that build the code do support such an attribute. But now 12062 it likely isn't a problem even if the attribute wasn't supported. 12063 12064 Now all x86-specific stuff is in crc_x86_clmul.h. If other archs 12065 The other archs can then have their own headers with their own 12066 is_clmul_supported() and crcxx_clmul(). 12067 12068 Another bonus is that the build system doesn't need to care if 12069 crc_clmul.c is needed. 12070 12071 is_clmul_supported() stays as inline function as it's not needed 12072 when doing a CLMUL-only build (avoids a warning about unused function). 12073 12074 CMakeLists.txt | 7 +- 12075 configure.ac | 1 - 12076 src/liblzma/check/Makefile.inc | 6 +- 12077 src/liblzma/check/crc32_fast.c | 9 ++- 12078 src/liblzma/check/crc64_fast.c | 9 ++- 12079 src/liblzma/check/crc_common.h | 64 ---------------- 12080 src/liblzma/check/{crc_clmul.c => crc_x86_clmul.h} | 86 ++++++++++++++++++---- 12081 7 files changed, 91 insertions(+), 91 deletions(-) 12082 12083commit e3833e297dfb5021a197bda34ba2a795e30aaf8a 12084Author: Lasse Collin <lasse.collin@tukaani.org> 12085Date: 2023-10-21 00:06:52 +0300 12086 12087 liblzma: crc_clmul.c: Add crc_attr_target macro. 12088 12089 This reduces the number of the complex #if directives. 12090 12091 src/liblzma/check/crc_clmul.c | 30 ++++++++++++++++-------------- 12092 1 file changed, 16 insertions(+), 14 deletions(-) 12093 12094commit d164ac0e62904126f7920c25f9a2875c8cd28b97 12095Author: Lasse Collin <lasse.collin@tukaani.org> 12096Date: 2023-10-20 22:49:48 +0300 12097 12098 liblzma: Simplify existing cases with lzma_attr_no_sanitize_address. 12099 12100 src/liblzma/check/crc_clmul.c | 12 +++--------- 12101 1 file changed, 3 insertions(+), 9 deletions(-) 12102 12103commit 9523c1300d22fa715765c181cf991d14d6112fb1 12104Author: Lasse Collin <lasse.collin@tukaani.org> 12105Date: 2023-10-20 21:53:35 +0300 12106 12107 liblzma: #define crc_attr_no_sanitize_address in crc_common.h. 12108 12109 src/liblzma/check/crc_common.h | 10 ++++++++++ 12110 1 file changed, 10 insertions(+) 12111 12112commit 93d144f0930821590524247bd174afd38003d7f0 12113Author: Lasse Collin <lasse.collin@tukaani.org> 12114Date: 2023-10-20 23:25:14 +0300 12115 12116 liblzma: CRC: Add empty lines. 12117 12118 And remove one too. 12119 12120 src/liblzma/check/crc32_fast.c | 2 ++ 12121 src/liblzma/check/crc64_fast.c | 3 +++ 12122 src/liblzma/check/crc_clmul.c | 1 - 12123 3 files changed, 5 insertions(+), 1 deletion(-) 12124 12125commit 0c7e854ffd27f1cec2e9b0e61601d6f90bfa10ae 12126Author: Lasse Collin <lasse.collin@tukaani.org> 12127Date: 2023-10-20 23:19:33 +0300 12128 12129 liblzma: crc_clmul.c: Tidy up the location of MSVC pragma. 12130 12131 It makes no difference in practice. 12132 12133 src/liblzma/check/crc_clmul.c | 4 ++-- 12134 1 file changed, 2 insertions(+), 2 deletions(-) 12135 12136commit 15cf3f04f270d707a5c91cc0208b23b6db42b774 12137Author: Lasse Collin <lasse.collin@tukaani.org> 12138Date: 2023-12-20 21:16:24 +0200 12139 12140 Update THANKS. 12141 12142 THANKS | 1 + 12143 1 file changed, 1 insertion(+) 12144 12145commit cd64dd70d5665b6048829c45772d08606f44672e 12146Author: Lasse Collin <lasse.collin@tukaani.org> 12147Date: 2023-12-20 21:15:16 +0200 12148 12149 liblzma: Use 8-byte method in memcmplen.h on ARM64. 12150 12151 It requires fast unaligned access to 64-bit integers 12152 and a fast instruction to count leading zeros in 12153 a 64-bit integer (__builtin_ctzll()). This perhaps 12154 should be enabled on some other archs too. 12155 12156 Thanks to Chenxi Mao for the original patch: 12157 https://github.com/tukaani-project/xz/pull/75 (the first commit) 12158 According to the numbers there, this may improve encoding 12159 speed by about 3-5 %. 12160 12161 This enables the 8-byte method on MSVC ARM64 too which 12162 should work but wasn't tested. 12163 12164 src/liblzma/common/memcmplen.h | 18 ++++++++++-------- 12165 1 file changed, 10 insertions(+), 8 deletions(-) 12166 12167commit 12c90c00f05e19da3c0c91d8cd8e0d0d45965606 12168Author: Lasse Collin <lasse.collin@tukaani.org> 12169Date: 2023-12-20 21:01:06 +0200 12170 12171 liblzma: Check also for __clang__ in memcmplen.h. 12172 12173 This change hopefully makes no practical difference as Clang 12174 likely was detected via __GNUC__ or _MSC_VER already. 12175 12176 src/liblzma/common/memcmplen.h | 3 ++- 12177 1 file changed, 2 insertions(+), 1 deletion(-) 12178 12179commit 133c5851eb917c6d99d0b623c1689c8518e65f38 12180Author: Jia Tan <jiat0218@gmail.com> 12181Date: 2023-12-21 21:39:08 +0800 12182 12183 Translations: Update the French translation. 12184 12185 po/fr.po | 632 +++++++++++++++++++++++++++++++++++++-------------------------- 12186 1 file changed, 370 insertions(+), 262 deletions(-) 12187 12188commit 710cbc186cad0ac601c38bd6bf31167648a5581e 12189Author: Jia Tan <jiat0218@gmail.com> 12190Date: 2023-12-21 16:39:53 +0800 12191 12192 xz: Add a comment to Capsicum sandbox setup. 12193 12194 This comment is repeated in xzdec.c to help remind us why all the 12195 capabilities are removed from stdin in certain situations. 12196 12197 src/xz/file_io.c | 1 + 12198 1 file changed, 1 insertion(+) 12199 12200commit 4e1c695676bafbaecc9fb307f6ee94138ae72c12 12201Author: Jia Tan <jiat0218@gmail.com> 12202Date: 2023-12-20 22:19:19 +0800 12203 12204 Docs: Update --enable-sandbox option in INSTALL. 12205 12206 xzdec now also uses the sandbox when its configured. 12207 12208 INSTALL | 17 ++++++++++------- 12209 1 file changed, 10 insertions(+), 7 deletions(-) 12210 12211commit ebddf20214143a8e002ab897e95e880bb4c5ac44 12212Author: Jia Tan <jiat0218@gmail.com> 12213Date: 2023-12-20 22:39:13 +0800 12214 12215 CMake: Move sandbox detection outside of xz section. 12216 12217 The sandbox is now enabled for xzdec as well, so it no longer belongs 12218 in just the xz section. xz and xzdec are always built, except for older 12219 MSVC versions, so there isn't a need to conditionally show the sandbox 12220 configuration. CMake will do a little unecessary work on older MSVC 12221 versions that can't build xz or xzdec, but this is a very small 12222 downside. 12223 12224 CMakeLists.txt | 178 +++++++++++++++++++++++++++++++-------------------------- 12225 1 file changed, 98 insertions(+), 80 deletions(-) 12226 12227commit 5feb09266fd2928ec0a4dcb98c1dc7f053111316 12228Author: Jia Tan <jiat0218@gmail.com> 12229Date: 2023-12-20 22:43:44 +0800 12230 12231 Build: Allow sandbox to be configured for just xzdec. 12232 12233 If xz is disabled, then xzdec can still use the sandbox. 12234 12235 configure.ac | 10 +++++----- 12236 1 file changed, 5 insertions(+), 5 deletions(-) 12237 12238commit d74fb5f060b76db709b50f5fd37490394e52f975 12239Author: Jia Tan <jiat0218@gmail.com> 12240Date: 2023-12-19 21:18:28 +0800 12241 12242 xzdec: Add sandbox support for Pledge, Capsicum, and Landlock. 12243 12244 A very strict sandbox is used when the last file is decompressed. The 12245 likely most common use case of xzdec is to decompress a single file. 12246 The Pledge sandbox is applied to the entire process with slightly more 12247 relaxed promises, until the last file is processed. 12248 12249 Thanks to Christian Weisgerber for the initial patch adding Pledge 12250 sandboxing. 12251 12252 src/xzdec/xzdec.c | 146 +++++++++++++++++++++++++++++++++++++++++++++++++++--- 12253 1 file changed, 139 insertions(+), 7 deletions(-) 12254 12255commit b34b6a9912d6165e34ba0db151b7f9941d2e06d5 12256Author: Jia Tan <jiat0218@gmail.com> 12257Date: 2023-12-20 21:31:34 +0800 12258 12259 liblzma: Initialize lzma_lz_encoder pointers with NULL. 12260 12261 This fixes the recent change to lzma_lz_encoder that used memzero 12262 instead of the NULL constant. On some compilers the NULL constant 12263 (always 0) may not equal the NULL pointer (this only needs to guarentee 12264 to not point to valid memory address). 12265 12266 Later code compares the pointers to the NULL pointer so we must 12267 initialize them with the NULL pointer instead of 0 to guarentee 12268 code correctness. 12269 12270 src/liblzma/lz/lz_encoder.c | 6 +++++- 12271 1 file changed, 5 insertions(+), 1 deletion(-) 12272 12273commit 183a62f0b540ff4d23cc19b2b6bc2525f0bd64df 12274Author: Jia Tan <jiat0218@gmail.com> 12275Date: 2023-12-16 20:51:38 +0800 12276 12277 liblzma: Set all values in lzma_lz_encoder to NULL after allocation. 12278 12279 The first member of lzma_lz_encoder doesn't necessarily need to be set 12280 to NULL since it will always be set before anything tries to use it. 12281 However the function pointer members must be set to NULL since other 12282 functions rely on this NULL value to determine if this behavior is 12283 supported or not. 12284 12285 This fixes a somewhat serious bug, where the options_update() and 12286 set_out_limit() function pointers are not set to NULL. This seems to 12287 have been forgotten since these function pointers were added many years 12288 after the original two (code() and end()). 12289 12290 The problem is that by not setting this to NULL we are relying on the 12291 memory allocation to zero things out if lzma_filters_update() is called 12292 on a LZMA1 encoder. The function pointer for set_out_limit() is less 12293 serious because there is not an API function that could call this in an 12294 incorrect way. set_out_limit() is only called by the MicroLZMA encoder, 12295 which must use LZMA1 where set_out_limit() is always set. Its currently 12296 not possible to call set_out_limit() on an LZMA2 encoder at this time. 12297 12298 So calling lzma_filters_update() on an LZMA1 encoder had undefined 12299 behavior since its possible that memory could be manipulated so the 12300 options_update member pointed to a different instruction sequence. 12301 12302 This is unlikely to be a bug in an existing application since it relies 12303 on calling lzma_filters_update() on an LZMA1 encoder in the first place. 12304 For instance, it does not affect xz because lzma_filters_update() can 12305 only be used when encoding to the .xz format. 12306 12307 This is fixed by using memzero() to set all members of lzma_lz_encoder 12308 to NULL after it is allocated. This ensures this mistake will not occur 12309 here in the future if any additional function pointers are added. 12310 12311 src/liblzma/lz/lz_encoder.c | 4 +--- 12312 1 file changed, 1 insertion(+), 3 deletions(-) 12313 12314commit 1a1bb381db7a20cf86cb45a350e5cca35224d017 12315Author: Jia Tan <jiat0218@gmail.com> 12316Date: 2023-12-16 20:30:55 +0800 12317 12318 liblzma: Tweak a comment. 12319 12320 src/liblzma/lz/lz_encoder.c | 2 +- 12321 1 file changed, 1 insertion(+), 1 deletion(-) 12322 12323commit 55810780e04f759747b02683fb8020b8cd022a85 12324Author: Jia Tan <jiat0218@gmail.com> 12325Date: 2023-12-16 20:28:21 +0800 12326 12327 liblzma: Make parameter names in function definition match declaration. 12328 12329 lzma_raw_encoder() and lzma_raw_encoder_init() used "options" as the 12330 parameter name instead of "filters" (used by the declaration). "filters" 12331 is more clear since the parameter represents the list of filters passed 12332 to the raw encoder, each of which contains filter options. 12333 12334 src/liblzma/common/filter_encoder.c | 8 ++++---- 12335 1 file changed, 4 insertions(+), 4 deletions(-) 12336 12337commit 5dad6f628af742bab826819760deb677597445f7 12338Author: Jia Tan <jiat0218@gmail.com> 12339Date: 2023-12-16 20:18:47 +0800 12340 12341 liblzma: Improve lzma encoder init function consistency. 12342 12343 lzma_encoder_init() did not check for NULL options, but 12344 lzma2_encoder_init() did. This is more of a code style improvement than 12345 anything else to help make lzma_encoder_init() and lzma2_encoder_init() 12346 more similar. 12347 12348 src/liblzma/lzma/lzma_encoder.c | 3 +++ 12349 1 file changed, 3 insertions(+) 12350 12351commit e1b1a9d6370b788bd6078952c6c201e12bc27cbf 12352Author: Jia Tan <jiat0218@gmail.com> 12353Date: 2023-12-16 11:20:20 +0800 12354 12355 Docs: Update repository URL in Changelog. 12356 12357 ChangeLog | 2 +- 12358 1 file changed, 1 insertion(+), 1 deletion(-) 12359 12360commit f9b82bc64a9405e486575c65c1729229eb0a8198 12361Author: Jia Tan <jiat0218@gmail.com> 12362Date: 2023-12-15 16:56:31 +0800 12363 12364 CI: Update Upload Artifact Action. 12365 12366 .github/workflows/ci.yml | 2 +- 12367 .github/workflows/windows-ci.yml | 2 +- 12368 2 files changed, 2 insertions(+), 2 deletions(-) 12369 12370commit d0b24efe6cdc47db5b0fdf6306f70a2e0e63e49e 12371Author: Jia Tan <jiat0218@gmail.com> 12372Date: 2023-12-07 21:48:07 +0800 12373 12374 Tests: Silence -Wsign-conversion warning on GCC version < 10. 12375 12376 Since GCC version 10, GCC no longer complains about simple implicit 12377 integer conversions with Arithmetic operators. 12378 12379 For instance: 12380 12381 uint8_t a = 5; 12382 uint32_t b = a + 5; 12383 12384 Give a warning on GCC 9 and earlier but this: 12385 12386 uint8_t a = 5; 12387 uint32_t b = (a + 5) * 2; 12388 12389 Gives a warning with GCC 10+. 12390 12391 tests/test_block_header.c | 2 +- 12392 1 file changed, 1 insertion(+), 1 deletion(-) 12393 12394commit 4a972a8ee3ed88ac14067c1d2f15b78988e5dae8 12395Author: Jia Tan <jiat0218@gmail.com> 12396Date: 2023-12-06 18:39:03 +0800 12397 12398 Update THANKS. 12399 12400 THANKS | 1 + 12401 1 file changed, 1 insertion(+) 12402 12403commit ee2f48350099201694a7586e41d7aa2f09fc74da 12404Author: Jia Tan <jiat0218@gmail.com> 12405Date: 2023-12-06 18:30:25 +0800 12406 12407 Tests: Minor cleanups to OSS-Fuzz files. 12408 12409 Most of these fixes are small typos and tweaks. A few were caused by bad 12410 advice from me. Here is the summary of what is changed: 12411 12412 - Author line edits 12413 12414 - Small comment changes/additions 12415 12416 - Using the return value in the error messages in the fuzz targets' 12417 coder initialization code 12418 12419 - Removed fuzz_encode_stream.options. This set a max length, which may 12420 prevent some worthwhile code paths from being properly exercised. 12421 12422 - Removed the max_len option from fuzz_decode_stream.options for the 12423 same reason as fuzz_encode_stream. The alone decoder fuzz target still 12424 has this restriction. 12425 12426 - Altered the dictionary contents for fuzz_lzma.dict. Instead of keeping 12427 the properties static and varying the dictionary size, the properties 12428 are varied and the dictionary size is kept small. The dictionary size 12429 doesn't have much impact on the code paths but the properties do. 12430 12431 Closes: https://github.com/tukaani-project/xz/pull/73 12432 12433 tests/ossfuzz/Makefile | 3 ++ 12434 tests/ossfuzz/config/fuzz_decode_stream.options | 1 - 12435 tests/ossfuzz/config/fuzz_lzma.dict | 34 +++++++++++----------- 12436 tests/ossfuzz/fuzz_common.h | 16 +++++------ 12437 tests/ossfuzz/fuzz_decode_alone.c | 15 +++++----- 12438 tests/ossfuzz/fuzz_decode_stream.c | 15 +++++----- 12439 tests/ossfuzz/fuzz_encode_stream.c | 38 +++++++++++++++---------- 12440 7 files changed, 66 insertions(+), 56 deletions(-) 12441 12442commit 483bb90eec7c83e1c2bcd06287714afd62d8c17d 12443Author: Maksym Vatsyk <maksym.vatsyk@leviathansecurity.com> 12444Date: 2023-12-05 16:31:09 +0100 12445 12446 Tests: Add fuzz_encode_stream ossfuzz target. 12447 12448 This fuzz target handles .xz stream encoding. The first byte of input 12449 is used to dynamically set the preset level in order to increase the 12450 fuzz coverage of complex critical code paths. 12451 12452 tests/ossfuzz/config/fuzz_encode_stream.options | 2 + 12453 tests/ossfuzz/fuzz_encode_stream.c | 79 +++++++++++++++++++++++++ 12454 2 files changed, 81 insertions(+) 12455 12456commit 7ca8c9869df82756c3128c4fcf1058da4d18aa48 12457Author: Maksym Vatsyk <maksym.vatsyk@leviathansecurity.com> 12458Date: 2023-12-04 17:23:24 +0100 12459 12460 Tests: Add fuzz_decode_alone OSS-Fuzz target 12461 12462 This fuzz target that handles LZMA alone decoding. A new fuzz 12463 dictionary .dict was also created with common LZMA header values to 12464 help speed up the discovery of valid headers. 12465 12466 tests/ossfuzz/config/fuzz_decode_alone.options | 3 ++ 12467 tests/ossfuzz/config/fuzz_lzma.dict | 22 ++++++++++++++ 12468 tests/ossfuzz/fuzz_decode_alone.c | 41 ++++++++++++++++++++++++++ 12469 3 files changed, 66 insertions(+) 12470 12471commit 37581a77ad5a49615325b1d1925fdc402b1e1d5a 12472Author: Maksym Vatsyk <maksym.vatsyk@leviathansecurity.com> 12473Date: 2023-12-04 17:21:29 +0100 12474 12475 Tests: Update OSS-Fuzz Makefile. 12476 12477 All .c files can be built as separate fuzz targets. This simplifies 12478 the Makefile by allowing us to use wildcards instead of having a 12479 Makefile target for each fuzz target. 12480 12481 tests/ossfuzz/Makefile | 13 +++++++++---- 12482 1 file changed, 9 insertions(+), 4 deletions(-) 12483 12484commit 28ce6a1c2a74866c51f7996a6869679c236d3c94 12485Author: Maksym Vatsyk <maksym.vatsyk@leviathansecurity.com> 12486Date: 2023-12-04 17:20:08 +0100 12487 12488 Tests: Move common OSS-Fuzz target code to .h file. 12489 12490 tests/ossfuzz/fuzz_common.h | 56 ++++++++++++++++++++++++++++++++++++ 12491 tests/ossfuzz/fuzz_decode_stream.c | 59 ++++++++++---------------------------- 12492 2 files changed, 71 insertions(+), 44 deletions(-) 12493 12494commit bf0521ea1591c25b9d510c1b8be86073e9d847c6 12495Author: Maksym Vatsyk <maksym.vatsyk@leviathansecurity.com> 12496Date: 2023-12-04 17:18:20 +0100 12497 12498 Tests: Rename OSS-Fuzz files. 12499 12500 tests/ossfuzz/config/fuzz.options | 2 -- 12501 tests/ossfuzz/config/fuzz_decode_stream.options | 3 +++ 12502 tests/ossfuzz/config/{fuzz.dict => fuzz_xz.dict} | 0 12503 tests/ossfuzz/{fuzz.c => fuzz_decode_stream.c} | 0 12504 4 files changed, 3 insertions(+), 2 deletions(-) 12505 12506commit 685094b8e1c1aa1bf934de0366ca42ef599d25f7 12507Author: Jia Tan <jiat0218@gmail.com> 12508Date: 2023-11-30 23:10:43 +0800 12509 12510 Update THANKS. 12511 12512 THANKS | 1 + 12513 1 file changed, 1 insertion(+) 12514 12515commit 3b3023e00b0071e10f589bbc3674e0ec432b8add 12516Author: Kian-Meng Ang <kianmeng@cpan.org> 12517Date: 2023-11-30 23:01:19 +0800 12518 12519 Tests: Fix typos 12520 12521 tests/test_index.c | 2 +- 12522 tests/test_lzip_decoder.c | 4 ++-- 12523 2 files changed, 3 insertions(+), 3 deletions(-) 12524 12525commit 424d46ead8cbc0da57f406b76926ec4ed47437f5 12526Author: Kian-Meng Ang <kianmeng@cpan.org> 12527Date: 2023-11-30 22:59:47 +0800 12528 12529 xz: Fix typo 12530 12531 src/xz/file_io.c | 2 +- 12532 1 file changed, 1 insertion(+), 1 deletion(-) 12533 12534commit 35558adf9c45e5597f2c8dbd969885dd484038d2 12535Author: Jia Tan <jiat0218@gmail.com> 12536Date: 2023-11-30 20:41:00 +0800 12537 12538 Update THANKS. 12539 12540 THANKS | 1 + 12541 1 file changed, 1 insertion(+) 12542 12543commit fd170e8557727bed6bec0518c16415064d972e4e 12544Author: Jia Tan <jiat0218@gmail.com> 12545Date: 2023-11-22 21:20:12 +0800 12546 12547 CI: Test musl libc builds on Ubuntu runner. 12548 12549 .github/workflows/ci.yml | 19 +++++++++++++++++-- 12550 1 file changed, 17 insertions(+), 2 deletions(-) 12551 12552commit db2b4aa068a492c0013279a4ed43803e8ff9bb3e 12553Author: Jia Tan <jiat0218@gmail.com> 12554Date: 2023-11-22 21:12:15 +0800 12555 12556 CI: Allow ci_build.sh to set a different C compiler. 12557 12558 build-aux/ci_build.sh | 11 ++++++++++- 12559 1 file changed, 10 insertions(+), 1 deletion(-) 12560 12561commit ff7badef53c2cd698d4b72b945f34dfd0835e13c 12562Author: Jia Tan <jiat0218@gmail.com> 12563Date: 2023-11-24 21:19:12 +0800 12564 12565 CMake: Use consistent indentation with check_c_source_compiles(). 12566 12567 CMakeLists.txt | 4 ++-- 12568 1 file changed, 2 insertions(+), 2 deletions(-) 12569 12570commit d4af167570f2c14b002ee18a39d5b1e7e5a892b1 12571Author: Jia Tan <jiat0218@gmail.com> 12572Date: 2023-11-22 20:33:36 +0800 12573 12574 CMake: Change __attribute__((__ifunc__())) detection. 12575 12576 This renames ALLOW_ATTR_IFUNC to USE_ATTR_IFUNC and applies the ifunc 12577 detection changes that were made to the Autotools build. 12578 12579 Fixes: https://github.com/tukaani-project/xz/issues/70 12580 12581 CMakeLists.txt | 53 +++++++++++++++++++++++++++++++++++++++++++++-------- 12582 1 file changed, 45 insertions(+), 8 deletions(-) 12583 12584commit 20ecee40a0053fd16371ef0628046bf45e548d72 12585Author: Jia Tan <jiat0218@gmail.com> 12586Date: 2023-11-24 20:19:11 +0800 12587 12588 Docs: Update INSTALL for --enable_ifunc change. 12589 12590 INSTALL | 16 ++++++++-------- 12591 1 file changed, 8 insertions(+), 8 deletions(-) 12592 12593commit ffb456593d695d70052a2f71c7a2e6269217d194 12594Author: Jia Tan <jiat0218@gmail.com> 12595Date: 2023-11-21 20:56:55 +0800 12596 12597 Build: Change --enable-ifunc handling. 12598 12599 Some compilers support __attribute__((__ifunc__())) even though the 12600 dynamic linker does not. The compiler is able to create the binary 12601 but it will fail on startup. So it is not enough to just test if 12602 the attribute is supported. 12603 12604 The default value for enable_ifunc is now auto, which will attempt 12605 to compile a program using __attribute__((__ifunc__())). There are 12606 additional checks in this program if glibc is being used or if it 12607 is running on FreeBSD. 12608 12609 Setting --enable-ifunc will skip this test and always enable 12610 __attribute__((__ifunc__())), even if is not supported. 12611 12612 configure.ac | 61 +++++++++++++++++++++++++++++++++++++++++++----------------- 12613 1 file changed, 44 insertions(+), 17 deletions(-) 12614 12615commit 12b89bcc9915090eb42ae638e565af44b6832a23 12616Author: Lasse Collin <lasse.collin@tukaani.org> 12617Date: 2023-11-23 17:39:10 +0200 12618 12619 xz: Tweak a comment. 12620 12621 src/xz/util.c | 4 ++-- 12622 1 file changed, 2 insertions(+), 2 deletions(-) 12623 12624commit 2ab2e4b5a542eab93902985ce4e642719a8b7a4e 12625Author: Jia Tan <jiat0218@gmail.com> 12626Date: 2023-11-23 22:13:39 +0800 12627 12628 xz: Use is_tty() in message.c. 12629 12630 src/xz/message.c | 7 +------ 12631 1 file changed, 1 insertion(+), 6 deletions(-) 12632 12633commit 584e3a258f32d579b1d07f99b4dc6e856c10ac7e 12634Author: Jia Tan <jiat0218@gmail.com> 12635Date: 2023-11-23 22:04:35 +0800 12636 12637 xz: Create separate is_tty() function. 12638 12639 The new is_tty() will report if a file descriptor is a terminal or not. 12640 On POSIX systems, it is a wrapper around isatty(). However, the native 12641 Windows implementation of isatty() will return true for all character 12642 devices, not just terminals. So is_tty() has a special case for Windows 12643 so it can use alternative Windows API functions to determine if a file 12644 descriptor is a terminal. 12645 12646 This fixes a bug with MSVC and MinGW-w64 builds that refused to read from 12647 or write to non-terminal character devices because xz thought it was a 12648 terminal. For instance: 12649 12650 xz foo -c > /dev/null 12651 12652 would fail because /dev/null was assumed to be a terminal. 12653 12654 src/xz/util.c | 30 +++++++++++++++++++++++------- 12655 src/xz/util.h | 14 ++++++++++++++ 12656 2 files changed, 37 insertions(+), 7 deletions(-) 12657 12658commit 6b05f827f50e686537e9a23c49c5aa4c0aa6b23d 12659Author: Jia Tan <jiat0218@gmail.com> 12660Date: 2023-11-22 20:39:41 +0800 12661 12662 tuklib_integer: Fix typo discovered by codespell. 12663 12664 Based on internet dictionary searches, 'choise' is an outdated spelling 12665 of 'choice'. 12666 12667 src/common/tuklib_integer.h | 2 +- 12668 1 file changed, 1 insertion(+), 1 deletion(-) 12669 12670commit 659aca0d695807c0762d4101765189e4e33d1e2c 12671Author: Lasse Collin <lasse.collin@tukaani.org> 12672Date: 2023-11-17 19:35:19 +0200 12673 12674 xz: Move the check for --suffix with --format=raw a few lines earlier. 12675 12676 Now it reads from argv[] instead of args->arg_names. 12677 12678 src/xz/args.c | 44 ++++++++++++++++++++++---------------------- 12679 1 file changed, 22 insertions(+), 22 deletions(-) 12680 12681commit ca278eb2b7f5a4940f5ab18955297b398d423824 12682Author: Jia Tan <jiat0218@gmail.com> 12683Date: 2023-11-17 20:35:11 +0800 12684 12685 Tests: Create test_suffix.sh. 12686 12687 This tests some complicated interactions with the --suffix= option. 12688 The suffix option must be used with --format=raw, but can optionally 12689 be used to override the default .xz suffix. 12690 12691 This test also verifies some recent bugs have been correctly solved 12692 and to hopefully avoid further regressions in the future. 12693 12694 tests/Makefile.am | 2 + 12695 tests/test_suffix.sh | 189 +++++++++++++++++++++++++++++++++++++++++++++++++++ 12696 2 files changed, 191 insertions(+) 12697 12698commit 2a732aba22da1b0d4a1241cb32280ed010ba03ce 12699Author: Jia Tan <jiat0218@gmail.com> 12700Date: 2023-11-17 20:19:26 +0800 12701 12702 xz: Fix a bug with --files and --files0 in raw mode without a suffix. 12703 12704 The following command caused a segmentation fault: 12705 12706 xz -Fraw --lzma1 --files=foo 12707 12708 when foo was a valid file. The usage of --files or --files0 was not 12709 being checked when compressing or decompressing in raw mode without a 12710 suffix. The suffix checking code was meant to validate that all files 12711 to be processed are "-" (if not writing to standard out), meaning the 12712 data is only coming from standard in. In this case, there were no file 12713 names to check since --files and --files0 store their file name in a 12714 different place. 12715 12716 Later code assumed the suffix was set and caused a segmentation fault. 12717 Now, the above command results in an error. 12718 12719 src/xz/args.c | 5 +++++ 12720 1 file changed, 5 insertions(+) 12721 12722commit 299920bab9ae258a247366339264e8aefca9e3ce 12723Author: Jia Tan <jiat0218@gmail.com> 12724Date: 2023-11-17 20:04:58 +0800 12725 12726 Tests: Fix typo in a comment. 12727 12728 tests/test_files.sh | 2 +- 12729 1 file changed, 1 insertion(+), 1 deletion(-) 12730 12731commit f481523baac946fa3bc13d79186ffaf0c0b818a7 12732Author: Jia Tan <jiat0218@gmail.com> 12733Date: 2023-11-15 23:40:13 +0800 12734 12735 xz: Refactor suffix test with raw format. 12736 12737 The previous version set opt_stdout, but this caused an issue with 12738 copying an input file to standard out when decompressing an unknown file 12739 type. The following needs to result in an error: 12740 12741 echo foo | xz -df 12742 12743 since -c, --stdout is not used. This fixes the previous error by not 12744 setting opt_stdout. 12745 12746 src/xz/args.c | 38 +++++++++++++------------------------- 12747 1 file changed, 13 insertions(+), 25 deletions(-) 12748 12749commit 837ea40b1c9d4998cac4500b55171bf33e0c31a6 12750Author: Jia Tan <jiat0218@gmail.com> 12751Date: 2023-11-14 20:27:46 +0800 12752 12753 xz: Move suffix check after stdout mode is detected. 12754 12755 This fixes a bug introduced in cc5aa9ab138beeecaee5a1e81197591893ee9ca0 12756 when the suffix check was initially moved. This caused a situation that 12757 previously worked: 12758 12759 echo foo | xz -Fraw --lzma1 | wc -c 12760 12761 to fail because the old code knew that this would write to standard out 12762 so a suffix was not needed. 12763 12764 src/xz/args.c | 16 ++++++++-------- 12765 1 file changed, 8 insertions(+), 8 deletions(-) 12766 12767commit d4f4a4d040ef47a5e82dffd0f067e92716606ddf 12768Author: Jia Tan <jiat0218@gmail.com> 12769Date: 2023-11-14 20:27:04 +0800 12770 12771 xz: Detect when all data will be written to standard out earlier. 12772 12773 If the -c, --stdout argument is not used, then we can still detect when 12774 the data will be written to standard out if all of the provided 12775 filenames are "-" (denoting standard in) or if no filenames are 12776 provided. 12777 12778 src/xz/args.c | 21 +++++++++++++++++++++ 12779 1 file changed, 21 insertions(+) 12780 12781commit 2ade7246e7ba729a91460d2fab0f4c7b89d3998b 12782Author: Jia Tan <jiat0218@gmail.com> 12783Date: 2023-11-09 01:21:53 +0800 12784 12785 liblzma: Add missing comments to lz_encoder.h. 12786 12787 src/liblzma/lz/lz_encoder.h | 6 +++++- 12788 1 file changed, 5 insertions(+), 1 deletion(-) 12789 12790commit 5fe1450603dc625340b8b7866fb4a83ff748ad06 12791Author: Jia Tan <jiat0218@gmail.com> 12792Date: 2023-11-01 20:18:30 +0800 12793 12794 Add NEWS for 5.4.5. 12795 12796 NEWS | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 12797 1 file changed, 74 insertions(+) 12798 12799commit 46007049cd42e606543dbe650feb17bdf4469c29 12800Author: Lasse Collin <lasse.collin@tukaani.org> 12801Date: 2023-10-31 21:41:09 +0200 12802 12803 liblzma: Fix compilation of fastpos_tablegen.c. 12804 12805 The macro lzma_attr_visibility_hidden has to be defined to make 12806 fastpos.h usable. The visibility attribute is irrelevant to 12807 fastpos_tablegen.c so simply #define the macro to an empty value. 12808 12809 fastpos_tablegen.c is never built by the included build systems 12810 and so the problem wasn't noticed earlier. It's just a standalone 12811 program for generating fastpos_table.c. 12812 12813 Fixes: https://github.com/tukaani-project/xz/pull/69 12814 Thanks to GitHub user Jamaika1. 12815 12816 src/liblzma/lzma/fastpos_tablegen.c | 2 ++ 12817 1 file changed, 2 insertions(+) 12818 12819commit 148e20607e95781558bdfc823ecba07b7af4b590 12820Author: Jia Tan <jiat0218@gmail.com> 12821Date: 2023-10-31 21:51:40 +0800 12822 12823 Build: Fix text wrapping in an output message. 12824 12825 configure.ac | 9 +++++---- 12826 1 file changed, 5 insertions(+), 4 deletions(-) 12827 12828commit 8c36ab79cbf23104ce7a3d533d5ac98cd492e57c 12829Author: Lasse Collin <lasse.collin@tukaani.org> 12830Date: 2023-10-30 18:09:53 +0200 12831 12832 liblzma: Add a note why crc_always_inline exists for now. 12833 12834 Solaris Studio is a possible example (not tested) which 12835 supports the always_inline attribute but might not get 12836 detected by the common.h #ifdefs. 12837 12838 src/liblzma/check/crc_common.h | 5 +++++ 12839 1 file changed, 5 insertions(+) 12840 12841commit e7a86b94cd247435ac96bc79ba528b690b9ca388 12842Author: Lasse Collin <lasse.collin@tukaani.org> 12843Date: 2023-10-22 17:59:11 +0300 12844 12845 liblzma: Use lzma_always_inline in memcmplen.h. 12846 12847 src/liblzma/common/memcmplen.h | 3 +-- 12848 1 file changed, 1 insertion(+), 2 deletions(-) 12849 12850commit dcfe5632992fb7f06f921da13fcdd84f83d0d285 12851Author: Lasse Collin <lasse.collin@tukaani.org> 12852Date: 2023-10-30 17:43:03 +0200 12853 12854 liblzma: #define lzma_always_inline in common.h. 12855 12856 src/liblzma/common/common.h | 17 +++++++++++++++++ 12857 1 file changed, 17 insertions(+) 12858 12859commit 41113fe30a47f6fd3e30cb4494dd538e86212edf 12860Author: Lasse Collin <lasse.collin@tukaani.org> 12861Date: 2023-10-22 17:15:32 +0300 12862 12863 liblzma: Use lzma_attr_visibility_hidden on private extern declarations. 12864 12865 These variables are internal to liblzma and not exposed in the API. 12866 12867 src/liblzma/check/check.h | 7 +++++++ 12868 src/liblzma/common/stream_flags_common.h | 3 +++ 12869 src/liblzma/lz/lz_encoder_hash.h | 1 + 12870 src/liblzma/lzma/fastpos.h | 1 + 12871 src/liblzma/rangecoder/price.h | 1 + 12872 5 files changed, 13 insertions(+) 12873 12874commit a2f5ca706acc6f7715b8d260a8c6ed50d7717478 12875Author: Lasse Collin <lasse.collin@tukaani.org> 12876Date: 2023-10-22 17:08:39 +0300 12877 12878 liblzma: #define lzma_attr_visibility_hidden in common.h. 12879 12880 In ELF shared libs: 12881 12882 -fvisibility=hidden affects definitions of symbols but not 12883 declarations.[*] This doesn't affect direct calls to functions 12884 inside liblzma as a linker can replace a call to lzma_foo@plt 12885 with a call directly to lzma_foo when -fvisibility=hidden is used. 12886 12887 [*] It has to be like this because otherwise every installed 12888 header file would need to explictly set the symbol visibility 12889 to default. 12890 12891 When accessing extern variables that aren't defined in the 12892 same translation unit, compiler assumes that the variable has 12893 the default visibility and thus indirection is needed. Unlike 12894 function calls, linker cannot optimize this. 12895 12896 Using __attribute__((__visibility__("hidden"))) with the extern 12897 variable declarations tells the compiler that indirection isn't 12898 needed because the definition is in the same shared library. 12899 12900 About 15+ years ago, someone told me that it would be good if 12901 the CRC tables would be defined in the same translation unit 12902 as the C code of the CRC functions. While I understood that it 12903 could help a tiny amount, I didn't want to change the code because 12904 a separate translation unit for the CRC tables was needed for the 12905 x86 assembly code anyway. But when visibility attributes are 12906 supported, simply marking the extern declaration with the 12907 hidden attribute will get identical result. When there are only 12908 a few affected variables, this is trivial to do. I wish I had 12909 understood this back then already. 12910 12911 src/liblzma/common/common.h | 11 +++++++++++ 12912 1 file changed, 11 insertions(+) 12913 12914commit 2c7ee92e44e1e66f0a427555233eb22c78f6c4f8 12915Author: Lasse Collin <lasse.collin@tukaani.org> 12916Date: 2023-09-30 22:54:28 +0300 12917 12918 liblzma: Refer to MinGW-w64 instead of MinGW in the API headers. 12919 12920 MinGW (formely a MinGW.org Project, later the MinGW.OSDN Project 12921 at <https://osdn.net/projects/mingw/>) has GCC 9.2.0 as the 12922 most recent GCC package (released 2021-02-02). The project might 12923 still be alive but majority of people have switched to MinGW-w64. 12924 Thus it seems clearer to refer to MinGW-w64 in our API headers too. 12925 Building with MinGW is likely to still work but I haven't tested it 12926 in the recent years. 12927 12928 src/liblzma/api/lzma.h | 4 ++-- 12929 src/liblzma/api/lzma/version.h | 2 +- 12930 2 files changed, 3 insertions(+), 3 deletions(-) 12931 12932commit 597f49b61475438a43a417236989b2acc968a686 12933Author: Lasse Collin <lasse.collin@tukaani.org> 12934Date: 2023-09-27 00:58:17 +0300 12935 12936 CMake: Use -D_FILE_OFFSET_BITS=64 if (and only if) needed. 12937 12938 A CMake option LARGE_FILE_SUPPORT is created if and only if 12939 -D_FILE_OFFSET_BITS=64 affects sizeof(off_t). 12940 12941 This is needed on many 32-bit platforms and even with 64-bit builds 12942 with MinGW-w64 to get support for files larger than 2 GiB. 12943 12944 CMakeLists.txt | 7 ++++- 12945 cmake/tuklib_large_file_support.cmake | 52 +++++++++++++++++++++++++++++++++++ 12946 2 files changed, 58 insertions(+), 1 deletion(-) 12947 12948commit 1bc548b8210366e44ba35b0b11577a8e328c1228 12949Author: Lasse Collin <lasse.collin@tukaani.org> 12950Date: 2023-09-30 02:14:25 +0300 12951 12952 CMake: Generate and install liblzma.pc if not using MSVC. 12953 12954 Autotools based build uses -pthread and thus adds it to Libs.private 12955 in liblzma.pc. CMake doesn't use -pthread at all if pthread functions 12956 are available in libc so Libs.private doesn't get -pthread either. 12957 12958 CMakeLists.txt | 21 +++++++++++++++++++++ 12959 1 file changed, 21 insertions(+) 12960 12961commit 2add71966f891d315105d6245f724ed4f43a4eff 12962Author: Lasse Collin <lasse.collin@tukaani.org> 12963Date: 2023-09-30 01:13:13 +0300 12964 12965 CMake: Rearrange the PACKAGE_ variables. 12966 12967 The windres workaround now replaces spaces with \x20 so 12968 the package name isn't repeated. 12969 12970 These changes will help with creation of liblzma.pc. 12971 12972 CMakeLists.txt | 26 +++++++++++++++----------- 12973 1 file changed, 15 insertions(+), 11 deletions(-) 12974 12975commit a7d1b2825c49dc83f1910eeb8ba0f1dfbd886d91 12976Author: Lasse Collin <lasse.collin@tukaani.org> 12977Date: 2023-09-29 20:46:11 +0300 12978 12979 liblzma: Add Cflags.private to liblzma.pc.in for MSYS2. 12980 12981 It properly adds -DLZMA_API_STATIC when compiling code that 12982 will be linked against static liblzma. Having it there on 12983 systems other than Windows does no harm. 12984 12985 See: https://www.msys2.org/docs/pkgconfig/ 12986 12987 src/liblzma/liblzma.pc.in | 1 + 12988 1 file changed, 1 insertion(+) 12989 12990commit 80e0750e3996c1c659e972ce9cf789ca2e99f702 12991Author: Lasse Collin <lasse.collin@tukaani.org> 12992Date: 2023-09-27 22:46:20 +0300 12993 12994 CMake: Create liblzma.def when building liblzma.dll with MinGW-w64. 12995 12996 CMakeLists.txt | 20 ++++++++++++++++++++ 12997 cmake/remove-ordinals.cmake | 26 ++++++++++++++++++++++++++ 12998 2 files changed, 46 insertions(+) 12999 13000commit 08d12595f486890cf601b87f36ee0ddbce57728e 13001Author: Lasse Collin <lasse.collin@tukaani.org> 13002Date: 2023-10-26 21:44:42 +0300 13003 13004 CMake: Change one CMAKE_CURRENT_SOURCE_DIR to CMAKE_CURRENT_LIST_DIR. 13005 13006 In this case they have identical values. 13007 13008 CMakeLists.txt | 2 +- 13009 1 file changed, 1 insertion(+), 1 deletion(-) 13010 13011commit e67aaf698de75c73443a5ec786781cbf2034461d 13012Author: Lasse Collin <lasse.collin@tukaani.org> 13013Date: 2023-10-01 19:10:57 +0300 13014 13015 CMake/Windows: Fix the import library filename. 13016 13017 Both PREFIX and IMPORT_PERFIX have to be set to "" to get 13018 liblzma.dll and liblzma.dll.a. 13019 13020 CMakeLists.txt | 1 + 13021 1 file changed, 1 insertion(+) 13022 13023commit 88588b1246d8c26ffbc138b3e5c413c5f14c3179 13024Author: Lasse Collin <lasse.collin@tukaani.org> 13025Date: 2023-10-25 19:13:25 +0300 13026 13027 Build: Detect -fsanitize= in CFLAGS and incompatible build options. 13028 13029 Now configure will fail if -fsanitize= is found in CFLAGS 13030 and sanitizer-incompatible ifunc or Landlock sandboxing 13031 would be used. These are incompatible with one or more sanitizers. 13032 It's simpler to reject all -fsanitize= uses instead of trying to 13033 pass those that might not cause problems. 13034 13035 CMake-based build was updated similarly. It lets the configuration 13036 finish (SEND_ERROR instead of FATAL_ERROR) so that both error 13037 messages can be seen at once. 13038 13039 CMakeLists.txt | 29 +++++++++++++++++++++++++++++ 13040 configure.ac | 37 +++++++++++++++++++++++++++++++++---- 13041 2 files changed, 62 insertions(+), 4 deletions(-) 13042 13043commit 5e3d890f8862a7d4fbef5e38e11b6c9fbd98f468 13044Author: Jia Tan <jiat0218@gmail.com> 13045Date: 2023-10-24 00:50:08 +0800 13046 13047 CI: Disable sandboxing in fsanitize=address,undefined job. 13048 13049 The sandboxing on Linux now supports Landlock, which restricts all 13050 supported filesystem actions after xz opens the files it needs. The 13051 sandbox is only enabled when one file is input and we are writing to 13052 standard out. With fsanitize=address,undefined, the instrumentation 13053 needs to read additional files after the sandbox is in place. This 13054 forces all xz based test to fail, so the sandbox must instead be 13055 disabled. 13056 13057 .github/workflows/ci.yml | 8 ++++++-- 13058 1 file changed, 6 insertions(+), 2 deletions(-) 13059 13060commit b1408987ea832e2760e478ae960a636df17a1363 13061Author: Jia Tan <jiat0218@gmail.com> 13062Date: 2023-10-24 00:15:39 +0800 13063 13064 CI: Allow disabling the sandbox in ci_build.sh. 13065 13066 build-aux/ci_build.sh | 5 ++++- 13067 1 file changed, 4 insertions(+), 1 deletion(-) 13068 13069commit 91c435cf1c7a1e893706d4d716dfd361621ed824 13070Author: Lasse Collin <lasse.collin@tukaani.org> 13071Date: 2023-10-11 19:47:44 +0300 13072 13073 CMake: Don't shadow the cache entry ENABLE_THREADS with a normal variable. 13074 13075 Using set(ENABLE_THREADS "posix") is confusing because it sets 13076 a new normal variable and leaves the cache entry with the same 13077 name unchanged. The intent wasn't to change the cache entry so 13078 this switches to a different variable name. 13079 13080 CMakeLists.txt | 10 +++++++--- 13081 1 file changed, 7 insertions(+), 3 deletions(-) 13082 13083commit fa1609eb9393ecd30decfed4891c907829f06710 13084Author: Lasse Collin <lasse.collin@tukaani.org> 13085Date: 2023-10-09 22:28:49 +0300 13086 13087 Docs: Update INSTALL about sandboxing support. 13088 13089 INSTALL | 7 ++++++- 13090 1 file changed, 6 insertions(+), 1 deletion(-) 13091 13092commit 8276c7f41c671eee4aa3239490658b23dcfd3021 13093Author: Lasse Collin <lasse.collin@tukaani.org> 13094Date: 2023-10-09 22:07:52 +0300 13095 13096 xz: Support basic sandboxing with Linux Landlock (ABI versions 1-3). 13097 13098 It is enabled only when decompressing one file to stdout, 13099 similar to how Capsicum is used. 13100 13101 Landlock was added in Linux 5.13. 13102 13103 CMakeLists.txt | 12 +++++++++++- 13104 configure.ac | 11 ++++++++--- 13105 src/xz/file_io.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 13106 src/xz/main.c | 19 +++++++++++++++++++ 13107 src/xz/private.h | 3 ++- 13108 5 files changed, 98 insertions(+), 5 deletions(-) 13109 13110commit 3a1e9fd031b9320d769d63b503ef4e82e1b6ea8c 13111Author: Lasse Collin <lasse.collin@tukaani.org> 13112Date: 2023-10-09 21:12:31 +0300 13113 13114 CMake: Edit threading related messages. 13115 13116 It's mostly to change from "thread method" to "threading method". 13117 13118 CMakeLists.txt | 19 ++++++++++--------- 13119 1 file changed, 10 insertions(+), 9 deletions(-) 13120 13121commit bf011352528ae3539ea7b780b45b96736ee57a99 13122Author: Lasse Collin <lasse.collin@tukaani.org> 13123Date: 2023-10-09 20:59:24 +0300 13124 13125 CMake: Use FATAL_ERROR if user-supplied options aren't understood. 13126 13127 This way typos are caught quickly and compounding error messages 13128 are avoided (a single typo could cause more than one error). 13129 13130 This keeps using SEND_ERROR when the system is lacking a feature 13131 (like threading library or sandboxing method). This way the whole 13132 configuration log will be generated in case someone wishes to 13133 report a problem upstream. 13134 13135 CMakeLists.txt | 28 ++++++++++++++-------------- 13136 1 file changed, 14 insertions(+), 14 deletions(-) 13137 13138commit 3f53870c249945d657ca3d75e0993e6267d71f75 13139Author: Lasse Collin <lasse.collin@tukaani.org> 13140Date: 2023-10-09 18:37:32 +0300 13141 13142 CMake: Add sandboxing support. 13143 13144 CMakeLists.txt | 50 +++++++++++++++++++++++++++++++++++++++++++++++++- 13145 1 file changed, 49 insertions(+), 1 deletion(-) 13146 13147commit 2e2cd11535ad77364cf021297e0b3f162fa3a3d0 13148Author: Lasse Collin <lasse.collin@tukaani.org> 13149Date: 2023-10-09 18:13:08 +0300 13150 13151 Simplify detection of Capsicum support. 13152 13153 This removes support for FreeBSD 10.0 and 10.1 which used 13154 <sys/capability.h> instead of <sys/capsicum.h>. Support for 13155 FreeBSD 10.1 ended on 2016-12-31. So now FreeBSD >= 10.2 is 13156 required to enable Capsicum support. 13157 13158 This also removes support for Capsicum on Linux (libcaprights) 13159 which seems to have been unmaintained since 2017 and Linux 4.11: 13160 https://github.com/google/capsicum-linux 13161 13162 configure.ac | 4 +-- 13163 m4/ax_check_capsicum.m4 | 85 ------------------------------------------------- 13164 src/xz/Makefile.am | 2 +- 13165 src/xz/file_io.c | 14 +++----- 13166 src/xz/private.h | 2 +- 13167 5 files changed, 9 insertions(+), 98 deletions(-) 13168 13169commit c57858b60e186d020b2dbaf7aabd9b32c71da824 13170Author: Lasse Collin <lasse.collin@tukaani.org> 13171Date: 2023-09-25 01:46:36 +0300 13172 13173 xz/Windows: Allow clock_gettime with POSIX threads. 13174 13175 If winpthreads are used for threading, it's OK to use clock_gettime() 13176 from winpthreads too. 13177 13178 src/xz/mytime.c | 9 ++++++--- 13179 1 file changed, 6 insertions(+), 3 deletions(-) 13180 13181commit dd32f628bb5541ef4e8ce66966ef456a1934084c 13182Author: Lasse Collin <lasse.collin@tukaani.org> 13183Date: 2023-09-25 01:39:26 +0300 13184 13185 mythread.h: Make MYTHREAD_POSIX compatible with MinGW-w64's winpthreads. 13186 13187 This might be almost useless but it doesn't need much extra code either. 13188 13189 src/common/mythread.h | 23 ++++++++++++++++++++++- 13190 1 file changed, 22 insertions(+), 1 deletion(-) 13191 13192commit 680e52cdd086e92691d8a0bca2c98815565f60ca 13193Author: Lasse Collin <lasse.collin@tukaani.org> 13194Date: 2023-09-23 03:06:36 +0300 13195 13196 CMake: Check for clock_gettime() even on Windows. 13197 13198 This mirrors configure.ac although currently MinGW-w64 builds 13199 don't use clock_gettime() even if it is found. 13200 13201 CMakeLists.txt | 44 +++++++++++++++++++++----------------------- 13202 1 file changed, 21 insertions(+), 23 deletions(-) 13203 13204commit 1c1a8c3ee4dad0064dbe63b8dbc4ac4bc679f419 13205Author: Lasse Collin <lasse.collin@tukaani.org> 13206Date: 2023-09-23 03:23:32 +0300 13207 13208 Build: Check for clock_gettime() even if not using POSIX threads. 13209 13210 See the new comment in the code. 13211 13212 This also makes the check for clock_gettime() run with MinGW-w64 13213 with which we don't want to use clock_gettime(). The previous 13214 commit already took care of this situation. 13215 13216 configure.ac | 31 ++++++++++++++++++------------- 13217 1 file changed, 18 insertions(+), 13 deletions(-) 13218 13219commit 46fd991cd2808ef62554853864c946232e7547f0 13220Author: Lasse Collin <lasse.collin@tukaani.org> 13221Date: 2023-09-24 22:58:53 +0300 13222 13223 xz/Windows: Ensure that clock_gettime() isn't used with MinGW-w64. 13224 13225 This commit alone doesn't change anything in the real-world: 13226 13227 - configure.ac currently checks for clock_gettime() only 13228 when using pthreads. 13229 13230 - CMakeLists.txt doesn't check for clock_gettime() on Windows. 13231 13232 So clock_gettime() wasn't used with MinGW-w64 before either. 13233 13234 clock_gettime() provides monotonic time and it's better than 13235 gettimeofday() in this sense. But clock_gettime() is defined 13236 in winpthreads, and liblzma or xz needs nothing else from 13237 winpthreads. By avoiding clock_gettime(), we avoid the dependency on 13238 libwinpthread-1.dll or the need to link against the static version. 13239 13240 As a bonus, GetTickCount64() and MinGW-w64's gettimeofday() can be 13241 faster than clock_gettime(CLOCK_MONOTONIC, &tv). The resolution 13242 is more than good enough for the progress indicator in xz. 13243 13244 src/xz/mytime.c | 9 +++++++-- 13245 1 file changed, 7 insertions(+), 2 deletions(-) 13246 13247commit cdb4d91f2464b50c985ef7b9517314ea237ddda7 13248Author: Lasse Collin <lasse.collin@tukaani.org> 13249Date: 2023-09-24 00:21:22 +0300 13250 13251 xz/Windows: Use GetTickCount64() with MinGW-w64 if using Vista threads. 13252 13253 src/xz/mytime.c | 14 +++++++++++--- 13254 1 file changed, 11 insertions(+), 3 deletions(-) 13255 13256commit 988e09f27b9b04a43d45d10f92782e0092ee27a9 13257Author: Jia Tan <jiat0218@gmail.com> 13258Date: 2023-10-20 19:17:46 +0800 13259 13260 liblzma: Move is_clmul_supported() back to crc_common.h. 13261 13262 This partially reverts creating crc_clmul.c 13263 (8c0f9376f58c0696d5d6719705164d35542dd891) where is_clmul_supported() 13264 was moved, extern'ed, and renamed to lzma_is_clmul_supported(). This 13265 caused a problem when the function call to lzma_is_clmul_supported() 13266 results in a call through the PLT. ifunc resolvers run very early in 13267 the dynamic loading sequence, so the PLT may not be setup properly at 13268 this point. Whether the PLT is used or not for 13269 lzma_is_clmul_supported() depened upon the compiler-toolchain used and 13270 flags. 13271 13272 In liblzma compiled with GCC, for instance, GCC will go through the PLT 13273 for function calls internal to liblzma if the version scripts and 13274 symbol visibility hiding are not used. If lazy-binding is disabled, 13275 then it would have made any program linked with liblzma fail during 13276 dynamic loading in the ifunc resolver. 13277 13278 src/liblzma/check/crc32_fast.c | 2 +- 13279 src/liblzma/check/crc64_fast.c | 2 +- 13280 src/liblzma/check/crc_clmul.c | 45 ------------------------------------ 13281 src/liblzma/check/crc_common.h | 52 +++++++++++++++++++++++++++++++++++++++--- 13282 4 files changed, 51 insertions(+), 50 deletions(-) 13283 13284commit 105c7ca90d4152942e0798580a37f736d02faa22 13285Author: Jia Tan <jiat0218@gmail.com> 13286Date: 2023-10-19 16:23:32 +0800 13287 13288 Build: Remove check for COND_CHECK_CRC32 in check/Makefile.inc. 13289 13290 Currently crc32 is always enabled, so COND_CHECK_CRC32 must always be 13291 set. Because of this, it makes the recent change to conditionally 13292 compile check/crc_clmul.c appear wrong since that file has CLMUL 13293 implementations for both CRC32 and CRC64. 13294 13295 src/liblzma/check/Makefile.inc | 4 ++-- 13296 1 file changed, 2 insertions(+), 2 deletions(-) 13297 13298commit 139757170468f0f1fafdf0a8ffa74363d1ea1d0c 13299Author: Jia Tan <jiat0218@gmail.com> 13300Date: 2023-10-19 16:09:01 +0800 13301 13302 CMake: Add ALLOW_CLMUL_CRC option to enable/disable CLMUL. 13303 13304 The option is enabled by default, but will only be visible to a user 13305 listing cache variables or using a CMake GUI application if the 13306 immintrin.h header file is found. 13307 13308 This mirrors our Autotools build --disable-clmul-crc functionality. 13309 13310 CMakeLists.txt | 44 +++++++++++++++++++++++++------------------- 13311 1 file changed, 25 insertions(+), 19 deletions(-) 13312 13313commit c60b25569d414bb73b705977a4dd342f8f9f1965 13314Author: Jia Tan <jiat0218@gmail.com> 13315Date: 2023-10-19 00:22:50 +0800 13316 13317 liblzma: Fix -fsanitize=address failure with crc_clmul functions. 13318 13319 After forcing crc_simd_body() to always be inlined it caused 13320 -fsanitize=address to fail for lzma_crc32_clmul() and 13321 lzma_crc64_clmul(). The __no_sanitize_address__ attribute was added 13322 to lzma_crc32_clmul() and lzma_crc64_clmul(), but not removed from 13323 crc_simd_body(). ASAN and inline functions behavior has changed over 13324 the years for GCC specifically, so while strictly required we will 13325 keep __attribute__((__no_sanitize_address__)) on crc_simd_body() in 13326 case this becomes a requirement in the future. 13327 13328 Older GCC versions refuse to inline a function with ASAN if the 13329 caller and callee do not agree on sanitization flags 13330 (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89124#c3). If the 13331 function was forced to be inlined, it will not compile if the callee 13332 function has __no_sanitize_address__ but the caller doesn't. 13333 13334 src/liblzma/check/crc_clmul.c | 6 ++++++ 13335 1 file changed, 6 insertions(+) 13336 13337commit 9a78971261bc67622cbd7dae02f6966968ac1393 13338Author: Lasse Collin <lasse.collin@tukaani.org> 13339Date: 2023-10-14 20:16:13 +0300 13340 13341 tuklib_integer: Update the CMake test for fast unaligned access. 13342 13343 cmake/tuklib_integer.cmake | 69 ++++++++++++++++++++++++++++++++++++---------- 13344 1 file changed, 54 insertions(+), 15 deletions(-) 13345 13346commit 2f81ac852bc5aafc91c8e2adc66b5114761703c4 13347Author: Lasse Collin <lasse.collin@tukaani.org> 13348Date: 2023-09-23 23:28:48 +0300 13349 13350 Build: Enabled unaligned access by default on PowerPC64LE and some RISC-V. 13351 13352 PowerPC64LE wasn't tested but it seems like a safe change. 13353 POWER8 supports unaligned access in little endian mode. Testing 13354 on godbolt.org shows that GCC uses unaligned access by default. 13355 13356 The RISC-V macro __riscv_misaligned_fast is very new and not 13357 in any stable compiler release yet. 13358 13359 Documentation in INSTALL was updated to match. 13360 13361 Documentation about an autodetection bug when using ARM64 GCC 13362 with -mstrict-align was added to INSTALL. 13363 13364 CMake files weren't updated yet. 13365 13366 INSTALL | 39 +++++++++++++++++++++++++++++++++++++-- 13367 m4/tuklib_integer.m4 | 34 +++++++++++++++++++++++++++------- 13368 2 files changed, 64 insertions(+), 9 deletions(-) 13369 13370commit c8f715f1bca4c30db814fcf1fd2fe88b8992ede2 13371Author: Lasse Collin <lasse.collin@tukaani.org> 13372Date: 2023-10-14 17:56:59 +0300 13373 13374 tuklib_integer: Revise unaligned reads and writes on strict-align archs. 13375 13376 In XZ Utils context this doesn't matter much because 13377 unaligned reads and writes aren't used in hot code 13378 when TUKLIB_FAST_UNALIGNED_ACCESS isn't #defined. 13379 13380 src/common/tuklib_integer.h | 256 ++++++++++++++++++++++++++++++++------------ 13381 1 file changed, 189 insertions(+), 67 deletions(-) 13382 13383commit 6828242735cbf61b93d140383336e1e51a006f2d 13384Author: Lasse Collin <lasse.collin@tukaani.org> 13385Date: 2023-09-23 02:21:49 +0300 13386 13387 tuklib_integer: Add missing write64be and write64le fallback functions. 13388 13389 src/common/tuklib_integer.h | 34 ++++++++++++++++++++++++++++++++++ 13390 1 file changed, 34 insertions(+) 13391 13392commit 1c8884f0af28b3a4690bb573cdf3240a8ec73416 13393Author: Jia Tan <jiat0218@gmail.com> 13394Date: 2023-10-18 19:57:10 +0800 13395 13396 liblzma: Set the MSVC optimization fix to only cover lzma_crc64_clmul(). 13397 13398 After testing a 32-bit Release build on MSVC, only lzma_crc64_clmul() 13399 has the bug. crc_simd_body() and lzma_crc32_clmul() do not need the 13400 optimizations disabled. 13401 13402 src/liblzma/check/crc_clmul.c | 30 +++++++++++++++--------------- 13403 1 file changed, 15 insertions(+), 15 deletions(-) 13404 13405commit 5ce0f7a48bdf5c3b45430850a4487307afac6143 13406Author: Lasse Collin <lasse.collin@tukaani.org> 13407Date: 2023-10-18 14:30:00 +0300 13408 13409 liblzma: CRC_USE_GENERIC_FOR_SMALL_INPUTS cannot be used with ifunc. 13410 13411 src/liblzma/check/crc_common.h | 4 +++- 13412 1 file changed, 3 insertions(+), 1 deletion(-) 13413 13414commit 27735380491bb5ce0d0f41d5244d89c1d0825f6b 13415Author: Lasse Collin <lasse.collin@tukaani.org> 13416Date: 2023-10-17 21:53:11 +0300 13417 13418 liblzma: Include common.h in crc_common.h. 13419 13420 crc_common.h depends on common.h. The headers include common.h except 13421 when there is a reason to not do so. 13422 13423 src/liblzma/check/crc_clmul.c | 1 - 13424 src/liblzma/check/crc_common.h | 3 +++ 13425 2 files changed, 3 insertions(+), 1 deletion(-) 13426 13427commit e13b7947b92355c334edd594295d3a2c99c4bca1 13428Author: Jia Tan <jiat0218@gmail.com> 13429Date: 2023-10-18 01:23:26 +0800 13430 13431 liblzma: Add include guards to crc_common.h. 13432 13433 src/liblzma/check/crc_common.h | 5 +++++ 13434 1 file changed, 5 insertions(+) 13435 13436commit 40abd88afcc61a8157fcd12d78d491caeb8e12be 13437Author: Jia Tan <jiat0218@gmail.com> 13438Date: 2023-10-18 22:50:25 +0800 13439 13440 liblzma: Add the crc_always_inline macro to crc_simd_body(). 13441 13442 Forcing this to be inline has a significant speed improvement at the 13443 cost of a few repeated instructions. The compilers tested on did not 13444 inline this function since it is large and is used twice in the same 13445 translation unit. 13446 13447 src/liblzma/check/crc_clmul.c | 2 +- 13448 1 file changed, 1 insertion(+), 1 deletion(-) 13449 13450commit a5966c276bd6fa975f0389f8a8dc61393de750b0 13451Author: Jia Tan <jiat0218@gmail.com> 13452Date: 2023-10-18 22:48:19 +0800 13453 13454 liblzma: Create crc_always_inline macro. 13455 13456 This macro must be used instead of the inline keyword. On MSVC, it is 13457 a replacement for __forceinline which is an MSVC specific keyword that 13458 should not be used with inline (it will issue a warning if it is). 13459 13460 It does not use a build system check to determine if 13461 __attribute__((__always_inline__)) since all compilers that can use 13462 CLMUL extensions (except the special case for MSVC) should support this 13463 attribute. If this assumption is incorrect then it will result in a bug 13464 report instead of silently producing slow code. 13465 13466 src/liblzma/check/crc_common.h | 15 +++++++++++++++ 13467 1 file changed, 15 insertions(+) 13468 13469commit 96b663f67c0e738a99ba8f35d9f4ced9add74544 13470Author: Jia Tan <jiat0218@gmail.com> 13471Date: 2023-10-14 13:23:23 +0800 13472 13473 liblzma: Refactor CRC comments. 13474 13475 A detailed description of the three dispatch methods was added. Also, 13476 duplicated comments now only appear in crc32_fast.c or were removed from 13477 both crc32_fast.c and crc64_fast.c if they appeared in crc_clmul.c. 13478 13479 src/liblzma/check/crc32_fast.c | 64 +++++++++++++++++++++++++++++------------- 13480 src/liblzma/check/crc64_fast.c | 61 ++++++---------------------------------- 13481 2 files changed, 53 insertions(+), 72 deletions(-) 13482 13483commit 8c0f9376f58c0696d5d6719705164d35542dd891 13484Author: Jia Tan <jiat0218@gmail.com> 13485Date: 2023-10-14 12:17:57 +0800 13486 13487 liblzma: Create crc_clmul.c. 13488 13489 Both crc32_clmul() and crc64_clmul() are now exported from 13490 crc32_clmul.c as lzma_crc32_clmul() and lzma_crc64_clmul(). This 13491 ensures that is_clmul_supported() (now lzma_is_clmul_supported()) is 13492 not duplicated between crc32_fast.c and crc64_fast.c. 13493 13494 Also, it encapsulates the complexity of the CLMUL implementations into a 13495 single file and reduces the complexity of crc32_fast.c and crc64_fast.c. 13496 Before, CLMUL code was present in crc32_fast.c, crc64_fast.c, and 13497 crc_common.h. 13498 13499 During the conversion, various cleanups were applied to code (thanks to 13500 Lasse Collin) including: 13501 13502 - Require using semicolons with MASK_/L/H/LH macros. 13503 - Variable typing and const handling improvements. 13504 - Improvements to comments. 13505 - Fixes to the pragmas used. 13506 - Removed unneeded variables. 13507 - Whitespace improvements. 13508 - Fixed CRC_USE_GENERIC_FOR_SMALL_INPUTS handling. 13509 - Silenced warnings and removed the need for some #pragmas 13510 13511 CMakeLists.txt | 6 +- 13512 configure.ac | 6 +- 13513 src/liblzma/check/Makefile.inc | 3 + 13514 src/liblzma/check/crc32_fast.c | 120 +----------- 13515 src/liblzma/check/crc64_fast.c | 128 +------------ 13516 src/liblzma/check/crc_clmul.c | 414 +++++++++++++++++++++++++++++++++++++++++ 13517 src/liblzma/check/crc_common.h | 190 +------------------ 13518 7 files changed, 444 insertions(+), 423 deletions(-) 13519 13520commit a3ebc2c516b09616638060806c841bd4bcf7bce3 13521Author: Jia Tan <jiat0218@gmail.com> 13522Date: 2023-10-14 10:23:03 +0800 13523 13524 liblzma: Define CRC_USE_IFUNC in crc_common.h. 13525 13526 When ifunc is supported, we can define a simpler macro instead of 13527 repeating the more complex check in both crc32_fast.c and crc64_fast.c. 13528 13529 src/liblzma/check/crc32_fast.c | 3 +-- 13530 src/liblzma/check/crc64_fast.c | 3 +-- 13531 src/liblzma/check/crc_common.h | 5 +++++ 13532 3 files changed, 7 insertions(+), 4 deletions(-) 13533 13534commit f1cd9d7194f005cd66ec03c6635ceae75f90ef17 13535Author: Hans Jansen <hansjansen162@outlook.com> 13536Date: 2023-10-12 19:37:01 +0200 13537 13538 liblzma: Added crc32_clmul to crc32_fast.c. 13539 13540 src/liblzma/check/crc32_fast.c | 247 ++++++++++++++++++++++++++++++++++++++-- 13541 src/liblzma/check/crc32_table.c | 19 +++- 13542 2 files changed, 255 insertions(+), 11 deletions(-) 13543 13544commit 93e6fb08b22c7c13be2dd1e7274fe78413436254 13545Author: Hans Jansen <hansjansen162@outlook.com> 13546Date: 2023-10-12 19:23:40 +0200 13547 13548 liblzma: Moved CLMUL CRC logic to crc_common.h. 13549 13550 crc64_fast.c was updated to use the code from crc_common.h instead. 13551 13552 src/liblzma/check/crc64_fast.c | 257 ++--------------------------------------- 13553 src/liblzma/check/crc_common.h | 230 +++++++++++++++++++++++++++++++++++- 13554 2 files changed, 240 insertions(+), 247 deletions(-) 13555 13556commit 233885a437f8b55a5c8442984ebc0aaa579e92de 13557Author: Hans Jansen <hansjansen162@outlook.com> 13558Date: 2023-10-12 19:07:50 +0200 13559 13560 liblzma: Rename crc_macros.h to crc_common.h. 13561 13562 CMakeLists.txt | 2 +- 13563 src/liblzma/check/Makefile.inc | 2 +- 13564 src/liblzma/check/crc32_fast.c | 2 +- 13565 src/liblzma/check/crc64_fast.c | 2 +- 13566 src/liblzma/check/{crc_macros.h => crc_common.h} | 2 +- 13567 5 files changed, 5 insertions(+), 5 deletions(-) 13568 13569commit 37947d4a7565b87e4cec8b89229d35b0a3f8d2cd 13570Author: Gabriela Gutierrez <gabigutierrez@google.com> 13571Date: 2023-09-26 15:55:13 +0000 13572 13573 CI: Bump and ref actions by commit SHA in windows-ci.yml 13574 13575 Referencing actions by commit SHA in GitHub workflows guarantees you are using an immutable version. Actions referenced by tags and branches are more vulnerable to attacks, such as the tag being moved to a malicious commit or a malicious commit being pushed to the branch. 13576 13577 It's important to make sure the SHA's are from the original repositories and not forks. 13578 13579 For reference: 13580 13581 https://github.com/msys2/setup-msys2/releases/tag/v2.20.1 13582 https://github.com/msys2/setup-msys2/commit/27b3aa77f672cb6b3054121cfd80c3d22ceebb1d 13583 13584 https://github.com/actions/checkout/releases/tag/v4.1.0 13585 https://github.com/actions/checkout/commit/8ade135a41bc03ea155e62e844d188df1ea18608 13586 13587 https://github.com/actions/upload-artifact/releases/tag/v3.1.3 13588 https://github.com/actions/upload-artifact/commit/a8a3f3ad30e3422c9c7b888a15615d19a852ae32 13589 13590 Signed-off-by: Gabriela Gutierrez <gabigutierrez@google.com> 13591 13592 .github/workflows/windows-ci.yml | 6 +++--- 13593 1 file changed, 3 insertions(+), 3 deletions(-) 13594 13595commit f28cc9bd481ce493da11f98c18526d324211599a 13596Author: Gabriela Gutierrez <gabigutierrez@google.com> 13597Date: 2023-09-26 14:35:08 +0000 13598 13599 CI: Bump and ref actions by commit SHA in ci.yml 13600 13601 Referencing actions by commit SHA in GitHub workflows guarantees you are using an immutable version. Actions referenced by tags and branches are more vulnerable to attacks, such as the tag being moved to a malicious commit or a malicious commit being pushed to the branch. 13602 13603 It's important to make sure the SHA's are from the original repositories and not forks. 13604 13605 For reference: 13606 13607 https://github.com/actions/checkout/releases/tag/v4.1.0 13608 https://github.com/actions/checkout/commit/8ade135a41bc03ea155e62e844d188df1ea18608 13609 13610 https://github.com/actions/upload-artifact/releases/tag/v3.1.3 13611 https://github.com/actions/upload-artifact/commit/a8a3f3ad30e3422c9c7b888a15615d19a852ae32 13612 13613 Signed-off-by: Gabriela Gutierrez <gabigutierrez@google.com> 13614 13615 .github/workflows/ci.yml | 4 ++-- 13616 1 file changed, 2 insertions(+), 2 deletions(-) 13617 13618commit f74f1740067b75042497edbfa6ea457ff75484b9 13619Author: Jia Tan <jiat0218@gmail.com> 13620Date: 2023-10-12 20:12:18 +0800 13621 13622 Build: Update visibility.m4 from Gnulib. 13623 13624 Updating from version 6 -> 8 from upstream. Declarations for variables 13625 and function bodies were added to avoid unnecessary failures with 13626 -Werror. 13627 13628 m4/visibility.m4 | 9 +++++++-- 13629 1 file changed, 7 insertions(+), 2 deletions(-) 13630 13631commit 5c4bca521e6fb435898a0012b3276eee70a6dadf 13632Author: Lasse Collin <lasse.collin@tukaani.org> 13633Date: 2023-10-06 19:36:35 +0300 13634 13635 Update THANKS. 13636 13637 THANKS | 1 + 13638 1 file changed, 1 insertion(+) 13639 13640commit d91cb6e884c73d0b05d7e7d68ad4e6eb29f4b44b 13641Author: Lasse Collin <lasse.collin@tukaani.org> 13642Date: 2023-10-06 18:55:57 +0300 13643 13644 CMake/Windows: Fix when the windres workaround is applied. 13645 13646 CMake doesn't set WIN32 on CYGWIN but the workaround is 13647 probably needed on Cygwin too. Same for MSYS and MSYS2. 13648 13649 The workaround must not be used with Clang that is acting in 13650 MSVC mode. This fixes it by checking for the known environments 13651 that need the workaround instead of using "NOT MSVC". 13652 13653 Thanks to Martin Storsjö. 13654 https://github.com/tukaani-project/xz/commit/0570308ddd9c0e39e85597ebc0e31d4fc81d436f#commitcomment-129098431 13655 13656 CMakeLists.txt | 6 +++--- 13657 1 file changed, 3 insertions(+), 3 deletions(-) 13658 13659commit 01e34aa1171b04f8b28960b1cc6135a903e0c13d 13660Author: Jia Tan <jiat0218@gmail.com> 13661Date: 2023-09-29 22:11:54 +0800 13662 13663 CI: Disable CLANG64 MSYS2 environment until bug is resolved. 13664 13665 lld 17.0.1 searches for libraries to link first in the toolchain 13666 directories before the local directory when building. The is a problem 13667 for us because liblzma.a is installed in MSYS2 CLANG64 by default and 13668 xz.exe will thus use the installed library instead of the one being 13669 built. 13670 13671 This causes tests to fail when they are expecting features to be 13672 disabled. More importantly, it will compile xz.exe with an incorrect 13673 liblzma and could cause unexpected behavior by being unable to update 13674 liblzma code in static builds. The CLANG64 environment can be tested 13675 again once this is fixed. 13676 13677 Link to bug: https://github.com/llvm/llvm-project/issues/67779. 13678 13679 .github/workflows/windows-ci.yml | 8 +++++--- 13680 1 file changed, 5 insertions(+), 3 deletions(-) 13681 13682commit 30d0c35327f3639cb11224872aa58fdbf0b1526e 13683Author: Jia Tan <jiat0218@gmail.com> 13684Date: 2023-09-29 20:14:39 +0800 13685 13686 CMake: Rename xz and man page symlink custom targets. 13687 13688 The Ninja Generator for CMake cannot have a custom target and its 13689 BYPRODUCTS have the same name. This has prevented Ninja builds on 13690 Unix-like systems since the xz symlinks were introduced in 13691 80a1a8bb838842a2be343bd88ad1462c21c5e2c9. 13692 13693 CMakeLists.txt | 6 +++--- 13694 1 file changed, 3 insertions(+), 3 deletions(-) 13695 13696commit 506d03127a8565442b028ec991e1578124fd3025 13697Author: Jia Tan <jiat0218@gmail.com> 13698Date: 2023-09-29 19:58:44 +0800 13699 13700 CMake: Specify LINKER_LANGUAGE for libgnu target to fix Ninja Generator. 13701 13702 CMake is unable to guess the linker language for just a header file so 13703 it must be explicitly set. 13704 13705 CMakeLists.txt | 6 ++++++ 13706 1 file changed, 6 insertions(+) 13707 13708commit 0570308ddd9c0e39e85597ebc0e31d4fc81d436f 13709Author: Lasse Collin <lasse.collin@tukaani.org> 13710Date: 2023-09-27 19:54:35 +0300 13711 13712 CMake: Fix Windows build with Clang/LLVM 17. 13713 13714 llvm-windres 17.0.0 has more accurate emulation of GNU windres, so 13715 the hack for GNU windres must now be used with llvm-windres too. 13716 13717 LLVM 16.0.6 has the old behavior and there likely won't be more 13718 16.x releases. So we can simply check for >= 17.0.0. 13719 13720 See also: 13721 https://github.com/llvm/llvm-project/commit/2bcc0fdc58a220cb9921b47ec8a32c85f2511a47 13722 13723 CMakeLists.txt | 26 ++++++++++++++------------ 13724 1 file changed, 14 insertions(+), 12 deletions(-) 13725 13726commit 5a9af95f85a7e5d4f9c10cb8cf737651a921f1d1 13727Author: Lasse Collin <lasse.collin@tukaani.org> 13728Date: 2023-09-26 21:47:13 +0300 13729 13730 liblzma: Update a comment. 13731 13732 The C standards don't allow an empty translation unit which can be 13733 avoided by declaring something, without exporting any symbols. 13734 13735 When I committed f644473a211394447824ea00518d0a214ff3f7f2 I had 13736 a feeling that some specific toolchain somewhere didn't like 13737 empty object files (assembler or maybe "ar" complained) but 13738 I cannot find anything to confirm this now. Quite likely I 13739 remembered nonsense. I leave this here as a note to my future self. :-) 13740 13741 src/liblzma/check/crc64_table.c | 3 +-- 13742 1 file changed, 1 insertion(+), 2 deletions(-) 13743 13744commit 8ebaf3f665ddc7e4f19c613005050dde5ccbe499 13745Author: Jia Tan <jiat0218@gmail.com> 13746Date: 2023-09-27 00:02:11 +0800 13747 13748 liblzma: Avoid compiler warning without creating extra symbol. 13749 13750 When the generic fast crc64 method is used, then we omit 13751 lzma_crc64_table[][]. Similar to 13752 d9166b52cf3458a4da3eb92224837ca8fc208d79, we can avoid compiler warnings 13753 with -Wempty-translation-unit (Clang) or -pedantic (GCC) by creating a 13754 never used typedef instead of an extra symbol. 13755 13756 src/liblzma/check/crc64_table.c | 3 +-- 13757 1 file changed, 1 insertion(+), 2 deletions(-) 13758 13759commit 092d21db2e5eea19fe079264ce48c178989c7606 13760Author: Lasse Collin <lasse.collin@tukaani.org> 13761Date: 2023-09-26 17:24:15 +0300 13762 13763 Build: Update the comment about -Werror usage in checks. 13764 13765 configure.ac | 10 ++++++++-- 13766 1 file changed, 8 insertions(+), 2 deletions(-) 13767 13768commit a37a2763383e6c204fe878e1416dd35e7711d3a9 13769Author: Lasse Collin <lasse.collin@tukaani.org> 13770Date: 2023-09-26 15:00:43 +0300 13771 13772 Build: Fix __attribute__((ifunc(...))) detection with clang -Wall. 13773 13774 Now if user-supplied CFLAGS contains -Wall -Wextra -Wpedantic 13775 the two checks that need -Werror will still work. 13776 13777 At CMake side there is add_compile_options(-Wall -Wextra) 13778 but it didn't affect the -Werror tests. So with both Autotools 13779 and CMake only user-supplied CFLAGS could make the checks fail 13780 when they shouldn't. 13781 13782 This is not a full fix as things like -Wunused-macros in 13783 user-supplied CFLAGS will still cause problems with both 13784 GCC and Clang. 13785 13786 CMakeLists.txt | 8 ++++++++ 13787 configure.ac | 8 ++++++++ 13788 2 files changed, 16 insertions(+) 13789 13790commit 9c42f936939b813f25d0ff4e99c3eb9c2d17a0d2 13791Author: Lasse Collin <lasse.collin@tukaani.org> 13792Date: 2023-09-26 13:51:31 +0300 13793 13794 Build: Fix underquoted AC_LANG_SOURCE. 13795 13796 It made no practical difference in this case. 13797 13798 configure.ac | 2 +- 13799 1 file changed, 1 insertion(+), 1 deletion(-) 13800 13801commit 9f1444a8a5c0e724b2c7ef83424f642f07a95982 13802Author: Lasse Collin <lasse.collin@tukaani.org> 13803Date: 2023-09-26 13:14:37 +0300 13804 13805 Build: Silence two Autoconf warnings. 13806 13807 There were two uses of AC_COMPILE_IFELSE that didn't use 13808 AC_LANG_SOURCE and Autoconf warned about these. The omission 13809 had been intentional but it turned out that this didn't do 13810 what I thought it would. 13811 13812 Autoconf 2.71 manual gives an impression that AC_LANG_SOURCE 13813 inserts all #defines that have been made with AC_DEFINE so 13814 far (confdefs.h). The idea was that omitting AC_LANG_SOURCE 13815 would mean that only the exact code included in the 13816 AC_COMPILE_IFELSE call would be compiled. 13817 13818 With C programs this is not true: the #defines get added without 13819 AC_LANG_SOURCE too. There seems to be no neat way to avoid this. 13820 Thus, with the C language at least, adding AC_LANG_SOURCE makes 13821 no other difference than silencing a warning from Autoconf. The 13822 generated "configure" remains identical. (Docs of AC_LANG_CONFTEST 13823 say that the #defines have been inserted since Autoconf 2.63b and 13824 that AC_COMPILE_IFELSE uses AC_LANG_CONFTEST. So the behavior is 13825 documented if one also reads the docs of macros that one isn't 13826 calling directly.) 13827 13828 Any extra code, including #defines, can cause problems for 13829 these two tests because these tests must use -Werror. 13830 CC=clang CFLAGS=-Weverything is the most extreme example. 13831 It enables -Wreserved-macro-identifier which warns about 13832 #define __EXTENSIONS__ 1 because it begins with two underscores. 13833 It's possible to write a test file that passes -Weverything but 13834 it becomes impossible when Autoconf inserts confdefs.h. 13835 13836 So this commit adds AC_LANG_SOURCE to silence Autoconf warnings. 13837 A different solution is needed for -Werror tests. 13838 13839 configure.ac | 9 ++++----- 13840 1 file changed, 4 insertions(+), 5 deletions(-) 13841 13842commit 519e47c2818acde571fadc79551294527fe6cc22 13843Author: Jia Tan <jiat0218@gmail.com> 13844Date: 2023-09-26 01:17:11 +0800 13845 13846 CMake: Remove accidental extra newline. 13847 13848 CMakeLists.txt | 1 - 13849 1 file changed, 1 deletion(-) 13850 13851commit bbb42412da6a02705ba3e668e90840c2683e4e67 13852Author: Jia Tan <jiat0218@gmail.com> 13853Date: 2023-09-26 00:47:26 +0800 13854 13855 Build: Remove Gnulib dependency from tests. 13856 13857 The tests do not use any Gnulib replacements so they do not need to link 13858 libgnu.a or have /lib in the include path. 13859 13860 tests/Makefile.am | 7 +------ 13861 1 file changed, 1 insertion(+), 6 deletions(-) 13862 13863commit d265f6b75691c6c8fa876eb5320c3ff5aed17dfa 13864Author: Jia Tan <jiat0218@gmail.com> 13865Date: 2023-09-26 00:43:43 +0800 13866 13867 CMake: Remove /lib from tests include path. 13868 13869 The tests never included anything from /lib, so this was not needed. 13870 13871 CMakeLists.txt | 1 - 13872 1 file changed, 1 deletion(-) 13873 13874commit 9fb5de41f2fb654ca952d4bda15cf3777c2b720f 13875Author: Jia Tan <jiat0218@gmail.com> 13876Date: 2023-09-24 22:10:41 +0800 13877 13878 Scripts: Change quoting style from `...' to '...'. 13879 13880 src/scripts/xzdiff.in | 2 +- 13881 src/scripts/xzgrep.in | 2 +- 13882 2 files changed, 2 insertions(+), 2 deletions(-) 13883 13884commit eaebdef4d4de3c088b0905f42626b74e0d23abf3 13885Author: Jia Tan <jiat0218@gmail.com> 13886Date: 2023-09-24 22:10:18 +0800 13887 13888 xz: Change quoting style from `...' to '...'. 13889 13890 src/xz/args.c | 6 +++--- 13891 src/xz/file_io.c | 2 +- 13892 src/xz/main.c | 4 ++-- 13893 src/xz/message.c | 14 +++++++------- 13894 src/xz/options.c | 2 +- 13895 src/xz/suffix.c | 2 +- 13896 src/xz/util.c | 6 +++--- 13897 7 files changed, 18 insertions(+), 18 deletions(-) 13898 13899commit f6667702bf075a05fbe336dbf3576ad1a82ec645 13900Author: Jia Tan <jiat0218@gmail.com> 13901Date: 2023-09-24 22:09:47 +0800 13902 13903 liblzma: Change quoting style from `...' to '...'. 13904 13905 This was done for both internal and API headers. 13906 13907 src/liblzma/api/lzma/base.h | 18 +++++++++--------- 13908 src/liblzma/api/lzma/container.h | 10 +++++----- 13909 src/liblzma/api/lzma/filter.h | 6 +++--- 13910 src/liblzma/api/lzma/index.h | 8 ++++---- 13911 src/liblzma/api/lzma/lzma12.h | 2 +- 13912 src/liblzma/lz/lz_encoder.h | 2 +- 13913 src/liblzma/rangecoder/range_decoder.h | 2 +- 13914 7 files changed, 24 insertions(+), 24 deletions(-) 13915 13916commit be012b8097a4eaee335b51357d6befa745f753ce 13917Author: Jia Tan <jiat0218@gmail.com> 13918Date: 2023-09-24 22:09:16 +0800 13919 13920 Build: Change quoting style from `...' to '...'. 13921 13922 configure.ac | 18 +++++++++--------- 13923 dos/config.h | 6 +++--- 13924 m4/getopt.m4 | 2 +- 13925 m4/tuklib_progname.m4 | 2 +- 13926 windows/build.bash | 2 +- 13927 5 files changed, 15 insertions(+), 15 deletions(-) 13928 13929commit ce162db07f03495bd333696e66883c8f36abdc1e 13930Author: Jia Tan <jiat0218@gmail.com> 13931Date: 2023-09-24 22:05:02 +0800 13932 13933 Docs: Change quoting style from `...' to '...'. 13934 13935 These days the ` and ' do not look symmetric. This quoting style has 13936 been changed in various apps over the years including the GNU tools. 13937 13938 INSTALL | 6 +++--- 13939 doc/examples/01_compress_easy.c | 2 +- 13940 doc/examples/11_file_info.c | 16 ++++++++-------- 13941 3 files changed, 12 insertions(+), 12 deletions(-) 13942 13943commit db17656721e43939bfa4ec13506e7c76f4b86da6 13944Author: Jia Tan <jiat0218@gmail.com> 13945Date: 2023-09-24 21:25:01 +0800 13946 13947 lib: Silence -Wsign-conversion in getopt.c. 13948 13949 lib/getopt.c | 6 +++--- 13950 1 file changed, 3 insertions(+), 3 deletions(-) 13951 13952commit a6234f677d66888f435010bc0b67de6a32fefcf6 13953Author: Jia Tan <jiat0218@gmail.com> 13954Date: 2023-09-24 20:48:52 +0800 13955 13956 Build: Update getopt.m4 from Gnulib. 13957 13958 This file was modified from upstream since we do not need to replace 13959 getopt() and can avoid complexity and feature tests. 13960 13961 m4/getopt.m4 | 79 ++++++++++++++++++++++++++++++------------------------------ 13962 1 file changed, 39 insertions(+), 40 deletions(-) 13963 13964commit 84808b68f1075e8603a8ef95d361a61fdc6a5b10 13965Author: Jia Tan <jiat0218@gmail.com> 13966Date: 2023-09-26 00:09:53 +0800 13967 13968 CMake: Add /lib to include path. 13969 13970 CMakeLists.txt | 5 +++++ 13971 1 file changed, 5 insertions(+) 13972 13973commit 01804a0b4b64e0f33568e947e0579263808c59d3 13974Author: Jia Tan <jiat0218@gmail.com> 13975Date: 2023-09-24 20:36:34 +0800 13976 13977 CMake: Update libgnu target with new header files. 13978 13979 CMakeLists.txt | 5 +++++ 13980 1 file changed, 5 insertions(+) 13981 13982commit d34558388fe1d8929f6478d61dc322eb4f2900af 13983Author: Jia Tan <jiat0218@gmail.com> 13984Date: 2023-09-23 00:47:52 +0800 13985 13986 lib: Update Makefile.am for new header files. 13987 13988 lib/Makefile.am | 12 +++++++++++- 13989 1 file changed, 11 insertions(+), 1 deletion(-) 13990 13991commit 52bf644bdf536e20fcc743b712cede135e05eec5 13992Author: Jia Tan <jiat0218@gmail.com> 13993Date: 2023-09-24 20:34:03 +0800 13994 13995 lib: Update getopt1.c from Gnulib. 13996 13997 The only difference was maintaining the conditional inclusion for 13998 config.h. 13999 14000 lib/getopt1.c | 56 ++++++++++++++++++++++---------------------------------- 14001 1 file changed, 22 insertions(+), 34 deletions(-) 14002 14003commit 7e884c00d0093c38339f17fb1d280eec493f42ca 14004Author: Jia Tan <jiat0218@gmail.com> 14005Date: 2023-09-23 03:27:00 +0800 14006 14007 lib: Update getopt.in.h from Gnulib with modifications. 14008 14009 We can still avoid modifying the contents of this file during 14010 configuration to simplify the build systems. Gnulib added replacements 14011 for inclusions guards for Cygwin. Cygwin should not need getopt_long 14012 replacement so this feature can be omitted. 14013 14014 <unistd.h> is conditionally included to avoid MSVC since it is not 14015 available. 14016 14017 The definition for _GL_ARG_NONNULL was also copied into this file from 14018 Gnulib since this stage is usually done during gnulib-tool. 14019 14020 lib/getopt.in.h | 228 +++++++------------------------------------------------- 14021 1 file changed, 29 insertions(+), 199 deletions(-) 14022 14023commit cff05f82066ca3ce9425dafdb086325a8eef8de3 14024Author: Jia Tan <jiat0218@gmail.com> 14025Date: 2023-09-23 00:31:55 +0800 14026 14027 lib: Update getopt_int.h from Gnulib. 14028 14029 lib/getopt_int.h | 109 ++++++++++++++++++++++++------------------------------- 14030 1 file changed, 48 insertions(+), 61 deletions(-) 14031 14032commit 04bd86a4b010d43c6a016a3857ecb38dc1d5b024 14033Author: Jia Tan <jiat0218@gmail.com> 14034Date: 2023-09-23 00:27:23 +0800 14035 14036 lib: Update getopt.c from Gnulib with modifications. 14037 14038 The code maintains the prior modifications of conditionally including 14039 config.h and disabling NLS support. 14040 14041 _GL_UNUSED is repalced with the simple cast to void trick. _GL_UNUSED 14042 is only used for these two parameters so its simpler than having to 14043 define it. 14044 14045 lib/getopt.c | 1134 +++++++++++++++++++--------------------------------------- 14046 1 file changed, 377 insertions(+), 757 deletions(-) 14047 14048commit 56b42be7287844db20b3a3bc1372c6ae8c040d63 14049Author: Jia Tan <jiat0218@gmail.com> 14050Date: 2023-09-23 00:18:56 +0800 14051 14052 lib: Add getopt-cdefs.h for getopt_long update. 14053 14054 This was modified slightly from Gnulib. In Gnulib, it expects the 14055 @HAVE_SYS_CDEFS_H@ to be replaced. Instead, we can set HAVE_SYS_CDEFS_H 14056 on systems that have it and avoid copying another file into the build 14057 directory. Since we are not using gnulib-tool, copying extra files 14058 requires extra build system updates (and special handling with CMake) so 14059 we should avoid when possible. 14060 14061 lib/getopt-cdefs.h | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 14062 1 file changed, 70 insertions(+) 14063 14064commit 9834e591a4cf9dc2f49e42e26bf28d1d247bc196 14065Author: Jia Tan <jiat0218@gmail.com> 14066Date: 2023-09-23 00:15:25 +0800 14067 14068 lib: Copy new header files from Gnulib without modification. 14069 14070 The getopt related files have changed from Gnulib by splitting up 14071 getopt.in.h into more modular header files. We could have kept 14072 everything in just getopt.in.h, but this will help us continue to update 14073 in the future. 14074 14075 lib/getopt-core.h | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++ 14076 lib/getopt-ext.h | 77 +++++++++++++++++++++++++++++++++++++++++ 14077 lib/getopt-pfx-core.h | 66 +++++++++++++++++++++++++++++++++++ 14078 lib/getopt-pfx-ext.h | 70 +++++++++++++++++++++++++++++++++++++ 14079 4 files changed, 309 insertions(+) 14080 14081commit 5b7a6f06e93d99d6635a740fd2e12fab66096c93 14082Author: Lasse Collin <lasse.collin@tukaani.org> 14083Date: 2023-09-22 21:16:52 +0300 14084 14085 Windows: Update the version requirement comments from Win95 to W2k. 14086 14087 windows/README-Windows.txt | 10 ++++------ 14088 windows/build.bash | 6 +++--- 14089 2 files changed, 7 insertions(+), 9 deletions(-) 14090 14091commit e582f8e0fee46e7cd967f42f465d6bb608b73bc1 14092Author: Lasse Collin <lasse.collin@tukaani.org> 14093Date: 2023-09-22 21:12:54 +0300 14094 14095 tuklib_physmem: Comment out support for Windows versions older than 2000. 14096 14097 src/common/tuklib_physmem.c | 20 +++++++++----------- 14098 1 file changed, 9 insertions(+), 11 deletions(-) 14099 14100commit 7d73d1f0e08f96c4ab7aac91b958e37a3dadf07a 14101Author: Lasse Collin <lasse.collin@tukaani.org> 14102Date: 2023-09-24 16:32:32 +0300 14103 14104 sysdefs.h: Update the comment about __USE_MINGW_ANSI_STDIO. 14105 14106 src/common/sysdefs.h | 10 +++++++++- 14107 1 file changed, 9 insertions(+), 1 deletion(-) 14108 14109commit 2a9929af0ab7e6c0ab725565034afe3293e51d71 14110Author: Lasse Collin <lasse.collin@tukaani.org> 14111Date: 2023-09-22 02:33:29 +0300 14112 14113 xz: Windows: Don't (de)compress to special files like "con" or "nul". 14114 14115 Before this commit, the following writes "foo" to the 14116 console and deletes the input file: 14117 14118 echo foo | xz > con_xz 14119 xz --suffix=_xz --decompress con_xz 14120 14121 It cannot happen without --suffix because names like con.xz 14122 are also special and so attempting to decompress con.xz 14123 (or compress con to con.xz) will already fail when opening 14124 the input file. 14125 14126 Similar thing is possible when compressing. The following 14127 writes to "nul" and the input file "n" is deleted. 14128 14129 echo foo | xz > n 14130 xz --suffix=ul n 14131 14132 Now xz checks if the destination is a special file before 14133 continuing. DOS/DJGPP version had a check for this but 14134 Windows (and OS/2) didn't. 14135 14136 src/xz/file_io.c | 35 ++++++++++++++++++++++++++++------- 14137 1 file changed, 28 insertions(+), 7 deletions(-) 14138 14139commit 01311b81f03cce1c0ce847a3d556f84dbd439343 14140Author: Lasse Collin <lasse.collin@tukaani.org> 14141Date: 2023-09-21 20:42:52 +0300 14142 14143 CMake: Wrap two overlong lines that are possible to wrap. 14144 14145 CMakeLists.txt | 6 ++++-- 14146 1 file changed, 4 insertions(+), 2 deletions(-) 14147 14148commit 152d0771ddd0cffcac9042ad1a66f110d228eee2 14149Author: Lasse Collin <lasse.collin@tukaani.org> 14150Date: 2023-09-21 20:36:31 +0300 14151 14152 CMake: Add a comment about threads on Cygwin. 14153 14154 CMakeLists.txt | 1 + 14155 1 file changed, 1 insertion(+) 14156 14157commit 6df988cceffaa3100b428ed816fad334935b27bf 14158Author: Lasse Collin <lasse.collin@tukaani.org> 14159Date: 2023-09-12 23:53:25 +0300 14160 14161 MSVC: Remove Visual Studio project files and update INSTALL-MSVC.txt. 14162 14163 CMake is now the preferred build file generator when building 14164 with MSVC. 14165 14166 windows/INSTALL-MSVC.txt | 37 ++-- 14167 windows/vs2013/config.h | 157 --------------- 14168 windows/vs2013/liblzma.vcxproj | 363 --------------------------------- 14169 windows/vs2013/liblzma_dll.vcxproj | 398 ------------------------------------ 14170 windows/vs2013/xz_win.sln | 48 ----- 14171 windows/vs2017/config.h | 157 --------------- 14172 windows/vs2017/liblzma.vcxproj | 363 --------------------------------- 14173 windows/vs2017/liblzma_dll.vcxproj | 398 ------------------------------------ 14174 windows/vs2017/xz_win.sln | 48 ----- 14175 windows/vs2019/config.h | 157 --------------- 14176 windows/vs2019/liblzma.vcxproj | 364 --------------------------------- 14177 windows/vs2019/liblzma_dll.vcxproj | 399 ------------------------------------- 14178 windows/vs2019/xz_win.sln | 51 ----- 14179 13 files changed, 12 insertions(+), 2928 deletions(-) 14180 14181commit edd563daf0da1d00018684614803c77ab62efcd6 14182Author: Lasse Collin <lasse.collin@tukaani.org> 14183Date: 2023-09-21 19:17:40 +0300 14184 14185 CMake: Require VS2015 or later for building xzdec. 14186 14187 xzdec might build with VS2013 but it hasn't been tested. 14188 It was never supported before and VS2013 is old anyway 14189 so for simplicity only liblzma is supported with VS2013. 14190 14191 CMakeLists.txt | 2 +- 14192 1 file changed, 1 insertion(+), 1 deletion(-) 14193 14194commit daea64d158a7151ca6c255a0e4554c6d521cd589 14195Author: Lasse Collin <lasse.collin@tukaani.org> 14196Date: 2023-09-12 23:43:49 +0300 14197 14198 CMake: Allow building xz with Visual Studio 2015 and later. 14199 14200 Building the command line tools xz and xzdec with the combination 14201 of CMake + Visual Studio 2015/2017/2019/2022 works now. 14202 14203 VS2013 update 2 should still be able to build liblzma. 14204 VS2013 cannot build the xz command line tool because xz 14205 needs snprintf() that roughly conforms to C99. 14206 VS2013 is old and no extra code will be added to support it. 14207 14208 Thanks to Kelvin Lee and Jia Tan for testing. 14209 14210 CMakeLists.txt | 2 +- 14211 1 file changed, 1 insertion(+), 1 deletion(-) 14212 14213commit 8c2d197c940d246849b2ec48109bb22e54036927 14214Author: Lasse Collin <lasse.collin@tukaani.org> 14215Date: 2023-09-12 23:34:31 +0300 14216 14217 MSVC: #define inline and restrict only when needed. 14218 14219 This also drops the check for _WIN32 as that shouldn't be needed. 14220 14221 src/common/sysdefs.h | 13 ++++++++----- 14222 1 file changed, 8 insertions(+), 5 deletions(-) 14223 14224commit af66cd585902045e5689a0418103ec81f19f1d0a 14225Author: Lasse Collin <lasse.collin@tukaani.org> 14226Date: 2023-09-12 22:16:56 +0300 14227 14228 CMake: Add support for replacement getopt_long (lib/getopt*). 14229 14230 Thanks to Jia Tan for the initial work. I added the libgnu target 14231 and made a few related minor edits. 14232 14233 CMakeLists.txt | 54 +++++++++++++++++++++++++++++++++++++++++++++++------- 14234 1 file changed, 47 insertions(+), 7 deletions(-) 14235 14236commit e3288fdb45c580cb849f6799cf419c4922004ae5 14237Author: Lasse Collin <lasse.collin@tukaani.org> 14238Date: 2023-09-12 21:12:34 +0300 14239 14240 CMake: Bump maximum policy version to 3.27. 14241 14242 There are several new policies. CMP0149 may affect the Windows SDK 14243 version that CMake will choose by default. The new behavior is more 14244 predictable, always choosing the latest SDK version by default. 14245 14246 The other new policies shouldn't affect this package. 14247 14248 CMakeLists.txt | 2 +- 14249 1 file changed, 1 insertion(+), 1 deletion(-) 14250 14251commit aff1b479c7b168652bd20305ceed4317d5db6661 14252Author: Lasse Collin <lasse.collin@tukaani.org> 14253Date: 2023-09-12 20:55:10 +0300 14254 14255 lib/getopt*.c: Include <config.h> only HAVE_CONFIG_H is defined. 14256 14257 The CMake-based build doesn't use config.h. 14258 14259 Up-to-date getopt_long in Gnulib is LGPLv2 so at some 14260 point it could be included in XZ Utils too but for now 14261 this commit is enough to make CMake-based build possible. 14262 14263 lib/getopt.c | 4 +++- 14264 lib/getopt1.c | 4 +++- 14265 2 files changed, 6 insertions(+), 2 deletions(-) 14266 14267commit aa0cd585d2ed1455d35732798e0d90e3520e8ba5 14268Author: Lasse Collin <lasse.collin@tukaani.org> 14269Date: 2023-09-08 19:08:57 +0300 14270 14271 Doxygen: Add more C macro names to PREDEFINED. 14272 14273 doxygen/Doxyfile | 7 +++++-- 14274 1 file changed, 5 insertions(+), 2 deletions(-) 14275 14276commit ee7709bae53637e1765ce142ef102914f1423cb5 14277Author: Lasse Collin <lasse.collin@tukaani.org> 14278Date: 2023-09-11 18:47:26 +0300 14279 14280 liblzma: Move a few __attribute__ uses in function declarations. 14281 14282 The API headers have many attributes but these were left 14283 as is for now. 14284 14285 src/liblzma/common/common.c | 6 ++++-- 14286 src/liblzma/common/common.h | 8 ++++---- 14287 src/liblzma/common/memcmplen.h | 3 ++- 14288 3 files changed, 10 insertions(+), 7 deletions(-) 14289 14290commit 217958d88713b5dc73d366d24dd64b2b311b86fe 14291Author: Lasse Collin <lasse.collin@tukaani.org> 14292Date: 2023-09-11 19:03:35 +0300 14293 14294 xz, xzdec, lzmainfo: Use tuklib_attr_noreturn. 14295 14296 For compatibility with C23's [[noreturn]], tuklib_attr_noreturn 14297 must be at the beginning of declaration (before "extern" or 14298 "static", and even before any GNU C's __attribute__). 14299 14300 This commit also moves all other function attributes to 14301 the beginning of function declarations. "extern" is kept 14302 at the beginning of a line so the attributes are listed on 14303 separate lines before "extern" or "static". 14304 14305 src/lzmainfo/lzmainfo.c | 6 ++++-- 14306 src/xz/coder.c | 3 ++- 14307 src/xz/hardware.h | 3 ++- 14308 src/xz/message.h | 30 +++++++++++++++++------------- 14309 src/xz/options.c | 3 ++- 14310 src/xz/util.h | 8 ++++---- 14311 src/xzdec/xzdec.c | 9 ++++++--- 14312 7 files changed, 37 insertions(+), 25 deletions(-) 14313 14314commit 18a66fbac031c98f9c2077fc88846e4d07849197 14315Author: Lasse Collin <lasse.collin@tukaani.org> 14316Date: 2023-09-11 18:53:31 +0300 14317 14318 Remove incorrect uses of __attribute__((__malloc__)). 14319 14320 xrealloc() is obviously incorrect, modern GCC docs even 14321 mention realloc() as an example where this attribute 14322 cannot be used. 14323 14324 liblzma's lzma_alloc() and lzma_alloc_zero() would be 14325 correct uses most of the time but custom allocators 14326 may use a memory pool or otherwise hold the pointer 14327 so aliasing issues could happen in theory. 14328 14329 The xstrdup() case likely was correct but I removed it anyway. 14330 Now there are no __malloc__ attributes left in the code. 14331 The allocations aren't in hot paths so this should make 14332 no practical difference. 14333 14334 src/liblzma/common/common.c | 4 ++-- 14335 src/liblzma/common/common.h | 4 ++-- 14336 src/xz/util.h | 4 ++-- 14337 3 files changed, 6 insertions(+), 6 deletions(-) 14338 14339commit 74b0e900c92d5b222b36f474f1efa431f8e262f7 14340Author: Lasse Collin <lasse.collin@tukaani.org> 14341Date: 2023-09-08 18:41:25 +0300 14342 14343 Build: Omit -Wc99-c11-compat since it warns about _Noreturn. 14344 14345 configure.ac | 1 - 14346 1 file changed, 1 deletion(-) 14347 14348commit 90c94dddfd57b7d744bfad64c54e10d15778144b 14349Author: Lasse Collin <lasse.collin@tukaani.org> 14350Date: 2023-09-08 18:19:26 +0300 14351 14352 tuklib: Update tuklib_attr_noreturn for C11/C17 and C23. 14353 14354 This makes no difference for GCC or Clang as they support 14355 GNU C's __attribute__((__noreturn__)) but this helps with MSVC: 14356 14357 - VS 2019 version 16.7 and later support _Noreturn if the 14358 options /std:c11 or /std:c17 are used. This gets handled 14359 with the check for __STDC_VERSION__ >= 201112. 14360 14361 - When MSVC isn't in C11/C17 mode, __declspec(noreturn) is used. 14362 14363 C23 will deprecate _Noreturn (and <stdnoreturn.h>) 14364 for [[noreturn]]. This commit anticipates that but 14365 the final __STDC_VERSION__ value isn't known yet. 14366 14367 src/common/tuklib_common.h | 22 +++++++++++++++++++++- 14368 src/common/tuklib_exit.h | 4 ++-- 14369 2 files changed, 23 insertions(+), 3 deletions(-) 14370 14371commit 189f72581329ab281ad6af37f60135910cb1b146 14372Author: Lasse Collin <lasse.collin@tukaani.org> 14373Date: 2023-09-11 17:22:44 +0300 14374 14375 Update THANKS. 14376 14377 THANKS | 1 + 14378 1 file changed, 1 insertion(+) 14379 14380commit 79334e7f20f2bf9e0de095835b48868f1238f584 14381Author: Lasse Collin <lasse.collin@tukaani.org> 14382Date: 2023-09-05 22:42:10 +0300 14383 14384 MSVC: xz: Make file_io.c and file_io.h compatible with MSVC. 14385 14386 Thanks to Kelvin Lee for the original patches 14387 and testing the modifications I made. 14388 14389 src/xz/file_io.c | 26 ++++++++++++++++++++++++++ 14390 src/xz/file_io.h | 10 ++++++++++ 14391 2 files changed, 36 insertions(+) 14392 14393commit c660b8d78b7bda43b12b285550d8c70e8ccec698 14394Author: Lasse Collin <lasse.collin@tukaani.org> 14395Date: 2023-09-05 21:33:35 +0300 14396 14397 MSVC: xz: Use GetTickCount64() to implement mytime_now(). 14398 14399 It's available since Windows Vista. 14400 14401 src/xz/mytime.c | 11 +++++++++-- 14402 1 file changed, 9 insertions(+), 2 deletions(-) 14403 14404commit 5c6f892d411670e3060f4bc309402617a209e57c 14405Author: Kelvin Lee <kiyolee@gmail.com> 14406Date: 2023-09-05 15:05:09 +0300 14407 14408 MSVC: xz: Use _stricmp() instead of strcasecmp() in suffix.c. 14409 14410 src/xz/suffix.c | 10 ++++++++-- 14411 1 file changed, 8 insertions(+), 2 deletions(-) 14412 14413commit e241051f50044259d174e8b4633dd9a1c4478408 14414Author: Kelvin Lee <kiyolee@gmail.com> 14415Date: 2023-09-05 15:01:10 +0300 14416 14417 MSVC: xz: Use _isatty() from <io.h> to implement isatty(). 14418 14419 src/xz/message.c | 5 +++++ 14420 src/xz/util.c | 5 +++++ 14421 2 files changed, 10 insertions(+) 14422 14423commit d14bba8fc2be02a9fed8c9bcaaf61103451755f8 14424Author: Kelvin Lee <kiyolee@gmail.com> 14425Date: 2023-09-05 15:10:31 +0300 14426 14427 MSVC: xz: Use _fileno() instead of fileno(). 14428 14429 src/xz/private.h | 4 ++++ 14430 1 file changed, 4 insertions(+) 14431 14432commit c4edd367678e6a38c42b149856159bf417da7fe1 14433Author: Kelvin Lee <kiyolee@gmail.com> 14434Date: 2023-09-05 15:00:07 +0300 14435 14436 MSVC: xzdec: Use _fileno and _setmode. 14437 14438 src/xzdec/xzdec.c | 4 ++++ 14439 1 file changed, 4 insertions(+) 14440 14441commit cfd1054b9b539ee92524901e95d7bb5a1fe670a0 14442Author: Kelvin Lee <kiyolee@gmail.com> 14443Date: 2023-09-05 14:37:50 +0300 14444 14445 MSVC: Don't #include <unistd.h>. 14446 14447 lib/getopt.c | 4 +++- 14448 lib/getopt.in.h | 4 +++- 14449 src/xz/private.h | 5 ++++- 14450 src/xzdec/xzdec.c | 5 ++++- 14451 4 files changed, 14 insertions(+), 4 deletions(-) 14452 14453commit adef92f23563a2cc088b31ddee9040ecc96bc996 14454Author: Lasse Collin <lasse.collin@tukaani.org> 14455Date: 2023-09-19 14:03:45 +0300 14456 14457 Update THANKS. 14458 14459 THANKS | 1 + 14460 1 file changed, 1 insertion(+) 14461 14462commit 953e775941a25bfcfa353f802b13e66acb1edf2c 14463Author: Jia Tan <jiat0218@gmail.com> 14464Date: 2023-09-14 21:13:23 +0800 14465 14466 CI: Enable CLMUL in address sanitization test. 14467 14468 The crc64_clmul() function should be ignored by the address sanitizer 14469 now so these builds should still pass. 14470 14471 .github/workflows/ci.yml | 12 ++++-------- 14472 1 file changed, 4 insertions(+), 8 deletions(-) 14473 14474commit f167e79bc98f3f56af2e767b83aa81c2d2b9ed77 14475Author: Lasse Collin <lasse.collin@tukaani.org> 14476Date: 2023-09-14 16:35:46 +0300 14477 14478 Update THANKS. 14479 14480 THANKS | 1 + 14481 1 file changed, 1 insertion(+) 14482 14483commit 4f44ef86758a41a8ec814096f4cb6ee6de04c82e 14484Author: Lasse Collin <lasse.collin@tukaani.org> 14485Date: 2023-09-14 16:34:07 +0300 14486 14487 liblzma: Mark crc64_clmul() with __attribute__((__no_sanitize_address__)). 14488 14489 Thanks to Agostino Sarubbo. 14490 Fixes: https://github.com/tukaani-project/xz/issues/62 14491 14492 src/liblzma/check/crc64_fast.c | 8 ++++++++ 14493 1 file changed, 8 insertions(+) 14494 14495commit 7379bb3eed428c0ae734d0cc4a1fd04359d53f08 14496Author: Jia Tan <jiat0218@gmail.com> 14497Date: 2023-09-12 22:36:12 +0800 14498 14499 CMake: Fix time.h checks not running on second CMake run. 14500 14501 If CMake was configured more than once, HAVE_CLOCK_GETTIME and 14502 HAVE_CLOCK_MONOTONIC would not be set as compile definitions. The check 14503 for librt being needed to provide HAVE_CLOCK_GETTIME was also 14504 simplified. 14505 14506 CMakeLists.txt | 18 ++++++++++-------- 14507 1 file changed, 10 insertions(+), 8 deletions(-) 14508 14509commit 5d691fe58286b92d704c0dc5cd0c4df22881c6c6 14510Author: Jia Tan <jiat0218@gmail.com> 14511Date: 2023-09-12 22:34:06 +0800 14512 14513 CMake: Fix unconditionally defining HAVE_CLOCK_MONOTONIC. 14514 14515 If HAVE_CLOCK_GETTIME was defined, then HAVE_CLOCK_MONOTONIC was always 14516 added as a compile definition even if the check for it failed. 14517 14518 CMakeLists.txt | 8 +++----- 14519 1 file changed, 3 insertions(+), 5 deletions(-) 14520 14521commit eccf12866527b8d24c7d7f92f755142be8ef9b11 14522Author: Lasse Collin <lasse.collin@tukaani.org> 14523Date: 2023-08-31 19:50:05 +0300 14524 14525 xz: Refactor thousand separator detection and disable it on MSVC. 14526 14527 Now the two variations of the format strings are created with 14528 a macro, and the whole detection code can be easily disabled 14529 on platforms where thousand separator formatting is known to 14530 not work (MSVC has no support, and on DJGPP 2.05 it can have 14531 problems in some cases). 14532 14533 src/xz/util.c | 89 ++++++++++++++++++++++++++++++----------------------------- 14534 1 file changed, 45 insertions(+), 44 deletions(-) 14535 14536commit f7093cd9d130477c234b40aeda613964171f8f21 14537Author: Lasse Collin <lasse.collin@tukaani.org> 14538Date: 2023-08-31 18:14:43 +0300 14539 14540 xz: Fix a too relaxed assertion and remove uses of SSIZE_MAX. 14541 14542 SSIZE_MAX isn't readily available on MSVC. Removing it means 14543 that there is one thing less to worry when porting to MSVC. 14544 14545 src/xz/file_io.c | 5 ++--- 14546 src/xz/file_io.h | 4 ++-- 14547 2 files changed, 4 insertions(+), 5 deletions(-) 14548 14549commit 74c3449d8b816a724b12ebce7417e00fb597309a 14550Author: Jia Tan <jiat0218@gmail.com> 14551Date: 2023-08-28 23:14:45 +0800 14552 14553 Tests: Improve invalid unpadded size check in test_lzma_index_append(). 14554 14555 This check was extended to test the code added to fix a failing assert 14556 in ae5c07b22a6b3766b84f409f1b6b5c100469068a. 14557 14558 tests/test_index.c | 26 +++++++++++++++++++++++--- 14559 1 file changed, 23 insertions(+), 3 deletions(-) 14560 14561commit 2544274a8b8a27f4ea6c457d2c4c32eb1e4cd336 14562Author: Jia Tan <jiat0218@gmail.com> 14563Date: 2023-08-28 21:54:41 +0800 14564 14565 Tests: Improve comments in test_index.c. 14566 14567 tests/test_index.c | 6 +++--- 14568 1 file changed, 3 insertions(+), 3 deletions(-) 14569 14570commit 49be29d6380b94e6fb26e511dd2cdbd9afce0f8b 14571Author: Jia Tan <jiat0218@gmail.com> 14572Date: 2023-08-28 21:52:54 +0800 14573 14574 Update THANKS. 14575 14576 THANKS | 1 + 14577 1 file changed, 1 insertion(+) 14578 14579commit 721e3d9f7a82f59f32795d5fb97e0210d1aa839a 14580Author: Jia Tan <jiat0218@gmail.com> 14581Date: 2023-08-28 21:50:16 +0800 14582 14583 liblzma: Update assert in vli_ceil4(). 14584 14585 The argument to vli_ceil4() should always guarantee the return value 14586 is also a valid lzma_vli. Thus the highest three valid lzma_vli values 14587 are invalid arguments. All uses of the function ensure this so the 14588 assert is updated to match this. 14589 14590 src/liblzma/common/index.h | 2 +- 14591 1 file changed, 1 insertion(+), 1 deletion(-) 14592 14593commit ae5c07b22a6b3766b84f409f1b6b5c100469068a 14594Author: Jia Tan <jiat0218@gmail.com> 14595Date: 2023-08-28 21:31:25 +0800 14596 14597 liblzma: Add overflow check for Unpadded size in lzma_index_append(). 14598 14599 This was not a security bug since there was no path to overflow 14600 UINT64_MAX in lzma_index_append() or when it calls index_file_size(). 14601 The bug was discovered by a failing assert() in vli_ceil4() when called 14602 from index_file_size() when unpadded_sum (the sum of the compressed size 14603 of current Stream and the unpadded_size parameter) exceeds LZMA_VLI_MAX. 14604 14605 Previously, the unpadded_size parameter was checked to be not greater 14606 than UNPADDED_SIZE_MAX, but no check was done once compressed_base was 14607 added. 14608 14609 This could not have caused an integer overflow in index_file_size() when 14610 called by lzma_index_append(). The calculation for file_size breaks down 14611 into the sum of: 14612 14613 - Compressed base from all previous Streams 14614 - 2 * LZMA_STREAM_HEADER_SIZE (size of the current Streams header and 14615 footer) 14616 - stream_padding (can be set by lzma_index_stream_padding()) 14617 - Compressed base from the current Stream 14618 - Unpadded size (parameter to lzma_index_append()) 14619 14620 The sum of everything except for Unpadded size must be less than 14621 LZMA_VLI_MAX. This is guarenteed by overflow checks in the functions 14622 that can set these values including lzma_index_stream_padding(), 14623 lzma_index_append(), and lzma_index_cat(). The maximum value for 14624 Unpadded size is enforced by lzma_index_append() to be less than or 14625 equal UNPADDED_SIZE_MAX. Thus, the sum cannot exceed UINT64_MAX since 14626 LZMA_VLI_MAX is half of UINT64_MAX. 14627 14628 Thanks to Joona Kannisto for reporting this. 14629 14630 src/liblzma/common/index.c | 6 ++++++ 14631 1 file changed, 6 insertions(+) 14632 14633commit 1057765aaabfe0f1397b8094531846655376ae38 14634Author: Jia Tan <jiat0218@gmail.com> 14635Date: 2023-08-28 22:18:29 +0800 14636 14637 Translations: Update the Esperanto translation. 14638 14639 po/eo.po | 4 ++-- 14640 1 file changed, 2 insertions(+), 2 deletions(-) 14641 14642commit f2e94d064f305bb8ad77ca70f91d93e55f5cf856 14643Author: Jia Tan <jiat0218@gmail.com> 14644Date: 2023-08-26 20:10:23 +0800 14645 14646 Translations: Update the Esperanto translation. 14647 14648 po/eo.po | 47 +++++++++++++++++++++++++++++------------------ 14649 1 file changed, 29 insertions(+), 18 deletions(-) 14650 14651commit 2b871f4dbffe3801d0da3f89806b5935f758d5f3 14652Author: Jia Tan <jiat0218@gmail.com> 14653Date: 2023-08-09 20:55:36 +0800 14654 14655 Docs: Update INSTALL for --enable-threads method win95. 14656 14657 The Autotools build allows win95 threads and --enable-small together now 14658 if the compiler supports __attribute__((__constructor__)). 14659 14660 INSTALL | 6 ++++-- 14661 1 file changed, 4 insertions(+), 2 deletions(-) 14662 14663commit 356ad5b26b4196f085ce3afa1869154ca81faad8 14664Author: Jia Tan <jiat0218@gmail.com> 14665Date: 2023-08-09 20:54:15 +0800 14666 14667 CMake: Conditionally allow win95 threads and --enable-small. 14668 14669 CMakeLists.txt | 28 ++++++++++++++++++++-------- 14670 1 file changed, 20 insertions(+), 8 deletions(-) 14671 14672commit de574404c4c2f87aca049f232c38526e3ce092aa 14673Author: Jia Tan <jiat0218@gmail.com> 14674Date: 2023-08-09 20:35:16 +0800 14675 14676 Build: Conditionally allow win95 threads and --enable-small. 14677 14678 When the compiler supports __attribute__((__constructor__)) 14679 mythread_once() is never used, even with --enable-small. A configuration 14680 with win95 threads and --enable-small will compile and be thread safe so 14681 it can be allowed. 14682 14683 This isn't a very common configuration since MSVC does not support 14684 __attribute__((__constructor__)), but MINGW32 and CLANG32 environments 14685 for MSYS2 can use win95 threads and have 14686 __attribute__((__constructor__)) support. 14687 14688 configure.ac | 21 +++++++++++++-------- 14689 1 file changed, 13 insertions(+), 8 deletions(-) 14690 14691commit 6bf33b704cd31dccf25e68480464aa22d3fcad5a 14692Author: Jamaika1 <lukaszcz18@wp.pl> 14693Date: 2023-08-08 14:07:59 +0200 14694 14695 mythread.h: Fix typo error in Vista threads mythread_once(). 14696 14697 The "once_" variable was accidentally referred to as just "once". This 14698 prevented building with Vista threads when 14699 HAVE_FUNC_ATTRIBUTE_CONSTRUCTOR was not defined. 14700 14701 src/common/mythread.h | 2 +- 14702 1 file changed, 1 insertion(+), 1 deletion(-) 14703 14704commit 80cb961e5380a3878246d41341ff91378ca59e05 14705Author: Jia Tan <jiat0218@gmail.com> 14706Date: 2023-08-04 22:17:11 +0800 14707 14708 codespell: Add .codespellrc to set default options. 14709 14710 The .codespellrc allows setting default options to avoid false positive 14711 matches, set additional dictionaries, etc. For now, codespell can be 14712 used locally before committing doc and comment changes. 14713 14714 It should help prevent silly errors and fix up commits in the future. 14715 14716 .codespellrc | 24 ++++++++++++++++++++++++ 14717 1 file changed, 24 insertions(+) 14718 14719commit cd678a6077358935249b64a4a16fe8d17434f9c9 14720Author: Jia Tan <jiat0218@gmail.com> 14721Date: 2023-08-03 20:10:21 +0800 14722 14723 Tests: Style fixes to test_lzip_decoder.c. 14724 14725 tests/test_lzip_decoder.c | 36 ++++++++++++++++++++++++------------ 14726 1 file changed, 24 insertions(+), 12 deletions(-) 14727 14728commit 1cac5ed4fa45c9861d745b02d80575cb2ff01d81 14729Author: Jia Tan <jiat0218@gmail.com> 14730Date: 2023-08-03 15:56:20 +0800 14731 14732 Translations: Update the Chinese (simplified) translation. 14733 14734 po/zh_CN.po | 2 +- 14735 1 file changed, 1 insertion(+), 1 deletion(-) 14736 14737commit 16068f6c30b888cdb873f6285af941d00f95741d 14738Author: Lasse Collin <lasse.collin@tukaani.org> 14739Date: 2023-08-02 17:15:12 +0300 14740 14741 xz: Omit an empty paragraph on the man page. 14742 14743 src/xz/xz.1 | 1 - 14744 1 file changed, 1 deletion(-) 14745 14746commit 9ae4371b5106189486e850ce777e40f7b6021c0b 14747Author: Jia Tan <jiat0218@gmail.com> 14748Date: 2023-08-02 20:30:07 +0800 14749 14750 Add NEWS for 5.4.4. 14751 14752 NEWS | 43 +++++++++++++++++++++++++++++++++++++++++++ 14753 1 file changed, 43 insertions(+) 14754 14755commit e8c2203b2c76466d8d3387c5212b46151de8e605 14756Author: Lasse Collin <lasse.collin@tukaani.org> 14757Date: 2023-08-02 15:19:43 +0300 14758 14759 build-aux/manconv.sh: Fix US-ASCII and UTF-8 output. 14760 14761 groff defaults to SGR escapes. Using -P-c passes -c to grotty 14762 which restores the old behavior. Perhaps there is a better way to 14763 get pure plain text output but this works for now. 14764 14765 build-aux/manconv.sh | 4 ++-- 14766 1 file changed, 2 insertions(+), 2 deletions(-) 14767 14768commit 9a706167b0d903d92fd134895acb4bc6a5e3e688 14769Author: Lasse Collin <lasse.collin@tukaani.org> 14770Date: 2023-08-01 19:10:43 +0300 14771 14772 Update THANKS. 14773 14774 THANKS | 1 + 14775 1 file changed, 1 insertion(+) 14776 14777commit 33e25a0f5650754c38bed640deedefe3b4fec5ef 14778Author: Lasse Collin <lasse.collin@tukaani.org> 14779Date: 2023-08-01 18:22:24 +0300 14780 14781 Update THANKS. 14782 14783 THANKS | 1 + 14784 1 file changed, 1 insertion(+) 14785 14786commit 81db3b889830132334d1f2129bdc93177ac2ca7d 14787Author: ChanTsune <41658782+ChanTsune@users.noreply.github.com> 14788Date: 2023-08-01 18:17:17 +0300 14789 14790 mythread.h: Disable signal functions in builds targeting Wasm + WASI. 14791 14792 signal.h in WASI SDK doesn't currently provide sigprocmask() 14793 or sigset_t. liblzma doesn't need them so this change makes 14794 liblzma and xzdec build against WASI SDK. xz doesn't build yet 14795 and the tests don't either as tuktest needs setjmp() which 14796 isn't (yet?) implemented in WASI SDK. 14797 14798 Closes: https://github.com/tukaani-project/xz/pull/57 14799 See also: https://github.com/tukaani-project/xz/pull/56 14800 14801 (The original commit was edited a little by Lasse Collin.) 14802 14803 src/common/mythread.h | 2 +- 14804 1 file changed, 1 insertion(+), 1 deletion(-) 14805 14806commit 71c638c611324e606d324c8189fef8fe79db6991 14807Author: Jia Tan <jiat0218@gmail.com> 14808Date: 2023-08-01 21:58:51 +0800 14809 14810 Add newline to end of .gitignore. 14811 14812 Newline was accidentally removed in commit 14813 01cbb7f023ee7fda8ddde04bd17cf7d3c2418706. 14814 14815 .gitignore | 2 +- 14816 1 file changed, 1 insertion(+), 1 deletion(-) 14817 14818commit 42df7c7aa1cca385e509eb33c65136e61890f0bf 14819Author: Dimitri Papadopoulos Orfanos <3234522+DimitriPapadopoulos@users.noreply.github.com> 14820Date: 2023-07-31 14:02:21 +0200 14821 14822 Docs: Fix typos found by codespell 14823 14824 CMakeLists.txt | 4 ++-- 14825 NEWS | 2 +- 14826 configure.ac | 2 +- 14827 src/liblzma/api/lzma/container.h | 4 ++-- 14828 src/liblzma/api/lzma/filter.h | 2 +- 14829 src/liblzma/api/lzma/lzma12.h | 4 ++-- 14830 src/liblzma/common/block_buffer_encoder.c | 2 +- 14831 src/liblzma/common/common.h | 2 +- 14832 src/liblzma/common/file_info.c | 2 +- 14833 src/liblzma/common/lzip_decoder.c | 2 +- 14834 src/liblzma/common/stream_decoder_mt.c | 8 ++++---- 14835 src/liblzma/common/string_conversion.c | 6 +++--- 14836 src/liblzma/lz/lz_encoder.h | 2 +- 14837 src/liblzma/lzma/lzma_encoder.c | 4 ++-- 14838 src/xz/hardware.c | 4 ++-- 14839 tests/test_filter_flags.c | 4 ++-- 14840 tests/test_index.c | 2 +- 14841 tests/test_vli.c | 2 +- 14842 18 files changed, 29 insertions(+), 29 deletions(-) 14843 14844commit 01cbb7f023ee7fda8ddde04bd17cf7d3c2418706 14845Author: Jia Tan <jiat0218@gmail.com> 14846Date: 2023-07-26 20:26:23 +0800 14847 14848 Update .gitignore. 14849 14850 .gitignore | 4 ++++ 14851 1 file changed, 4 insertions(+) 14852 14853commit f97a1afd564c48ad9cb94682e10972a72e11fa08 14854Author: Jia Tan <jiat0218@gmail.com> 14855Date: 2023-07-28 22:03:08 +0800 14856 14857 CMake: Conditionally allow the creation of broken symlinks. 14858 14859 The CMake build will try to create broken symlinks on Unix and Unix-like 14860 platforms. Cygwin and MSYS2 are Unix-like, but may not be able to create 14861 broken symlinks. The value of the CYGWIN or MSYS environment variables 14862 determine if broken symlinks are valid. 14863 14864 The default for MSYS2 does not allow for broken symlinks, so the CMake 14865 build has been broken for MSYS2 since commit 14866 80a1a8bb838842a2be343bd88ad1462c21c5e2c9. 14867 14868 CMakeLists.txt | 82 +++++++++++++++++++++++++++++++++++++++++++++++++++++----- 14869 1 file changed, 75 insertions(+), 7 deletions(-) 14870 14871commit 7190f4cc7c9ade5b9b3675d0cbfa3b6d6ec9cb4f 14872Author: Jia Tan <jiat0218@gmail.com> 14873Date: 2023-07-28 21:56:48 +0800 14874 14875 CI: Fix windows-ci dependency installation. 14876 14877 All of the MSYS2 environments need make, and it does not come with the 14878 toolchain package. The toolchain package will install the needed 14879 compiler toolchains since without this package CMake cannot properly 14880 generate the Makefiles. 14881 14882 .github/workflows/windows-ci.yml | 6 +++--- 14883 1 file changed, 3 insertions(+), 3 deletions(-) 14884 14885commit a048f472cd9a2245265cb292853cbbcdd4f02001 14886Author: Jia Tan <jiat0218@gmail.com> 14887Date: 2023-07-28 21:54:22 +0800 14888 14889 CI: Update ci_build.sh CMake to always make Unix Makefiles. 14890 14891 The default for many of the MSYS2 environments is for CMake to create 14892 Ninja build files. This would complicate the build script since we would 14893 need a different command to run the tests. Its simpler to always use 14894 Unix Makefiles so that "make test" is always a usable target for 14895 testing. 14896 14897 build-aux/ci_build.sh | 4 ++-- 14898 1 file changed, 2 insertions(+), 2 deletions(-) 14899 14900commit 7870396a0ca945473aa0d1d790f4cbef456610bd 14901Author: Jia Tan <jiat0218@gmail.com> 14902Date: 2023-07-25 20:17:23 +0800 14903 14904 CI: Test CMake builds and test framework with MSYS2. 14905 14906 .github/workflows/windows-ci.yml | 32 ++++++++++++++++++++------------ 14907 1 file changed, 20 insertions(+), 12 deletions(-) 14908 14909commit 6497d1f8875cb7e3007f714336cc09c06fed235b 14910Author: Jia Tan <jiat0218@gmail.com> 14911Date: 2023-07-25 20:14:53 +0800 14912 14913 CI: Windows CI rename system matrix variable -> msys2_env. 14914 14915 Calling the MSYS2 environment "system" was a bit vague and should be 14916 more specific. 14917 14918 .github/workflows/windows-ci.yml | 15 +++++---------- 14919 1 file changed, 5 insertions(+), 10 deletions(-) 14920 14921commit 785e4121d9b2921ad36bd3af1cf61fa20a9265bd 14922Author: Jia Tan <jiat0218@gmail.com> 14923Date: 2023-07-24 23:11:45 +0800 14924 14925 CI: Add Clang64 MSYS2 environment to Windows CI. 14926 14927 .github/workflows/windows-ci.yml | 1 + 14928 1 file changed, 1 insertion(+) 14929 14930commit d9166b52cf3458a4da3eb92224837ca8fc208d79 14931Author: Jia Tan <jiat0218@gmail.com> 14932Date: 2023-07-24 21:43:44 +0800 14933 14934 liblzma: Prevent an empty translation unit in Windows builds. 14935 14936 To workaround Automake lacking Windows resource compiler support, an 14937 empty source file is compiled to overwrite the resource files for static 14938 library builds. Translation units without an external declaration are 14939 not allowed by the C standard and result in a warning when used with 14940 -Wempty-translation-unit (Clang) or -pedantic (GCC). 14941 14942 src/liblzma/Makefile.am | 6 +++++- 14943 1 file changed, 5 insertions(+), 1 deletion(-) 14944 14945commit db5019d691f980d622fb56fdcf383af2c3519c98 14946Author: Jia Tan <jiat0218@gmail.com> 14947Date: 2023-07-22 18:37:56 +0800 14948 14949 Translations: Update the Vietnamese translation. 14950 14951 po/vi.po | 45 ++++++++++++++++++++++++++++----------------- 14952 1 file changed, 28 insertions(+), 17 deletions(-) 14953 14954commit f3a055f762ba5b71b746fc2d44a6ababde2c61b5 14955Author: Jia Tan <jiat0218@gmail.com> 14956Date: 2023-07-22 14:55:42 +0800 14957 14958 CI: Add Windows runner for Autotools builds with MSYS2. 14959 14960 Only a subset of the tests run by the Linux and MacOS Autotools builds 14961 are run. The most interesting tests are the ones that disable threads, 14962 encoders, and decoders. 14963 14964 The Windows runner will only be run manually since these tests will 14965 likely take much longer than the Linux and MacOS runners. This runner 14966 should be used before merging any large features and before releases. 14967 14968 Currently the clang64 environment fails to due to a warning and 14969 -Werror is enabled for the CI tests. This is still an early version 14970 since the CMake build can be done for MSVC and optionally each of the 14971 MSYS2 environments. GitHub does not allow manually running the CI tests 14972 unless the workflow is checked on the default branch so checking in a 14973 minimum version is a good idea. 14974 14975 Thanks to Arthur S for the original proposing the original patch. 14976 14977 Closes: https://github.com/tukaani-project/xz/pull/34 14978 14979 .github/workflows/windows-ci.yml | 119 +++++++++++++++++++++++++++++++++++++++ 14980 1 file changed, 119 insertions(+) 14981 14982commit 556536a3525df9e5ed78b8c7057991cfa9edfac8 14983Author: Jia Tan <jiat0218@gmail.com> 14984Date: 2023-07-21 22:11:01 +0800 14985 14986 CI: Add argument to ci_build.sh to pass flags to autogen.sh. 14987 14988 build-aux/ci_build.sh | 9 +++++++-- 14989 1 file changed, 7 insertions(+), 2 deletions(-) 14990 14991commit 39a32d36fc465c4e70f13192eea380e518ba6e8a 14992Author: Jia Tan <jiat0218@gmail.com> 14993Date: 2023-07-21 18:05:44 +0800 14994 14995 Tests: Skip .lz files in test_files.sh if not configured. 14996 14997 Previously if the lzip decoder was not configured then test_files.sh 14998 would pass the lzip tests instead of skipping them. 14999 15000 tests/test_files.sh | 2 +- 15001 1 file changed, 1 insertion(+), 1 deletion(-) 15002 15003commit 194d12724b30fe42789d12a0184f9d412c449347 15004Author: Jia Tan <jiat0218@gmail.com> 15005Date: 2023-07-20 22:11:13 +0800 15006 15007 Tests: Add ARM64 filter test to test_compress.sh. 15008 15009 tests/test_compress.sh | 1 + 15010 1 file changed, 1 insertion(+) 15011 15012commit d850365c444368102c69beaddf849ed463c33467 15013Author: Jia Tan <jiat0218@gmail.com> 15014Date: 2023-07-20 20:30:05 +0800 15015 15016 Translations: Update the Croatian translation. 15017 15018 po/hr.po | 49 ++++++++++++++++++++++++++++++------------------- 15019 1 file changed, 30 insertions(+), 19 deletions(-) 15020 15021commit 24049eb7acf6d42a60f00efe4e7289fe8e1797fe 15022Author: Jia Tan <jiat0218@gmail.com> 15023Date: 2023-07-20 20:28:32 +0800 15024 15025 Translations: Update the Korean man page translations. 15026 15027 po4a/ko.po | 1255 ++++++++++++++++++++++++++++++------------------------------ 15028 1 file changed, 629 insertions(+), 626 deletions(-) 15029 15030commit 4d4a4fa07de6cb9d913fb2f97712fddda2527b49 15031Author: Jia Tan <jiat0218@gmail.com> 15032Date: 2023-07-20 20:25:24 +0800 15033 15034 Translations: Update the Korean translation. 15035 15036 po/ko.po | 45 ++++++++++++++++++++++++++++----------------- 15037 1 file changed, 28 insertions(+), 17 deletions(-) 15038 15039commit 237f06d9c55cf438a7538a598354bcf103f23711 15040Author: Jia Tan <jiat0218@gmail.com> 15041Date: 2023-07-20 20:24:05 +0800 15042 15043 Translations: Update the Polish translation. 15044 15045 po/pl.po | 47 +++++++++++++++++++++++++++++------------------ 15046 1 file changed, 29 insertions(+), 18 deletions(-) 15047 15048commit 80c2c832136656d5ac7a1bca8bc42d95e13d281a 15049Author: Jia Tan <jiat0218@gmail.com> 15050Date: 2023-07-20 20:22:23 +0800 15051 15052 Translations: Update the German man page translations. 15053 15054 po4a/de.po | 1255 ++++++++++++++++++++++++++++++------------------------------ 15055 1 file changed, 629 insertions(+), 626 deletions(-) 15056 15057commit fdbde14503ca03069d3649aa51926f5f796b89d8 15058Author: Jia Tan <jiat0218@gmail.com> 15059Date: 2023-07-20 20:18:44 +0800 15060 15061 Translations: Update the German translation. 15062 15063 po/de.po | 47 +++++++++++++++++++++++++++++------------------ 15064 1 file changed, 29 insertions(+), 18 deletions(-) 15065 15066commit 9f3bf5ff5b2b5cf0b252a2bf381238ca49dc4101 15067Author: Jia Tan <jiat0218@gmail.com> 15068Date: 2023-07-20 20:17:10 +0800 15069 15070 Translations: Update the Chinese (simplified) translation. 15071 15072 po/zh_CN.po | 47 +++++++++++++++++++++++++++++------------------ 15073 1 file changed, 29 insertions(+), 18 deletions(-) 15074 15075commit 376938c588011567c74f1d5a160c0ccce6336d46 15076Author: Jia Tan <jiat0218@gmail.com> 15077Date: 2023-07-20 20:15:47 +0800 15078 15079 Translations: Update the Swedish translation. 15080 15081 po/sv.po | 47 +++++++++++++++++++++++++++++------------------ 15082 1 file changed, 29 insertions(+), 18 deletions(-) 15083 15084commit 26b0bc6eb82c84559936a7c7080de5c71c8276f8 15085Author: Jia Tan <jiat0218@gmail.com> 15086Date: 2023-07-20 20:14:00 +0800 15087 15088 Translations: Update the Ukrainian man page translations. 15089 15090 po4a/uk.po | 1253 ++++++++++++++++++++++++++++++------------------------------ 15091 1 file changed, 628 insertions(+), 625 deletions(-) 15092 15093commit 2d02c8b7640b54f3c5aa1c8b5990ba56f322393b 15094Author: Jia Tan <jiat0218@gmail.com> 15095Date: 2023-07-20 20:09:15 +0800 15096 15097 Translations: Update the Ukrainian translation. 15098 15099 po/uk.po | 45 ++++++++++++++++++++++++++++----------------- 15100 1 file changed, 28 insertions(+), 17 deletions(-) 15101 15102commit f881018b503fd334331c24a09075429558abbce1 15103Author: Jia Tan <jiat0218@gmail.com> 15104Date: 2023-07-20 20:06:57 +0800 15105 15106 Translations: Update the Spanish translation. 15107 15108 po/es.po | 47 +++++++++++++++++++++++++++++------------------ 15109 1 file changed, 29 insertions(+), 18 deletions(-) 15110 15111commit 791fe6d3ffd6877fa5f852be69d9251397dfaa31 15112Author: Jia Tan <jiat0218@gmail.com> 15113Date: 2023-07-20 20:05:19 +0800 15114 15115 Translations: Update the Romanian translation. 15116 15117 po/ro.po | 48 ++++++++++++++++++++++++++++++------------------ 15118 1 file changed, 30 insertions(+), 18 deletions(-) 15119 15120commit 8827e90704f699fe08bb5bed56b1717a2bc0eb77 15121Author: Jia Tan <jiat0218@gmail.com> 15122Date: 2023-07-20 20:02:56 +0800 15123 15124 Translations: Update the Romanian man page translations. 15125 15126 po4a/ro.po | 1254 ++++++++++++++++++++++++++++++------------------------------ 15127 1 file changed, 629 insertions(+), 625 deletions(-) 15128 15129commit 0184d344fa4f215cd345bb131db9068e077c69b8 15130Author: Jia Tan <jiat0218@gmail.com> 15131Date: 2023-07-19 23:36:00 +0800 15132 15133 liblzma: Suppress -Wunused-function warning. 15134 15135 Clang 16.0.0 and earlier have a bug that the ifunc resolver function 15136 triggers the -Wunused-function warning. The resolver function is static 15137 and only "used" by the __attribute__((__ifunc()__)). 15138 15139 At this time, the bug is still unresolved, but has been reported: 15140 https://github.com/llvm/llvm-project/issues/63957 15141 15142 This is not a problem in GCC. 15143 15144 src/liblzma/check/crc64_fast.c | 10 ++++++++++ 15145 1 file changed, 10 insertions(+) 15146 15147commit 43845fa70fc751736c44c18f4cee42d49bfd1392 15148Author: Jia Tan <jiat0218@gmail.com> 15149Date: 2023-07-18 22:52:25 +0800 15150 15151 liblzma: Reword lzma_str_list_filters() documentation. 15152 15153 This further improves the documentation from commit 15154 f36ca7982f6bd5e9827219ed4f3c5a1fbf5d7bdf. The previous wording of 15155 "supported options" was slightly misleading since the options that are 15156 printed are the ones that are relevant for encoding/decoding. It is not 15157 about which options can or must be specified. 15158 15159 src/liblzma/api/lzma/filter.h | 2 +- 15160 1 file changed, 1 insertion(+), 1 deletion(-) 15161 15162commit 818701ba1c9dff780b7fbf28f9ab8eb11a25dd67 15163Author: Jia Tan <jiat0218@gmail.com> 15164Date: 2023-07-18 22:49:57 +0800 15165 15166 liblzma: Improve comment in string_conversion.c. 15167 15168 The comment used "flag" when referring to decoder options. Just 15169 referring to them as options is more clear and consistent. 15170 15171 src/liblzma/common/string_conversion.c | 4 ++-- 15172 1 file changed, 2 insertions(+), 2 deletions(-) 15173 15174commit b6b7d065853cd4c3f5b8d9be8aea0b6dcb0fe090 15175Author: Lasse Collin <lasse.collin@tukaani.org> 15176Date: 2023-07-18 17:37:33 +0300 15177 15178 xz: Translate the second "%s: " in message.c since French needs "%s : ". 15179 15180 This string is used to print a filename when using "xz -v" and 15181 stderr isn't a terminal. 15182 15183 src/xz/message.c | 2 +- 15184 1 file changed, 1 insertion(+), 1 deletion(-) 15185 15186commit be644042c3066d8e7a2834f989671ba74d27f749 15187Author: Lasse Collin <lasse.collin@tukaani.org> 15188Date: 2023-07-18 14:35:33 +0300 15189 15190 xz: Make "%s: %s" translatable because French needs "%s : %s". 15191 15192 src/xz/args.c | 5 ++++- 15193 src/xz/coder.c | 8 ++++---- 15194 src/xz/file_io.c | 8 ++++---- 15195 src/xz/list.c | 11 ++++++----- 15196 4 files changed, 18 insertions(+), 14 deletions(-) 15197 15198commit 97fd5cb669ee0afc48d2087675ab166aff89eaa2 15199Author: Lasse Collin <lasse.collin@tukaani.org> 15200Date: 2023-07-18 13:57:54 +0300 15201 15202 liblzma: Tweak #if condition in memcmplen.h. 15203 15204 Maybe ICC always #defines _MSC_VER on Windows but now 15205 it's very clear which code will get used. 15206 15207 src/liblzma/common/memcmplen.h | 4 ++-- 15208 1 file changed, 2 insertions(+), 2 deletions(-) 15209 15210commit 40392c19f71985852d75997f109dea97177d6f3f 15211Author: Lasse Collin <lasse.collin@tukaani.org> 15212Date: 2023-07-18 13:49:43 +0300 15213 15214 liblzma: Omit unnecessary parenthesis in a preprocessor directive. 15215 15216 src/liblzma/common/memcmplen.h | 4 ++-- 15217 1 file changed, 2 insertions(+), 2 deletions(-) 15218 15219commit abc1d5601b7e419ebc28a1ab4b268613b52e6f98 15220Author: Jia Tan <jiat0218@gmail.com> 15221Date: 2023-07-18 00:51:48 +0800 15222 15223 xz: Update Authors list in a few files. 15224 15225 src/xz/args.c | 3 ++- 15226 src/xz/args.h | 3 ++- 15227 src/xz/coder.c | 3 ++- 15228 src/xz/coder.h | 3 ++- 15229 src/xz/message.c | 3 ++- 15230 5 files changed, 10 insertions(+), 5 deletions(-) 15231 15232commit 289034a168878baa9df6ff6e159110aade69cba5 15233Author: Jia Tan <jiat0218@gmail.com> 15234Date: 2023-07-14 23:20:33 +0800 15235 15236 Docs: Add a new section to INSTALL for Tests. 15237 15238 The new Tests section describes basic information about the tests, how 15239 to run them, and important details when cross compiling. We have had a 15240 few questions about how to compile the tests without running them, so 15241 hopefully this information will help others with the same question in the 15242 future. 15243 15244 Fixes: https://github.com/tukaani-project/xz/issues/54 15245 15246 INSTALL | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++-------------- 15247 1 file changed, 64 insertions(+), 17 deletions(-) 15248 15249commit 1119e5f5a519b0ab71c81fc4dc84c0cc72abe513 15250Author: Jia Tan <jiat0218@gmail.com> 15251Date: 2023-07-14 21:10:27 +0800 15252 15253 Docs: Update README. 15254 15255 This adds an entry to "Other implementations of the .xz format" for 15256 XZ for Java. 15257 15258 README | 4 ++++ 15259 1 file changed, 4 insertions(+) 15260 15261commit f99e2e4e53b7ea89e4eef32ddd4882e0416357c9 15262Author: Jia Tan <jiat0218@gmail.com> 15263Date: 2023-07-13 23:32:10 +0800 15264 15265 xz: Fix typo in man page. 15266 15267 The Memory limit information section described three output 15268 columns when it actually has six. This was reworded to 15269 "multiple" to make it more future proof. 15270 15271 src/xz/xz.1 | 2 +- 15272 1 file changed, 1 insertion(+), 1 deletion(-) 15273 15274commit f907705eb1f6c5edaafc9668a34c51a989932f1d 15275Author: Jia Tan <jiat0218@gmail.com> 15276Date: 2023-07-13 21:46:12 +0800 15277 15278 xz: Minor clean up for coder.c 15279 15280 * Moved max_block_list_size from a global to local variable. 15281 * Reworded error message in validate_block_list_filter(). 15282 * Removed helper function filter_chain_error(). 15283 * Changed 1 << X to 1U << X in many places 15284 15285 src/xz/coder.c | 53 +++++++++++++++++++++-------------------------------- 15286 1 file changed, 21 insertions(+), 32 deletions(-) 15287 15288commit 9adc9e56157ecbf2948e5036df8567809b9ae177 15289Author: Jia Tan <jiat0218@gmail.com> 15290Date: 2023-07-13 21:26:47 +0800 15291 15292 xz: Update man page Authors and date. 15293 15294 src/xz/xz.1 | 5 +++-- 15295 1 file changed, 3 insertions(+), 2 deletions(-) 15296 15297commit c12e429f2635da8d8f5749e5f733f451baca6945 15298Author: Jia Tan <jiat0218@gmail.com> 15299Date: 2023-06-20 20:32:59 +0800 15300 15301 xz: Add a section to man page for robot mode --filters-help. 15302 15303 src/xz/xz.1 | 32 ++++++++++++++++++++++++++++++-- 15304 1 file changed, 30 insertions(+), 2 deletions(-) 15305 15306commit e10f2db5d10300c16fa482a136ed31c1aa6e8e8d 15307Author: Jia Tan <jiat0218@gmail.com> 15308Date: 2023-06-19 23:11:41 +0800 15309 15310 xz: Slight reword in xz man page for consistency. 15311 15312 Changed will print => prints in xz --robot --version description to 15313 match --robot --info-memory description. 15314 15315 src/xz/xz.1 | 2 +- 15316 1 file changed, 1 insertion(+), 1 deletion(-) 15317 15318commit f5dc172a402fa946f3c45a16929d7fe14c9f5e81 15319Author: Jia Tan <jiat0218@gmail.com> 15320Date: 2023-06-19 23:07:10 +0800 15321 15322 xz: Reorder robot mode subsections in the man page. 15323 15324 The order is now consistent with the order the command line arguments 15325 are documented earlier in the man page. The new order is: 15326 1. --list 15327 2. --info-memory 15328 3. --version 15329 15330 Instead of the previous order: 15331 1. --version 15332 2. --info-memory 15333 3. --list 15334 15335 src/xz/xz.1 | 192 ++++++++++++++++++++++++++++++------------------------------ 15336 1 file changed, 96 insertions(+), 96 deletions(-) 15337 15338commit 9628be23aef2784249fd9f3199799d785d2ec5cc 15339Author: Jia Tan <jiat0218@gmail.com> 15340Date: 2023-05-13 00:46:50 +0800 15341 15342 xz: Update man page for new --filters-help option. 15343 15344 src/xz/xz.1 | 10 ++++++++++ 15345 1 file changed, 10 insertions(+) 15346 15347commit a165d7df1964121eb9df715e6f836a31c865beef 15348Author: Jia Tan <jiat0218@gmail.com> 15349Date: 2023-05-13 00:44:41 +0800 15350 15351 xz: Add a new --filters-help option. 15352 15353 The --filters-help can be used to help create filter chains with the 15354 --filters and --filtersX options. The message in --long-help is too 15355 short to fully explain the syntax to construct complex filter chains. 15356 15357 In --robot mode, xz will only print the output from liblzma function 15358 lzma_str_list_filters. 15359 15360 src/xz/args.c | 8 ++++++++ 15361 src/xz/message.c | 30 ++++++++++++++++++++++++++++++ 15362 src/xz/message.h | 5 +++++ 15363 3 files changed, 43 insertions(+) 15364 15365commit 95f1a414b156ee35d3e71862a14915fdd138f913 15366Author: Jia Tan <jiat0218@gmail.com> 15367Date: 2023-04-21 20:28:11 +0800 15368 15369 xz: Update the man page for --block-list and --filtersX 15370 15371 The --block-list option description needed updating since the new 15372 --filtersX option changes how it can be used. The new entry for 15373 --filters1=FILTERS ... --filter9=FILTERS was created right after 15374 the --filters option. 15375 15376 src/xz/xz.1 | 106 +++++++++++++++++++++++++++++++++++++++++++++--------------- 15377 1 file changed, 80 insertions(+), 26 deletions(-) 15378 15379commit 47a63cad2aa778280e0c1926b7159427ea028cb1 15380Author: Jia Tan <jiat0218@gmail.com> 15381Date: 2023-04-21 19:50:14 +0800 15382 15383 xz: Update --long-help for the new --filtersX option. 15384 15385 src/xz/message.c | 12 ++++++++++-- 15386 1 file changed, 10 insertions(+), 2 deletions(-) 15387 15388commit 8b9913a13daca2550d02dfdcdc9be15f55ca4d13 15389Author: Jia Tan <jiat0218@gmail.com> 15390Date: 2023-06-17 20:46:21 +0800 15391 15392 xz: Ignore filter chains that are set but never used in --block-list. 15393 15394 If a filter chain is set but not used in --block-list, it introduced 15395 unexpected behavior such as requiring an unneeded amount of memory to 15396 compress, reducing the number of threads in multi-threaded encoding, and 15397 printing an incorrect amount of memory needed to decompress. 15398 15399 This also renames filters_init_mask => filters_used_mask. A filter is 15400 assumed to be used if it is specified in --filtersX until 15401 coder_set_compression_settings() determines which filters are referenced 15402 in --block-list. 15403 15404 src/xz/coder.c | 66 ++++++++++++++++++++++++++++++++++++++++++---------------- 15405 1 file changed, 48 insertions(+), 18 deletions(-) 15406 15407commit 183819bfd9efac8c184d9bf123325719b7eee30f 15408Author: Jia Tan <jiat0218@gmail.com> 15409Date: 2023-05-13 20:11:13 +0800 15410 15411 xz: Set the Block size for mt encoding correctly. 15412 15413 When opt_block_size is not used, the Block size for mt encoder is 15414 derived from the minimum of the largest Block specified by 15415 --block-list and the recommended Block size on all filter chains 15416 calculated by lzma_mt_block_size(). This avoids using unnecessary 15417 memory and ensures that all Blocks are large enough for the most memory 15418 needy filter chain. 15419 15420 src/xz/coder.c | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 15421 1 file changed, 67 insertions(+), 1 deletion(-) 15422 15423commit afb2dbec3d857b026486b75e42a4728e12d234cb 15424Author: Jia Tan <jiat0218@gmail.com> 15425Date: 2023-05-11 00:09:41 +0800 15426 15427 xz: Validate --flush-timeout for all specified filter chains. 15428 15429 src/xz/coder.c | 24 ++++++++++++++++-------- 15430 1 file changed, 16 insertions(+), 8 deletions(-) 15431 15432commit 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a 15433Author: Jia Tan <jiat0218@gmail.com> 15434Date: 2023-05-13 19:54:33 +0800 15435 15436 xz: Allows --block-list filters to scale down memory usage. 15437 15438 Previously, only the default filter chain could have its memory usage 15439 adjusted. The filter chains specified with --filtersX were not checked 15440 for memory usage. Now, all used filter chains will be adjusted if 15441 necessary. 15442 15443 src/xz/coder.c | 269 +++++++++++++++++++++++++++++++++++++++++++++------------ 15444 1 file changed, 214 insertions(+), 55 deletions(-) 15445 15446commit 479fd58d60622331fcbe48fddf756927b9f80d9a 15447Author: Jia Tan <jiat0218@gmail.com> 15448Date: 2023-05-10 21:50:33 +0800 15449 15450 xz: Do not include block splitting if encoders are disabled. 15451 15452 The block splitting logic and split_block() function are not needed if 15453 encoders are disabled. This will help slightly reduce the binary size 15454 when built without encoders and allow split_block() to use functions 15455 that require encoders being enabled. 15456 15457 src/xz/coder.c | 29 ++++++++++++++++++++--------- 15458 1 file changed, 20 insertions(+), 9 deletions(-) 15459 15460commit f86ede22500f7ae024ec3ec3f3489ab5a857a3b3 15461Author: Jia Tan <jiat0218@gmail.com> 15462Date: 2023-05-10 22:38:59 +0800 15463 15464 xz: Free filters[] in debug mode. 15465 15466 This will only free filter chains created with --filters1-9 since the 15467 default filter chain may be set from a static function variable. The 15468 complexity to free the default filter chain is not worth the burden on 15469 code maintenance. 15470 15471 src/xz/coder.c | 10 ++++++++++ 15472 1 file changed, 10 insertions(+) 15473 15474commit f281cd0d692ac0c70fc7669b80dddb863ea947e1 15475Author: Jia Tan <jiat0218@gmail.com> 15476Date: 2023-05-13 19:28:23 +0800 15477 15478 xz: Add a message if --block-list is used outside of xz compresssion. 15479 15480 --block-list is only supported with compression in xz format. This avoids 15481 silently ignoring when --block-list is unused. 15482 15483 src/xz/args.c | 11 +++++++++++ 15484 1 file changed, 11 insertions(+) 15485 15486commit d6af7f347077b22403133239592e478931307759 15487Author: Jia Tan <jiat0218@gmail.com> 15488Date: 2023-04-18 20:29:09 +0800 15489 15490 xz: Create command line options for filters[1-9]. 15491 15492 The new command line options are meant to be combined with --block-list. 15493 They work as an optional extension to --block-list to specify a custom 15494 filter chain for each block listed. The new options allow the creation 15495 of up to 9 reusable filter chains. For instance: 15496 15497 xz --block-list=1:10MiB,3:5MiB,,2:5MiB,1:0 --filters1=delta--lzma2 \ 15498 --filters2=x86--lzma2 --filters3=arm64--lzma2 15499 15500 Will create the following blocks: 15501 1. A block of size 10 MiB with filter chain delta, lzma2. 15502 2. A block of size 5 MiB with filter chain arm64, lzma2. 15503 3. A block of size 5 MiB with filter chain arm64, lzma2. 15504 4. A block of size 5 MiB with filter chain x86, lzma2. 15505 5. A block containing the rest of the file contents with filter chain 15506 delta, lzma2. 15507 15508 src/xz/args.c | 82 ++++++++++++++++++++++--- 15509 src/xz/coder.c | 188 ++++++++++++++++++++++++++++++++++++++++++--------------- 15510 src/xz/coder.h | 20 +++++- 15511 3 files changed, 230 insertions(+), 60 deletions(-) 15512 15513commit 072d29250113268536719ad0e040ab8a66fb6435 15514Author: Jia Tan <jiat0218@gmail.com> 15515Date: 2023-05-13 19:36:09 +0800 15516 15517 xz: Use lzma_filters_free() in forget_filter_chain(). 15518 15519 This is a little cleaner than the previous implementation of 15520 forget_filter_chain(). It is also more consistent since 15521 lzma_str_to_filters() will always terminate the filter chain so there 15522 is no need to terminate it later in coder_set_compression_settings(). 15523 15524 src/xz/coder.c | 18 ++++++++++-------- 15525 1 file changed, 10 insertions(+), 8 deletions(-) 15526 15527commit 3d21da5cff4b511633cb6e0d8a1090485c0c1059 15528Author: Jia Tan <jiat0218@gmail.com> 15529Date: 2023-04-17 22:22:45 +0800 15530 15531 xz: Separate string to filter conversion into a helper function. 15532 15533 Converting from string to filter will also need to be done for block 15534 specific filter chains. 15535 15536 src/xz/coder.c | 33 ++++++++++++++++++++------------- 15537 1 file changed, 20 insertions(+), 13 deletions(-) 15538 15539commit a6583726e5f950278f96abcf79c04f1056810be6 15540Author: Jia Tan <jiat0218@gmail.com> 15541Date: 2023-01-06 00:03:35 +0800 15542 15543 Tests: Use new --filters option in test_compress.sh 15544 15545 tests/test_compress.sh | 20 ++++++++++---------- 15546 1 file changed, 10 insertions(+), 10 deletions(-) 15547 15548commit 5f3b898d07cc9b7160c7c88b3120b7edabb8a5b0 15549Author: Jia Tan <jiat0218@gmail.com> 15550Date: 2023-01-06 00:03:06 +0800 15551 15552 xz: Update --long-help and man page for new --filters option. 15553 15554 src/xz/message.c | 6 ++++++ 15555 src/xz/xz.1 | 41 ++++++++++++++++++++++++++++++++++++----- 15556 2 files changed, 42 insertions(+), 5 deletions(-) 15557 15558commit 9ded880a0221f4d1256845fc4ab957ffd377c760 15559Author: Jia Tan <jiat0218@gmail.com> 15560Date: 2023-01-06 00:02:29 +0800 15561 15562 xz: Add --filters option to CLI. 15563 15564 The --filters option uses the new lzma_str_to_filters() function 15565 to convert a string into a full filter chain. Using this option 15566 will reset all previous filters set by --preset, --[filter], or 15567 --filters. 15568 15569 src/xz/args.c | 9 +++++++-- 15570 src/xz/coder.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++-- 15571 src/xz/coder.h | 3 +++ 15572 3 files changed, 58 insertions(+), 4 deletions(-) 15573 15574commit 2c189bb00af73dc7ba1a67a9d274d5be03ee3a88 15575Author: Jia Tan <jiat0218@gmail.com> 15576Date: 2023-07-14 21:30:25 +0800 15577 15578 Tests: Improve feature testing for skipping. 15579 15580 Fixed a bug where test_compress_* would all fail if arm64 or armthumb 15581 filters were enabled for compression but arm was disabled. Since the 15582 grep tests only checked for "define HAVE_ENCODER_ARM", this would match 15583 on HAVE_ENCODER_ARM64 or HAVE_ENCODER_ARMTHUMB. 15584 15585 Now the config.h feature test requires " 1" at the end to prevent the 15586 prefix problem. have_feature() was also updated for this even though 15587 there were known current bugs affecting it. This is just in case future 15588 features have a similar prefix problem. 15589 15590 tests/test_compress.sh | 4 ++-- 15591 tests/test_files.sh | 2 +- 15592 2 files changed, 3 insertions(+), 3 deletions(-) 15593 15594commit 80a6b9bcad016c99c9ba3f3eeb4a619fcadfd357 15595Author: Jia Tan <jiat0218@gmail.com> 15596Date: 2023-07-10 20:56:28 +0800 15597 15598 Translations: Update the Chinese (traditional) translation. 15599 15600 po/zh_TW.po | 659 ++++++++++++++++++++++++++++++++++-------------------------- 15601 1 file changed, 377 insertions(+), 282 deletions(-) 15602 15603commit 17f8844e6fc355abf997d77637a7447c4f7bbcbd 15604Author: Jia Tan <jiat0218@gmail.com> 15605Date: 2023-07-08 21:24:19 +0800 15606 15607 liblzma: Remove non-portable empty initializer. 15608 15609 Commit 78704f36e74205857c898a351c757719a6c8b666 added an empty 15610 initializer {} to prevent a warning. The empty initializer is a GNU 15611 extension and results in a build failure on MSVC. The -wpedantic flag 15612 warns about empty initializers. 15613 15614 src/liblzma/common/stream_encoder_mt.c | 2 +- 15615 1 file changed, 1 insertion(+), 1 deletion(-) 15616 15617commit 3aca4f629cd577f0c54f594d5d88722edf0b0413 15618Author: Jia Tan <jiat0218@gmail.com> 15619Date: 2023-07-08 20:03:59 +0800 15620 15621 Translations: Update the Vietnamese translation. 15622 15623 po/vi.po | 620 +++++++++++++++++++++++++++++++++++---------------------------- 15624 1 file changed, 349 insertions(+), 271 deletions(-) 15625 15626commit 66bdcfa85fef2911cc80f5f30fed3f9610faccb4 15627Author: Jia Tan <jiat0218@gmail.com> 15628Date: 2023-06-28 20:46:31 +0800 15629 15630 Tests: Fix memory leaks in test_index. 15631 15632 Several tests were missing calls to lzma_index_end() to clean up the 15633 lzma_index structs. The memory leaks were discovered by using 15634 -fsanitize=address with GCC. 15635 15636 tests/test_index.c | 11 +++++++++++ 15637 1 file changed, 11 insertions(+) 15638 15639commit fe3bd438fb119f9bad3f08dc29d331e4956196e1 15640Author: Jia Tan <jiat0218@gmail.com> 15641Date: 2023-06-28 20:43:29 +0800 15642 15643 Tests: Fix memory leaks in test_block_header. 15644 15645 test_block_header was not properly freeing the filter options between 15646 calls to lzma_block_header_decode(). The memory leaks were discovered by 15647 using -fsanitize=address with GCC. 15648 15649 tests/test_block_header.c | 38 ++++++++++++++++++++++---------------- 15650 1 file changed, 22 insertions(+), 16 deletions(-) 15651 15652commit 78704f36e74205857c898a351c757719a6c8b666 15653Author: Jia Tan <jiat0218@gmail.com> 15654Date: 2023-06-28 20:31:11 +0800 15655 15656 liblzma: Prevent uninitialzed warning in mt stream encoder. 15657 15658 This change only impacts the compiler warning since it was impossible 15659 for the wait_abs struct in stream_encode_mt() to be used before it was 15660 initialized since mythread_condtime_set() will always be called before 15661 mythread_cond_timedwait(). 15662 15663 Since the mythread.h code is different between the POSIX and 15664 Windows versions, this warning was only present on Windows builds. 15665 15666 Thanks to Arthur S for reporting the warning and providing an initial 15667 patch. 15668 15669 src/liblzma/common/stream_encoder_mt.c | 2 +- 15670 1 file changed, 1 insertion(+), 1 deletion(-) 15671 15672commit e3356a204c5ae02db3ec4552b6c1be354e9b6142 15673Author: Jia Tan <jiat0218@gmail.com> 15674Date: 2023-06-28 20:22:38 +0800 15675 15676 liblzma: Prevent warning for MSYS2 Windows build. 15677 15678 In lzma_memcmplen(), the <intrin.h> header file is only included if 15679 _MSC_VER and _M_X64 are both defined but _BitScanForward64() was 15680 previously used if _M_X64 was defined. GCC for MSYS2 defines _M_X64 but 15681 not _MSC_VER so _BitScanForward64() was used without including 15682 <intrin.h>. 15683 15684 Now, lzma_memcmplen() will use __builtin_ctzll() for MSYS2 GCC builds as 15685 expected. 15686 15687 src/liblzma/common/memcmplen.h | 6 ++++-- 15688 1 file changed, 4 insertions(+), 2 deletions(-) 15689 15690commit 45e250a9e9f3c3e8e8af2983366b170bf54f890e 15691Author: Jia Tan <jiat0218@gmail.com> 15692Date: 2023-06-28 21:01:22 +0800 15693 15694 CI: Add test with -fsanitize=address,undefined. 15695 15696 ci_build.sh was updated to accept disabling of __attribute__ ifunc 15697 and CLMUL. This will allow -fsanitize=address to pass because ifunc 15698 is incompatible with -fsanitize=address. The CLMUL implementation has 15699 optimizations that potentially read past the buffer and mask out the 15700 unwanted bytes. 15701 15702 This test will only run on Autotools Linux. 15703 15704 .github/workflows/ci.yml | 23 +++++++++++++++++++---- 15705 build-aux/ci_build.sh | 8 +++++++- 15706 2 files changed, 26 insertions(+), 5 deletions(-) 15707 15708commit 596ee722cd7ddf0afae584fc06365adc0e735977 15709Author: Jia Tan <jiat0218@gmail.com> 15710Date: 2023-06-28 20:16:04 +0800 15711 15712 CI: Upgrade checkout action from v2 to v3. 15713 15714 .github/workflows/ci.yml | 2 +- 15715 1 file changed, 1 insertion(+), 1 deletion(-) 15716 15717commit 86118ea320f867e09e98a8682cc08cbbdfd640e2 15718Author: Jia Tan <jiat0218@gmail.com> 15719Date: 2023-06-27 23:38:32 +0800 15720 15721 Update THANKS. 15722 15723 THANKS | 1 + 15724 1 file changed, 1 insertion(+) 15725 15726commit 3d1fdddf92321b516d55651888b9c669e254634e 15727Author: Jia Tan <jiat0218@gmail.com> 15728Date: 2023-06-27 17:27:09 +0300 15729 15730 Docs: Document the configure option --disable-ifunc in INSTALL. 15731 15732 INSTALL | 8 ++++++++ 15733 1 file changed, 8 insertions(+) 15734 15735commit b4cf7a2822e8d30eb2b12a1a07fd04383b10ade3 15736Author: Lasse Collin <lasse.collin@tukaani.org> 15737Date: 2023-06-27 17:24:49 +0300 15738 15739 Minor tweaks to style and comments. 15740 15741 CMakeLists.txt | 8 ++++---- 15742 configure.ac | 9 +++++---- 15743 2 files changed, 9 insertions(+), 8 deletions(-) 15744 15745commit 23fb9e3a329117c2968c1e7388b6ef07c782dba1 15746Author: Lasse Collin <lasse.collin@tukaani.org> 15747Date: 2023-06-27 17:19:49 +0300 15748 15749 CMake: Rename CHECK_ATTR_IFUNC to ALLOW_ATTR_IFUNC. 15750 15751 It's so that there's a clear difference in wording compared 15752 to liblzma's integrity check types. 15753 15754 CMakeLists.txt | 6 +++--- 15755 1 file changed, 3 insertions(+), 3 deletions(-) 15756 15757commit ee44863ae88e377a5df10db007ba9bfadde3d314 15758Author: Lasse Collin <lasse.collin@tukaani.org> 15759Date: 2023-06-27 17:05:23 +0300 15760 15761 liblzma: Add ifunc implementation to crc64_fast.c. 15762 15763 The ifunc method avoids indirection via the function pointer 15764 crc64_func. This works on GNU/Linux and probably on FreeBSD too. 15765 The previous __attribute((__constructor__)) method is kept for 15766 compatibility with ELF platforms which do support ifunc. 15767 15768 The ifunc method has some limitations, for example, building 15769 liblzma with -fsanitize=address will result in segfaults. 15770 The configure option --disable-ifunc must be used for such builds. 15771 15772 Thanks to Hans Jansen for the original patch. 15773 Closes: https://github.com/tukaani-project/xz/pull/53 15774 15775 src/liblzma/check/crc64_fast.c | 35 ++++++++++++++++++++++++++--------- 15776 1 file changed, 26 insertions(+), 9 deletions(-) 15777 15778commit b72d21202402a603db6d512fb9271cfa83249639 15779Author: Hans Jansen <hansjansen162@outlook.com> 15780Date: 2023-06-22 19:49:30 +0200 15781 15782 Add ifunc check to CMakeLists.txt 15783 15784 CMake build system will now verify if __attribute__((__ifunc__())) can be 15785 used in the build system. If so, HAVE_FUNC_ATTRIBUTE_IFUNC will be 15786 defined to 1. 15787 15788 CMakeLists.txt | 19 +++++++++++++++++++ 15789 1 file changed, 19 insertions(+) 15790 15791commit 23b5c36fb71904bfbe16bb20f976da38dadf6c3b 15792Author: Hans Jansen <hansjansen162@outlook.com> 15793Date: 2023-06-22 19:46:55 +0200 15794 15795 Add ifunc check to configure.ac 15796 15797 configure.ac will now verify if __attribute__((__ifunc__())) can be used in 15798 the build system. If so, HAVE_FUNC_ATTRIBUTE_IFUNC will be defined to 1. 15799 15800 configure.ac | 28 ++++++++++++++++++++++++++++ 15801 1 file changed, 28 insertions(+) 15802 15803commit dbb3a536ed9873ffa0870321f6873e564c6a9da8 15804Author: Jia Tan <jiat0218@gmail.com> 15805Date: 2023-06-07 00:18:30 +0800 15806 15807 CI: Add apt update command before installing dependencies. 15808 15809 Without the extra command, all of the CI tests were automatically 15810 failing because the Ubuntu servers could not be reached properly. 15811 15812 .github/workflows/ci.yml | 8 ++++++-- 15813 1 file changed, 6 insertions(+), 2 deletions(-) 15814 15815commit 6bcd516812331de42b347922913230895bebad34 15816Author: Jia Tan <jiat0218@gmail.com> 15817Date: 2023-06-07 00:10:38 +0800 15818 15819 Update THANKS. 15820 15821 THANKS | 1 + 15822 1 file changed, 1 insertion(+) 15823 15824commit 0d94ba69220d894d2a86081821d2d7a89df5a10b 15825Author: Benjamin Buch <bebuch@users.noreply.github.com> 15826Date: 2023-06-06 15:32:45 +0200 15827 15828 CMake: Protects against double find_package 15829 15830 Boost iostream uses `find_package` in quiet mode and then again uses 15831 `find_package` with required. This second call triggers a 15832 `add_library cannot create imported target "ZLIB::ZLIB" because another 15833 target with the same name already exists.` 15834 15835 This can simply be fixed by skipping the alias part on secondary 15836 `find_package` runs. 15837 15838 CMakeLists.txt | 16 +++++++++------- 15839 1 file changed, 9 insertions(+), 7 deletions(-) 15840 15841commit 045d7aae286ecd2ce163be9e0d9041343a03f89a 15842Author: Jia Tan <jiat0218@gmail.com> 15843Date: 2023-05-31 20:26:42 +0800 15844 15845 Translations: Update the Esperanto translation. 15846 15847 po/eo.po | 185 +++++++++++++++++++++++++++++++-------------------------------- 15848 1 file changed, 92 insertions(+), 93 deletions(-) 15849 15850commit b0cc7c2dcefe4cbc4e1e697598c14fb687ed0b78 15851Author: Jia Tan <jiat0218@gmail.com> 15852Date: 2023-05-31 20:25:00 +0800 15853 15854 Translations: Update the Croatian translation. 15855 15856 po/hr.po | 2 +- 15857 1 file changed, 1 insertion(+), 1 deletion(-) 15858 15859commit af045ef6f848f02cd14c9ad195a5f87bb0c02dce 15860Author: Jia Tan <jiat0218@gmail.com> 15861Date: 2023-05-31 20:15:53 +0800 15862 15863 Translations: Update the Chinese (simplified) translation. 15864 15865 po/zh_CN.po | 317 ++++++++++++++++++++++++++++++------------------------------ 15866 1 file changed, 157 insertions(+), 160 deletions(-) 15867 15868commit e6b92d5817fe91ad27a0f7f57bd0f2144311e383 15869Author: Jia Tan <jiat0218@gmail.com> 15870Date: 2023-05-17 23:12:13 +0800 15871 15872 Translations: Update German translation of man pages. 15873 15874 po4a/de.po | 52 ++++++++++++---------------------------------------- 15875 1 file changed, 12 insertions(+), 40 deletions(-) 15876 15877commit 592961ccdbba39c7d60fe37e36764232feb57c60 15878Author: Jia Tan <jiat0218@gmail.com> 15879Date: 2023-05-17 23:09:18 +0800 15880 15881 Translations: Update the German translation. 15882 15883 po/de.po | 189 +++++++++++++++++++++++++++++++-------------------------------- 15884 1 file changed, 94 insertions(+), 95 deletions(-) 15885 15886commit 13572cb2c391f5b7503e333c6e05b20bd5bbb524 15887Author: Jia Tan <jiat0218@gmail.com> 15888Date: 2023-05-17 20:30:01 +0800 15889 15890 Translations: Update the Croatian translation. 15891 15892 po/hr.po | 187 +++++++++++++++++++++++++++++++-------------------------------- 15893 1 file changed, 93 insertions(+), 94 deletions(-) 15894 15895commit 4e6e425ea8f097c6fb43e69cc9540294dca3680d 15896Author: Jia Tan <jiat0218@gmail.com> 15897Date: 2023-05-17 20:26:54 +0800 15898 15899 Translations: Update Korean translation of man pages. 15900 15901 po4a/ko.po | 3015 ++++++++++++------------------------------------------------ 15902 1 file changed, 568 insertions(+), 2447 deletions(-) 15903 15904commit d5ef1f6faf7c270f60093629257150085ecf19ca 15905Author: Jia Tan <jiat0218@gmail.com> 15906Date: 2023-05-17 20:13:01 +0800 15907 15908 Translations: Update the Korean translation. 15909 15910 po/ko.po | 319 +++++++++++++++++++++++++++++++-------------------------------- 15911 1 file changed, 158 insertions(+), 161 deletions(-) 15912 15913commit e22d0b0f2e301e7906d0106689d967ed84362028 15914Author: Jia Tan <jiat0218@gmail.com> 15915Date: 2023-05-16 23:49:09 +0800 15916 15917 Translations: Update the Spanish translation. 15918 15919 po/es.po | 319 +++++++++++++++++++++++++++++++-------------------------------- 15920 1 file changed, 158 insertions(+), 161 deletions(-) 15921 15922commit f50da74d52d01f6cfd826a921249e289cf671678 15923Author: Jia Tan <jiat0218@gmail.com> 15924Date: 2023-05-16 23:47:23 +0800 15925 15926 Translations: Update the Romanian translation. 15927 15928 po/ro.po | 195 ++++++++++++++++++++++++++++++++------------------------------- 15929 1 file changed, 98 insertions(+), 97 deletions(-) 15930 15931commit 4b9ad60a7305e9841b7cb4ea611bdf5fa7271696 15932Author: Jia Tan <jiat0218@gmail.com> 15933Date: 2023-05-16 23:45:43 +0800 15934 15935 Translations: Update Romanian translation of man pages. 15936 15937 po4a/ro.po | 19 ++++++++++--------- 15938 1 file changed, 10 insertions(+), 9 deletions(-) 15939 15940commit cb6fd57f889c5d9fab36ae8c9e10083a5fe32dea 15941Author: Jia Tan <jiat0218@gmail.com> 15942Date: 2023-05-16 23:43:51 +0800 15943 15944 Translations: Update Ukrainian translation of man pages. 15945 15946 po4a/uk.po | 12 ++++++------ 15947 1 file changed, 6 insertions(+), 6 deletions(-) 15948 15949commit c3e8fcbc2db4861f92ad15606c995bd255803c52 15950Author: Jia Tan <jiat0218@gmail.com> 15951Date: 2023-05-16 23:37:54 +0800 15952 15953 Translations: Update the Ukrainian translation. 15954 15955 po/uk.po | 321 +++++++++++++++++++++++++++++++-------------------------------- 15956 1 file changed, 159 insertions(+), 162 deletions(-) 15957 15958commit 27b81b84fcedbc55aa6e6b21004c44070b15b038 15959Author: Jia Tan <jiat0218@gmail.com> 15960Date: 2023-05-16 23:07:35 +0800 15961 15962 Translations: Update the Polish translation. 15963 15964 po/pl.po | 316 +++++++++++++++++++++++++++++++-------------------------------- 15965 1 file changed, 155 insertions(+), 161 deletions(-) 15966 15967commit 8024ad636a65ed6ea95c94d57255be4c6724d6ed 15968Author: Jia Tan <jiat0218@gmail.com> 15969Date: 2023-05-16 22:52:14 +0800 15970 15971 Translations: Update the Swedish translation. 15972 15973 po/sv.po | 319 +++++++++++++++++++++++++++++++-------------------------------- 15974 1 file changed, 158 insertions(+), 161 deletions(-) 15975 15976commit 6699a29673f227c4664826db485ed9f7596320d2 15977Author: Jia Tan <jiat0218@gmail.com> 15978Date: 2023-05-16 21:21:38 +0800 15979 15980 Translations: Update the Esperanto translation. 15981 15982 po/eo.po | 34 +++++++++++++++++----------------- 15983 1 file changed, 17 insertions(+), 17 deletions(-) 15984 15985commit f36ca7982f6bd5e9827219ed4f3c5a1fbf5d7bdf 15986Author: Jia Tan <jiat0218@gmail.com> 15987Date: 2023-05-13 21:21:54 +0800 15988 15989 liblzma: Slightly rewords lzma_str_list_filters() documentation. 15990 15991 Reword "options required" to "supported options". The previous may have 15992 suggested that the options listed were all required anytime a filter is 15993 used for encoding or decoding. The reword makes this more clear that 15994 adjusting the options is optional. 15995 15996 src/liblzma/api/lzma/filter.h | 2 +- 15997 1 file changed, 1 insertion(+), 1 deletion(-) 15998 15999commit 3374a5359e52f1671d8f831d65827d5020fe2595 16000Author: Jia Tan <jiat0218@gmail.com> 16001Date: 2023-05-11 23:49:23 +0800 16002 16003 liblzma: Adds lzma_nothrow to MicroLZMA API functions. 16004 16005 None of the liblzma functions may throw an exception, so this 16006 attribute should be applied to all liblzma API functions. 16007 16008 src/liblzma/api/lzma/container.h | 5 +++-- 16009 1 file changed, 3 insertions(+), 2 deletions(-) 16010 16011commit 8f236574986e7c414c0ea059f441982d1387e6a4 16012Author: Jia Tan <jiat0218@gmail.com> 16013Date: 2023-05-09 20:20:06 +0800 16014 16015 liblzma: Exports lzma_mt_block_size() as an API function. 16016 16017 The lzma_mt_block_size() was previously just an internal function for 16018 the multithreaded .xz encoder. It is used to provide a recommended Block 16019 size for a given filter chain. 16020 16021 This function is helpful to determine the maximum Block size for the 16022 multithreaded .xz encoder when one wants to change the filters between 16023 blocks. Then, this determined Block size can be provided to 16024 lzma_stream_encoder_mt() in the lzma_mt options parameter when 16025 intializing the coder. This requires one to know all the filter chains 16026 they are using before starting to encode (or at least the filter chain 16027 that will need the largest Block size), but that isn't a bad limitation. 16028 16029 src/liblzma/api/lzma/container.h | 28 ++++++++++++++++++++++++++++ 16030 src/liblzma/common/filter_encoder.c | 16 ++++++++++------ 16031 src/liblzma/common/filter_encoder.h | 6 +----- 16032 src/liblzma/common/stream_encoder_mt.c | 20 +++++++++----------- 16033 src/liblzma/liblzma_generic.map | 5 +++++ 16034 src/liblzma/liblzma_linux.map | 5 +++++ 16035 src/liblzma/lzma/lzma2_encoder.c | 3 +++ 16036 7 files changed, 61 insertions(+), 22 deletions(-) 16037 16038commit d0f33d672a4da7985ebb5ba8d829f885de49c171 16039Author: Jia Tan <jiat0218@gmail.com> 16040Date: 2023-05-08 22:58:09 +0800 16041 16042 liblzma: Creates IS_ENC_DICT_SIZE_VALID() macro. 16043 16044 This creates an internal liblzma macro to test if the dictionary size 16045 is valid for encoding. 16046 16047 src/liblzma/lz/lz_encoder.c | 4 +--- 16048 src/liblzma/lz/lz_encoder.h | 8 ++++++++ 16049 2 files changed, 9 insertions(+), 3 deletions(-) 16050 16051commit c247d06e1f6cada9a76f4f6225cbd97ea760f52f 16052Author: Jia Tan <jiat0218@gmail.com> 16053Date: 2023-05-02 20:39:56 +0800 16054 16055 Add NEWS for 5.4.3. 16056 16057 NEWS | 10 ++++++++++ 16058 1 file changed, 10 insertions(+) 16059 16060commit 77050b78364ffb6b0f129e742b7c31602d725c08 16061Author: Jia Tan <jiat0218@gmail.com> 16062Date: 2023-05-02 20:39:37 +0800 16063 16064 Add NEWS for 5.2.12. 16065 16066 NEWS | 14 ++++++++++++++ 16067 1 file changed, 14 insertions(+) 16068 16069commit 713e15e43eb6279a7ab4bbad3d1325ebfdcf09a0 16070Author: Jia Tan <jiat0218@gmail.com> 16071Date: 2023-05-04 20:38:52 +0800 16072 16073 Translations: Update the Croatian translation. 16074 16075 po/hr.po | 6 +++--- 16076 1 file changed, 3 insertions(+), 3 deletions(-) 16077 16078commit 9ad64bdf309844b6ca6c3e8a4dfb6dbaedda0ca9 16079Author: Jia Tan <jiat0218@gmail.com> 16080Date: 2023-05-04 20:30:25 +0800 16081 16082 tuklib_integer.h: Reverts previous commit. 16083 16084 Previous commit 6be460dde07113fe3f08f814b61ddc3264125a96 would cause an 16085 error if the integer size was 32 bit. 16086 16087 src/common/tuklib_integer.h | 4 ++-- 16088 1 file changed, 2 insertions(+), 2 deletions(-) 16089 16090commit 6be460dde07113fe3f08f814b61ddc3264125a96 16091Author: Jia Tan <jiat0218@gmail.com> 16092Date: 2023-05-04 19:25:20 +0800 16093 16094 tuklib_integer.h: Changes two other UINT_MAX == UINT32_MAX to >=. 16095 16096 src/common/tuklib_integer.h | 4 ++-- 16097 1 file changed, 2 insertions(+), 2 deletions(-) 16098 16099commit 44c0c5eae990a22ef04e9b88c1a15838a0d00878 16100Author: Lasse Collin <lasse.collin@tukaani.org> 16101Date: 2023-05-03 22:46:42 +0300 16102 16103 tuklib_integer.h: Fix a recent copypaste error in Clang detection. 16104 16105 Wrong line was changed in 7062348bf35c1e4cbfee00ad9fffb4a21aa6eff7. 16106 Also, this has >= instead of == since ints larger than 32 bits would 16107 work too even if not relevant in practice. 16108 16109 src/common/tuklib_integer.h | 4 ++-- 16110 1 file changed, 2 insertions(+), 2 deletions(-) 16111 16112commit 2cf5ae5b5b279b0b2e69ca4724e7bd705865fe68 16113Author: Jia Tan <jiat0218@gmail.com> 16114Date: 2023-04-25 20:06:15 +0800 16115 16116 CI: Adds a build and test for small configuration. 16117 16118 .github/workflows/ci.yml | 5 +++++ 16119 1 file changed, 5 insertions(+) 16120 16121commit 16b81a057a87c2f18e6ed6447f003af0cbdcfe43 16122Author: Jia Tan <jiat0218@gmail.com> 16123Date: 2023-04-25 20:05:26 +0800 16124 16125 CI: ci_build.sh allows configuring small build. 16126 16127 build-aux/ci_build.sh | 7 ++++++- 16128 1 file changed, 6 insertions(+), 1 deletion(-) 16129 16130commit 78ccd93951f9e988d447bcdd70b24f6df5448d1d 16131Author: Jia Tan <jiat0218@gmail.com> 16132Date: 2023-04-20 20:15:00 +0800 16133 16134 Update THANKS. 16135 16136 THANKS | 1 + 16137 1 file changed, 1 insertion(+) 16138 16139commit f41df2ac2fed347d3f107f3533e76e000d29c6cb 16140Author: Jia Tan <jiat0218@gmail.com> 16141Date: 2023-04-19 22:22:16 +0800 16142 16143 Windows: Include <intrin.h> when needed. 16144 16145 Legacy Windows did not need to #include <intrin.h> to use the MSVC 16146 intrinsics. Newer versions likely just issue a warning, but the MSVC 16147 documentation says to include the header file for the intrinsics we use. 16148 16149 GCC and Clang can "pretend" to be MSVC on Windows, so extra checks are 16150 needed in tuklib_integer.h to only include <intrin.h> when it will is 16151 actually needed. 16152 16153 src/common/tuklib_integer.h | 6 ++++++ 16154 src/liblzma/common/memcmplen.h | 10 ++++++++++ 16155 2 files changed, 16 insertions(+) 16156 16157commit 7062348bf35c1e4cbfee00ad9fffb4a21aa6eff7 16158Author: Jia Tan <jiat0218@gmail.com> 16159Date: 2023-04-19 21:59:03 +0800 16160 16161 tuklib_integer: Use __builtin_clz() with Clang. 16162 16163 Clang has support for __builtin_clz(), but previously Clang would 16164 fallback to either the MSVC intrinsic or the regular C code. This was 16165 discovered due to a bug where a new version of Clang required the 16166 <intrin.h> header file in order to use the MSVC intrinsics. 16167 16168 Thanks to Anton Kochkov for notifying us about the bug. 16169 16170 src/common/tuklib_integer.h | 6 +++--- 16171 1 file changed, 3 insertions(+), 3 deletions(-) 16172 16173commit 3938718ce3773c90755785c0df8777f133b7ae29 16174Author: Lasse Collin <lasse.collin@tukaani.org> 16175Date: 2023-04-14 18:42:33 +0300 16176 16177 liblzma: Update project maintainers in lzma.h. 16178 16179 AUTHORS was updated earlier, lzma.h was simply forgotten. 16180 16181 src/liblzma/api/lzma.h | 2 +- 16182 1 file changed, 1 insertion(+), 1 deletion(-) 16183 16184commit 2a89670ab295e377f8b44f5bda6d198deb8ea285 16185Author: Jia Tan <jiat0218@gmail.com> 16186Date: 2023-04-13 20:45:19 +0800 16187 16188 liblzma: Cleans up old commented out code. 16189 16190 src/liblzma/common/alone_encoder.c | 11 ----------- 16191 1 file changed, 11 deletions(-) 16192 16193commit 0fbb2b87a7b5a1dd9d0f4a5e84ac7919557dbe81 16194Author: Jia Tan <jiat0218@gmail.com> 16195Date: 2023-04-07 20:46:41 +0800 16196 16197 Docs: Add missing word to SECURITY.md. 16198 16199 .github/SECURITY.md | 2 +- 16200 1 file changed, 1 insertion(+), 1 deletion(-) 16201 16202commit fb9c50f38a17bf37581de4034b36c8df8ec90a87 16203Author: Jia Tan <jiat0218@gmail.com> 16204Date: 2023-04-07 20:43:22 +0800 16205 16206 Update THANKS. 16207 16208 THANKS | 1 + 16209 1 file changed, 1 insertion(+) 16210 16211commit 537c6cd8a9db0dd6b13683e64ddac2943190d715 16212Author: Jia Tan <jiat0218@gmail.com> 16213Date: 2023-04-07 20:42:12 +0800 16214 16215 Docs: Minor edits to SECURITY.md. 16216 16217 .github/SECURITY.md | 25 ++++++++++++++++++++----- 16218 1 file changed, 20 insertions(+), 5 deletions(-) 16219 16220commit 6549df8dd53f358345957e232648fdb699930074 16221Author: Gabriela Gutierrez <gabigutierrez@google.com> 16222Date: 2023-04-07 12:08:30 +0000 16223 16224 Docs: Create SECURITY.md 16225 16226 Signed-off-by: Gabriela Gutierrez <gabigutierrez@google.com> 16227 16228 .github/SECURITY.md | 14 ++++++++++++++ 16229 1 file changed, 14 insertions(+) 16230 16231commit d0faa85df5a5d253a4625d45313cf5e9277e6cd2 16232Author: Jia Tan <jiat0218@gmail.com> 16233Date: 2023-03-28 22:48:24 +0800 16234 16235 CI: Tests for disabling threading on CMake builds. 16236 16237 .github/workflows/ci.yml | 3 --- 16238 build-aux/ci_build.sh | 4 ++-- 16239 2 files changed, 2 insertions(+), 5 deletions(-) 16240 16241commit 8be5cc3b1359d88b4b30a39067466c0ae0bfbc4d 16242Author: Jia Tan <jiat0218@gmail.com> 16243Date: 2023-03-28 22:45:42 +0800 16244 16245 CI: Removes CMakeCache.txt between builds. 16246 16247 If the cache file is not removed, CMake will not reset configurations 16248 back to their default values. In order to make the tests independent, it 16249 is simplest to purge the cache. Unfortunatly, this will slow down the 16250 tests a little and repeat some checks. 16251 16252 build-aux/ci_build.sh | 2 ++ 16253 1 file changed, 2 insertions(+) 16254 16255commit 2cb6028fc31de082b7f927632363bb1426b61aaa 16256Author: Jia Tan <jiat0218@gmail.com> 16257Date: 2023-03-28 22:32:40 +0800 16258 16259 CMake: Update liblzma-config.cmake generation. 16260 16261 Now that the threading is configurable, the liblzma CMake package only 16262 needs the threading library when using POSIX threads. 16263 16264 CMakeLists.txt | 33 ++++++++++++++++++++++----------- 16265 1 file changed, 22 insertions(+), 11 deletions(-) 16266 16267commit 4d7fac0b07cc722825ba8d7838c558827e635611 16268Author: Jia Tan <jiat0218@gmail.com> 16269Date: 2023-03-28 22:25:33 +0800 16270 16271 CMake: Allows setting thread method. 16272 16273 The thread method is now configurable for the CMake build. It matches 16274 the Autotools build by allowing ON (pick the best threading method), 16275 OFF (no threading), posix, win95, and vista. If both Windows and 16276 posix threading are both available, then ON will choose Windows 16277 threading. Windows threading will also not use: 16278 16279 target_link_libraries(liblzma Threads::Threads) 16280 16281 since on systems like MinGW-w64 it would link the posix threads 16282 without purpose. 16283 16284 CMakeLists.txt | 144 +++++++++++++++++++++++++++++++++++++++++---------------- 16285 1 file changed, 104 insertions(+), 40 deletions(-) 16286 16287commit 20cd905d898c1494dee42b78530769bb9c9f8076 16288Author: Jia Tan <jiat0218@gmail.com> 16289Date: 2023-03-24 23:05:48 +0800 16290 16291 CI: Runs CMake feature tests. 16292 16293 Now, CMake will run similar feature disable tests that the Autotools 16294 version did before. In order to do this without repeating lines in 16295 ci.yml, it now makes sense to use the GitHub Workflow matrix to create 16296 a loop. 16297 16298 .github/workflows/ci.yml | 169 +++++++++++++++-------------------------------- 16299 1 file changed, 55 insertions(+), 114 deletions(-) 16300 16301commit 4fabdb269f1fc5624b3b94a170c4efb329d1d229 16302Author: Jia Tan <jiat0218@gmail.com> 16303Date: 2023-03-24 20:35:11 +0800 16304 16305 CI: ci_build.sh allows CMake features to be configured. 16306 16307 Also included various clean ups for style and helper functions for 16308 repeated work. 16309 16310 build-aux/ci_build.sh | 233 +++++++++++++++++++++++++++++++------------------- 16311 1 file changed, 143 insertions(+), 90 deletions(-) 16312 16313commit cf3d1f130e50cf63da4bb1031771605f6f443b6a 16314Author: Jia Tan <jiat0218@gmail.com> 16315Date: 2023-03-24 20:06:33 +0800 16316 16317 CI: Change ci_build.sh to use bash instead of sh. 16318 16319 This script is only meant to be run as part of the CI build/test process 16320 on machines that are known to have bash (Ubuntu and MacOS). If this 16321 assumption changes in the future, then the bash specific commands will 16322 need to be replaced with a more portable option. For now, it is 16323 convenient to use bash commands. 16324 16325 build-aux/ci_build.sh | 2 +- 16326 1 file changed, 1 insertion(+), 1 deletion(-) 16327 16328commit ddfe164368e779c40d061aa4ccc376129e92f8e1 16329Author: Jia Tan <jiat0218@gmail.com> 16330Date: 2023-03-24 20:05:59 +0800 16331 16332 CMake: Only build xzdec if decoders are enabled. 16333 16334 CMakeLists.txt | 2 +- 16335 1 file changed, 1 insertion(+), 1 deletion(-) 16336 16337commit 116e81f002c503d3c3cd12726db8f9116e58ef25 16338Author: Jia Tan <jiat0218@gmail.com> 16339Date: 2023-03-22 15:42:04 +0800 16340 16341 Build: Removes redundant check for LZMA1 filter support. 16342 16343 src/liblzma/lzma/Makefile.inc | 5 +---- 16344 1 file changed, 1 insertion(+), 4 deletions(-) 16345 16346commit 0ba234f692772595329d225462d391fe2c199d0a 16347Author: Lasse Collin <lasse.collin@tukaani.org> 16348Date: 2023-03-23 15:14:29 +0200 16349 16350 CMake: Bump maximum policy version to 3.26. 16351 16352 It adds only one new policy related to FOLDERS which we don't use. 16353 This makes it clear that the code is compatible with the policies 16354 up to 3.26. 16355 16356 CMakeLists.txt | 2 +- 16357 1 file changed, 1 insertion(+), 1 deletion(-) 16358 16359commit b0891684b4436aed31510fddcbb218d513bd5489 16360Author: Jia Tan <jiat0218@gmail.com> 16361Date: 2023-03-21 23:36:00 +0800 16362 16363 CMake: Conditionally build xz list.* files if decoders are enabled. 16364 16365 CMakeLists.txt | 9 +++++++-- 16366 1 file changed, 7 insertions(+), 2 deletions(-) 16367 16368commit 2c1a830efb61d9d65906a09c9ee3ce27c2c49227 16369Author: Jia Tan <jiat0218@gmail.com> 16370Date: 2023-02-25 11:46:50 +0800 16371 16372 CMake: Allow configuring features as cache variables. 16373 16374 This allows users to change the features they build either in 16375 CMakeCache.txt or by using a CMake GUI. The sources built for 16376 liblzma are affected by this too, so only the necessary files 16377 will be compiled. 16378 16379 CMakeLists.txt | 528 ++++++++++++++++++++++++++++++++++++++++++--------------- 16380 1 file changed, 391 insertions(+), 137 deletions(-) 16381 16382commit 8be136f667aaeb8f9e16fbd57a83cb282f0c27ff 16383Author: Lasse Collin <lasse.collin@tukaani.org> 16384Date: 2023-03-21 14:07:51 +0200 16385 16386 Build: Add a comment that AC_PROG_CC_C99 is needed for Autoconf 2.69. 16387 16388 It's obsolete in Autoconf >= 2.70 and just an alias for AC_PROG_CC 16389 but Autoconf 2.69 requires AC_PROG_CC_C99 to get a C99 compiler. 16390 16391 configure.ac | 3 +++ 16392 1 file changed, 3 insertions(+) 16393 16394commit 53cc475f2652d9e390ca002018dfd0af0626ef80 16395Author: Lasse Collin <lasse.collin@tukaani.org> 16396Date: 2023-03-21 14:04:37 +0200 16397 16398 Build: configure.ac: Use AS_IF and AS_CASE where required. 16399 16400 This makes no functional difference in the generated configure 16401 (at least with the Autotools versions I have installed) but this 16402 change might prevent future bugs like the one that was just 16403 fixed in the commit 5a5bd7f871818029d5ccbe189f087f591258c294. 16404 16405 configure.ac | 30 +++++++++++++++--------------- 16406 1 file changed, 15 insertions(+), 15 deletions(-) 16407 16408commit 3b8890a40233b6c783bb101ec14405e786871775 16409Author: Lasse Collin <lasse.collin@tukaani.org> 16410Date: 2023-03-21 13:12:03 +0200 16411 16412 Update THANKS. 16413 16414 THANKS | 1 + 16415 1 file changed, 1 insertion(+) 16416 16417commit 5a5bd7f871818029d5ccbe189f087f591258c294 16418Author: Lasse Collin <lasse.collin@tukaani.org> 16419Date: 2023-03-21 13:11:49 +0200 16420 16421 Build: Fix --disable-threads breaking the building of shared libs. 16422 16423 This is broken in the releases 5.2.6 to 5.4.2. A workaround 16424 for these releases is to pass EGREP='grep -E' as an argument 16425 to configure in addition to --disable-threads. 16426 16427 The problem appeared when m4/ax_pthread.m4 was updated in 16428 the commit 6629ed929cc7d45a11e385f357ab58ec15e7e4ad which 16429 introduced the use of AC_EGREP_CPP. AC_EGREP_CPP calls 16430 AC_REQUIRE([AC_PROG_EGREP]) to set the shell variable EGREP 16431 but this was only executed if POSIX threads were enabled. 16432 Libtool code also has AC_REQUIRE([AC_PROG_EGREP]) but Autoconf 16433 omits it as AC_PROG_EGREP has already been required earlier. 16434 Thus, if not using POSIX threads, the shell variable EGREP 16435 would be undefined in the Libtool code in configure. 16436 16437 ax_pthread.m4 is fine. The bug was in configure.ac which called 16438 AX_PTHREAD conditionally in an incorrect way. Using AS_CASE 16439 ensures that all AC_REQUIREs get always run. 16440 16441 Thanks to Frank Busse for reporting the bug. 16442 Fixes: https://github.com/tukaani-project/xz/issues/45 16443 16444 configure.ac | 16 ++++++++-------- 16445 1 file changed, 8 insertions(+), 8 deletions(-) 16446 16447commit dfe1710784c0a3c3a90c17b80c9e1fe19b5fce06 16448Author: Lasse Collin <lasse.collin@tukaani.org> 16449Date: 2023-03-19 22:45:59 +0200 16450 16451 liblzma: Silence -Wsign-conversion in SSE2 code in memcmplen.h. 16452 16453 Thanks to Christian Hesse for reporting the issue. 16454 Fixes: https://github.com/tukaani-project/xz/issues/44 16455 16456 src/liblzma/common/memcmplen.h | 3 ++- 16457 1 file changed, 2 insertions(+), 1 deletion(-) 16458 16459commit f0c580c5fc38bf49a184b48d76c1d8c057d499ce 16460Author: Jia Tan <jiat0218@gmail.com> 16461Date: 2023-03-18 22:10:57 +0800 16462 16463 Add NEWS for 5.4.2. 16464 16465 NEWS | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 16466 1 file changed, 48 insertions(+) 16467 16468commit af4925e6043113ec9b5f9c0cf13abf2a18ccb1f6 16469Author: Jia Tan <jiat0218@gmail.com> 16470Date: 2023-03-18 22:10:12 +0800 16471 16472 Add NEWS for 5.2.11. 16473 16474 NEWS | 27 +++++++++++++++++++++++++++ 16475 1 file changed, 27 insertions(+) 16476 16477commit 5a7b930efa7f9849d8da8397e8e5d8638f92be40 16478Author: Lasse Collin <lasse.collin@tukaani.org> 16479Date: 2023-03-18 16:00:54 +0200 16480 16481 Update the copy of GNU GPLv3 from gnu.org to COPYING.GPLv3. 16482 16483 COPYING.GPLv3 | 8 ++++---- 16484 1 file changed, 4 insertions(+), 4 deletions(-) 16485 16486commit b473a92891f7e991398a3b5eff305f6f2b6d7293 16487Author: Lasse Collin <lasse.collin@tukaani.org> 16488Date: 2023-03-18 15:51:57 +0200 16489 16490 Change a few HTTP URLs to HTTPS. 16491 16492 The xz man page timestamp was intentionally left unchanged. 16493 16494 INSTALL | 2 +- 16495 README | 8 ++++---- 16496 configure.ac | 2 +- 16497 dos/INSTALL.txt | 4 ++-- 16498 src/liblzma/api/lzma.h | 8 ++++---- 16499 src/liblzma/check/sha256.c | 2 +- 16500 src/xz/xz.1 | 2 +- 16501 windows/INSTALL-MinGW.txt | 10 +++++----- 16502 8 files changed, 19 insertions(+), 19 deletions(-) 16503 16504commit 8b2f6001b4f412c259a7883427f2f2c8cea98ea8 16505Author: Jia Tan <jiat0218@gmail.com> 16506Date: 2023-03-18 00:40:28 +0800 16507 16508 CMake: Fix typo in a comment. 16509 16510 CMakeLists.txt | 2 +- 16511 1 file changed, 1 insertion(+), 1 deletion(-) 16512 16513commit 76e2315e14c399c15cc90e7930fd4d3d086b0227 16514Author: Lasse Collin <lasse.collin@tukaani.org> 16515Date: 2023-03-17 18:36:22 +0200 16516 16517 Windows: build.bash: Copy liblzma API docs to the output package. 16518 16519 windows/build.bash | 3 ++- 16520 1 file changed, 2 insertions(+), 1 deletion(-) 16521 16522commit 133cf55edc5ce92952d2709abd992e48ef1f45ee 16523Author: Lasse Collin <lasse.collin@tukaani.org> 16524Date: 2023-03-17 08:53:38 +0200 16525 16526 Windows: Add microlzma_*.c to the VS project files. 16527 16528 These should have been included in 5.3.2alpha already. 16529 16530 windows/vs2013/liblzma.vcxproj | 2 ++ 16531 windows/vs2013/liblzma_dll.vcxproj | 2 ++ 16532 windows/vs2017/liblzma.vcxproj | 2 ++ 16533 windows/vs2017/liblzma_dll.vcxproj | 2 ++ 16534 windows/vs2019/liblzma.vcxproj | 2 ++ 16535 windows/vs2019/liblzma_dll.vcxproj | 2 ++ 16536 6 files changed, 12 insertions(+) 16537 16538commit 75c9ca450fab6982fda9286b168081c9d54126cd 16539Author: Lasse Collin <lasse.collin@tukaani.org> 16540Date: 2023-03-17 08:43:51 +0200 16541 16542 CMake: Add microlzma_*.c to the build. 16543 16544 These should have been included in 5.3.2alpha already. 16545 16546 CMakeLists.txt | 2 ++ 16547 1 file changed, 2 insertions(+) 16548 16549commit 0cc3313bd4e569c51e686e5aab8c40c35241d34b 16550Author: Lasse Collin <lasse.collin@tukaani.org> 16551Date: 2023-03-17 08:41:36 +0200 16552 16553 Build: Update comments about unaligned access to mention 64-bit. 16554 16555 cmake/tuklib_integer.cmake | 7 +++---- 16556 m4/tuklib_integer.m4 | 4 ++-- 16557 2 files changed, 5 insertions(+), 6 deletions(-) 16558 16559commit 5e57e3301319f20c35f8111dea73fa58403b96b1 16560Author: Lasse Collin <lasse.collin@tukaani.org> 16561Date: 2023-03-17 00:02:30 +0200 16562 16563 Tests: Update .gitignore. 16564 16565 .gitignore | 3 ++- 16566 1 file changed, 2 insertions(+), 1 deletion(-) 16567 16568commit 0007394d54e21bf30abb9a5e09cbc1e8d44a73ac 16569Author: Lasse Collin <lasse.collin@tukaani.org> 16570Date: 2023-03-14 20:04:03 +0200 16571 16572 po4a/update-po: Display the script name consistently in error messages. 16573 16574 po4a/update-po | 2 +- 16575 1 file changed, 1 insertion(+), 1 deletion(-) 16576 16577commit 509157c80c500426ec853bd992d684ebafc8500c 16578Author: Jia Tan <jiat0218@gmail.com> 16579Date: 2023-03-17 01:30:36 +0800 16580 16581 Doc: Rename Doxygen HTML doc directory name liblzma => api. 16582 16583 When the docs are installed, calling the directory "liblzma" is 16584 confusing since multiple other files in the doc directory are for 16585 liblzma. This should also make it more natural for distros when they 16586 package the documentation. 16587 16588 .gitignore | 2 +- 16589 Makefile.am | 18 +++++++++--------- 16590 PACKAGERS | 4 ++-- 16591 doxygen/Doxyfile | 2 +- 16592 doxygen/update-doxygen | 18 +++++++++--------- 16593 5 files changed, 22 insertions(+), 22 deletions(-) 16594 16595commit fd90e2f4c29180b44e33c7ef726f94e4eae54ed3 16596Author: Jia Tan <jiat0218@gmail.com> 16597Date: 2023-03-16 22:07:15 +0800 16598 16599 liblzma: Remove note from lzma_options_bcj about the ARM64 exception. 16600 16601 This was left in by mistake since an early version of the ARM64 filter 16602 used a different struct for its options. 16603 16604 src/liblzma/api/lzma/bcj.h | 2 +- 16605 1 file changed, 1 insertion(+), 1 deletion(-) 16606 16607commit 4f50763b981f9056c5f1763dfb26cfa4a26a181d 16608Author: Jia Tan <jiat0218@gmail.com> 16609Date: 2023-03-16 21:44:02 +0800 16610 16611 CI: Add doxygen as a dependency. 16612 16613 Autogen now requires --no-doxygen or having doxygen installed to run 16614 without errors. 16615 16616 .github/workflows/ci.yml | 5 ++--- 16617 1 file changed, 2 insertions(+), 3 deletions(-) 16618 16619commit f68f4b27f62f53fdac570885a1f4f23367ce6599 16620Author: Lasse Collin <lasse.collin@tukaani.org> 16621Date: 2023-03-15 19:19:13 +0200 16622 16623 COPYING: Add a note about the included Doxygen-generated HTML. 16624 16625 COPYING | 11 +++++++++++ 16626 1 file changed, 11 insertions(+) 16627 16628commit 8979308528c1f45cb9ee52d511f05232b4ad90a1 16629Author: Jia Tan <jiat0218@gmail.com> 16630Date: 2023-03-16 21:41:09 +0800 16631 16632 Doc: Update PACKAGERS with details about liblzma API docs install. 16633 16634 PACKAGERS | 22 ++++++++++++++++------ 16635 1 file changed, 16 insertions(+), 6 deletions(-) 16636 16637commit 55ba6e93004842ae0a0792214a23504267ad8f43 16638Author: Jia Tan <jiat0218@gmail.com> 16639Date: 2023-03-16 21:38:32 +0800 16640 16641 liblzma: Add set lzma.h as the main page for Doxygen documentation. 16642 16643 The \mainpage command is used in the first block of comments in lzma.h. 16644 This changes the previously nearly empty index.html to use the first 16645 comment block in lzma.h for its contents. 16646 16647 lzma.h is no longer documented separately, but this is for the better 16648 since lzma.h only defined a few macros that users do not need to use. 16649 The individual API header files all have a disclaimer that they should 16650 not be #included directly, so there should be no confusion on the fact 16651 that lzma.h should be the only header used by applications. 16652 16653 Additionally, the note "See ../lzma.h for information about liblzma as 16654 a whole." was removed since lzma.h is now the main page of the 16655 generated HTML and does not have its own page anymore. So it would be 16656 confusing in the HTML version and was only a "nice to have" when 16657 browsing the source files. 16658 16659 src/liblzma/api/lzma.h | 1 + 16660 src/liblzma/api/lzma/base.h | 2 -- 16661 src/liblzma/api/lzma/bcj.h | 2 -- 16662 src/liblzma/api/lzma/block.h | 2 -- 16663 src/liblzma/api/lzma/check.h | 2 -- 16664 src/liblzma/api/lzma/container.h | 2 -- 16665 src/liblzma/api/lzma/delta.h | 2 -- 16666 src/liblzma/api/lzma/filter.h | 2 -- 16667 src/liblzma/api/lzma/hardware.h | 2 -- 16668 src/liblzma/api/lzma/index.h | 2 -- 16669 src/liblzma/api/lzma/index_hash.h | 4 +--- 16670 src/liblzma/api/lzma/lzma12.h | 2 -- 16671 src/liblzma/api/lzma/stream_flags.h | 2 -- 16672 src/liblzma/api/lzma/version.h | 2 -- 16673 src/liblzma/api/lzma/vli.h | 2 -- 16674 15 files changed, 2 insertions(+), 29 deletions(-) 16675 16676commit 16f21255597f6a57e5692780f962cdc090f62b8c 16677Author: Jia Tan <jiat0218@gmail.com> 16678Date: 2023-03-16 21:37:32 +0800 16679 16680 Build: Generate doxygen documentation in autogen.sh. 16681 16682 Another command line option (--no-doxygen) was added to disable 16683 creating the doxygen documenation in cases where it not wanted or 16684 if the doxygen tool is not installed. 16685 16686 autogen.sh | 35 +++++++++++++++++++++++++++++------ 16687 1 file changed, 29 insertions(+), 6 deletions(-) 16688 16689commit 1321852a3be7196bd7fcfd146221a5669e46407c 16690Author: Jia Tan <jiat0218@gmail.com> 16691Date: 2023-03-16 21:35:55 +0800 16692 16693 Build: Create doxygen/update-doxygen script. 16694 16695 This is a helper script to generate the Doxygen documentation. It can be 16696 run in 'liblzma' or 'internal' mode by setting the first argument. It 16697 will default to 'liblzma' mode and only generate documentation for the 16698 liblzma API header files. 16699 16700 The helper script will be run during the custom mydist hook when we 16701 create releases. This hook already alters the source directory, so its 16702 fine to do it here too. This way, we can include the Doxygen generated 16703 files in the distrubtion and when installing. 16704 16705 In 'liblzma' mode, the JavaScript is stripped from the .html files and 16706 the .js files are removed. This avoids license hassle from jQuery and 16707 other libraries that Doxygen 1.9.6 puts into jquery.js in minified form. 16708 16709 Makefile.am | 1 + 16710 doxygen/update-doxygen | 111 +++++++++++++++++++++++++++++++++++++++++++++++++ 16711 2 files changed, 112 insertions(+) 16712 16713commit b1216a7772952d2fe7fe9c6acfcbd98d30abbc7b 16714Author: Jia Tan <jiat0218@gmail.com> 16715Date: 2023-03-16 21:34:36 +0800 16716 16717 Build: Install Doxygen docs and include in distribution if generated. 16718 16719 Added a install-data-local target to install the Doxygen documentation 16720 only when it has been generated. In order to correctly remove the docs, 16721 a corresponding uninstall-local target was added. 16722 16723 If the doxygen docs exist in the source tree, they will also be included 16724 in the distribution now too. 16725 16726 Makefile.am | 18 ++++++++++++++++++ 16727 1 file changed, 18 insertions(+) 16728 16729commit c97d12f300b2a94c9f54a44c8931c8bc08cf0a73 16730Author: Lasse Collin <lasse.collin@tukaani.org> 16731Date: 2023-03-16 21:23:48 +0800 16732 16733 Doxygen: Refactor Doxyfile.in to doxygen/Doxyfile. 16734 16735 Instead of having Doxyfile.in configured by Autoconf, the Doxyfile 16736 can have the tags that need to be configured piped into the doxygen 16737 command through stdin with the overrides after Doxyfile's contents. 16738 16739 Going forward, the documentation should be generated in two different 16740 modes: liblzma or internal. 16741 16742 liblzma is useful for most users. It is the documentation for just 16743 the liblzma API header files. This is the default. 16744 16745 internal is for people who want to understand how xz and liblzma work. 16746 It might be useful for people who want to contribute to the project. 16747 16748 .gitignore | 3 +- 16749 Makefile.am | 1 - 16750 configure.ac | 40 --- 16751 Doxyfile.in => doxygen/Doxyfile | 721 +++++++++++++++++++++++++--------------- 16752 4 files changed, 456 insertions(+), 309 deletions(-) 16753 16754commit 1b7661faa4bbf4a54c6b75900b5059835c382a0f 16755Author: Jia Tan <jiat0218@gmail.com> 16756Date: 2023-02-28 23:22:36 +0800 16757 16758 Tests: Remove unused macros and functions. 16759 16760 tests/tests.h | 75 ----------------------------------------------------------- 16761 1 file changed, 75 deletions(-) 16762 16763commit af55191102f01e76de658c881299f0909ca0feda 16764Author: Jia Tan <jiat0218@gmail.com> 16765Date: 2022-12-29 21:52:15 +0800 16766 16767 liblzma: Defines masks for return values from lzma_index_checks(). 16768 16769 src/liblzma/api/lzma/index.h | 23 +++++++++++++++++++++++ 16770 tests/test_index.c | 22 +++++++++++----------- 16771 2 files changed, 34 insertions(+), 11 deletions(-) 16772 16773commit 8f38cdd9ab71e2a9d5a9787550222b7578243b73 16774Author: Jia Tan <jiat0218@gmail.com> 16775Date: 2023-01-12 22:29:07 +0800 16776 16777 Tests: Refactors existing lzma_index tests. 16778 16779 Converts the existing lzma_index tests into tuktests and covers every 16780 API function from index.h except for lzma_file_info_decoder, which can 16781 be tested in the future. 16782 16783 tests/test_index.c | 2036 ++++++++++++++++++++++++++++++++++++++-------------- 16784 1 file changed, 1492 insertions(+), 544 deletions(-) 16785 16786commit 717aa3651ce582807f379d8654c2516e1594df77 16787Author: Lasse Collin <lasse.collin@tukaani.org> 16788Date: 2023-03-11 18:42:08 +0200 16789 16790 xz: Simplify the error-label in Capsicum sandbox code. 16791 16792 Also remove unneeded "sandbox_allowed = false;" as this code 16793 will never be run more than once (making it work with multiple 16794 input files isn't trivial). 16795 16796 src/xz/file_io.c | 27 ++++++++++++--------------- 16797 1 file changed, 12 insertions(+), 15 deletions(-) 16798 16799commit a0eecc235d3ba8ad3453da98b46c7bc3e644de75 16800Author: Lasse Collin <lasse.collin@tukaani.org> 16801Date: 2023-03-07 19:59:23 +0200 16802 16803 xz: Make Capsicum sandbox more strict with stdin and stdout. 16804 16805 src/xz/file_io.c | 8 ++++++++ 16806 1 file changed, 8 insertions(+) 16807 16808commit 916448d624aaf55cef0fc3e53754affb8c4f309d 16809Author: Jia Tan <jiat0218@gmail.com> 16810Date: 2023-03-08 23:08:46 +0800 16811 16812 Revert: "Add warning if Capsicum sandbox system calls are unsupported." 16813 16814 The warning causes the exit status to be 2, so this will cause problems 16815 for many scripted use cases for xz. The sandbox usage is already very 16816 limited already, so silently disabling this allows it to be more usable. 16817 16818 src/xz/file_io.c | 10 ++++------ 16819 1 file changed, 4 insertions(+), 6 deletions(-) 16820 16821commit 01587dda2a8f13fef7e12fd624e6d05da5f9624f 16822Author: Jia Tan <jiat0218@gmail.com> 16823Date: 2023-03-07 20:02:22 +0800 16824 16825 xz: Fix -Wunused-label in io_sandbox_enter(). 16826 16827 Thanks to Xin Li for recommending the fix. 16828 16829 src/xz/file_io.c | 4 ++-- 16830 1 file changed, 2 insertions(+), 2 deletions(-) 16831 16832commit 5fb936786601a1cd013a5d436adde65982b1e13c 16833Author: Jia Tan <jiat0218@gmail.com> 16834Date: 2023-03-06 21:37:45 +0800 16835 16836 xz: Add warning if Capsicum sandbox system calls are unsupported. 16837 16838 The warning is only used when errno == ENOSYS. Otherwise, xz still 16839 issues a fatal error. 16840 16841 src/xz/file_io.c | 2 ++ 16842 1 file changed, 2 insertions(+) 16843 16844commit 61ee82cb1232a402c82282bbae42821f2b952b0d 16845Author: Jia Tan <jiat0218@gmail.com> 16846Date: 2023-03-06 21:27:53 +0800 16847 16848 xz: Skip Capsicum sandbox system calls when they are unsupported. 16849 16850 If a system has the Capsicum header files but does not actually 16851 implement the system calls, then this would render xz unusable. Instead, 16852 we can check if errno == ENOSYS and not issue a fatal error. 16853 16854 src/xz/file_io.c | 22 +++++++++++++++++----- 16855 1 file changed, 17 insertions(+), 5 deletions(-) 16856 16857commit f070722b57ba975a0dff36492d766f03026b1d21 16858Author: Jia Tan <jiat0218@gmail.com> 16859Date: 2023-03-06 21:08:26 +0800 16860 16861 xz: Reorder cap_enter() to beginning of capsicum sandbox code. 16862 16863 cap_enter() puts the process into the sandbox. If later calls to 16864 cap_rights_limit() fail, then the process can still have some extra 16865 protections. 16866 16867 src/xz/file_io.c | 6 +++--- 16868 1 file changed, 3 insertions(+), 3 deletions(-) 16869 16870commit f1ab1f6b339d16a53ac53efeb97779ecd2bae70f 16871Author: Jia Tan <jiat0218@gmail.com> 16872Date: 2023-02-24 23:46:23 +0800 16873 16874 liblzma: Clarify lzma_lzma_preset() documentation in lzma12.h. 16875 16876 lzma_lzma_preset() does not guarentee that the lzma_options_lzma are 16877 usable in an encoder even if it returns false (success). If liblzma 16878 is built with default configurations, then the options will always be 16879 usable. However if the match finders hc3, hc4, or bt4 are disabled, then 16880 the options may not be usable depending on the preset level requested. 16881 16882 The documentation was updated to reflect this complexity, since this 16883 behavior was unclear before. 16884 16885 src/liblzma/api/lzma/lzma12.h | 5 +++++ 16886 1 file changed, 5 insertions(+) 16887 16888commit 4b7fb3bf41a0ca4c97fad3799949a2aa61b13b99 16889Author: Lasse Collin <lasse.collin@tukaani.org> 16890Date: 2023-02-27 18:38:35 +0200 16891 16892 CMake: Require that the C compiler supports C99 or a newer standard. 16893 16894 Thanks to autoantwort for reporting the issue and suggesting 16895 a different patch: 16896 https://github.com/tukaani-project/xz/pull/42 16897 16898 CMakeLists.txt | 8 ++++++++ 16899 1 file changed, 8 insertions(+) 16900 16901commit 9aa7fdeb04c486d2700967090956af88fdccab7e 16902Author: Jia Tan <jiat0218@gmail.com> 16903Date: 2023-02-24 18:10:37 +0800 16904 16905 Tests: Small tweak to test-vli.c. 16906 16907 The static global variables can be disabled if encoders and decoders 16908 are not built. If they are not disabled and -Werror is used, it will 16909 cause an usused warning as an error. 16910 16911 tests/test_vli.c | 2 ++ 16912 1 file changed, 2 insertions(+) 16913 16914commit 3cf72c4bcba5370f07477c9b9b62ae33069ef9a9 16915Author: Jia Tan <jiat0218@gmail.com> 16916Date: 2023-02-06 21:46:43 +0800 16917 16918 liblzma: Replace '\n' -> newline in filter.h documentation. 16919 16920 The '\n' renders as a newline when the comments are converted to html 16921 by Doxygen. 16922 16923 src/liblzma/api/lzma/filter.h | 2 +- 16924 1 file changed, 1 insertion(+), 1 deletion(-) 16925 16926commit 002006be62d77c706565fa6ec828bea64be302da 16927Author: Jia Tan <jiat0218@gmail.com> 16928Date: 2023-02-06 21:45:37 +0800 16929 16930 liblzma: Shorten return description for two functions in filter.h. 16931 16932 Shorten the description for lzma_raw_encoder_memusage() and 16933 lzma_raw_decoder_memusage(). 16934 16935 src/liblzma/api/lzma/filter.h | 8 ++------ 16936 1 file changed, 2 insertions(+), 6 deletions(-) 16937 16938commit 463d9359b8595f01d44ada1739d75aeb87f36524 16939Author: Jia Tan <jiat0218@gmail.com> 16940Date: 2023-02-06 21:44:45 +0800 16941 16942 liblzma: Reword a few lines in filter.h 16943 16944 src/liblzma/api/lzma/filter.h | 10 +++++----- 16945 1 file changed, 5 insertions(+), 5 deletions(-) 16946 16947commit 01441df92c0fd6a6c02fe5ac27982a54ce887cc0 16948Author: Jia Tan <jiat0218@gmail.com> 16949Date: 2023-02-06 21:35:06 +0800 16950 16951 liblzma: Improve documentation in filter.h. 16952 16953 All functions now explicitly specify parameter and return values. 16954 The notes and code annotations were moved before the parameter and 16955 return value descriptions for consistency. 16956 16957 Also, the description above lzma_filter_encoder_is_supported() about 16958 not being able to list available filters was removed since 16959 lzma_str_list_filters() will do this. 16960 16961 src/liblzma/api/lzma/filter.h | 226 ++++++++++++++++++++++++++---------------- 16962 1 file changed, 143 insertions(+), 83 deletions(-) 16963 16964commit 805b45cd60bfd5da3d3d89077de3789df179b324 16965Author: Lasse Collin <lasse.collin@tukaani.org> 16966Date: 2023-02-23 20:46:16 +0200 16967 16968 Update THANKS. 16969 16970 THANKS | 1 + 16971 1 file changed, 1 insertion(+) 16972 16973commit 30e95bb44c36ae26b2ab12a94343b215fec285e7 16974Author: Lasse Collin <lasse.collin@tukaani.org> 16975Date: 2023-02-21 22:57:10 +0200 16976 16977 liblzma: Avoid null pointer + 0 (undefined behavior in C). 16978 16979 In the C99 and C17 standards, section 6.5.6 paragraph 8 means that 16980 adding 0 to a null pointer is undefined behavior. As of writing, 16981 "clang -fsanitize=undefined" (Clang 15) diagnoses this. However, 16982 I'm not aware of any compiler that would take advantage of this 16983 when optimizing (Clang 15 included). It's good to avoid this anyway 16984 since compilers might some day infer that pointer arithmetic implies 16985 that the pointer is not NULL. That is, the following foo() would then 16986 unconditionally return 0, even for foo(NULL, 0): 16987 16988 void bar(char *a, char *b); 16989 16990 int foo(char *a, size_t n) 16991 { 16992 bar(a, a + n); 16993 return a == NULL; 16994 } 16995 16996 In contrast to C, C++ explicitly allows null pointer + 0. So if 16997 the above is compiled as C++ then there is no undefined behavior 16998 in the foo(NULL, 0) call. 16999 17000 To me it seems that changing the C standard would be the sane 17001 thing to do (just add one sentence) as it would ensure that a huge 17002 amount of old code won't break in the future. Based on web searches 17003 it seems that a large number of codebases (where null pointer + 0 17004 occurs) are being fixed instead to be future-proof in case compilers 17005 will some day optimize based on it (like making the above foo(NULL, 0) 17006 return 0) which in the worst case will cause security bugs. 17007 17008 Some projects don't plan to change it. For example, gnulib and thus 17009 many GNU tools currently require that null pointer + 0 is defined: 17010 17011 https://lists.gnu.org/archive/html/bug-gnulib/2021-11/msg00000.html 17012 17013 https://www.gnu.org/software/gnulib/manual/html_node/Other-portability-assumptions.html 17014 17015 In XZ Utils null pointer + 0 issue should be fixed after this 17016 commit. This adds a few if-statements and thus branches to avoid 17017 null pointer + 0. These check for size > 0 instead of ptr != NULL 17018 because this way bugs where size > 0 && ptr == NULL will likely 17019 get caught quickly. None of them are in hot spots so it shouldn't 17020 matter for performance. 17021 17022 A little less readable version would be replacing 17023 17024 ptr + offset 17025 17026 with 17027 17028 offset != 0 ? ptr + offset : ptr 17029 17030 or creating a macro for it: 17031 17032 #define my_ptr_add(ptr, offset) \ 17033 ((offset) != 0 ? ((ptr) + (offset)) : (ptr)) 17034 17035 Checking for offset != 0 instead of ptr != NULL allows GCC >= 8.1, 17036 Clang >= 7, and Clang-based ICX to optimize it to the very same code 17037 as ptr + offset. That is, it won't create a branch. So for hot code 17038 this could be a good solution to avoid null pointer + 0. Unfortunately 17039 other compilers like ICC 2021 or MSVC 19.33 (VS2022) will create a 17040 branch from my_ptr_add(). 17041 17042 Thanks to Marcin Kowalczyk for reporting the problem: 17043 https://github.com/tukaani-project/xz/issues/36 17044 17045 src/liblzma/common/block_decoder.c | 5 ++++- 17046 src/liblzma/common/block_encoder.c | 7 +++++-- 17047 src/liblzma/common/common.c | 20 ++++++++++++++------ 17048 src/liblzma/common/index_decoder.c | 13 ++++++++++--- 17049 src/liblzma/common/index_encoder.c | 11 +++++++++-- 17050 src/liblzma/common/index_hash.c | 13 ++++++++++--- 17051 src/liblzma/common/lzip_decoder.c | 6 +++++- 17052 src/liblzma/delta/delta_decoder.c | 7 ++++++- 17053 src/liblzma/delta/delta_encoder.c | 12 ++++++++++-- 17054 src/liblzma/simple/simple_coder.c | 6 ++++-- 17055 10 files changed, 77 insertions(+), 23 deletions(-) 17056 17057commit fa9065fac54194fe0407fc7f0cc9633fdce13c21 17058Author: Jia Tan <jiat0218@gmail.com> 17059Date: 2023-02-07 00:00:44 +0800 17060 17061 liblzma: Adjust container.h for consistency with filter.h. 17062 17063 src/liblzma/api/lzma/container.h | 20 +++++++++----------- 17064 1 file changed, 9 insertions(+), 11 deletions(-) 17065 17066commit 00a721b63d82dfb658dca8d8cb599d8a245c663f 17067Author: Jia Tan <jiat0218@gmail.com> 17068Date: 2023-02-07 00:00:09 +0800 17069 17070 liblzma: Fix small typos and reword a few things in filter.h. 17071 17072 src/liblzma/api/lzma/container.h | 13 ++++++------- 17073 1 file changed, 6 insertions(+), 7 deletions(-) 17074 17075commit 5b1c171d4ffe89ef18fa31509bb0185d6fd11d39 17076Author: Jia Tan <jiat0218@gmail.com> 17077Date: 2023-02-06 23:42:08 +0800 17078 17079 liblzma: Convert list of flags in lzma_mt to bulleted list. 17080 17081 src/liblzma/api/lzma/container.h | 9 ++++++--- 17082 1 file changed, 6 insertions(+), 3 deletions(-) 17083 17084commit dbd47622eb99fefb3538a22baec3def002aa56f5 17085Author: Jia Tan <jiat0218@gmail.com> 17086Date: 2023-01-26 23:17:41 +0800 17087 17088 liblzma: Fix typo in documentation in container.h 17089 17090 lzma_microlzma_decoder -> lzma_microlzma_encoder 17091 17092 src/liblzma/api/lzma/container.h | 2 +- 17093 1 file changed, 1 insertion(+), 1 deletion(-) 17094 17095commit 14cd30806d69e55906073745bcce3ee50e0ec942 17096Author: Jia Tan <jiat0218@gmail.com> 17097Date: 2023-01-26 23:16:34 +0800 17098 17099 liblzma: Improve documentation for container.h 17100 17101 Standardizing each function to always specify parameters and return 17102 values. Also moved the parameters and return values to the end of each 17103 function description. 17104 17105 src/liblzma/api/lzma/container.h | 146 +++++++++++++++++++++++++-------------- 17106 1 file changed, 93 insertions(+), 53 deletions(-) 17107 17108commit c9c8bfae3502842dcead85eeb2b951b437c2cd88 17109Author: Jia Tan <jiat0218@gmail.com> 17110Date: 2023-02-22 20:59:41 +0800 17111 17112 CMake: Add LZIP decoder test to list of tests. 17113 17114 CMakeLists.txt | 1 + 17115 1 file changed, 1 insertion(+) 17116 17117commit b9f171dd00a3cc32b6d41ea8e082cf545640ec2a 17118Author: Lasse Collin <lasse.collin@tukaani.org> 17119Date: 2023-02-17 20:56:49 +0200 17120 17121 Update THANKS. 17122 17123 THANKS | 1 + 17124 1 file changed, 1 insertion(+) 17125 17126commit 2ee86d20e49985b903b78ebcfa3fa672e73e93aa 17127Author: Lasse Collin <lasse.collin@tukaani.org> 17128Date: 2023-02-17 20:48:28 +0200 17129 17130 Build: Use only the generic symbol versioning on MicroBlaze. 17131 17132 On MicroBlaze, GCC 12 is broken in sense that 17133 __has_attribute(__symver__) returns true but it still doesn't 17134 support the __symver__ attribute even though the platform is ELF 17135 and symbol versioning is supported if using the traditional 17136 __asm__(".symver ...") method. Avoiding the traditional method is 17137 good because it breaks LTO (-flto) builds with GCC. 17138 17139 See also: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101766 17140 17141 For now the only extra symbols in liblzma_linux.map are the 17142 compatibility symbols with the patch that spread from RHEL/CentOS 7. 17143 These require the use of __symver__ attribute or __asm__(".symver ...") 17144 in the C code. Compatibility with the patch from CentOS 7 doesn't 17145 seem valuable on MicroBlaze so use liblzma_generic.map on MicroBlaze 17146 instead. It doesn't require anything special in the C code and thus 17147 no LTO issues either. 17148 17149 An alternative would be to detect support for __symver__ 17150 attribute in configure.ac and CMakeLists.txt and fall back 17151 to __asm__(".symver ...") but then LTO would be silently broken 17152 on MicroBlaze. It sounds likely that MicroBlaze is a special 17153 case so let's treat it as a such because that is simpler. If 17154 a similar issue exists on some other platform too then hopefully 17155 someone will report it and this can be reconsidered. 17156 17157 (This doesn't do the same fix in CMakeLists.txt. Perhaps it should 17158 but perhaps CMake build of liblzma doesn't matter much on MicroBlaze. 17159 The problem breaks the build so it's easy to notice and can be fixed 17160 later.) 17161 17162 Thanks to Vincent Fazio for reporting the problem and proposing 17163 a patch (in the end that solution wasn't used): 17164 https://github.com/tukaani-project/xz/pull/32 17165 17166 configure.ac | 12 ++++++++++-- 17167 1 file changed, 10 insertions(+), 2 deletions(-) 17168 17169commit d831072cceca458d94d2d5da201862f6d43a417b 17170Author: Lasse Collin <lasse.collin@tukaani.org> 17171Date: 2023-02-16 21:09:00 +0200 17172 17173 liblzma: Very minor API doc tweaks. 17174 17175 Use "member" to refer to struct members as that's the term used 17176 by the C standard. 17177 17178 Use lzma_options_delta.dist and such in docs so that in Doxygen's 17179 HTML output they will link to the doc of the struct member. 17180 17181 Clean up a few trailing white spaces too. 17182 17183 src/liblzma/api/lzma/block.h | 6 +++--- 17184 src/liblzma/api/lzma/delta.h | 6 +++--- 17185 src/liblzma/api/lzma/index.h | 10 +++++----- 17186 src/liblzma/api/lzma/stream_flags.h | 6 +++--- 17187 4 files changed, 14 insertions(+), 14 deletions(-) 17188 17189commit f029daea39c215fd7d5cb6b6798818b055cf5b22 17190Author: Jia Tan <jiat0218@gmail.com> 17191Date: 2023-02-17 00:54:33 +0800 17192 17193 liblzma: Adjust spacing in doc headers in bcj.h. 17194 17195 src/liblzma/api/lzma/bcj.h | 14 +++++++------- 17196 1 file changed, 7 insertions(+), 7 deletions(-) 17197 17198commit a5de68bac2bb7e1b9119e6cea7d761a22ea73e9c 17199Author: Jia Tan <jiat0218@gmail.com> 17200Date: 2023-02-17 00:44:44 +0800 17201 17202 liblzma: Adjust documentation in bcj.h for consistent style. 17203 17204 src/liblzma/api/lzma/bcj.h | 43 ++++++++++++++++++++++--------------------- 17205 1 file changed, 22 insertions(+), 21 deletions(-) 17206 17207commit efa498c13b883810497e0ea8a169efd6f48f5026 17208Author: Jia Tan <jiat0218@gmail.com> 17209Date: 2023-02-17 00:36:05 +0800 17210 17211 liblzma: Rename field => member in documentation. 17212 17213 Also adjusted preset value => preset level. 17214 17215 src/liblzma/api/lzma/base.h | 18 +++++++-------- 17216 src/liblzma/api/lzma/block.h | 44 ++++++++++++++++++------------------- 17217 src/liblzma/api/lzma/container.h | 26 +++++++++++----------- 17218 src/liblzma/api/lzma/delta.h | 12 +++++----- 17219 src/liblzma/api/lzma/index.h | 30 ++++++++++++------------- 17220 src/liblzma/api/lzma/lzma12.h | 28 +++++++++++------------ 17221 src/liblzma/api/lzma/stream_flags.h | 32 +++++++++++++-------------- 17222 7 files changed, 95 insertions(+), 95 deletions(-) 17223 17224commit 718b22a6c5e3ee5de123323ea798872381f9320e 17225Author: Lasse Collin <lasse.collin@tukaani.org> 17226Date: 2023-02-16 17:59:50 +0200 17227 17228 liblzma: Silence a warning from MSVC. 17229 17230 It gives C4146 here since unary minus with unsigned integer 17231 is still unsigned (which is the intention here). Doing it 17232 with substraction makes it clearer and avoids the warning. 17233 17234 Thanks to Nathan Moinvaziri for reporting this. 17235 17236 src/liblzma/check/crc64_fast.c | 2 +- 17237 1 file changed, 1 insertion(+), 1 deletion(-) 17238 17239commit 87c53553fa7d50f777b4edfa99f2083628f590fe 17240Author: Jia Tan <jiat0218@gmail.com> 17241Date: 2023-02-16 21:04:54 +0800 17242 17243 liblzma: Improve documentation for stream_flags.h 17244 17245 Standardizing each function to always specify parameters and return 17246 values. Also moved the parameters and return values to the end of each 17247 function description. 17248 17249 A few small things were reworded and long sentences broken up. 17250 17251 src/liblzma/api/lzma/stream_flags.h | 76 ++++++++++++++++++++++--------------- 17252 1 file changed, 46 insertions(+), 30 deletions(-) 17253 17254commit 13d99e75a543e9e5f8633cc241eae55b91a3b242 17255Author: Jia Tan <jiat0218@gmail.com> 17256Date: 2023-02-14 21:50:16 +0800 17257 17258 liblzma: Improve documentation in lzma12.h. 17259 17260 All functions now explicitly specify parameter and return values. 17261 17262 src/liblzma/api/lzma/lzma12.h | 32 +++++++++++++++++++++++--------- 17263 1 file changed, 23 insertions(+), 9 deletions(-) 17264 17265commit 43ec344c868f930e96879eb9e49212cce92a9884 17266Author: Jia Tan <jiat0218@gmail.com> 17267Date: 2023-01-27 22:44:06 +0800 17268 17269 liblzma: Improve documentation in check.h. 17270 17271 All functions now explicitly specify parameter and return values. 17272 Also moved the note about SHA-256 functions not being exported to the 17273 top of the file. 17274 17275 src/liblzma/api/lzma/check.h | 41 ++++++++++++++++++++++++++++------------- 17276 1 file changed, 28 insertions(+), 13 deletions(-) 17277 17278commit 9c71db4e884fd49aea3d1e711036bff45ca66487 17279Author: Jia Tan <jiat0218@gmail.com> 17280Date: 2023-02-08 21:33:52 +0800 17281 17282 liblzma: Improve documentation in index.h 17283 17284 All functions now explicitly specify parameter and return values. 17285 17286 src/liblzma/api/lzma/index.h | 177 ++++++++++++++++++++++++++++++------------- 17287 1 file changed, 126 insertions(+), 51 deletions(-) 17288 17289commit 421f2f2e160720f6009e3b6a125cafe2feaa9419 17290Author: Jia Tan <jiat0218@gmail.com> 17291Date: 2023-02-08 20:35:32 +0800 17292 17293 liblzma: Reword a comment in index.h. 17294 17295 src/liblzma/api/lzma/index.h | 4 ++-- 17296 1 file changed, 2 insertions(+), 2 deletions(-) 17297 17298commit b67539484981351d501b68de5e925425e50c59b1 17299Author: Jia Tan <jiat0218@gmail.com> 17300Date: 2023-02-08 20:30:23 +0800 17301 17302 liblzma: Omit lzma_index_iter's internal field from Doxygen docs. 17303 17304 Add \private above this field and its sub-fields since it is not meant 17305 to be modified by users. 17306 17307 src/liblzma/api/lzma/index.h | 9 ++++++++- 17308 1 file changed, 8 insertions(+), 1 deletion(-) 17309 17310commit 0c9e4fc2ad6d88d54f299240fcc5a2ce7d695d96 17311Author: Jia Tan <jiat0218@gmail.com> 17312Date: 2023-01-21 21:32:03 +0800 17313 17314 liblzma: Fix documentation for LZMA_MEMLIMIT_ERROR. 17315 17316 LZMA_MEMLIMIT_ERROR was missing the "<" character needed to put 17317 documentation after a member. 17318 17319 src/liblzma/api/lzma/base.h | 2 +- 17320 1 file changed, 1 insertion(+), 1 deletion(-) 17321 17322commit 816fec125aa74bcef46512c73acc6d9e5a700d15 17323Author: Jia Tan <jiat0218@gmail.com> 17324Date: 2023-01-21 00:29:38 +0800 17325 17326 liblzma: Improve documentation for base.h. 17327 17328 Standardizing each function to always specify params and return values. 17329 Also fixed a small grammar mistake. 17330 17331 src/liblzma/api/lzma/base.h | 30 +++++++++++++++++++++++++----- 17332 1 file changed, 25 insertions(+), 5 deletions(-) 17333 17334commit 862dacef1a4e7e1b28d465956fa4244ed01df154 17335Author: Jia Tan <jiat0218@gmail.com> 17336Date: 2023-02-14 00:12:34 +0800 17337 17338 liblzma: Add one more missing [out] annotation in vli.h 17339 17340 src/liblzma/api/lzma/vli.h | 2 +- 17341 1 file changed, 1 insertion(+), 1 deletion(-) 17342 17343commit 867b08ae4254bf55dd1f7fd502cc618231b92f75 17344Author: Jia Tan <jiat0218@gmail.com> 17345Date: 2023-02-14 00:08:33 +0800 17346 17347 liblzma: Minor improvements to vli.h. 17348 17349 Added [out] annotations to parameters that are pointers and can have 17350 their value changed. Also added a clarification to lzma_vli_is_valid. 17351 17352 src/liblzma/api/lzma/vli.h | 13 +++++++------ 17353 1 file changed, 7 insertions(+), 6 deletions(-) 17354 17355commit 90d0e628ff11e5030bcc4fc000bca056adda6603 17356Author: Jia Tan <jiat0218@gmail.com> 17357Date: 2023-02-10 21:38:02 +0800 17358 17359 liblzma: Add comments for macros in delta.h. 17360 17361 Document LZMA_DELTA_DIST_MIN and LZMA_DELTA_DIST_MAX for completeness 17362 and to avoid Doxygen warnings. 17363 17364 src/liblzma/api/lzma/delta.h | 8 ++++++++ 17365 1 file changed, 8 insertions(+) 17366 17367commit 9255fffdb13e59874bf7f95c370c410ad3a7e114 17368Author: Jia Tan <jiat0218@gmail.com> 17369Date: 2023-02-10 21:35:23 +0800 17370 17371 liblzma: Improve documentation in index_hash.h. 17372 17373 All functions now explicitly specify parameter and return values. 17374 Also reworded the description of lzma_index_hash_init() for readability. 17375 17376 src/liblzma/api/lzma/index_hash.h | 36 +++++++++++++++++++++++++++--------- 17377 1 file changed, 27 insertions(+), 9 deletions(-) 17378 17379commit 1dbe12b90cff79bb51923733ac0840747b4b4131 17380Author: Lasse Collin <lasse.collin@tukaani.org> 17381Date: 2023-02-07 19:07:45 +0200 17382 17383 xz: Improve the comment about start_time in mytime.c. 17384 17385 start_time is relative to an arbitary point in time, it's not 17386 time of day, so using it for anything else than time differences 17387 wouldn't make sense. 17388 17389 src/xz/mytime.c | 15 ++++++++++----- 17390 1 file changed, 10 insertions(+), 5 deletions(-) 17391 17392commit 7673ef5aa80c1af7fb693360dd82f527b46c2c56 17393Author: Jia Tan <jiat0218@gmail.com> 17394Date: 2023-02-04 21:06:35 +0800 17395 17396 Build: Adjust CMake version search regex. 17397 17398 Now, the LZMA_VERSION_MAJOR, LZMA_VERSION_MINOR, and LZMA_VERSION_PATCH 17399 macros do not need to be on consecutive lines in version.h. They can be 17400 separated by more whitespace, comments, or even other content, as long 17401 as they appear in the proper order (major, minor, patch). 17402 17403 CMakeLists.txt | 2 ++ 17404 1 file changed, 2 insertions(+) 17405 17406commit b8bce89be7fb5bffe5fef4a2782ca9b2b107eaac 17407Author: Jia Tan <jiat0218@gmail.com> 17408Date: 2023-02-04 12:01:23 +0800 17409 17410 xz: Add a comment clarifying the use of start_time in mytime.c. 17411 17412 src/xz/mytime.c | 5 +++++ 17413 1 file changed, 5 insertions(+) 17414 17415commit 912af91b10a18fb9bb3167247ecaaefca8248ee9 17416Author: Jia Tan <jiat0218@gmail.com> 17417Date: 2023-01-26 09:50:21 +0800 17418 17419 liblzma: Improve documentation for version.h. 17420 17421 Specified parameter and return values for API functions and documented 17422 a few more of the macros. 17423 17424 src/liblzma/api/lzma/version.h | 29 ++++++++++++++++++++++------- 17425 1 file changed, 22 insertions(+), 7 deletions(-) 17426 17427commit 850adec171203cd22b57d016084d713f72ae5307 17428Author: Jia Tan <jiat0218@gmail.com> 17429Date: 2023-02-03 22:52:55 +0800 17430 17431 Docs: Omit SIGTSTP not handled from TODO. 17432 17433 TODO | 4 ---- 17434 1 file changed, 4 deletions(-) 17435 17436commit 2c78a83c6faec70154d9eb78022a618ed62cdcb3 17437Author: Jia Tan <jiat0218@gmail.com> 17438Date: 2023-02-03 00:33:32 +0800 17439 17440 liblzma: Fix bug in lzma_str_from_filters() not checking filters[] length. 17441 17442 The bug is only a problem in applications that do not properly terminate 17443 the filters[] array with LZMA_VLI_UNKNOWN or have more than 17444 LZMA_FILTERS_MAX filters. This bug does not affect xz. 17445 17446 src/liblzma/common/string_conversion.c | 7 +++++++ 17447 1 file changed, 7 insertions(+) 17448 17449commit e01f01b9af1c074463b92694a16ecc16a31907c0 17450Author: Jia Tan <jiat0218@gmail.com> 17451Date: 2023-02-03 00:32:47 +0800 17452 17453 Tests: Create test_filter_str.c. 17454 17455 Tests lzma_str_to_filters(), lzma_str_from_filters(), and 17456 lzma_str_list_filters() API functions. 17457 17458 CMakeLists.txt | 1 + 17459 tests/Makefile.am | 2 + 17460 tests/test_filter_str.c | 593 ++++++++++++++++++++++++++++++++++++++++++++++++ 17461 3 files changed, 596 insertions(+) 17462 17463commit 8dfc029e7a4ce45809c30313dc0e502f0d22be26 17464Author: Jia Tan <jiat0218@gmail.com> 17465Date: 2023-01-22 08:49:00 +0800 17466 17467 liblzma: Fix typos in comments in string_conversion.c. 17468 17469 src/liblzma/common/string_conversion.c | 4 ++-- 17470 1 file changed, 2 insertions(+), 2 deletions(-) 17471 17472commit 54ad83c1ae2180dcc0cb2445b181dc1e9732a5d6 17473Author: Jia Tan <jiat0218@gmail.com> 17474Date: 2023-02-03 00:20:20 +0800 17475 17476 liblzma: Clarify block encoder and decoder documentation. 17477 17478 Added a few sentences to the description for lzma_block_encoder() and 17479 lzma_block_decoder() to highlight that the Block Header must be coded 17480 before calling these functions. 17481 17482 src/liblzma/api/lzma/block.h | 15 +++++++++++---- 17483 1 file changed, 11 insertions(+), 4 deletions(-) 17484 17485commit f680e771b3eb2a46310fe85b3e000ac3a1a0640f 17486Author: Jia Tan <jiat0218@gmail.com> 17487Date: 2023-02-03 00:12:24 +0800 17488 17489 Update lzma_block documentation for lzma_block_uncomp_encode(). 17490 17491 src/liblzma/api/lzma/block.h | 3 +++ 17492 1 file changed, 3 insertions(+) 17493 17494commit 504cf4af895fd45aad0c56eb3b49d90acd54465b 17495Author: Jia Tan <jiat0218@gmail.com> 17496Date: 2023-02-03 00:11:37 +0800 17497 17498 liblzma: Minor edits to lzma_block header_size documentation. 17499 17500 src/liblzma/api/lzma/block.h | 3 ++- 17501 1 file changed, 2 insertions(+), 1 deletion(-) 17502 17503commit 115b720fb521f99aa832d06b2c12b7f8c6c50680 17504Author: Jia Tan <jiat0218@gmail.com> 17505Date: 2023-02-03 00:11:07 +0800 17506 17507 liblzma: Enumerate functions that read version in lzma_block. 17508 17509 src/liblzma/api/lzma/block.h | 13 +++++++++++-- 17510 1 file changed, 11 insertions(+), 2 deletions(-) 17511 17512commit 85ea0979adcf808a3830aefbe7a4ec884e542ea1 17513Author: Jia Tan <jiat0218@gmail.com> 17514Date: 2023-02-03 00:10:34 +0800 17515 17516 liblzma: Clarify comment in block.h. 17517 17518 src/liblzma/api/lzma/block.h | 3 ++- 17519 1 file changed, 2 insertions(+), 1 deletion(-) 17520 17521commit 1f7ab90d9ce224230a04de6b921ad6e2029023a8 17522Author: Jia Tan <jiat0218@gmail.com> 17523Date: 2023-02-03 00:07:23 +0800 17524 17525 liblzma: Improve documentation for block.h. 17526 17527 Standardizing each function to always specify params and return values. 17528 Output pointer parameters are also marked with doxygen style [out] to 17529 make it clear. Any note sections were also moved above the parameter and 17530 return sections for consistency. 17531 17532 src/liblzma/api/lzma/block.h | 96 ++++++++++++++++++++++++++++++++++---------- 17533 1 file changed, 75 insertions(+), 21 deletions(-) 17534 17535commit c563a4bc554a96bd0b6aab3c139715b7ec8f6ca3 17536Author: Jia Tan <jiat0218@gmail.com> 17537Date: 2023-02-01 23:38:30 +0800 17538 17539 liblzma: Clarify a comment about LZMA_STR_NO_VALIDATION. 17540 17541 The flag description for LZMA_STR_NO_VALIDATION was previously confusing 17542 about the treatment for filters than cannot be used with .xz format 17543 (lzma1) without using LZMA_STR_ALL_FILTERS. Now, it is clear that 17544 LZMA_STR_NO_VALIDATION is not a super set of LZMA_STR_ALL_FILTERS. 17545 17546 src/liblzma/api/lzma/filter.h | 5 +++-- 17547 1 file changed, 3 insertions(+), 2 deletions(-) 17548 17549commit 315c64c7e18acc59a745b68148188a73e998252b 17550Author: Jia Tan <jiat0218@gmail.com> 17551Date: 2023-02-01 21:43:33 +0800 17552 17553 CI: Update .gitignore for artifacts directory in build-aux. 17554 17555 The workflow action for our CI pipeline can only reference artifacts in 17556 the source directory, so we should ignore these files if the ci_build.sh 17557 is run locally. 17558 17559 .gitignore | 1 + 17560 1 file changed, 1 insertion(+) 17561 17562commit 2c1341f4fa06e7f487d61142aa354c433e17ec7f 17563Author: Jia Tan <jiat0218@gmail.com> 17564Date: 2023-02-01 21:36:46 +0800 17565 17566 CI: Add quotes around variables in a few places. 17567 17568 build-aux/ci_build.sh | 6 +++--- 17569 1 file changed, 3 insertions(+), 3 deletions(-) 17570 17571commit 3a401b0e0c7a2658af7801dd0690256ef24149e0 17572Author: Jia Tan <jiat0218@gmail.com> 17573Date: 2023-02-01 21:36:22 +0800 17574 17575 CI: Upload test logs as artifacts if a test fails. 17576 17577 .github/workflows/ci.yml | 60 ++++++++++++++++++++++++++++++++++-------------- 17578 build-aux/ci_build.sh | 31 ++++++++++++++++++++----- 17579 2 files changed, 68 insertions(+), 23 deletions(-) 17580 17581commit 610dde15a88f12cc540424eb3eb3ed61f3876f74 17582Author: Lasse Collin <lasse.collin@tukaani.org> 17583Date: 2023-01-27 20:02:49 +0200 17584 17585 xz: Use clock_gettime() even if CLOCK_MONOTONIC isn't available. 17586 17587 mythread.h and thus liblzma already does it. 17588 17589 src/xz/mytime.c | 11 ++++++++--- 17590 src/xz/private.h | 3 +-- 17591 2 files changed, 9 insertions(+), 5 deletions(-) 17592 17593commit 2e02877288f6576cd4595e9ac7684f867cd47d68 17594Author: Lasse Collin <lasse.collin@tukaani.org> 17595Date: 2023-01-27 19:41:19 +0200 17596 17597 po4a/po4a.conf: Sort the language identifiers in alphabetical order. 17598 17599 po4a/po4a.conf | 2 +- 17600 1 file changed, 1 insertion(+), 1 deletion(-) 17601 17602commit ff592c616eda274215b485cf1b8d34f060c9f3be 17603Author: Lasse Collin <lasse.collin@tukaani.org> 17604Date: 2023-01-26 18:29:17 +0200 17605 17606 xz: Add SIGTSTP handler for progress indicator time keeping. 17607 17608 This way, if xz is stopped the elapsed time and estimated time 17609 remaining won't get confused by the amount of time spent in 17610 the stopped state. 17611 17612 This raises SIGSTOP. It's not clear to me if this is the correct way. 17613 POSIX and glibc docs say that SIGTSTP shouldn't stop the process if 17614 it is orphaned but this commit doesn't attempt to handle that. 17615 17616 Search for SIGTSTP in section 2.4.3: 17617 17618 https://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html 17619 17620 src/xz/mytime.c | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- 17621 src/xz/mytime.h | 6 ++++++ 17622 src/xz/private.h | 12 ++++++++++++ 17623 src/xz/signals.c | 17 ++++++++++++++++- 17624 4 files changed, 89 insertions(+), 2 deletions(-) 17625 17626commit 3b1c8ac8d1d553cbb1fb22b545d2b1424c752b76 17627Author: Jia Tan <jiat0218@gmail.com> 17628Date: 2023-01-27 20:14:51 +0800 17629 17630 Translations: Add Brazilian Portuguese translation of man pages. 17631 17632 Thanks to Rafael Fontenelle. 17633 17634 po4a/po4a.conf | 2 +- 17635 po4a/pt_BR.po | 3677 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 17636 2 files changed, 3678 insertions(+), 1 deletion(-) 17637 17638commit a15a7552f9f67c4e402f5d2967324e0ccfd6fccc 17639Author: Lasse Collin <lasse.collin@tukaani.org> 17640Date: 2023-01-26 17:51:06 +0200 17641 17642 Build: Avoid different quoting style in --enable-doxygen doc. 17643 17644 configure.ac | 10 +++++----- 17645 1 file changed, 5 insertions(+), 5 deletions(-) 17646 17647commit af5a4bd5afc089d9697756dded38feafaa987ae4 17648Author: Lasse Collin <lasse.collin@tukaani.org> 17649Date: 2023-01-26 17:39:46 +0200 17650 17651 tuklib_physmem: Check for __has_warning before GCC version. 17652 17653 Clang can be configured to fake a too high GCC version so 17654 this way it's more robust. 17655 17656 src/common/tuklib_physmem.c | 6 +++--- 17657 1 file changed, 3 insertions(+), 3 deletions(-) 17658 17659commit f35d98e20609e0be6a04ae2604bfb7cb9d5bd5e4 17660Author: Jia Tan <jiat0218@gmail.com> 17661Date: 2023-01-24 20:48:50 +0800 17662 17663 liblzma: Fix documentation in filter.h for lzma_str_to_filters() 17664 17665 The previous documentation for lzma_str_to_filters() was technically 17666 correct, but misleading. lzma_str_to_filters() returns NULL on success, 17667 which is in practice always defined to 0. This is the same value as 17668 LZMA_OK, but lzma_str_to_filters() does not return lzma_ret so we should 17669 be more clear. 17670 17671 src/liblzma/api/lzma/filter.h | 2 +- 17672 1 file changed, 1 insertion(+), 1 deletion(-) 17673 17674commit 2f78ecc5939b3d97ddfc2a6bd31b50108a28d0a2 17675Author: Lasse Collin <lasse.collin@tukaani.org> 17676Date: 2023-01-23 23:44:58 +0200 17677 17678 Revert "tuklib_common: Define __has_warning if it is not defined." 17679 17680 This reverts commit 82e3c968bfa10e3ff13333bd9cbbadb5988d6766. 17681 17682 Macros in the reserved namespace (_foo or __foo) shouldn't be #defined 17683 without a very good reason. Here the alternative would have been 17684 to #define tuklib_has_warning(str) to an approriate value. 17685 17686 Also the tuklib_* files should stay namespace clean if possible. 17687 17688 src/common/tuklib_common.h | 7 ------- 17689 1 file changed, 7 deletions(-) 17690 17691commit 8366cf8738e8b7bb74c967d07bf0fd2a1878e575 17692Author: Lasse Collin <lasse.collin@tukaani.org> 17693Date: 2023-01-23 23:38:34 +0200 17694 17695 tuklib_physmem: Clean up the way -Wcast-function-type is silenced on Windows. 17696 17697 __has_warning and other __has_foo macros are meant to become 17698 compiler-agnostic so it's not good to check for __clang__ with it. 17699 17700 This also relied on tuklib_common.h for #defining __has_warning 17701 which was confusing as #defining reserved macros is generally 17702 not a good idea. 17703 17704 src/common/tuklib_physmem.c | 17 +++++++++++++---- 17705 1 file changed, 13 insertions(+), 4 deletions(-) 17706 17707commit 683a3c7e2fcd922200c31078e5c9dd1348e90941 17708Author: Lasse Collin <lasse.collin@tukaani.org> 17709Date: 2023-01-24 00:05:38 +0200 17710 17711 xz: Flip the return value of suffix_is_set to match the documentation. 17712 17713 Also edit style to match the existing coding style in the project. 17714 17715 src/xz/args.c | 6 +++--- 17716 src/xz/suffix.c | 2 +- 17717 src/xz/suffix.h | 1 + 17718 3 files changed, 5 insertions(+), 4 deletions(-) 17719 17720commit cc5aa9ab138beeecaee5a1e81197591893ee9ca0 17721Author: Jia Tan <jiat0218@gmail.com> 17722Date: 2023-01-07 21:55:06 +0800 17723 17724 xz: Refactor duplicated check for custom suffix when using --format=raw 17725 17726 src/xz/args.c | 8 ++++++++ 17727 src/xz/suffix.c | 26 ++++++++------------------ 17728 src/xz/suffix.h | 7 +++++++ 17729 3 files changed, 23 insertions(+), 18 deletions(-) 17730 17731commit 9663141274e01592a281a7f2df5d7a31a1dac8bf 17732Author: Jia Tan <jiat0218@gmail.com> 17733Date: 2023-01-20 21:53:14 +0800 17734 17735 liblzma: Set documentation on all reserved fields to private. 17736 17737 This prevents the reserved fields from being part of the generated 17738 Doxygen documentation. 17739 17740 src/liblzma/api/lzma/base.h | 17 +++++++++++++++ 17741 src/liblzma/api/lzma/block.h | 43 +++++++++++++++++++++++++++++++++++++ 17742 src/liblzma/api/lzma/container.h | 24 +++++++++++++++++++++ 17743 src/liblzma/api/lzma/delta.h | 12 +++++++++++ 17744 src/liblzma/api/lzma/index.h | 27 +++++++++++++++++++++++ 17745 src/liblzma/api/lzma/lzma12.h | 22 +++++++++++++++++++ 17746 src/liblzma/api/lzma/stream_flags.h | 28 ++++++++++++++++++++++++ 17747 7 files changed, 173 insertions(+) 17748 17749commit 6327a045f34d48fc5afc58ba0d32a82c94403049 17750Author: Jia Tan <jiat0218@gmail.com> 17751Date: 2022-12-20 21:39:59 +0800 17752 17753 Doxygen: Update Doxyfile.in from 1.4.7 to 1.8.17. 17754 17755 A few Doxygen tags were obsolete from 1.4.7. Version 1.8.17 released 17756 in 2019, so this should be compatible with resonable modern distros. 17757 The purpose of Doxygen these days is for docs on the website, so it 17758 doesn't necessarily have to work for everyone. Just when the maintainers 17759 want to update the docs. 17760 17761 Doxyfile.in | 2523 ++++++++++++++++++++++++++++++++++++++++++++--------------- 17762 1 file changed, 1893 insertions(+), 630 deletions(-) 17763 17764commit bbf71b69ebf9d0d62a0af150a5c37d193b8159ad 17765Author: Jia Tan <jiat0218@gmail.com> 17766Date: 2023-01-03 20:37:30 +0800 17767 17768 Doxygen: Make Doxygen only produce liblzma API documentation by default. 17769 17770 Doxygen is now configurable in autotools only with 17771 --enable-doxygen=[api|all]. The default is "api", which will only 17772 generate HTML output for liblzma API functions. The LaTex documentation 17773 output was also disabled. 17774 17775 Doxyfile.in | 18 +++++++++--------- 17776 configure.ac | 39 +++++++++++++++++++++++++++++++++++++++ 17777 2 files changed, 48 insertions(+), 9 deletions(-) 17778 17779commit 6fcf4671b6047113c583a0919fc850987a4ec5f4 17780Author: Jia Tan <jiat0218@gmail.com> 17781Date: 2022-12-21 23:59:43 +0800 17782 17783 liblzma: Highlight liblzma API headers should not be included directly. 17784 17785 This improves the generated Doxygen HTML files to better highlight 17786 how to properly use the liblzma API header files. 17787 17788 src/liblzma/api/lzma/base.h | 5 +++-- 17789 src/liblzma/api/lzma/bcj.h | 5 +++-- 17790 src/liblzma/api/lzma/block.h | 5 +++-- 17791 src/liblzma/api/lzma/check.h | 5 +++-- 17792 src/liblzma/api/lzma/container.h | 5 +++-- 17793 src/liblzma/api/lzma/delta.h | 5 +++-- 17794 src/liblzma/api/lzma/filter.h | 5 +++-- 17795 src/liblzma/api/lzma/hardware.h | 5 +++-- 17796 src/liblzma/api/lzma/index.h | 5 +++-- 17797 src/liblzma/api/lzma/index_hash.h | 5 +++-- 17798 src/liblzma/api/lzma/lzma12.h | 5 +++-- 17799 src/liblzma/api/lzma/stream_flags.h | 5 +++-- 17800 src/liblzma/api/lzma/version.h | 5 +++-- 17801 src/liblzma/api/lzma/vli.h | 5 +++-- 17802 14 files changed, 42 insertions(+), 28 deletions(-) 17803 17804commit b43ff180fb2e372adce876bfa155fc9bcf0c3db4 17805Author: Jia Tan <jiat0218@gmail.com> 17806Date: 2023-01-19 20:35:09 +0800 17807 17808 tuklib_physmem: Silence warning from -Wcast-function-type on MinGW-w64. 17809 17810 tuklib_physmem depends on GetProcAddress() for both MSVC and MinGW-w64 17811 to retrieve a function address. The proper way to do this is to cast the 17812 return value to the type of function pointer retrieved. Unfortunately, 17813 this causes a cast-function-type warning, so the best solution is to 17814 simply ignore the warning. 17815 17816 src/common/tuklib_physmem.c | 9 +++++++++ 17817 1 file changed, 9 insertions(+) 17818 17819commit 82e3c968bfa10e3ff13333bd9cbbadb5988d6766 17820Author: Jia Tan <jiat0218@gmail.com> 17821Date: 2023-01-19 20:32:40 +0800 17822 17823 tuklib_common: Define __has_warning if it is not defined. 17824 17825 clang supports the __has_warning macro to determine if the version of 17826 clang compiling the code supports a given warning. If we do not define 17827 it for other compilers, it may cause a preprocessor error. 17828 17829 src/common/tuklib_common.h | 7 +++++++ 17830 1 file changed, 7 insertions(+) 17831 17832commit b2ba1a489df451cdcd93b2334e319dd06778de19 17833Author: Jia Tan <jiat0218@gmail.com> 17834Date: 2023-01-18 22:11:05 +0800 17835 17836 CI: Reorder 32-bit build first for Linux autotool builds. 17837 17838 The 32-bit build needs to be first so the configure cache only needs to 17839 be reset one time. The 32-bit build sets the CFLAGS env variable, so any 17840 build using that flag after will fail unless the cache is reset. 17841 17842 .github/workflows/ci.yml | 17 ++++++++++++----- 17843 1 file changed, 12 insertions(+), 5 deletions(-) 17844 17845commit dd1c1135741057c91e8d018be9ec4d43968b0e64 17846Author: Jia Tan <jiat0218@gmail.com> 17847Date: 2023-01-18 21:51:43 +0800 17848 17849 CI: Enable --config-cache in autotool builds. 17850 17851 If CFLAGS are set in a build, the cache must be cleared with 17852 "make distclean", or by deleting the cache file. 17853 17854 build-aux/ci_build.sh | 2 +- 17855 1 file changed, 1 insertion(+), 1 deletion(-) 17856 17857commit d3e11477053764c003eec2daa5198c747d70ff69 17858Author: Jia Tan <jiat0218@gmail.com> 17859Date: 2023-01-16 21:35:45 +0800 17860 17861 xz: Add missing comment for coder_set_compression_settings() 17862 17863 src/xz/coder.h | 3 ++- 17864 1 file changed, 2 insertions(+), 1 deletion(-) 17865 17866commit 123255b6ed15f4428b2aa92e4962015a5362f6bf 17867Author: Jia Tan <jiat0218@gmail.com> 17868Date: 2023-01-16 20:55:10 +0800 17869 17870 xz: Do not set compression settings with raw format in list mode. 17871 17872 Calling coder_set_compression_settings() in list mode with verbose mode 17873 on caused the filter chain and memory requirements to print. This was 17874 unnecessary since the command results in an error and not consistent 17875 with other formats like lzma and alone. 17876 17877 src/xz/args.c | 3 ++- 17878 1 file changed, 2 insertions(+), 1 deletion(-) 17879 17880commit 571919c47b9ff5171ede84378620ed0a9aeb98c0 17881Author: Jia Tan <jiat0218@gmail.com> 17882Date: 2023-01-13 20:37:06 +0800 17883 17884 Translations: Update the Brazilian Portuguese translation. 17885 17886 po/pt_BR.po | 603 ++++++++++++++++++++++++++++++++++-------------------------- 17887 1 file changed, 344 insertions(+), 259 deletions(-) 17888 17889commit 81cb02e2c22bbc036cdfaa2d2c4176f6bd60d3cf 17890Author: Jia Tan <jiat0218@gmail.com> 17891Date: 2023-01-12 23:43:06 +0800 17892 17893 CI: Disable shared and nls from various jobs in autotool runners. 17894 17895 Disabling shared library generation and linking should help speed up the 17896 runners. The shared library is still being tested in the 32 bit build 17897 and the full feature. 17898 17899 Disabling nls is to check for any unexpected warnings or errors. 17900 17901 .github/workflows/ci.yml | 56 ++++++++++++++++++++++++------------------------ 17902 1 file changed, 28 insertions(+), 28 deletions(-) 17903 17904commit 58a052198a7bcaf6e958f87fad72e69e19a2579b 17905Author: Jia Tan <jiat0218@gmail.com> 17906Date: 2023-01-12 23:39:19 +0800 17907 17908 CI: Reorder the 32-bit job in the Ubuntu runner. 17909 17910 Run the 32 bit job sooner since this is a more interesting test than 17911 some of the later jobs. 17912 17913 .github/workflows/ci.yml | 10 +++++----- 17914 1 file changed, 5 insertions(+), 5 deletions(-) 17915 17916commit 4110a998b83459fe2bc9bc1bec30ad68afa8f797 17917Author: Jia Tan <jiat0218@gmail.com> 17918Date: 2023-01-12 23:09:03 +0800 17919 17920 CI: Allow disabling Native Language Support. 17921 17922 build-aux/ci_build.sh | 9 ++++++++- 17923 1 file changed, 8 insertions(+), 1 deletion(-) 17924 17925commit 0dec634e705b5bf89a37c5d62d71e8511d480058 17926Author: Jia Tan <jiat0218@gmail.com> 17927Date: 2023-01-12 23:02:20 +0800 17928 17929 CI: Only run autogen.sh if it has not already run. 17930 17931 build-aux/ci_build.sh | 11 ++++++++--- 17932 1 file changed, 8 insertions(+), 3 deletions(-) 17933 17934commit 32287dc8def94df4546e903495d14c132bd54cc4 17935Author: Jia Tan <jiat0218@gmail.com> 17936Date: 2023-01-12 22:58:36 +0800 17937 17938 CI: Allow disabling shared library in autotools builds. 17939 17940 build-aux/ci_build.sh | 9 ++++++++- 17941 1 file changed, 8 insertions(+), 1 deletion(-) 17942 17943commit 77d1ebcc99ddd82a300d1838f608150221931dcd 17944Author: Jia Tan <jiat0218@gmail.com> 17945Date: 2023-01-12 22:44:18 +0800 17946 17947 CI: Improve Usage readability and add -h option. 17948 17949 build-aux/ci_build.sh | 15 +++++++++++++-- 17950 1 file changed, 13 insertions(+), 2 deletions(-) 17951 17952commit a8bb8358d10b059274f3cf993d9b8f490bafb268 17953Author: Lasse Collin <lasse.collin@tukaani.org> 17954Date: 2023-01-12 13:04:05 +0200 17955 17956 Build: Omit -Wmissing-noreturn from the default warnings. 17957 17958 It's not that important. It can be annoying in builds that 17959 disable many features since in those cases the tests programs 17960 will correctly trigger this warning with Clang. 17961 17962 configure.ac | 1 - 17963 1 file changed, 1 deletion(-) 17964 17965commit 52dc033d0bde0d19e3912303c6c74bae559d6498 17966Author: Lasse Collin <lasse.collin@tukaani.org> 17967Date: 2023-01-12 06:05:58 +0200 17968 17969 xz: Use ssize_t for the to-be-ignored return value from write(fd, ptr, 1). 17970 17971 It makes no difference here as the return value fits into an int 17972 too and it then gets ignored but this looks better. 17973 17974 src/xz/file_io.c | 2 +- 17975 1 file changed, 1 insertion(+), 1 deletion(-) 17976 17977commit b1a6d180a363d57b2b1c89526ff3f0782bf863d3 17978Author: Lasse Collin <lasse.collin@tukaani.org> 17979Date: 2023-01-12 06:01:12 +0200 17980 17981 xz: Silence warnings from -Wsign-conversion in a 32-bit build. 17982 17983 src/common/tuklib_mbstr_fw.c | 2 +- 17984 src/xz/list.c | 4 ++-- 17985 2 files changed, 3 insertions(+), 3 deletions(-) 17986 17987commit 31c21c734b7c7d7428a3da7402a2cb7bc2587339 17988Author: Lasse Collin <lasse.collin@tukaani.org> 17989Date: 2023-01-12 05:38:48 +0200 17990 17991 liblzma: Silence another warning from -Wsign-conversion in a 32-bit build. 17992 17993 It doesn't warn on a 64-bit system because truncating 17994 a ptrdiff_t (signed long) to uint32_t is diagnosed under 17995 -Wconversion by GCC and -Wshorten-64-to-32 by Clang. 17996 17997 src/liblzma/lz/lz_encoder_mf.c | 7 ++++--- 17998 1 file changed, 4 insertions(+), 3 deletions(-) 17999 18000commit 37fbdfb7263522c11c7ad2685413d6295532581d 18001Author: Lasse Collin <lasse.collin@tukaani.org> 18002Date: 2023-01-12 04:46:45 +0200 18003 18004 liblzma: Silence a warning from -Wsign-conversion in a 32-bit build. 18005 18006 src/common/mythread.h | 4 ++-- 18007 1 file changed, 2 insertions(+), 2 deletions(-) 18008 18009commit 5ce6ddc221d0bfb57d810d845bb65fb0aac0b008 18010Author: Lasse Collin <lasse.collin@tukaani.org> 18011Date: 2023-01-12 04:17:24 +0200 18012 18013 Build: Make configure add more warning flags for GCC and Clang. 18014 18015 -Wstrict-aliasing was removed from the list since it is enabled 18016 by -Wall already. 18017 18018 A normal build is clean with these on GNU/Linux x86-64 with 18019 GCC 12.2.0 and Clang 14.0.6. 18020 18021 configure.ac | 36 +++++++++++++++++++++++++++++++----- 18022 1 file changed, 31 insertions(+), 5 deletions(-) 18023 18024commit bfc3a0a8ac16de90049c1b1ba1445a7626d0230c 18025Author: Lasse Collin <lasse.collin@tukaani.org> 18026Date: 2023-01-12 04:14:18 +0200 18027 18028 Tests: Fix warnings from clang --Wassign-enum. 18029 18030 Explicitly casting the integer to lzma_check silences the warning. 18031 Since such an invalid value is needed in multiple tests, a constant 18032 INVALID_LZMA_CHECK_ID was added to tests.h. 18033 18034 The use of 0x1000 for lzma_block.check wasn't optimal as if 18035 the underlying type is a char then 0x1000 will be truncated to 0. 18036 However, in these test cases the value is ignored, thus even with 18037 such truncation the test would have passed. 18038 18039 tests/test_block_header.c | 6 +++--- 18040 tests/test_check.c | 2 +- 18041 tests/test_stream_flags.c | 8 ++++---- 18042 tests/tests.h | 9 +++++++++ 18043 4 files changed, 17 insertions(+), 8 deletions(-) 18044 18045commit 49245bb31e215ad455a1ab85e4ed6783152dc522 18046Author: Lasse Collin <lasse.collin@tukaani.org> 18047Date: 2023-01-12 03:51:07 +0200 18048 18049 Tests: Silence warnings from -Wsign-conversion. 18050 18051 Note that assigning an unsigned int to lzma_check doesn't warn 18052 on GNU/Linux x86-64 since the enum type is unsigned on that 18053 platform. The enum can be signed on some other platform though 18054 so it's best to use enumeration type lzma_check in these situations. 18055 18056 tests/test_check.c | 6 +++--- 18057 tests/test_stream_flags.c | 10 +++++----- 18058 2 files changed, 8 insertions(+), 8 deletions(-) 18059 18060commit 3f13bf6b9e8624cbe6d6e3e82d6c98a3ed1ad571 18061Author: Lasse Collin <lasse.collin@tukaani.org> 18062Date: 2023-01-12 03:19:59 +0200 18063 18064 liblzma: Silence warnings from clang -Wconditional-uninitialized. 18065 18066 This is similar to 2ce4f36f179a81d0c6e182a409f363df759d1ad0. 18067 The actual initialization of the variables is done inside 18068 mythread_sync() macro. Clang doesn't seem to see that 18069 the initialization code inside the macro is always executed. 18070 18071 src/liblzma/common/stream_decoder_mt.c | 8 +++++--- 18072 src/liblzma/common/stream_encoder_mt.c | 2 +- 18073 2 files changed, 6 insertions(+), 4 deletions(-) 18074 18075commit 6c886cc5b3c90c6a75e6be8b1278ec2261e452a6 18076Author: Lasse Collin <lasse.collin@tukaani.org> 18077Date: 2023-01-12 03:11:40 +0200 18078 18079 Fix warnings from clang -Wdocumentation. 18080 18081 src/liblzma/check/check.h | 4 ---- 18082 src/liblzma/lz/lz_encoder_mf.c | 4 ++-- 18083 src/xz/options.c | 4 ++-- 18084 3 files changed, 4 insertions(+), 8 deletions(-) 18085 18086commit a0e7fb1c1ea658b67f30517f5d1975efd0226dba 18087Author: Lasse Collin <lasse.collin@tukaani.org> 18088Date: 2023-01-12 03:04:28 +0200 18089 18090 Tests: test_lzip_decoder: Remove trailing white-space. 18091 18092 tests/test_lzip_decoder.c | 4 ++-- 18093 1 file changed, 2 insertions(+), 2 deletions(-) 18094 18095commit c0f8d6782f29e219fd496dd23f6a033270509d5c 18096Author: Lasse Collin <lasse.collin@tukaani.org> 18097Date: 2023-01-12 03:03:55 +0200 18098 18099 Tests: test_lzip_decoder: Silence warnings from -Wsign-conversion. 18100 18101 tests/test_lzip_decoder.c | 13 +++++++------ 18102 1 file changed, 7 insertions(+), 6 deletions(-) 18103 18104commit 62efd48a825e8f439e84c85e165d8774ddc68fd2 18105Author: Jia Tan <jiat0218@gmail.com> 18106Date: 2023-01-11 23:58:16 +0800 18107 18108 Add NEWS for 5.4.1. 18109 18110 NEWS | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 18111 1 file changed, 70 insertions(+) 18112 18113commit d1561c47ec8cd3844a785d3741dc932f9b9c5790 18114Author: Jia Tan <jiat0218@gmail.com> 18115Date: 2023-01-11 22:46:48 +0800 18116 18117 xz: Fix warning -Wformat-nonliteral on clang in message.c. 18118 18119 clang and gcc differ in how they handle -Wformat-nonliteral. gcc will 18120 allow a non-literal format string as long as the function takes its 18121 format arguments as a va_list. 18122 18123 src/xz/message.c | 9 +++++++++ 18124 1 file changed, 9 insertions(+) 18125 18126commit 8c0f115cc489331c48df77beca92fe378039d919 18127Author: Jia Tan <jiat0218@gmail.com> 18128Date: 2023-01-11 20:58:31 +0800 18129 18130 Tests: Fix test_filter_flags copy/paste error. 18131 18132 tests/test_filter_flags.c | 4 ++-- 18133 1 file changed, 2 insertions(+), 2 deletions(-) 18134 18135commit 25035813d1d596fde692addc33e7f715f1fe55eb 18136Author: Jia Tan <jiat0218@gmail.com> 18137Date: 2023-01-11 20:42:29 +0800 18138 18139 Tests: Fix type-limits warning in test_filter_flags. 18140 18141 This only occurs in test_filter_flags when the BCJ filters are not 18142 configured and built. In this case, ARRAY_SIZE() returns 0 and causes a 18143 type-limits warning with the loop variable since an unsigned number will 18144 always be >= 0. 18145 18146 tests/test_filter_flags.c | 13 ++++++++++--- 18147 1 file changed, 10 insertions(+), 3 deletions(-) 18148 18149commit 0b8fa310cf56fec55663f62340e49e8e1441594f 18150Author: Lasse Collin <lasse.collin@tukaani.org> 18151Date: 2023-01-10 22:14:03 +0200 18152 18153 liblzma: CLMUL CRC64: Work around a bug in MSVC, second attempt. 18154 18155 This affects only 32-bit x86 builds. x86-64 is OK as is. 18156 18157 I still cannot easily test this myself. The reporter has tested 18158 this and it passes the tests included in the CMake build and 18159 performance is good: raw CRC64 is 2-3 times faster than the 18160 C version of the slice-by-four method. (Note that liblzma doesn't 18161 include a MSVC-compatible version of the 32-bit x86 assembly code 18162 for the slice-by-four method.) 18163 18164 Thanks to Iouri Kharon for figuring out a fix, testing, and 18165 benchmarking. 18166 18167 src/liblzma/check/crc64_fast.c | 18 ++++++++++++++++++ 18168 1 file changed, 18 insertions(+) 18169 18170commit 765354b50c2886fc0d294d6be3b207f7ae2ada70 18171Author: Jia Tan <jiat0218@gmail.com> 18172Date: 2023-01-11 01:18:50 +0800 18173 18174 Tests: Fix unused function warning in test_block_header. 18175 18176 One of the global arrays of filters was only used in a test that 18177 required both encoders and decoders to be configured in the build. 18178 18179 tests/test_block_header.c | 4 ++++ 18180 1 file changed, 4 insertions(+) 18181 18182commit 7c23c05befdcc73231c0d6632a7d943dbeaea1aa 18183Author: Jia Tan <jiat0218@gmail.com> 18184Date: 2023-01-11 01:08:03 +0800 18185 18186 Tests: Fix unused function warning in test_index_hash. 18187 18188 test_index_hash does not use fill_index_hash() unless both encoders 18189 and decoders are configured in the build. 18190 18191 tests/test_index_hash.c | 4 +--- 18192 1 file changed, 1 insertion(+), 3 deletions(-) 18193 18194commit 57464bb4ebd6c00dc8b19803f05ea55ddd0826f6 18195Author: Jia Tan <jiat0218@gmail.com> 18196Date: 2023-01-11 00:54:45 +0800 18197 18198 CI/CD: Add 32-bit build and test steps to Ubuntu autotools runner. 18199 18200 If all goes well, Mac autotools and Linux and Mac CMake will be added 18201 later for 32-bit builds. 18202 18203 .github/workflows/ci.yml | 7 ++++++- 18204 1 file changed, 6 insertions(+), 1 deletion(-) 18205 18206commit 923eb689a4b863b6cca8df6360d4962aae994edf 18207Author: Jia Tan <jiat0218@gmail.com> 18208Date: 2023-01-11 00:51:01 +0800 18209 18210 CI/CD: Enables warnings as errors in autotool build. 18211 18212 This will help us catch warnings and potential bugs in builds that are 18213 not often tested by us. 18214 18215 build-aux/ci_build.sh | 2 +- 18216 1 file changed, 1 insertion(+), 1 deletion(-) 18217 18218commit feae5528a30c006b6e2f96a95116e20b983703fc 18219Author: Jia Tan <jiat0218@gmail.com> 18220Date: 2023-01-11 00:48:35 +0800 18221 18222 CI/CD: Add -f argument to set CFLAGS in ci_build.sh. 18223 18224 For now, the suggested option is for -m32 only, but this can be updated 18225 later if other flags are deemed useful. 18226 18227 build-aux/ci_build.sh | 8 ++++++-- 18228 1 file changed, 6 insertions(+), 2 deletions(-) 18229 18230commit cfabb62a4874c146e7d6f30445637602545bc054 18231Author: Lasse Collin <lasse.collin@tukaani.org> 18232Date: 2023-01-10 12:47:16 +0200 18233 18234 Revert "liblzma: CLMUL CRC64: Workaround a bug in MSVC (VS2015-2022)." 18235 18236 This reverts commit 36edc65ab4cf10a131f239acbd423b4510ba52d5. 18237 18238 It was reported that it wasn't a good enough fix and MSVC 18239 still produced (different kind of) bad code when building 18240 for 32-bit x86 if optimizations are enabled. 18241 18242 Thanks to Iouri Kharon. 18243 18244 src/liblzma/check/crc64_fast.c | 6 ------ 18245 1 file changed, 6 deletions(-) 18246 18247commit 0b64215170dd3562f207ef26f794755bcd600526 18248Author: Lasse Collin <lasse.collin@tukaani.org> 18249Date: 2023-01-10 11:56:11 +0200 18250 18251 sysdefs.h: Don't include strings.h anymore. 18252 18253 On some platforms src/xz/suffix.c may need <strings.h> for 18254 strcasecmp() but suffix.c includes the header when it needs it. 18255 18256 Unless there is an old system that otherwise supports enough C99 18257 to build XZ Utils but doesn't have C89/C90-compatible <string.h>, 18258 there should be no need to include <strings.h> in sysdefs.h. 18259 18260 src/common/sysdefs.h | 6 ------ 18261 1 file changed, 6 deletions(-) 18262 18263commit ec2fc39fe4f4e6e242b3a669585049763968cdeb 18264Author: Lasse Collin <lasse.collin@tukaani.org> 18265Date: 2023-01-10 11:23:41 +0200 18266 18267 xz: Include <strings.h> in suffix.c if needed for strcasecmp(). 18268 18269 SUSv2 and POSIX.1‐2017 declare only a few functions in <strings.h>. 18270 Of these, strcasecmp() is used on some platforms in suffix.c. 18271 Nothing else in the project needs <strings.h> (at least if 18272 building on a modern system). 18273 18274 sysdefs.h currently includes <strings.h> if HAVE_STRINGS_H is 18275 defined and suffix.c relied on this. 18276 18277 Note that dos/config.h doesn't #define HAVE_STRINGS_H even though 18278 DJGPP does have strings.h. It isn't needed with DJGPP as strcasecmp() 18279 is also in <string.h> in DJGPP. 18280 18281 src/xz/suffix.c | 3 +++ 18282 1 file changed, 3 insertions(+) 18283 18284commit 7049c4a76c805ad27d6cf4ee119a2ef2a7add59f 18285Author: Lasse Collin <lasse.collin@tukaani.org> 18286Date: 2023-01-10 10:05:13 +0200 18287 18288 sysdefs.h: Fix a comment. 18289 18290 src/common/sysdefs.h | 2 +- 18291 1 file changed, 1 insertion(+), 1 deletion(-) 18292 18293commit 194a5fab69277d9e804a6113b5f676b8666b3a61 18294Author: Lasse Collin <lasse.collin@tukaani.org> 18295Date: 2023-01-10 10:04:06 +0200 18296 18297 sysdefs.h: Don't include memory.h anymore even if it were available. 18298 18299 It quite probably was never needed, that is, any system where memory.h 18300 was required likely couldn't compile XZ Utils for other reasons anyway. 18301 18302 XZ Utils 5.2.6 and later source packages were generated using 18303 Autoconf 2.71 which no longer defines HAVE_MEMORY_H. So the code 18304 being removed is no longer used anyway. 18305 18306 src/common/sysdefs.h | 8 ++------ 18307 1 file changed, 2 insertions(+), 6 deletions(-) 18308 18309commit 5e34774c31d1b7509b5cb77a3be9973adec59ea0 18310Author: Lasse Collin <lasse.collin@tukaani.org> 18311Date: 2023-01-10 08:29:32 +0200 18312 18313 CMake: Fix appending to CMAKE_RC_FLAGS. 18314 18315 It's a string, not a list. It only worked when the variable was empty. 18316 18317 Thanks to Iouri Kharon. 18318 18319 CMakeLists.txt | 2 +- 18320 1 file changed, 1 insertion(+), 1 deletion(-) 18321 18322commit 6e652ceb18c615c578c869db300fa0756788b4e0 18323Author: Lasse Collin <lasse.collin@tukaani.org> 18324Date: 2023-01-10 00:33:14 +0200 18325 18326 Windows: Update INSTALL-MSVC.txt to recommend CMake over project files. 18327 18328 windows/INSTALL-MSVC.txt | 19 ++++++++++++------- 18329 1 file changed, 12 insertions(+), 7 deletions(-) 18330 18331commit 6b117d3b1fe91eb26d533ab16a2e552f84148d47 18332Author: Lasse Collin <lasse.collin@tukaani.org> 18333Date: 2023-01-09 23:41:25 +0200 18334 18335 CMake: Fix windres issues again. 18336 18337 At least on some systems, GNU windres needs --use-temp-file 18338 in addition to the \x20 hack to avoid spaces in the command line 18339 argument. Hovever, that \x20 syntax is broken with llvm-windres 18340 version 15.0.0 (results in "XZx20Utils") but luckily it works 18341 with a regular space. Thus it is best to limit the workarounds 18342 to GNU toolchain on Windows. 18343 18344 CMakeLists.txt | 35 +++++++++++++++++++++++------------ 18345 1 file changed, 23 insertions(+), 12 deletions(-) 18346 18347commit 0c210ca7f489e971e94e1ddc72b0b0806e3c7935 18348Author: Lasse Collin <lasse.collin@tukaani.org> 18349Date: 2023-01-06 22:53:38 +0200 18350 18351 Tests: test_filter_flags: Clean up minor issues. 18352 18353 Here are the list of the most significant issues addressed: 18354 - Avoid using internal common.h header. It's not good to copy the 18355 constants like this but common.h cannot be included for use outside 18356 of liblzma. This is the quickest thing to do that could be fixed later. 18357 18358 - Omit the INIT_FILTER macro. Initialization should be done with just 18359 regular designated initializers. 18360 18361 - Use start_offset = 257 for BCJ tests. It demonstrates that Filter 18362 Flags encoder and decoder don't validate the options thoroughly. 18363 257 is valid only for the x86 filter. This is a bit silly but 18364 not a significant problem in practice because the encoder and 18365 decoder initialization functions will catch bad alignment still. 18366 Perhaps this should be fixed but it's not urgent and doesn't need 18367 to be in 5.4.x. 18368 18369 - Various tweaks to comments such as filter id -> Filter ID 18370 18371 tests/test_filter_flags.c | 153 +++++++++++++++++++++++----------------------- 18372 1 file changed, 78 insertions(+), 75 deletions(-) 18373 18374commit 5c9fdd3bf53a9655f5eb2807d662b3af0d5e1865 18375Author: Jia Tan <jiat0218@gmail.com> 18376Date: 2022-12-29 23:33:33 +0800 18377 18378 Tests: Refactors existing filter flags tests. 18379 18380 Converts the existing filter flags tests into tuktests. 18381 18382 tests/test_filter_flags.c | 655 ++++++++++++++++++++++++++++++++-------------- 18383 1 file changed, 457 insertions(+), 198 deletions(-) 18384 18385commit 36edc65ab4cf10a131f239acbd423b4510ba52d5 18386Author: Lasse Collin <lasse.collin@tukaani.org> 18387Date: 2023-01-09 12:22:05 +0200 18388 18389 liblzma: CLMUL CRC64: Workaround a bug in MSVC (VS2015-2022). 18390 18391 I haven't tested with MSVC myself and there doesn't seem to be 18392 information about the problem online, so I'm relying on the bug report. 18393 18394 Thanks to Iouri Kharon for the bug report and the patch. 18395 18396 src/liblzma/check/crc64_fast.c | 6 ++++++ 18397 1 file changed, 6 insertions(+) 18398 18399commit 790a12a95a78ff82d8c6d4efe3b789851ca9470d 18400Author: Lasse Collin <lasse.collin@tukaani.org> 18401Date: 2023-01-09 11:27:24 +0200 18402 18403 CMake: Fix a copypaste error in xzdec Windows resource file handling. 18404 18405 It was my mistake. Thanks to Iouri Kharon for the bug report. 18406 18407 CMakeLists.txt | 4 ++-- 18408 1 file changed, 2 insertions(+), 2 deletions(-) 18409 18410commit 0e1545fea39c0514c7b7032a0a3592a9a33d2848 18411Author: Lasse Collin <lasse.collin@tukaani.org> 18412Date: 2023-01-08 00:32:29 +0200 18413 18414 Tests: tuktest.h: Support tuktest_malloc(0). 18415 18416 It's not needed in XZ Utils at least for now. It's good to support 18417 it still because if such use is needed later, it wouldn't be 18418 caught on GNU/Linux since malloc(0) from glibc returns non-NULL. 18419 18420 tests/tuktest.h | 4 ++-- 18421 1 file changed, 2 insertions(+), 2 deletions(-) 18422 18423commit 69d5d78c6904668eb09a131da86276beec3281f8 18424Author: Lasse Collin <lasse.collin@tukaani.org> 18425Date: 2023-01-08 00:24:23 +0200 18426 18427 Update THANKS. 18428 18429 THANKS | 1 + 18430 1 file changed, 1 insertion(+) 18431 18432commit dd38655f80c113c9db73b9ed370dc900e1c4dc41 18433Author: Lasse Collin <lasse.collin@tukaani.org> 18434Date: 2023-01-07 21:57:11 +0200 18435 18436 CMake: Update cmake_minimum_required from 3.13...3.16 to 3.13...3.25. 18437 18438 The changes listed on cmake-policies(7) for versions 3.17 to 3.25 18439 shouldn't affect this project. 18440 18441 CMakeLists.txt | 2 +- 18442 1 file changed, 1 insertion(+), 1 deletion(-) 18443 18444commit a890a637bee9193d5b690aefa9a59eba5b8532ae 18445Author: Lasse Collin <lasse.collin@tukaani.org> 18446Date: 2023-01-07 19:50:35 +0200 18447 18448 Update THANKS. 18449 18450 THANKS | 1 + 18451 1 file changed, 1 insertion(+) 18452 18453commit 6e38e595dd56ac1800478cef1f6f754d0eba0d2e 18454Author: Lasse Collin <lasse.collin@tukaani.org> 18455Date: 2023-01-07 19:50:03 +0200 18456 18457 CMake/Windows: Add resource files to xz.exe and xzdec.exe. 18458 18459 The command line tools cannot be built with MSVC for now but 18460 they can be built with MinGW-w64. 18461 18462 Thanks to Iouri Kharon for the bug report and the original patch. 18463 18464 CMakeLists.txt | 16 ++++++++++++++++ 18465 1 file changed, 16 insertions(+) 18466 18467commit 443dfebced041adc88f10d824188eeef5b5821a9 18468Author: Lasse Collin <lasse.collin@tukaani.org> 18469Date: 2023-01-07 19:48:52 +0200 18470 18471 CMake/Windows: Add a workaround for windres from GNU binutils. 18472 18473 Thanks to Iouri Kharon for the bug report and the original patch. 18474 18475 CMakeLists.txt | 21 ++++++++++++++++++++- 18476 1 file changed, 20 insertions(+), 1 deletion(-) 18477 18478commit ceb805011747d04a915f3f39e4bed9eed151c634 18479Author: Lasse Collin <lasse.collin@tukaani.org> 18480Date: 2023-01-07 19:31:15 +0200 18481 18482 Build: Require that _mm_set_epi64x() is usable to enable CLMUL support. 18483 18484 VS2013 doesn't have _mm_set_epi64x() so this way CLMUL gets 18485 disabled with VS2013. 18486 18487 Thanks to Iouri Kharon for the bug report. 18488 18489 CMakeLists.txt | 3 ++- 18490 configure.ac | 8 ++++++-- 18491 2 files changed, 8 insertions(+), 3 deletions(-) 18492 18493commit 8d372bd94066b1a5b0570b2550f83c2868486adf 18494Author: Jia Tan <jiat0218@gmail.com> 18495Date: 2023-01-07 21:05:15 +0800 18496 18497 CI/CD: Split CMake Linux and MacOS build phase to build and test. 18498 18499 The phase split was only done for Autotools before, so should also 18500 apply to CMake. 18501 18502 .github/workflows/ci.yml | 8 ++++++-- 18503 1 file changed, 6 insertions(+), 2 deletions(-) 18504 18505commit 747c7f2b34bd498f6702c6875500a26b06201772 18506Author: Jia Tan <jiat0218@gmail.com> 18507Date: 2023-01-07 11:16:55 +0800 18508 18509 CI/CD: Reduce job runners to 4 instead of using matrix strategy. 18510 18511 The old version used too many runners that resulted in unnecessary 18512 dependency downloads. Now, the runners are reused for the different 18513 configurations for each OS and build system. 18514 18515 .github/workflows/ci.yml | 95 ++++++++++++++++++++++++++++++++++++++++++------ 18516 1 file changed, 83 insertions(+), 12 deletions(-) 18517 18518commit 4de35fd6b58d46fc887c78faf163f6a37b790c45 18519Author: Jia Tan <jiat0218@gmail.com> 18520Date: 2023-01-07 10:07:20 +0800 18521 18522 CI/CD: Add new -p (PHASE) argument to ci_build.sh 18523 18524 The new PHASE argument can be build, test, or all. all is the default. 18525 This way, the CI/CD script can differentiate between the build and test 18526 phases to make it easier to track down errors when they happen. 18527 18528 build-aux/ci_build.sh | 140 +++++++++++++++++++++++++++----------------------- 18529 1 file changed, 76 insertions(+), 64 deletions(-) 18530 18531commit 6fd39664de47801e670a16617863196bfbde4755 18532Merge: 78e0561d fc0c7884 18533Author: Jia Tan <jiat0218@gmail.com> 18534Date: 2023-01-07 00:10:50 +0800 18535 18536 Merge pull request #7 from tukaani-project/tuktest_index_hash 18537 18538 Tuktest index hash 18539 18540commit fc0c788469159f634f09ff23c8cef6925c91da57 18541Author: Lasse Collin <lasse.collin@tukaani.org> 18542Date: 2023-01-06 17:58:48 +0200 18543 18544 Tests: test_index_hash: Add an assert_uint_eq(). 18545 18546 tests/test_index_hash.c | 3 +++ 18547 1 file changed, 3 insertions(+) 18548 18549commit d550304f5343b3a082da265107cd820e0d81dc71 18550Author: Lasse Collin <lasse.collin@tukaani.org> 18551Date: 2023-01-06 17:55:06 +0200 18552 18553 Tests: test_index_hash: Fix a memory leak. 18554 18555 tests/test_index_hash.c | 2 ++ 18556 1 file changed, 2 insertions(+) 18557 18558commit 02608f74ea1f2d2d56585711ff241c34b4ad0937 18559Author: Lasse Collin <lasse.collin@tukaani.org> 18560Date: 2023-01-06 17:53:03 +0200 18561 18562 Tests: test_index_hash: Don't treat pointers as booleans. 18563 18564 tests/test_index_hash.c | 6 +++--- 18565 1 file changed, 3 insertions(+), 3 deletions(-) 18566 18567commit 056766c8601a3808bea1761f6cc833197a35a3e0 18568Author: Lasse Collin <lasse.collin@tukaani.org> 18569Date: 2023-01-06 17:51:41 +0200 18570 18571 Tests: test_index_hash: Fix a typo in a comment. 18572 18573 tests/test_index_hash.c | 2 +- 18574 1 file changed, 1 insertion(+), 1 deletion(-) 18575 18576commit 873e684028ba9738f071c5236db7d452ed797b4c 18577Author: Lasse Collin <lasse.collin@tukaani.org> 18578Date: 2023-01-06 17:44:29 +0200 18579 18580 Tests: test_index_hash: Avoid the variable name "index". 18581 18582 It can trigger warnings from -Wshadow on some systems. 18583 18584 tests/test_index_hash.c | 16 ++++++++-------- 18585 1 file changed, 8 insertions(+), 8 deletions(-) 18586 18587commit d1f24c35874eeba8432d75aa77b06c50375ed937 18588Author: Lasse Collin <lasse.collin@tukaani.org> 18589Date: 2023-01-06 17:35:50 +0200 18590 18591 Tests: test_index_hash: Use the word "Record" instead of "entry". 18592 18593 tests/test_index_hash.c | 102 ++++++++++++++++++++++++------------------------ 18594 1 file changed, 51 insertions(+), 51 deletions(-) 18595 18596commit b93f7c5cbb02b42024ac866fc0af541de3d816e2 18597Author: Lasse Collin <lasse.collin@tukaani.org> 18598Date: 2023-01-06 17:35:05 +0200 18599 18600 Tests: test_index_hash: Tweak comments and style. 18601 18602 The words defined in the .xz file format specification 18603 begin with capital letter to emphasize that they have 18604 a specific meaning. 18605 18606 tests/test_index_hash.c | 62 ++++++++++++++++++++++++++----------------------- 18607 1 file changed, 33 insertions(+), 29 deletions(-) 18608 18609commit c48b24fc06d98569adb72f13c2e8e5ff30bb8036 18610Author: Lasse Collin <lasse.collin@tukaani.org> 18611Date: 2023-01-06 17:17:37 +0200 18612 18613 Tests: test_index_hash: Use INDEX_INDICATOR constant instead of 0. 18614 18615 tests/test_index_hash.c | 2 +- 18616 1 file changed, 1 insertion(+), 1 deletion(-) 18617 18618commit 78e0561dfebaa9d5e34558de537efcda890e0629 18619Author: Jia Tan <jiat0218@gmail.com> 18620Date: 2023-01-06 20:43:31 +0800 18621 18622 Style: Change #if !defined() to #ifndef in mythread.h. 18623 18624 src/common/mythread.h | 2 +- 18625 1 file changed, 1 insertion(+), 1 deletion(-) 18626 18627commit e834e1e934ed0af673598d8c0c34afb2af56bee0 18628Author: Jia Tan <jiat0218@gmail.com> 18629Date: 2023-01-06 20:35:55 +0800 18630 18631 Build: Add missing stream_decoder_mt.c to .vcxproj files. 18632 18633 The line in the .vcxproj files for building with was missing in 5.4.0. 18634 Thank to Hajin Jang for reporting the issue. 18635 18636 windows/vs2013/liblzma.vcxproj | 1 + 18637 windows/vs2013/liblzma_dll.vcxproj | 1 + 18638 windows/vs2017/liblzma.vcxproj | 1 + 18639 windows/vs2017/liblzma_dll.vcxproj | 1 + 18640 windows/vs2019/liblzma.vcxproj | 1 + 18641 windows/vs2019/liblzma_dll.vcxproj | 1 + 18642 6 files changed, 6 insertions(+) 18643 18644commit 84f9687cbae972c2c342e10bf69f8ec8f70ae111 18645Author: Jia Tan <jiat0218@gmail.com> 18646Date: 2023-01-05 20:57:25 +0800 18647 18648 liblzma: Remove common.h include from common/index.h. 18649 18650 common/index.h is needed by liblzma internally and tests. common.h will 18651 include and define many things that are not needed by the tests. Also, 18652 this prevents include order problems because common.h will redefine 18653 LZMA_API resulting in a warning. 18654 18655 src/liblzma/common/index.c | 1 + 18656 src/liblzma/common/index.h | 9 +++++++-- 18657 src/liblzma/common/index_decoder.h | 1 + 18658 src/liblzma/common/stream_buffer_encoder.c | 1 + 18659 4 files changed, 10 insertions(+), 2 deletions(-) 18660 18661commit 7657ce1c3c4abff7560336a7b687d98e0e2bd14f 18662Author: Lasse Collin <lasse.collin@tukaani.org> 18663Date: 2023-01-04 22:40:54 +0200 18664 18665 Update THANKS. 18666 18667 THANKS | 1 + 18668 1 file changed, 1 insertion(+) 18669 18670commit aafd67fba045ab99683971263a5a26fb2a6e8ce2 18671Author: Lasse Collin <lasse.collin@tukaani.org> 18672Date: 2023-01-04 18:40:28 +0200 18673 18674 Tests: Adjust style in test_compress.sh. 18675 18676 tests/test_compress.sh | 12 +++++++----- 18677 1 file changed, 7 insertions(+), 5 deletions(-) 18678 18679commit 52380678f42364daa4510f92f6d3b18ec98c3638 18680Author: Jia Tan <jiat0218@gmail.com> 18681Date: 2023-01-04 23:58:58 +0800 18682 18683 Tests: Replace non portable shell parameter expansion 18684 18685 The shell parameter expansion using # and ## is not supported in 18686 Solaris 10 Bourne shell (/bin/sh). Even though this is POSIX, it is not fully 18687 portable, so we should avoid it. 18688 18689 tests/create_compress_files.c | 2 +- 18690 tests/test_compress.sh | 20 +++++++++++++------- 18691 tests/test_compress_prepared_bcj_sparc | 2 +- 18692 tests/test_compress_prepared_bcj_x86 | 2 +- 18693 4 files changed, 16 insertions(+), 10 deletions(-) 18694 18695commit d0eb345bb7d148a62883ee299adec2b74a0f6f3b 18696Author: Jia Tan <jiat0218@gmail.com> 18697Date: 2023-01-03 21:02:38 +0800 18698 18699 Translations: Add Korean translation of man pages. 18700 18701 Thanks to Seong-ho Cho 18702 18703 po4a/ko.po | 5552 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 18704 po4a/po4a.conf | 2 +- 18705 2 files changed, 5553 insertions(+), 1 deletion(-) 18706 18707commit c4145978d95ebf1690c778d354e15f7c2823d7a8 18708Author: Jia Tan <jiat0218@gmail.com> 18709Date: 2023-01-03 20:47:27 +0800 18710 18711 Translations: Update the Esperanto translation. 18712 18713 po/eo.po | 620 ++++++++++++++++++++++++++++++++++----------------------------- 18714 1 file changed, 332 insertions(+), 288 deletions(-) 18715 18716commit 4103a2e78ac60b00c888485cd967a5fe5d1b917c 18717Author: Lasse Collin <lasse.collin@tukaani.org> 18718Date: 2023-01-02 17:20:47 +0200 18719 18720 Bump version and soname for 5.5.0alpha. 18721 18722 5.5.0alpha won't be released, it's just to mark that 18723 the branch is not for stable 5.4.x. 18724 18725 Once again there is no API/ABI stability for new features 18726 in devel versions. The major soname won't be bumped even 18727 if API/ABI of new features breaks between devel releases. 18728 18729 src/liblzma/Makefile.am | 2 +- 18730 src/liblzma/api/lzma/version.h | 4 ++-- 18731 2 files changed, 3 insertions(+), 3 deletions(-) 18732 18733commit 73c9e6d6b970ccc3d5ad61dcaa21cba050e5df0a 18734Author: Lasse Collin <lasse.collin@tukaani.org> 18735Date: 2023-01-02 17:05:07 +0200 18736 18737 Build: Fix config.h comments. 18738 18739 configure.ac | 2 +- 18740 m4/tuklib_progname.m4 | 2 +- 18741 2 files changed, 2 insertions(+), 2 deletions(-) 18742 18743commit bb740e3b117f1a3c65152d01e5755523a908ecb1 18744Author: Jia Tan <jiat0218@gmail.com> 18745Date: 2023-01-02 22:33:48 +0800 18746 18747 Build: Only define HAVE_PROGRAM_INVOCATION_NAME if it is set to 1. 18748 18749 HAVE_DECL_PROGRAM_INVOCATION_NAME is renamed to 18750 HAVE_PROGRAM_INVOCATION_NAME. Previously, 18751 HAVE_DECL_PROGRAM_INVOCATION_NAME was always set when 18752 building with autotools. CMake would only set this when it was 1, and the 18753 dos/config.h did not define it. The new macro definition is consistent 18754 across build systems. 18755 18756 cmake/tuklib_progname.cmake | 5 ++--- 18757 m4/tuklib_progname.m4 | 5 ++++- 18758 src/common/tuklib_progname.c | 2 +- 18759 src/common/tuklib_progname.h | 2 +- 18760 4 files changed, 8 insertions(+), 6 deletions(-) 18761 18762commit 064cd385a716abc78d93a3612411a82d69ceb221 18763Author: Jia Tan <jiat0218@gmail.com> 18764Date: 2022-12-29 00:30:52 +0800 18765 18766 Adds test_index_hash to .gitignore. 18767 18768 .gitignore | 1 + 18769 1 file changed, 1 insertion(+) 18770 18771commit 3959162baec074511d83ba0fec1284c3ed724799 18772Author: Jia Tan <jiat0218@gmail.com> 18773Date: 2022-12-29 00:25:18 +0800 18774 18775 Tests: Creates test_index_hash.c 18776 18777 Tests all API functions exported from index_hash.h. Does not have a 18778 dedicated test for lzma_index_hash_end. 18779 18780 CMakeLists.txt | 2 + 18781 tests/Makefile.am | 3 + 18782 tests/test_index_hash.c | 379 ++++++++++++++++++++++++++++++++++++++++++++++++ 18783 3 files changed, 384 insertions(+) 18784 18785commit f16e12d5e755d371247202fcccbcccd1ec16b2cf 18786Author: Jia Tan <jiat0218@gmail.com> 18787Date: 2022-08-17 20:20:16 +0800 18788 18789 liblzma: Add NULL check to lzma_index_hash_append. 18790 18791 This is for consistency with lzma_index_append. 18792 18793 src/liblzma/common/index_hash.c | 2 +- 18794 1 file changed, 1 insertion(+), 1 deletion(-) 18795 18796commit 203b008eb220208981902e0db541c02d1c1c9f5e 18797Author: Jia Tan <jiat0218@gmail.com> 18798Date: 2022-08-17 17:59:51 +0800 18799 18800 liblzma: Replaced hardcoded 0x0 index indicator byte with macro 18801 18802 src/liblzma/common/index.h | 3 +++ 18803 src/liblzma/common/index_decoder.c | 2 +- 18804 src/liblzma/common/index_encoder.c | 2 +- 18805 src/liblzma/common/index_hash.c | 2 +- 18806 src/liblzma/common/stream_decoder.c | 3 ++- 18807 src/liblzma/common/stream_decoder_mt.c | 2 +- 18808 6 files changed, 9 insertions(+), 5 deletions(-) 18809 18810commit dfecda875211f737d0db92dc1d3c58a3a2afb0c0 18811Author: Lasse Collin <lasse.collin@tukaani.org> 18812Date: 2022-12-30 20:10:08 +0200 18813 18814 Tests: test_check: Test corner cases of CLMUL CRC64. 18815 18816 tests/test_check.c | 27 +++++++++++++++++++++++++++ 18817 1 file changed, 27 insertions(+) 18818 18819commit ce96bb20435212fe797d6d84738fb9fd4ea13cc7 18820Author: Lasse Collin <lasse.collin@tukaani.org> 18821Date: 2022-12-30 19:36:49 +0200 18822 18823 Tests: Clarify a comment in test_lzip_decoder.c. 18824 18825 tests/test_lzip_decoder.c | 8 ++++++-- 18826 1 file changed, 6 insertions(+), 2 deletions(-) 18827 18828commit 2fcba17fc4d7eda8fc60567169cf2a0e6fcfb2f8 18829Author: Jia Tan <jiat0218@gmail.com> 18830Date: 2022-12-29 01:55:19 +0800 18831 18832 xz: Includes <time.h> and <sys/time.h> conditionally in mytime.c. 18833 18834 Previously, mytime.c depended on mythread.h for <time.h> to be included. 18835 18836 src/xz/mytime.c | 4 +++- 18837 1 file changed, 3 insertions(+), 1 deletion(-) 18838 18839commit f82294c8318a7a0990583d51ac5c7de682ad36ef 18840Author: Jia Tan <jiat0218@gmail.com> 18841Date: 2022-12-29 01:15:27 +0800 18842 18843 liblzma: Includes sys/time.h conditionally in mythread 18844 18845 Previously, <sys/time.h> was always included, even if mythread only used 18846 clock_gettime. <time.h> is still needed even if clock_gettime is not used 18847 though because struct timespec is needed for mythread_condtime. 18848 18849 src/common/mythread.h | 8 +++++++- 18850 1 file changed, 7 insertions(+), 1 deletion(-) 18851 18852commit 74dae7d30091e906d6a92a57952dea4354473f9b 18853Author: Jia Tan <jiat0218@gmail.com> 18854Date: 2022-12-29 01:10:53 +0800 18855 18856 Build: No longer require HAVE_DECL_CLOCK_MONOTONIC to always be set. 18857 18858 Previously, if threading was enabled HAVE_DECL_CLOCK_MONOTONIC would always 18859 be set to 0 or 1. However, this macro was needed in xz so if xz was not 18860 built with threading and HAVE_DECL_CLOCK_MONOTONIC was not defined but 18861 HAVE_CLOCK_GETTIME was, it caused a warning during build. Now, 18862 HAVE_DECL_CLOCK_MONOTONIC has been renamed to HAVE_CLOCK_MONOTONIC and 18863 will only be set if it is 1. 18864 18865 CMakeLists.txt | 8 +++----- 18866 configure.ac | 5 ++++- 18867 src/common/mythread.h | 4 ++-- 18868 src/xz/mytime.c | 5 ++--- 18869 4 files changed, 11 insertions(+), 11 deletions(-) 18870 18871commit 7339e39dc060df6eda74a2c5b69961befc3d5d24 18872Author: Jia Tan <jiat0218@gmail.com> 18873Date: 2022-12-28 01:14:07 +0800 18874 18875 Translations: Add Ukrainian translations of man pages. 18876 18877 Thanks to Yuri Chornoivan 18878 18879 po4a/po4a.conf | 2 +- 18880 po4a/uk.po | 3676 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 18881 2 files changed, 3677 insertions(+), 1 deletion(-) 18882 18883commit 9f05c27a58ce8cd7803079aa295e41c24665ce6e 18884Author: Jia Tan <jiat0218@gmail.com> 18885Date: 2022-12-23 00:34:48 +0800 18886 18887 CI/CD: Create initial version of CI/CD workflow. 18888 18889 The CI/CD workflow will only execute on Ubuntu and MacOS latest version. 18890 The workflow will attempt to build with autotools and CMake and execute 18891 the tests. The workflow will run for all pull requests and pushes done 18892 to the master branch. 18893 18894 .github/workflows/ci.yml | 72 ++++++++++++++++++++++++ 18895 build-aux/ci_build.sh | 141 +++++++++++++++++++++++++++++++++++++++++++++++ 18896 2 files changed, 213 insertions(+) 18897 18898commit 1275ebfba74230dbd028049141423c79c8b83b8f 18899Author: Jia Tan <jiat0218@gmail.com> 18900Date: 2022-12-22 23:14:53 +0800 18901 18902 liblzma: Update documentation for lzma_filter_encoder. 18903 18904 src/liblzma/common/filter_encoder.c | 7 +++++-- 18905 1 file changed, 5 insertions(+), 2 deletions(-) 18906 18907commit 7c9ff5f1667a16733163b75dfd4b509662c387f4 18908Author: Jia Tan <jiat0218@gmail.com> 18909Date: 2022-12-21 21:12:03 +0800 18910 18911 Tests: Adds lzip decoder tests 18912 18913 .gitignore | 1 + 18914 tests/Makefile.am | 2 + 18915 tests/test_lzip_decoder.c | 471 ++++++++++++++++++++++++++++++++++++++++++++++ 18916 3 files changed, 474 insertions(+) 18917 18918commit 799ead162de63b8400733603d3abcd2e1977bdca 18919Author: Jia Cheong Tan <jiat0218@gmail.com> 18920Date: 2022-12-20 22:05:21 +0800 18921 18922 Doxygen: Update .gitignore for generating docs for in source build. 18923 18924 In source builds are not recommended, but we should still ignore 18925 the generated artifacts. 18926 18927 .gitignore | 2 ++ 18928 1 file changed, 2 insertions(+) 18929 18930commit 5f7ce42a16b1e86ca8408b5c670c25e2a12acc4e 18931Author: Jia Tan <jiat0218@gmail.com> 18932Date: 2022-12-20 20:46:44 +0800 18933 18934 liblzma: Fix lzma_microlzma_encoder() return value. 18935 18936 Using return_if_error on lzma_lzma_lclppb_encode was improper because 18937 return_if_error is expecting an lzma_ret value, but 18938 lzma_lzma_lclppb_encode returns a boolean. This could result in 18939 lzma_microlzma_encoder, which would be misleading for applications. 18940 18941 src/liblzma/common/microlzma_encoder.c | 3 ++- 18942 1 file changed, 2 insertions(+), 1 deletion(-) 18943 18944commit 8ace358d65059152d9a1f43f4770170d29d35754 18945Author: Jia Tan <jiat0218@gmail.com> 18946Date: 2022-12-16 20:58:55 +0800 18947 18948 CMake: Update .gitignore for CMake artifacts from in source build. 18949 18950 In source builds are not recommended, but we can make it easier 18951 by ignoring the generated artifacts from CMake. 18952 18953 .gitignore | 23 +++++++++++++++++++++++ 18954 1 file changed, 23 insertions(+) 18955 18956commit 8fd225a2c149f30aeac377e68eb5abf6b28300ad 18957Author: Lasse Collin <lasse.collin@tukaani.org> 18958Date: 2022-12-16 18:30:02 +0200 18959 18960 liblzma: Update authors list in arm64.c. 18961 18962 src/liblzma/simple/arm64.c | 1 + 18963 1 file changed, 1 insertion(+) 18964 18965commit b69da6d4bb6bb11fc0cf066920791990d2b22a06 18966Author: Lasse Collin <lasse.collin@tukaani.org> 18967Date: 2022-12-13 20:37:17 +0200 18968 18969 Bump version to 5.4.0 and soname to 5.4.0. 18970 18971 src/liblzma/Makefile.am | 2 +- 18972 src/liblzma/api/lzma/version.h | 6 +++--- 18973 src/liblzma/liblzma_generic.map | 2 +- 18974 src/liblzma/liblzma_linux.map | 2 +- 18975 4 files changed, 6 insertions(+), 6 deletions(-) 18976