1commit 4b73f2ec19a99ef465282fbce633e8deb33691b3 2Author: Lasse Collin <lasse.collin@tukaani.org> 3Date: 2026-03-31 17:26:16 +0300 4 5 Bump version and soname for 5.8.3 6 7 src/liblzma/Makefile.am | 2 +- 8 src/liblzma/api/lzma/version.h | 2 +- 9 2 files changed, 2 insertions(+), 2 deletions(-) 10 11commit 97b7440006d69a30048ff1ffc29fc7a0615e5d51 12Author: Lasse Collin <lasse.collin@tukaani.org> 13Date: 2026-03-31 17:26:16 +0300 14 15 Add NEWS for 5.8.3 16 17 NEWS | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 18 1 file changed, 54 insertions(+) 19 20commit 8e1022cfb1d177e482e487c202a0ab43dee761a3 21Author: Lasse Collin <lasse.collin@tukaani.org> 22Date: 2026-03-31 17:10:47 +0300 23 24 Translations: Run "make -C po update-po" 25 26 Update the PO files to contain the comment fix from 4e76651dbaf6. 27 28 po/ca.po | 148 ++++++++++++++++++++++++++++++------------------------------ 29 po/cs.po | 148 ++++++++++++++++++++++++++++++------------------------------ 30 po/da.po | 148 ++++++++++++++++++++++++++++++------------------------------ 31 po/de.po | 148 ++++++++++++++++++++++++++++++------------------------------ 32 po/eo.po | 148 ++++++++++++++++++++++++++++++------------------------------ 33 po/es.po | 148 ++++++++++++++++++++++++++++++------------------------------ 34 po/fi.po | 148 ++++++++++++++++++++++++++++++------------------------------ 35 po/fr.po | 148 ++++++++++++++++++++++++++++++------------------------------ 36 po/hr.po | 148 ++++++++++++++++++++++++++++++------------------------------ 37 po/hu.po | 148 ++++++++++++++++++++++++++++++------------------------------ 38 po/it.po | 148 ++++++++++++++++++++++++++++++------------------------------ 39 po/ka.po | 148 ++++++++++++++++++++++++++++++------------------------------ 40 po/ko.po | 148 ++++++++++++++++++++++++++++++------------------------------ 41 po/nl.po | 148 ++++++++++++++++++++++++++++++------------------------------ 42 po/pl.po | 148 ++++++++++++++++++++++++++++++------------------------------ 43 po/pt.po | 148 ++++++++++++++++++++++++++++++------------------------------ 44 po/pt_BR.po | 148 ++++++++++++++++++++++++++++++------------------------------ 45 po/ro.po | 148 ++++++++++++++++++++++++++++++------------------------------ 46 po/sr.po | 148 ++++++++++++++++++++++++++++++------------------------------ 47 po/sv.po | 148 ++++++++++++++++++++++++++++++------------------------------ 48 po/tr.po | 148 ++++++++++++++++++++++++++++++------------------------------ 49 po/uk.po | 148 ++++++++++++++++++++++++++++++------------------------------ 50 po/vi.po | 148 ++++++++++++++++++++++++++++++------------------------------ 51 po/zh_CN.po | 148 ++++++++++++++++++++++++++++++------------------------------ 52 po/zh_TW.po | 148 ++++++++++++++++++++++++++++++------------------------------ 53 25 files changed, 1850 insertions(+), 1850 deletions(-) 54 55commit a3ea8832bec11128597c454f5d14d05ef6010e3f 56Author: Lasse Collin <lasse.collin@tukaani.org> 57Date: 2026-03-29 20:29:40 +0300 58 59 Tests: Add a test for the lzma_index_prealloc() + lzma_index_append() bug 60 61 tests/test_index.c | 35 +++++++++++++++++++++++++++++++++++ 62 1 file changed, 35 insertions(+) 63 64commit c8c22869e780ff57c96b46939c3d79ff99395f87 65Author: Lasse Collin <lasse.collin@tukaani.org> 66Date: 2026-03-29 19:11:21 +0300 67 68 liblzma: Fix a buffer overflow in lzma_index_append() 69 70 If lzma_index_decoder() was used to decode an Index that contained no 71 Records, the resulting lzma_index had an invalid internal "prealloc" 72 value. If lzma_index_append() was called on this lzma_index, too 73 little memory would be allocated and a buffer overflow would occur. 74 75 While this combination of the API functions is meant to work, in the 76 real-world apps this call sequence is rare or might not exist at all. 77 78 This bug is older than xz 5.0.0, so all stable releases are affected. 79 80 Reported-by: GitHub user christos-spearbit 81 82 src/liblzma/common/index.c | 21 +++++++++++++++++++++ 83 1 file changed, 21 insertions(+) 84 85commit a37658bec72ed581a683b7498a75a70122b831b0 86Author: Lasse Collin <lasse.collin@tukaani.org> 87Date: 2026-03-27 21:15:12 +0200 88 89 CMake: Adjust warnings with MSVC and clang-cl 90 91 When using clang-cl, avoid the long list of warning options used with 92 GCC and Clang because, for MSVC compatibility, clang-cl's -Wall behaves 93 like -Weverything. 94 95 Add warning options for MSVC. Use them with clang-cl too. 96 97 CMakeLists.txt | 21 ++++++++++++++++++++- 98 1 file changed, 20 insertions(+), 1 deletion(-) 99 100commit 9e499f714cade4beade31c86dcb0de9fc72d0562 101Author: Lasse Collin <lasse.collin@tukaani.org> 102Date: 2026-03-27 21:14:50 +0200 103 104 CI: Don't disable individual warnings with clang-cl 105 106 .github/workflows/msvc.yml | 13 ------------- 107 1 file changed, 13 deletions(-) 108 109commit 1e00837f72e0551ab73927642a8f61aad80c958d 110Author: Lasse Collin <lasse.collin@tukaani.org> 111Date: 2026-03-22 12:02:48 +0200 112 113 CI: Add Haiku 114 115 .github/workflows/haiku.yml | 38 ++++++++++++++++++++++++++++++++++++++ 116 1 file changed, 38 insertions(+) 117 118commit 8082851b7848ac32fea7bc7cfb84d9b3ef5537b0 119Author: Lasse Collin <lasse.collin@tukaani.org> 120Date: 2026-03-22 11:30:20 +0200 121 122 Update THANKS 123 124 THANKS | 1 + 125 1 file changed, 1 insertion(+) 126 127commit 3cdd412bcea6bb5b4c5d41d2b4104230a5a9569c 128Author: Lasse Collin <lasse.collin@tukaani.org> 129Date: 2026-03-22 11:29:30 +0200 130 131 CI: Update MSYS2 132 133 Closes: https://github.com/tukaani-project/xz/pull/213 134 135 .github/workflows/msys2.yml | 2 +- 136 1 file changed, 1 insertion(+), 1 deletion(-) 137 138commit e38a4af340ca9738923a511b7e35b6390c03ec50 139Author: Lasse Collin <lasse.collin@tukaani.org> 140Date: 2026-03-22 11:29:23 +0200 141 142 CI: Update Solaris 143 144 Closes: https://github.com/tukaani-project/xz/pull/213 145 146 .github/workflows/solaris.yml | 2 +- 147 1 file changed, 1 insertion(+), 1 deletion(-) 148 149commit 40b1599217cc4f7cca6f48e0c32e709b9abd3639 150Author: Lasse Collin <lasse.collin@tukaani.org> 151Date: 2026-03-22 11:29:14 +0200 152 153 CI: Update OpenBSD 154 155 Closes: https://github.com/tukaani-project/xz/pull/213 156 157 .github/workflows/openbsd.yml | 2 +- 158 1 file changed, 1 insertion(+), 1 deletion(-) 159 160commit 3aaf2f136c3fcf1140b9dfa584640778be789abc 161Author: Lasse Collin <lasse.collin@tukaani.org> 162Date: 2026-03-22 11:29:08 +0200 163 164 CI: Update NetBSD 165 166 Closes: https://github.com/tukaani-project/xz/pull/213 167 168 .github/workflows/netbsd.yml | 2 +- 169 1 file changed, 1 insertion(+), 1 deletion(-) 170 171commit b5c26a249d21d293b441b21d22a1a81e7eec436a 172Author: Lasse Collin <lasse.collin@tukaani.org> 173Date: 2026-03-22 11:28:58 +0200 174 175 CI: Update FreeBSD 176 177 Closes: https://github.com/tukaani-project/xz/pull/213 178 179 .github/workflows/freebsd.yml | 2 +- 180 1 file changed, 1 insertion(+), 1 deletion(-) 181 182commit 1a73f4f917f25d19ae557f49af2fddd9ef9f0a4a 183Author: Lasse Collin <lasse.collin@tukaani.org> 184Date: 2026-03-22 11:28:47 +0200 185 186 CI: Update DragonFly BSD 187 188 Closes: https://github.com/tukaani-project/xz/pull/213 189 190 .github/workflows/dragonflybsd.yml | 2 +- 191 1 file changed, 1 insertion(+), 1 deletion(-) 192 193commit 5d61c5a3cf3be88b16179900ac5be82011a3a6bb 194Author: Salman Muin Kayser Chishti <13schishti@gmail.com> 195Date: 2026-02-28 09:10:46 +0000 196 197 CI: Upgrade GitHub Actions for Node 24 compatibility 198 199 Signed-off-by: Salman Muin Kayser Chishti <13schishti@gmail.com> 200 Closes: https://github.com/tukaani-project/xz/pull/212 201 202 .github/workflows/ci.yml | 4 ++-- 203 .github/workflows/cifuzz.yml | 2 +- 204 .github/workflows/coverity.yml | 2 +- 205 .github/workflows/dragonflybsd.yml | 2 +- 206 .github/workflows/freebsd.yml | 2 +- 207 .github/workflows/msvc.yml | 2 +- 208 .github/workflows/msys2.yml | 4 ++-- 209 .github/workflows/netbsd.yml | 2 +- 210 .github/workflows/openbsd.yml | 2 +- 211 .github/workflows/solaris.yml | 2 +- 212 10 files changed, 12 insertions(+), 12 deletions(-) 213 214commit 0ac3b93387c0191919ffa38de5f49f6b28164b35 215Author: Lasse Collin <lasse.collin@tukaani.org> 216Date: 2026-03-25 19:03:00 +0200 217 218 xz: Prevent an integer overflow in --files and --files0 219 220 This requires a filename (or something that pretends to be a filename) 221 of at least 2 GiB on a 32-bit platform, and that realloc() to 222 SIZE_MAX / 2 + 1 bytes has succeeded. 223 224 Fixes: https://github.com/tukaani-project/xz/pull/218 225 226 src/xz/main.c | 10 ++++++++++ 227 1 file changed, 10 insertions(+) 228 229commit 2faa141bdb47be94da2eae6df6f08858999a5911 230Author: Lasse Collin <lasse.collin@tukaani.org> 231Date: 2026-03-23 23:43:56 +0200 232 233 tuklib_integer: Fix inefficient aligned_writeXXne 234 235 The __builtin_assume_aligned was applied to the wrong argument which 236 made aligned writes worse on strict-align archs. 237 238 Aligned writes aren't used in liblzma, so this bug didn't matter in 239 this package; tuklib_integer.h is meant to be usable elsewhere too. 240 241 src/common/tuklib_integer.h | 19 +++++++++---------- 242 1 file changed, 9 insertions(+), 10 deletions(-) 243 244commit 685538271e3e213a18c5a925654aaa32c0b69f1e 245Author: Lasse Collin <lasse.collin@tukaani.org> 246Date: 2026-03-22 10:22:09 +0200 247 248 Build: Remove -Wpre-c2x-compat 249 250 It makes clang -std=gnu23 noisy about bool. It's also noisy about 251 [[__fallthrough__]] which is only used in C23 mode. 252 253 Reported-by: Collin Funk <collin.funk1@gmail.com> 254 255 CMakeLists.txt | 1 - 256 configure.ac | 1 - 257 2 files changed, 2 deletions(-) 258 259commit 3a78a82bd380c26bc7afda7565216c3383cedefe 260Author: Collin Funk <collin.funk1@gmail.com> 261Date: 2026-03-15 23:24:59 -0700 262 263 xz: Don't fsync directories on QNX 264 265 On QNX calling fsync on a directory fails with EINVAL. This causes the 266 following test failure: 267 268 $ cat tests/test_suffix.sh.log 269 /data/home/root/xz-5.8.2/src/xz/.libs/lt-xz: suffix_temp: Synchronizing the directory of the file failed: Invalid argument 270 Failed to decompress a file with a suffix set in raw format 271 FAIL test_suffix.sh (exit status: 1) 272 273 Closes: https://github.com/tukaani-project/xz/pull/216 274 275 src/xz/file_io.c | 3 ++- 276 1 file changed, 2 insertions(+), 1 deletion(-) 277 278commit bfc5f12a84a2a9df774ed16cd6eb58fd5ab24646 279Author: Lasse Collin <lasse.collin@tukaani.org> 280Date: 2026-02-25 17:33:42 +0200 281 282 Update THANKS 283 284 THANKS | 1 + 285 1 file changed, 1 insertion(+) 286 287commit 5553509f1a53ee160ea3bc871c716a75ba0b1ea0 288Author: Lasse Collin <lasse.collin@tukaani.org> 289Date: 2026-02-25 00:00:49 +0200 290 291 liblzma: Fix a copy-paste error in commented-out code 292 293 Fixes: https://github.com/dotnet/runtime/pull/124003#discussion_r2841960994 294 Fixes: 96b663f67c0e ("liblzma: Refactor CRC comments.") 295 296 src/liblzma/check/crc32_fast.c | 2 +- 297 1 file changed, 1 insertion(+), 1 deletion(-) 298 299commit 4e76651dbaf6a0159f2117482d778ff69127fdea 300Author: Lasse Collin <lasse.collin@tukaani.org> 301Date: 2026-02-24 18:34:19 +0200 302 303 Fix typos and grammar in comments and docs 304 305 Fixes: https://github.com/dotnet/runtime/pull/124003#discussion_r2789354505 306 Fixes: https://github.com/dotnet/runtime/pull/124003#discussion_r2789354515 307 Fixes: https://github.com/dotnet/runtime/pull/124003#discussion_r2820960196 308 309 po/Makevars | 2 +- 310 src/common/tuklib_gettext.h | 4 ++-- 311 src/common/tuklib_mbstr_wrap.h | 4 ++-- 312 src/common/w32_application.manifest.comments.txt | 2 +- 313 4 files changed, 6 insertions(+), 6 deletions(-) 314 315commit cd8a6231d084ee9ce0a7a285f99dc5721d1f4317 316Author: Lasse Collin <lasse.collin@tukaani.org> 317Date: 2026-02-24 18:24:29 +0200 318 319 tuklib_open_stdxxx: Fix a typo in macro name 320 321 It doesn't matter in this package, but it's good to fix it still. 322 323 Fixes: https://github.com/dotnet/runtime/pull/124003#discussion_r2782313660 324 325 src/common/tuklib_open_stdxxx.h | 2 +- 326 1 file changed, 1 insertion(+), 1 deletion(-) 327 328commit bf5d32f489fd7f33b2a629f9b78f5157301b49d8 329Author: Lasse Collin <lasse.collin@tukaani.org> 330Date: 2026-02-24 18:22:25 +0200 331 332 CMake: Fix a wrong #define 333 334 HAVE_SYS_PARAM_H was misspelled HAVE_PARAM_H. This might have broken 335 the build on systems where sysctl() is used to detect the amount of RAM 336 or the number of processor cores/threads. 337 338 The cpuset code for FreeBSD doesn't need the macro it so it was removed. 339 340 Fixes: https://github.com/dotnet/runtime/pull/124003#discussion_r2782313680 341 Fixes: https://github.com/dotnet/runtime/pull/124003#discussion_r2782313704 342 Fixes: 7e3493d40eac ("Build: Add very limited experimental CMake support.") 343 344 cmake/tuklib_cpucores.cmake | 4 ++-- 345 cmake/tuklib_physmem.cmake | 2 +- 346 2 files changed, 3 insertions(+), 3 deletions(-) 347 348commit b0f3b64a25bcd3a6a4cebc00866dea86590fac3e 349Author: Radek Zikmund <r.zikmund.rz@gmail.com> 350Date: 2026-02-12 15:24:15 +0100 351 352 liblzma/MSVC: Add a cast to fix a warning (C4057) with __cpuid() 353 354 __cpuid from MSVC (and also the old Intel ICC) use int[], while 355 __get_cpuid from <cpuid.h> in GCC and Clang use unsigned int[]. 356 Adding a cast is the simplest fix. 357 358 Link: https://github.com/tukaani-project/xz/pull/208 359 360 src/liblzma/check/crc_x86_clmul.h | 2 +- 361 1 file changed, 1 insertion(+), 1 deletion(-) 362 363commit b51d67f4a95f41ae3a64973acc0e44b9f078512f 364Author: Radek Zikmund <r.zikmund.rz@gmail.com> 365Date: 2026-02-23 17:50:00 +0100 366 367 CMake: Guard script configure_file() calls with ENABLE_SCRIPTS 368 369 The configure_file() calls for xzdiff, xzgrep, xzmore, and xzless 370 were running unconditionally within the if(UNIX) block, even when 371 ENABLE_SCRIPTS was OFF. This would cause a build failure if the 372 src/scripts/*.in files were not present. Deleting those files can 373 simplify license compliance when the scripts aren't needed. 374 375 Move the foreach loop and related code inside if(ENABLE_SCRIPTS) guard 376 so that configure_file() is only called when scripts are actually needed. 377 This is mostly whitespace changes to adjust the indentation. 378 379 Co-authored-by: Lasse Collin <lasse.collin@tukaani.org> 380 Closes: https://github.com/tukaani-project/xz/pull/210 381 382 CMakeLists.txt | 68 ++++++++++++++++++++++++++++------------------------------ 383 1 file changed, 33 insertions(+), 35 deletions(-) 384 385commit 1007bf08b5fddf088b3131e692210af4b4b7fd8c 386Author: Lasse Collin <lasse.collin@tukaani.org> 387Date: 2026-02-04 12:28:07 +0200 388 389 Translations: Add Arabic man page translations 390 391 Rendering of bidirectional text from man pages might not work perfectly 392 in all cases. 393 394 po4a/ar.po | 3905 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 395 po4a/po4a.conf | 2 +- 396 2 files changed, 3906 insertions(+), 1 deletion(-) 397 398commit 54147ad65af12d9e4f60a8ce59094a8a30ad5919 399Author: Lasse Collin <lasse.collin@tukaani.org> 400Date: 2026-01-25 13:51:09 +0200 401 402 Update THANKS 403 404 THANKS | 1 + 405 1 file changed, 1 insertion(+) 406 407commit d6bdb446f8da47ac2af8c309de8e7c80beae850e 408Author: Lasse Collin <lasse.collin@tukaani.org> 409Date: 2026-01-25 13:30:46 +0200 410 411 liblzma: Add the "License" property to liblzma.pc 412 413 The "License" property is a pkgconf extension. See pc(5). 414 pkg-config 0.29.2 (2017) ignores unrecognized properties so this 415 commit shouldn't create compatibility issues. 416 417 pkgconf provides bomtool which uses the "License" property to generate 418 a software bill of materials. In pkgconf.git there is spdxtool for the 419 same task but with different output format. 420 421 The pkgconf extensions "Copyright" and "Maintainer" would also be 422 used by bomtool and spdxtool, but I don't want to add those properties 423 at least for now. 424 425 Co-authored-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org> 426 Closes: https://github.com/tukaani-project/xz/pull/178 427 428 src/liblzma/liblzma.pc.in | 1 + 429 1 file changed, 1 insertion(+) 430 431commit 687bd3e30fbe54ae906d06a93e7f2aa8b121aa7b 432Author: Lasse Collin <lasse.collin@tukaani.org> 433Date: 2026-01-25 12:14:46 +0200 434 435 Update THANKS 436 437 THANKS | 2 ++ 438 1 file changed, 2 insertions(+) 439 440commit b80b6343a4b7df6bf56dcf07715f9f536af93306 441Author: Lasse Collin <lasse.collin@tukaani.org> 442Date: 2026-01-25 12:14:25 +0200 443 444 liblzma: Don't try to use x86-64 inline asm on ARM64EC 445 446 Reported-by: Chase Knowlden 447 Fixes: https://github.com/tukaani-project/xz/issues/206 448 449 src/liblzma/rangecoder/range_decoder.h | 1 + 450 1 file changed, 1 insertion(+) 451 452commit 47fb9d84c052912ca10dc9843cb296c860b182ac 453Author: Pino Toscano <toscano.pino@tiscali.it> 454Date: 2025-12-30 19:59:55 +0100 455 456 Autotools: Enable x86 assembler on Hurd by default 457 458 It has been enabled in Debian GNU/Hurd for 15+ years with no issues. 459 Hence, enable it by default also in the upstream sources. 460 461 The CMake build already had it enabled. 462 463 Link: https://salsa.debian.org/debian/xz-utils/-/blob/debian/5.8.2-2/debian/rules?ref_type=tags#L98 464 Closes: https://github.com/tukaani-project/xz/pull/204 465 466 configure.ac | 2 +- 467 1 file changed, 1 insertion(+), 1 deletion(-) 468 469commit 9f4c5a0d4817c9c7011cdfd00cfbe0ddda66a455 470Author: Lasse Collin <lasse.collin@tukaani.org> 471Date: 2025-12-17 14:49:12 +0200 472 473 doc/SHA256SUMS: Add 5.8.2 474 475 doc/SHA256SUMS | 6 ++++++ 476 1 file changed, 6 insertions(+) 477 478commit 3d078b52adbff566ccfc51067dfbf742ecf3ef86 479Author: Lasse Collin <lasse.collin@tukaani.org> 480Date: 2025-12-17 13:36:42 +0200 481 482 Bump version and soname for 5.8.2 483 484 src/liblzma/Makefile.am | 2 +- 485 src/liblzma/api/lzma/version.h | 2 +- 486 2 files changed, 2 insertions(+), 2 deletions(-) 487 488commit fb14afd5c9bf14d8c67ee11e4139885072071ddd 489Author: Lasse Collin <lasse.collin@tukaani.org> 490Date: 2025-12-17 13:36:35 +0200 491 492 Add NEWS for 5.8.2 493 494 NEWS | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 495 1 file changed, 72 insertions(+) 496 497commit 590f4713b29f0236ab944487f40069355a515dbc 498Author: Lasse Collin <lasse.collin@tukaani.org> 499Date: 2025-12-16 11:30:35 +0200 500 501 CMake: Bump maximum policy version to 4.2 502 503 CMP0186 is curious but we aren't affected. 504 505 CMakeLists.txt | 2 +- 506 1 file changed, 1 insertion(+), 1 deletion(-) 507 508commit 26d22ed16b6e38ce8ed45cb29076f454cd488762 509Author: Lasse Collin <lasse.collin@tukaani.org> 510Date: 2025-12-10 19:20:05 +0200 511 512 tuklib_integer/CMake: Log a message about unaligned access check 513 514 cmake/tuklib_integer.cmake | 8 ++++++++ 515 1 file changed, 8 insertions(+) 516 517commit f7381cf927576164c17be4e4c1edeec3cdaca7cf 518Author: Lasse Collin <lasse.collin@tukaani.org> 519Date: 2025-12-10 19:11:27 +0200 520 521 tuklib_integer/CMake: Don't run unaligned access checks unnecessarily 522 523 If the cache variable TUKLIB_FAST_UNALIGNED_ACCESS is already set, 524 the autodetection result isn't needed because the option() command 525 does nothing when the cache variable is already set. 526 527 This is largely white space change to indent the if...endif block. 528 529 cmake/tuklib_integer.cmake | 226 +++++++++++++++++++++++---------------------- 530 1 file changed, 117 insertions(+), 109 deletions(-) 531 532commit dc1a421ce35f10b9a0c00d1bd42f1fdac0c3e9eb 533Author: Lasse Collin <lasse.collin@tukaani.org> 534Date: 2025-12-10 16:49:55 +0200 535 536 tuklib_integer: Use CMAKE_C_COMPILER_ARCHITECTURE_ID when available 537 538 CMake >= 4.1 sets CMAKE_<LANG>_COMPILER_ARCHITECTURE_ID on many 539 platforms. The list of possible values are documented. Use this 540 variable when available. On older CMake versions CMAKE_SYSTEM_PROCESSOR 541 is still used, thus the regexes have to include values like ^amd64 still. 542 543 With old CMake versions, checking CMAKE_C_COMPILER_ARCHITECTURE_ID 544 is somewhat useful with MSVC because CMAKE_SYSTEM_PROCESSOR might 545 not match the target architecture. 546 547 cmake/tuklib_integer.cmake | 13 ++++++++++++- 548 1 file changed, 12 insertions(+), 1 deletion(-) 549 550commit c690101dddd784b75224a8935f56cd163d3e90a3 551Author: Lasse Collin <lasse.collin@tukaani.org> 552Date: 2025-12-10 16:49:55 +0200 553 554 tuklib_integer: Autodetect when -mstrict-align is used with GCC on ARM64 555 556 On ARM64, support for fast unaligned memory access was autodetected by 557 checking if __ARM_FEATURE_UNALIGNED is defined. However, at least GCC 558 versions up to 15.2.0 define the macro even when -mstrict-align has 559 been specified. Thus, autodetection with GCC doesn't work correctly, 560 and binaries built using -mstrict-align can be much slower than they 561 need to be, unless the user also passes --disable-unaligned-access 562 to configure or -DTUKLIB_FAST_UNALIGNED_ACCESS=OFF to cmake. 563 564 See the GCC bug: 565 566 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111555 567 568 Workaround the issue by using heuristics with GCC on ARM64. 569 570 With Clang, the detection using __ARM_FEATURE_UNALIGNED works. 571 It also works with GCC on 32-bit ARM. 572 573 Fixes: e5f13a66567b ("tuklib_integer: Autodetect support for unaligned access on ARM.") 574 575 cmake/tuklib_integer.cmake | 63 ++++++++++++++++++++++++++++++------- 576 m4/tuklib_integer.m4 | 78 +++++++++++++++++++++++++++++++++++----------- 577 2 files changed, 110 insertions(+), 31 deletions(-) 578 579commit d9b318f5b8a3524e90ac17471e79db7de012caf5 580Author: Lasse Collin <lasse.collin@tukaani.org> 581Date: 2025-12-09 18:02:23 +0200 582 583 CI: Update MSYS2 584 585 .github/workflows/msys2.yml | 4 ++-- 586 1 file changed, 2 insertions(+), 2 deletions(-) 587 588commit 700e32f1b7dd6d674f12bbdabc35a3bc4a2860f5 589Author: Lasse Collin <lasse.collin@tukaani.org> 590Date: 2025-12-09 18:02:05 +0200 591 592 CI: Update DragonFly BSD 593 594 .github/workflows/dragonflybsd.yml | 2 +- 595 1 file changed, 1 insertion(+), 1 deletion(-) 596 597commit a7b749389c64dfbee1c29d88e61e71186b472784 598Author: Lasse Collin <lasse.collin@tukaani.org> 599Date: 2025-12-09 17:58:52 +0200 600 601 CI: Update Solaris 602 603 .github/workflows/solaris.yml | 2 +- 604 1 file changed, 1 insertion(+), 1 deletion(-) 605 606commit e0b3c6ee0ab3243e48291e5f9b6333c3d052311d 607Author: Lasse Collin <lasse.collin@tukaani.org> 608Date: 2025-12-09 17:56:58 +0200 609 610 CI: Update NetBSD 611 612 .github/workflows/netbsd.yml | 2 +- 613 1 file changed, 1 insertion(+), 1 deletion(-) 614 615commit fbc1046248cfe3c730437ba7d98dde89b0eced3e 616Author: Lasse Collin <lasse.collin@tukaani.org> 617Date: 2025-12-09 17:54:54 +0200 618 619 CI: Update OpenBSD 620 621 .github/workflows/openbsd.yml | 2 +- 622 1 file changed, 1 insertion(+), 1 deletion(-) 623 624commit 8f0579ba5650bbbfa88a04adf8115b8fb4aff476 625Author: Lasse Collin <lasse.collin@tukaani.org> 626Date: 2025-12-09 17:52:01 +0200 627 628 CI: Update FreeBSD 629 630 .github/workflows/freebsd.yml | 4 +++- 631 1 file changed, 3 insertions(+), 1 deletion(-) 632 633commit f8424b0416266c393c84a315e3bdedbc19efa0a8 634Author: Lasse Collin <lasse.collin@tukaani.org> 635Date: 2025-12-09 17:40:05 +0200 636 637 Update THANKS 638 639 THANKS | 1 + 640 1 file changed, 1 insertion(+) 641 642commit c4340692d4490ff80e897d4840fadc033c46d81a 643Author: Lasse Collin <lasse.collin@tukaani.org> 644Date: 2025-12-09 13:01:36 +0200 645 646 Translations: Add src/xz/sandbox.c to POTFILES.in 647 648 There are no strings to translate in that file now, but it's good to 649 list it anyway in case translatable strings are added in the future. 650 651 Fixes: 374868d81d47 ("xz: Move sandboxing code to sandbox.c and improve Landlock sandbox.") 652 653 po/POTFILES.in | 1 + 654 1 file changed, 1 insertion(+) 655 656commit b8af36920b0857c0329f61414df5989093386db1 657Author: Lasse Collin <lasse.collin@tukaani.org> 658Date: 2025-12-09 12:55:45 +0200 659 660 xz: Never translate "Failed to enable the sandbox" 661 662 This was already the case in practice because I had forgotten to list 663 src/xz/sandbox.c in po/POTFILES.in. However, it seems better to never 664 translate this particular error message. It should almost never occur 665 and if it does, an untranslated message is should make it easier to 666 find bug reports about it. 667 668 src/xz/sandbox.c | 24 +++++++++++++++--------- 669 1 file changed, 15 insertions(+), 9 deletions(-) 670 671commit 5a7fc1af3d9ec115f796cba110eb78e63ff1df5c 672Author: Lasse Collin <lasse.collin@tukaani.org> 673Date: 2025-12-09 12:27:15 +0200 674 675 Translations: Update the Swedish man page translations 676 677 po4a/sv.po | 15 +++++---------- 678 1 file changed, 5 insertions(+), 10 deletions(-) 679 680commit 88531e5463d9f028387a11b78d53c9c269e6a3a0 681Author: Lasse Collin <lasse.collin@tukaani.org> 682Date: 2025-12-09 12:26:24 +0200 683 684 Translations: Update the Romanian man page translations 685 686 po4a/ro.po | 18 +++++++----------- 687 1 file changed, 7 insertions(+), 11 deletions(-) 688 689commit 8a817277192e6379a8c6f2eefbaed65c6b7d92fa 690Author: Lasse Collin <lasse.collin@tukaani.org> 691Date: 2025-12-09 12:13:36 +0200 692 693 Update THANKS 694 695 THANKS | 1 + 696 1 file changed, 1 insertion(+) 697 698commit 1ec43aa7810d159ed76a6188b17c0bb474ca5ab5 699Author: Lasse Collin <lasse.collin@tukaani.org> 700Date: 2025-12-09 12:13:36 +0200 701 702 CMake: Autodetect unaligned access support on LoongArch 703 704 This still relies on CMAKE_SYSTEM_PROCESSOR. CMake 4.1 added more 705 CMAKE_<LANG>_COMPILER_ARCHITECTURE_ID values to detect the arch in 706 a more defined manner, but 4.1 is too new to require for now. 707 708 Thanks-to: Li Chenggang <lichenggang@deepin.org> 709 Closes: https://github.com/tukaani-project/xz/pull/186 710 711 cmake/tuklib_integer.cmake | 81 ++++++++++++++++++++++++++++++++++++++++++++++ 712 1 file changed, 81 insertions(+) 713 714commit 7971566247914ec1854b125ff99c2a617f5c1e3a 715Author: Lasse Collin <lasse.collin@tukaani.org> 716Date: 2025-12-09 12:13:36 +0200 717 718 Autotools: Autodetect unaligned access support on LoongArch 719 720 According to [1] sections 7.4, 8.1, and 8.2, desktop and server 721 processors support fast unaligned access, but embedded systems likely 722 don't. 723 724 It's important that TUKLIB_FAST_UNALIGNED_ACCESS isn't defined when 725 -mstrict-align is in use because it will result in slower binaries 726 even if running on a processor that supports fast unaligned access. 727 It's because compilers will translate multibyte memcpy() to multiple 728 byte-by-byte instructions instead of wider loads and stores. The 729 compression times from [2] show this well: 730 731 Unaligned access CFLAGS Compression time 732 enabled -O2 -mno-strict-align 66.1 s 733 disabled -O2 -mno-strict-align 79.5 s 734 disabled -O2 -mstrict-align 79.9 s 735 enabled -O2 -mstrict-align 129.1 s 736 737 There currently (GCC 15.2) is no preprocessor macro on LoongArch 738 to detect if -mstrict-align or -mno-strict-align is in effect (the 739 default is -mno-strict-align). Use heuristics to detect which of the 740 flags is in effect. 741 742 [1] https://github.com/loongson/la-softdev-convention/blob/v0.2/la-softdev-convention.adoc 743 [2] https://github.com/tukaani-project/xz/pull/186#issuecomment-3494570304 744 745 Thanks-to: Li Chenggang <lichenggang@deepin.org> 746 Thanks-to: Xi Ruoyao 747 See: https://github.com/tukaani-project/xz/pull/186 748 749 m4/tuklib_integer.m4 | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 750 1 file changed, 68 insertions(+) 751 752commit 338f952c0039b153a1fbdf6a535c4bd6a61f33cd 753Author: Lasse Collin <lasse.collin@tukaani.org> 754Date: 2025-11-26 13:50:57 +0200 755 756 xz: Silence clang -Wunreachable-code-break 757 758 Fixes: a165d7df1964 ("xz: Add a new --filters-help option.") 759 760 src/xz/args.c | 1 - 761 1 file changed, 1 deletion(-) 762 763commit 723cee44d076281bce9c3d7bd2c17b0680bd8884 764Author: Lasse Collin <lasse.collin@tukaani.org> 765Date: 2025-11-26 13:50:57 +0200 766 767 liblzma: Remove unwanted semicolons 768 769 These didn't affect control flow. 770 771 src/liblzma/common/vli_decoder.c | 2 +- 772 src/liblzma/lzma/lzma_common.h | 4 ++-- 773 src/liblzma/rangecoder/range_decoder.h | 6 +++--- 774 3 files changed, 6 insertions(+), 6 deletions(-) 775 776commit 524f6a7384f15e52ec13c72adbdf18ddeecbc735 777Author: Lasse Collin <lasse.collin@tukaani.org> 778Date: 2025-11-26 13:50:57 +0200 779 780 Tests: Remove an unwanted semicolon from a macro definition 781 782 It didn't affect control flow. 783 784 Fixes: fe3bd438fb11 ("Tests: Fix memory leaks in test_block_header.") 785 786 tests/test_block_header.c | 2 +- 787 1 file changed, 1 insertion(+), 1 deletion(-) 788 789commit 0f41a28bfab98d1f5171ee5c9da6dfdc15f62549 790Author: Lasse Collin <lasse.collin@tukaani.org> 791Date: 2025-11-26 13:50:57 +0200 792 793 Build: Use -Wextra-semi-stmt when supported 794 795 CMakeLists.txt | 1 + 796 configure.ac | 1 + 797 2 files changed, 2 insertions(+) 798 799commit 91170c8cab72b94a697f5228f4df13483ef5be91 800Author: Lasse Collin <lasse.collin@tukaani.org> 801Date: 2025-11-26 13:50:57 +0200 802 803 CI: Add clang-cl 804 805 Fixes: https://github.com/tukaani-project/xz/issues/18#issuecomment-3577456136 806 807 .github/workflows/msvc.yml | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 808 1 file changed, 46 insertions(+) 809 810commit a3c6cb09113de978b971cbdacf5c4890d4237c28 811Author: Lasse Collin <lasse.collin@tukaani.org> 812Date: 2025-11-26 13:50:57 +0200 813 814 xz/Windows: Add a missing #include to fix the build with clang-cl 815 816 Fixes: https://github.com/tukaani-project/xz/issues/18#issuecomment-1986829734 817 Fixes: https://github.com/tukaani-project/xz/issues/18#issuecomment-3577456136 818 819 src/xz/util.c | 4 ++++ 820 1 file changed, 4 insertions(+) 821 822commit c410ccc62511ec95b20639defb10650ef9b75e8c 823Author: Lasse Collin <lasse.collin@tukaani.org> 824Date: 2025-11-25 21:05:37 +0200 825 826 xz: Check return value of sigaction() before calling raise() 827 828 Fixes: Coverity CID 456022 829 830 src/xz/signals.c | 10 ++++++++-- 831 1 file changed, 8 insertions(+), 2 deletions(-) 832 833commit 6cc2da0a4b180b71cb6e781c897052def103ad3e 834Author: Lasse Collin <lasse.collin@tukaani.org> 835Date: 2025-11-02 12:57:00 +0200 836 837 liblzma: Refactor a loop in lzma_filters_copy() 838 839 Arguably it's nicer if i doesn't wrap around when the loop terminates. 840 841 Fixes: Coverity CID 464589 842 Fixes: 6d118a0b9def ("Add lzma_filters_copy().") 843 844 src/liblzma/common/filter_common.c | 4 ++-- 845 1 file changed, 2 insertions(+), 2 deletions(-) 846 847commit 90b67853d57562c5ad4fdb3215ceb9b9bd3958bf 848Author: Lasse Collin <lasse.collin@tukaani.org> 849Date: 2025-11-02 12:17:50 +0200 850 851 liblzma: Silence two Coverity warnings 852 853 lzma_lzma_decoder_memusage() returns UINT64_MAX if lc/lp/pb aren't 854 valid. alone_decoder.c and lzip_decoder.c didn't check the return 855 value because in both it is known that lc/lp/pb are valid. Make them 856 call the _nocheck() variant instead which skips the validation (it 857 already existed for LZMA2's internal use). 858 859 Fixes: Coverity CID 464658 860 Fixes: Coverity CID 897069 861 862 src/liblzma/common/alone_decoder.c | 6 ++++-- 863 src/liblzma/common/lzip_decoder.c | 3 ++- 864 src/liblzma/lzma/lzma_decoder.h | 11 ++++++----- 865 3 files changed, 12 insertions(+), 8 deletions(-) 866 867commit be365b701024b9acbfef4035c6433a0fbb4be823 868Author: Lasse Collin <lasse.collin@tukaani.org> 869Date: 2025-11-02 12:17:50 +0200 870 871 liblzma: Fix a harmless read of shared variable without mutex 872 873 The partial_update_mode enumeration had three states, _DISABLED, 874 _START, and _ENABLED. Main thread changed it from _DISABLED to _START 875 while holding a mutex. Once set to _START, worker thread changed it 876 to _ENABLED without a mutex. Later main thread read it without a mutex, 877 so it could see either _START or _ENABLED. However, it made no 878 difference because the main thread checked for != _DISABLED, so 879 it didn't matter if it saw _START or _ENABLED. 880 881 Nevertheless, such things must not be done. It's clear it was a mistake 882 because there were two comments that directly contradicted each 883 other about how the variable was accessed. 884 885 Split the enumeration into two booleans: 886 887 - partial_update_enabled: A worker thread locks the mutex to read 888 this variable and the main thread locks the mutex to change the 889 value. Because only the main thread modifies the variable, the 890 main thread can read the value without locking the mutex. 891 This variable replaces the _DISABLED -> _START transition. 892 893 - partial_update_started is for worker thread's internal use and thus 894 needs no mutex. This replaces the _START -> _ENABLED transition. 895 896 Fixes: Coverity CID 456025 897 Fixes: bd93b776c1bd ("liblzma: Fix a deadlock in threaded decoder.") 898 899 src/liblzma/common/stream_decoder_mt.c | 79 +++++++++++++++------------------- 900 1 file changed, 34 insertions(+), 45 deletions(-) 901 902commit 2686554da0103580a472919220931c397b1d1f7a 903Author: Lasse Collin <lasse.collin@tukaani.org> 904Date: 2025-11-02 12:17:50 +0200 905 906 CI: Add Coverity Scan 907 908 Co-authored-by: Lasse Collin <lasse.collin@tukaani.org> 909 Fixes: https://github.com/tukaani-project/xz/issues/198 910 911 .github/workflows/coverity.yml | 38 ++++++++++++++++++++++++++++++++++++++ 912 1 file changed, 38 insertions(+) 913 914commit 1b30734c9c08a3f628574d172f1a6034277a2163 915Author: Lasse Collin <lasse.collin@tukaani.org> 916Date: 2025-11-25 13:55:35 +0200 917 918 Change the sorting order in THANKS 919 920 In short, sort the names with this command (-k1,1 isn't needed because 921 the lines with names start with " -"): 922 923 LC_ALL=en_US.UTF-8 sort -k2,2 -k3,3 -k4,4 -k5,5 924 925 When THANKS was created, I wrote the names as "First Last" and attempted 926 to keep them sorted by last name / surname / family name. This works 927 with many names in THANKS, but it becomes complicated with names that 928 don't fit that pattern. For example, names that are written as 929 "Last First" can be manually sorted by family name, but only if one 930 knows which part of the name is the family name.[*] And of course, 931 the concept of first/last name doesn't apply to all names. 932 933 [*] xz had a co-maintainer who could help me with such names, 934 but fortunately he isn't working on the project anymore. 935 936 Adding the names in chronological order could have worked too, although 937 if something is contributed by multiple people, one would still have to 938 decide how to sort the names within the batch. Another downside would 939 be that if THANKS is updated in more than one work-in-progress branch, 940 merge conflicts would occur more often. 941 942 Don't attempt to sort by last name. Let's be happy that people tend to 943 provide names that can be expressed in a reasonable number of printable 944 Unicode characters. In practice, people have been even nicer: if the 945 native language doesn't use a Latin script alphabet, people often provide 946 a transliterated name (only or in addition to the original spelling), 947 which is very much appreciated by those who don't know the native script. 948 949 Treat the names as opaque strings or space-separated strings for sorting 950 purposes. This means that most names will now be sorted by first name. 951 There still are many choices how to sort: 952 953 (1) LC_ALL=en_US.UTF-8 sort 954 955 The project is in English, so this may sound like a logical choice. 956 However, spaces have a lower weight than letters, which results in 957 this order: 958 959 - A Ba 960 - Ab C 961 - A Bc 962 - A Bd 963 964 (2) LC_ALL=en_US.UTF-8 sort -k2,2 965 966 This first sorts by the first word and then by the rest of the 967 string. It's -k2,2 instead of -k1,1 to skip the leading dash. 968 969 - A Ba 970 - A Bc 971 - A Bd 972 - Ab C 973 974 I like this more than (1). One could add -k3,3 -k4,4 -k5,5 ... too. 975 With current THANKS it makes no difference but it might some day. 976 977 NOTE: The ordering in en_US.UTF-8 can differ between libc versions 978 and operating systems. Luckily it's not a big deal in THANKS. 979 980 (3) LC_ALL=en_US.UTF-8 sort -f -k2,2 981 982 Passing -f (--ignore-case) to sort affects sorting of single-byte 983 characters but not multibyte characters (GNU coreutils 9.9): 984 985 No -f With -f LC_ALL=C 986 Aa A.A A.A 987 A.A Aa Aa 988 Ää Ää Ä.Ä 989 Ä.Ä Ä.Ä Ää 990 991 In GNU coreutils, the THANKS file is sorted using "sort -f -k1,1". 992 There is also a basic check that the en_US.UTF-8 locale is 993 behaving as expected. 994 995 (4) LC_ALL=C sort 996 997 This sorts by byte order which in UTF-8 is the same as Unicode 998 code point order. With the strings in (1) and (2), this produces 999 the same result as in (2). The difference in (3) can be seen above. 1000 1001 The results differ from en_US.UTF-8 when a name component starts 1002 with a lower case ASCII letter (like "von" or "de"). Worse, any 1003 non-ASCII characters sort after ASCII chars. These properties might 1004 look weird in English language text, although it's good to remember 1005 that en_US.UTF-8 sorting can appear weird too if one's native 1006 language isn't English. 1007 1008 The choice between (2) and (4) was difficult but I went with (2). 1009 1010 ;-) 1011 1012 THANKS | 414 ++++++++++++++++++++++++++++++++--------------------------------- 1013 1 file changed, 207 insertions(+), 207 deletions(-) 1014 1015commit 8bb516887c1912106a72db96216cab46954e6190 1016Author: Lasse Collin <lasse.collin@tukaani.org> 1017Date: 2025-11-23 20:39:28 +0200 1018 1019 Landlock: Add missing #ifdefs 1020 1021 The build was broken on distros that have an old <sys/landlock.h>. 1022 1023 Fixes: 2b2652e914b1 ("Landlock: Workaround a bug in RHEL 9 kernel") 1024 1025 src/common/my_landlock.h | 6 ++++++ 1026 1 file changed, 6 insertions(+) 1027 1028commit 23c95c6a7c374962103dbd35cb79fdd5a6fe8b52 1029Author: Lasse Collin <lasse.collin@tukaani.org> 1030Date: 2025-11-23 20:13:50 +0200 1031 1032 Update THANKS 1033 1034 THANKS | 2 ++ 1035 1 file changed, 2 insertions(+) 1036 1037commit 2b2652e914b1c38d4c009a8dcac11dfee9c7e008 1038Author: Lasse Collin <lasse.collin@tukaani.org> 1039Date: 2025-11-23 20:13:49 +0200 1040 1041 Landlock: Workaround a bug in RHEL 9 kernel 1042 1043 If one runs xz 5.8.0 or 5.8.1 from some other distribution in a container 1044 on RHEL 9, xz will fail with the message "Failed to enable the sandbox". 1045 1046 RHEL 9 kernel since 5.14.0-603.el9 (2025-07-30) claims to support 1047 Landlock ABI version 6, but it lacks support for LANDLOCK_SCOPE_SIGNAL. 1048 The issue is still present in 5.14.0-643.el9 (2025-11-22). Red Hat is 1049 aware of the issue, but I don't know when it will be fixed. 1050 1051 The sandbox is meant to be transparent to users, thus there isn't and 1052 won't be a command line option to disable it. Instead, add a workaround 1053 to keep xz working on the buggy RHEL 9 kernels. 1054 1055 Reported-by: Richard W.M. Jones 1056 Thanks-to: Pavel Raiskup 1057 Tested-by: Orgad Shaneh 1058 Tested-by: Richard W.M. Jones 1059 Fixes: https://github.com/tukaani-project/xz/issues/199 1060 Link: https://issues.redhat.com/browse/RHEL-125143 1061 Link: https://bugzilla.redhat.com/show_bug.cgi?id=2407105 1062 Link: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/65BDSY56R5ZJRTUC4B6CIVCVLY4LG4ME/ 1063 1064 src/common/my_landlock.h | 27 ++++++++++++++++++++++++++- 1065 1 file changed, 26 insertions(+), 1 deletion(-) 1066 1067commit ee75c76958dd891906745125590563ab64e85995 1068Author: Lasse Collin <lasse.collin@tukaani.org> 1069Date: 2025-11-23 20:13:37 +0200 1070 1071 Landlock: Cache the ABI version 1072 1073 In xz it can avoid up to two syscalls that query the ABI version. 1074 1075 src/common/my_landlock.h | 14 +++++++++++++- 1076 1 file changed, 13 insertions(+), 1 deletion(-) 1077 1078commit f57b1716cd0853474980c90a892204dee9bdea1a 1079Author: Lasse Collin <lasse.collin@tukaani.org> 1080Date: 2025-11-03 14:52:45 +0200 1081 1082 Update THANKS 1083 1084 THANKS | 1 + 1085 1 file changed, 1 insertion(+) 1086 1087commit 211cde09236165dbd379644753337be1de64b151 1088Author: Lasse Collin <lasse.collin@tukaani.org> 1089Date: 2025-11-03 12:41:31 +0200 1090 1091 mythread.h: Fix the build on Emscripten when threading is disabled 1092 1093 To make a non-threaded liblzma-only build work with WASI SDK, <signal.h> 1094 and mythread_sigmask() were omitted from mythread.h in the commit 1095 81db3b889830. This broke non-threaded full build with Emscripten because 1096 src/xz/signals.c needs mythread_sigmask() (liblzma-only build was fine). 1097 1098 If __wasm__ is defined, omit <signal.h> and mythread_sigmask() in 1099 non-threaded builds only when __EMSCRIPTEN__ isn't defined. 1100 1101 Reported-by: Marcus Tillmanns 1102 Thanks-to: ChanTsune 1103 Fixes: https://github.com/tukaani-project/xz/issues/161 1104 Fixes: 81db3b889830 ("mythread.h: Disable signal functions in builds targeting Wasm + WASI.") 1105 1106 src/common/mythread.h | 3 ++- 1107 1 file changed, 2 insertions(+), 1 deletion(-) 1108 1109commit cbf50a99e3f0c2735fd573e166baf37df063b37b 1110Author: Lasse Collin <lasse.collin@tukaani.org> 1111Date: 2025-11-03 11:56:32 +0200 1112 1113 Translations: Update the Serbian man page translations 1114 1115 The earlier bug fixes are now included in the Translation Project. 1116 1117 po4a/sr.po | 4 ++-- 1118 1 file changed, 2 insertions(+), 2 deletions(-) 1119 1120commit 68d1591187512d8872615c8a904d43073440d93f 1121Author: Lasse Collin <lasse.collin@tukaani.org> 1122Date: 2025-11-02 19:40:55 +0200 1123 1124 xz: Silence a compiler warning when signals_block_count is unused 1125 1126 Move the static variable signals_block_count to the #ifndef block 1127 that already has the functions that need the variable. 1128 1129 src/xz/signals.c | 7 ++++--- 1130 1 file changed, 4 insertions(+), 3 deletions(-) 1131 1132commit beca015891fbd22657663ec23809184dda0677cd 1133Author: Lasse Collin <lasse.collin@tukaani.org> 1134Date: 2025-11-02 17:45:20 +0200 1135 1136 xz: Silence a warning from Clang on glibc systems 1137 1138 Fixes: e8838b2f5922 ("xz: Look at resource limits when determining the default memlimit") 1139 1140 src/xz/hardware.c | 13 +++++++++++++ 1141 1 file changed, 13 insertions(+) 1142 1143commit 3e394278ed537575b5db43c09989c6ca99f762de 1144Author: Lasse Collin <lasse.collin@tukaani.org> 1145Date: 2025-11-02 14:37:52 +0200 1146 1147 Translations: Update the Serbian man page translations 1148 1149 Preserve the bug fixes made in 71ad5e82888f and 4f52e7387012 because 1150 upstream hasn't included them. 1151 1152 po4a/sr.po | 17 ++++++----------- 1153 1 file changed, 6 insertions(+), 11 deletions(-) 1154 1155commit ace28e35732fc43f58ea1aac146fdb73084f2548 1156Author: Lasse Collin <lasse.collin@tukaani.org> 1157Date: 2025-11-02 14:27:10 +0200 1158 1159 Translations: Update the Korean man page translations 1160 1161 po4a/ko.po | 17 ++++++----------- 1162 1 file changed, 6 insertions(+), 11 deletions(-) 1163 1164commit ffd14a099f0d8c92d4f74018d3a52bd2327df4db 1165Author: Lasse Collin <lasse.collin@tukaani.org> 1166Date: 2025-11-02 14:24:43 +0200 1167 1168 Translations: Update the Italian man page translations 1169 1170 po4a/it.po | 15 +++++---------- 1171 1 file changed, 5 insertions(+), 10 deletions(-) 1172 1173commit 6f3152874ee375b581aa858fccab7865dcbf6403 1174Author: Lasse Collin <lasse.collin@tukaani.org> 1175Date: 2025-11-02 14:12:23 +0200 1176 1177 Translations: Update the Ukrainian man page translations 1178 1179 po4a/uk.po | 15 +++++---------- 1180 1 file changed, 5 insertions(+), 10 deletions(-) 1181 1182commit ef67e051d71938a23713d9782a3f0c470ac51b1e 1183Author: Lasse Collin <lasse.collin@tukaani.org> 1184Date: 2025-09-28 18:32:05 +0300 1185 1186 liblzma: Fix build on old Linux/glibc on ARM64 1187 1188 getauxval() can be available even if HWCAP_CRC32 isn't #defined, so 1189 both have to be checked. HWCAP_CRC32 was added in glibc 2.24 (2016). 1190 1191 Fixes: https://github.com/tukaani-project/xz/issues/190 1192 1193 CMakeLists.txt | 7 +++++++ 1194 configure.ac | 6 +++++- 1195 src/liblzma/check/crc32_arm64.h | 5 +++-- 1196 src/liblzma/check/crc_common.h | 3 ++- 1197 4 files changed, 17 insertions(+), 4 deletions(-) 1198 1199commit 71c2ede383f6dc6661b8a9d844f4bcf81c563643 1200Author: Lasse Collin <lasse.collin@tukaani.org> 1201Date: 2025-10-31 14:36:26 +0200 1202 1203 CI: Update Solaris 1204 1205 .github/workflows/solaris.yml | 2 +- 1206 1 file changed, 1 insertion(+), 1 deletion(-) 1207 1208commit 02da8de0edddd31a3e9818c2200b97c446d6eb5b 1209Author: Lasse Collin <lasse.collin@tukaani.org> 1210Date: 2025-10-31 14:32:47 +0200 1211 1212 CI: Update DragonFly BSD 1213 1214 .github/workflows/dragonflybsd.yml | 8 ++++---- 1215 1 file changed, 4 insertions(+), 4 deletions(-) 1216 1217commit 75b18d325f6a993eac2d5f44c7aad941aa20df94 1218Author: Lasse Collin <lasse.collin@tukaani.org> 1219Date: 2025-10-31 14:30:24 +0200 1220 1221 CI: Update NetBSD 1222 1223 .github/workflows/netbsd.yml | 2 +- 1224 1 file changed, 1 insertion(+), 1 deletion(-) 1225 1226commit 0102072915f38e747ee55aa9c52351dfe81b8c14 1227Author: Lasse Collin <lasse.collin@tukaani.org> 1228Date: 2025-10-31 14:21:37 +0200 1229 1230 CI: Update FreeBSD 1231 1232 .github/workflows/freebsd.yml | 2 +- 1233 1 file changed, 1 insertion(+), 1 deletion(-) 1234 1235commit 83419783a67a6097c7d5ed5663734c04eb8c8b55 1236Author: Lasse Collin <lasse.collin@tukaani.org> 1237Date: 2025-10-31 14:17:30 +0200 1238 1239 CI: Update OpenBSD 1240 1241 .github/workflows/openbsd.yml | 6 +++--- 1242 1 file changed, 3 insertions(+), 3 deletions(-) 1243 1244commit 3b5f5af9bcd9b5752608a099fcfab331c0c613b3 1245Author: Lasse Collin <lasse.collin@tukaani.org> 1246Date: 2025-10-26 12:07:34 +0200 1247 1248 Update THANKS 1249 1250 THANKS | 2 ++ 1251 1 file changed, 2 insertions(+) 1252 1253commit e8838b2f59221f46bf34c79431d286e8ac34fb8b 1254Author: Kirill A. Korinsky <kirill@korins.ky> 1255Date: 2025-10-26 12:07:34 +0200 1256 1257 xz: Look at resource limits when determining the default memlimit 1258 1259 When no memory usage limits have been set by the user, the default 1260 for multithreaded mode has been 1/4 of total RAM. If this limit is 1261 too high and memory allocation fails, liblzma (and xz) fail. Perhaps 1262 liblzma should handle it better by reducing the number of threads 1263 and continuing with the amount of memory it can allocate, but currently 1264 that isn't the case. 1265 1266 If resource limits were set to about 1/4 of RAM or lower, then xz 1267 could fail for the above reason. This commit makes xz look at 1268 RLIMIT_DATA, RLIMIT_AS, and RLIMIT_VMEM when they are available, 1269 and set the limit 64 MiB below the lowest of those limits. This is 1270 more or less a hack just like the 1/4-of-RAM method is, but this is 1271 simple and quick to implement. 1272 1273 On Linux, there are other limits like cgroup v2 memory.max which 1274 can still make xz fail. The same is likely possible with FreeBSD's 1275 rctl(8). 1276 1277 Co-authored-by: Lasse Collin <lasse.collin@tukaani.org> 1278 Thanks-to: Fangrui Song 1279 Fixes: https://github.com/tukaani-project/xz/issues/195 1280 Closes: https://github.com/tukaani-project/xz/pull/196 1281 1282 CMakeLists.txt | 3 +++ 1283 configure.ac | 4 ++-- 1284 src/xz/hardware.c | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1285 3 files changed, 64 insertions(+), 2 deletions(-) 1286 1287commit 8d26b72915e0d373f898b55935505857c30dbdb3 1288Author: Lasse Collin <lasse.collin@tukaani.org> 1289Date: 2025-10-01 12:46:26 +0300 1290 1291 CI: Remove windows-2019 (which had VS 2019) 1292 1293 GitHub has removed the runner image. 1294 1295 A breakage with CLMUL CRC code occurred with VS 2019 but not 2022, 1296 see b5a5d9e3f702. MS supports VS 2019 for a few more years, so it's 1297 unfortunate that it can no longer be tested on GitHub. 1298 1299 .github/workflows/msvc.yml | 2 +- 1300 1 file changed, 1 insertion(+), 1 deletion(-) 1301 1302commit 32412bd2a42fda639765c3046e91f964e286b6d9 1303Author: Lasse Collin <lasse.collin@tukaani.org> 1304Date: 2025-09-29 19:34:58 +0300 1305 1306 Update THANKS 1307 1308 THANKS | 3 +++ 1309 1 file changed, 3 insertions(+) 1310 1311commit eaa150df9803c982adf28d4533c7a4264ea17757 1312Author: Lakshmi-Surekha <Lakshmi.Kovvuri@ibm.com> 1313Date: 2025-07-17 23:27:06 -0500 1314 1315 xz: Don't fsync() directories on AIX 1316 1317 It fails with EBADF. 1318 1319 Fixes: https://github.com/tukaani-project/xz/issues/188 1320 Closes: https://github.com/tukaani-project/xz/pull/189 1321 1322 src/xz/file_io.c | 3 ++- 1323 1 file changed, 2 insertions(+), 1 deletion(-) 1324 1325commit 61b114e92f53b7977aad69f8a7130fc25d8a80e5 1326Author: Lasse Collin <lasse.collin@tukaani.org> 1327Date: 2025-09-29 18:37:19 +0300 1328 1329 liblzma: Document that lzma_allocator.free(opaque, NULL) is possible 1330 1331 It feels better to fix the docs than change the code because this 1332 way newly-written applications will be forced to be compatible with 1333 the lzma_allocator behavior of old liblzma versions. It can matter 1334 if someone builds the application against an older liblzma version. 1335 1336 Fixes: https://github.com/tukaani-project/xz/issues/183 1337 1338 src/liblzma/api/lzma/base.h | 4 +++- 1339 1 file changed, 3 insertions(+), 1 deletion(-) 1340 1341commit 6d287a3ae90e1b990294f3d5264003d81e853c5e 1342Author: Simon Josefsson <simon@josefsson.org> 1343Date: 2025-08-26 09:41:02 +0200 1344 1345 Update GPLv2 and LGPLv2.1 copies from gnu.org 1346 1347 Closes: https://github.com/tukaani-project/xz/pull/194 1348 1349 COPYING.GPLv2 | 9 ++++----- 1350 COPYING.LGPLv2.1 | 9 ++++----- 1351 2 files changed, 8 insertions(+), 10 deletions(-) 1352 1353commit 41a421dbadf13af2a59aaafa43836026b83340a7 1354Author: Lasse Collin <lasse.collin@tukaani.org> 1355Date: 2025-05-24 12:07:13 +0300 1356 1357 tests/test_suffix.sh: Avoid variables in printf format string 1358 1359 tests/test_suffix.sh | 4 ++-- 1360 1 file changed, 2 insertions(+), 2 deletions(-) 1361 1362commit a2c6aa8764a2e5248572d461305bd05c5950bf94 1363Author: Lasse Collin <lasse.collin@tukaani.org> 1364Date: 2025-05-24 12:02:09 +0300 1365 1366 build-aux/manconv.sh: Add quotes 1367 1368 build-aux/manconv.sh | 8 ++++---- 1369 1 file changed, 4 insertions(+), 4 deletions(-) 1370 1371commit 8e4153253eea2b5a9466467b2ce0249e56277c9a 1372Author: Lasse Collin <lasse.collin@tukaani.org> 1373Date: 2025-05-24 12:01:35 +0300 1374 1375 windows/build.bash: Add quotes 1376 1377 In this case they aren't needed but it's better style. 1378 1379 windows/build.bash | 4 ++-- 1380 1 file changed, 2 insertions(+), 2 deletions(-) 1381 1382commit 37a57a926dd1ae6cde1544d8487e27982d2db4a4 1383Author: Lasse Collin <lasse.collin@tukaani.org> 1384Date: 2025-05-24 12:00:13 +0300 1385 1386 po4a/update-po: Ensure that a glob won't expand to a command line option 1387 1388 po4a/update-po | 2 +- 1389 1 file changed, 1 insertion(+), 1 deletion(-) 1390 1391commit e3ba73034a3f8e414882af39d62f479e9717e061 1392Author: Lasse Collin <lasse.collin@tukaani.org> 1393Date: 2025-05-24 11:57:23 +0300 1394 1395 liblzma: validate_map.sh: Catch some unlikely errors 1396 1397 src/liblzma/validate_map.sh | 4 ++-- 1398 1 file changed, 2 insertions(+), 2 deletions(-) 1399 1400commit 067cecdea69067973e44dc1afb9be763faccecb2 1401Author: Lasse Collin <lasse.collin@tukaani.org> 1402Date: 2025-05-24 11:55:59 +0300 1403 1404 CI: Catch unsupported arguments in ci_build.bash 1405 1406 build-aux/ci_build.bash | 4 ++++ 1407 1 file changed, 4 insertions(+) 1408 1409commit 4fc6208abebfe6b8c8348c412b4bcc594ae11c88 1410Author: Lasse Collin <lasse.collin@tukaani.org> 1411Date: 2025-05-13 20:42:26 +0300 1412 1413 Scripts: Add shellcheck directives to silence warnings 1414 1415 Set also shell because the xz*.in files start with '#!@POSIX_SHELL@'. 1416 1417 SC1003 and SC2016 are only info messages, not warnings. Several other 1418 shellcheck info messages remain. They are safe to ignore, but I didn't 1419 want to disable them now. 1420 1421 Partially-fixes: https://github.com/tukaani-project/xz/issues/174 1422 1423 src/scripts/xzdiff.in | 4 ++++ 1424 src/scripts/xzgrep.in | 2 ++ 1425 src/scripts/xzless.in | 2 ++ 1426 src/scripts/xzmore.in | 2 ++ 1427 4 files changed, 10 insertions(+) 1428 1429commit 7844aff1a838362403b332c3a68d5732a192923a 1430Author: Lasse Collin <lasse.collin@tukaani.org> 1431Date: 2025-05-03 22:45:15 +0300 1432 1433 Scripts: Silence two shellcheck warnings 1434 1435 src/scripts/xzdiff.in | 2 +- 1436 src/scripts/xzmore.in | 2 +- 1437 2 files changed, 2 insertions(+), 2 deletions(-) 1438 1439commit 4d439aaeed5c991fbc1ff78d7616e179c30fca1d 1440Author: Lasse Collin <lasse.collin@tukaani.org> 1441Date: 2025-09-29 17:29:23 +0300 1442 1443 Translations: Add Swedish man page translations 1444 1445 po4a/po4a.conf | 2 +- 1446 po4a/sv.po | 3909 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1447 2 files changed, 3910 insertions(+), 1 deletion(-) 1448 1449commit dd4a1b259936880e04669b43e778828b60619860 1450Author: Lasse Collin <lasse.collin@tukaani.org> 1451Date: 2025-05-23 13:09:14 +0300 1452 1453 CI: Add timeout-minutes 1454 1455 Sometimes the VM workflows (like FreeBSD VM on Ubuntu) get stuck 1456 and the default timeout is six hours. While at it, set a sensible 1457 timeout for all workflows. 1458 1459 .github/workflows/ci.yml | 1 + 1460 .github/workflows/cifuzz.yml | 1 + 1461 .github/workflows/dragonflybsd.yml | 1 + 1462 .github/workflows/freebsd.yml | 1 + 1463 .github/workflows/msvc.yml | 1 + 1464 .github/workflows/msys2.yml | 1 + 1465 .github/workflows/netbsd.yml | 1 + 1466 .github/workflows/openbsd.yml | 1 + 1467 .github/workflows/solaris.yml | 1 + 1468 9 files changed, 9 insertions(+) 1469 1470commit d660fe5d56a804b0ef3eea550fdcd51dbe17e45b 1471Author: Lasse Collin <lasse.collin@tukaani.org> 1472Date: 2025-05-23 12:25:36 +0300 1473 1474 liblzma: Fix grammar in API docs 1475 1476 Fixes: a27920002dbc ("liblzma: Add generic support for input seeking (LZMA_SEEK).") 1477 1478 src/liblzma/api/lzma/base.h | 2 +- 1479 1 file changed, 1 insertion(+), 1 deletion(-) 1480 1481commit ab45bdf4322879dc2859b1f66f1f8cf89cdebe2c 1482Author: Lasse Collin <lasse.collin@tukaani.org> 1483Date: 2025-05-21 16:07:01 +0300 1484 1485 Update THANKS 1486 1487 THANKS | 1 + 1488 1 file changed, 1 insertion(+) 1489 1490commit f0239936532d40be05e75384c37fb8d6c1bb4ff6 1491Author: Lasse Collin <lasse.collin@tukaani.org> 1492Date: 2025-05-21 16:07:01 +0300 1493 1494 CMake: With symbol versioning, try to pass --undefined-version to linker 1495 1496 Fixes: https://github.com/tukaani-project/xz/issues/180 1497 Fixes: https://bugs.gentoo.org/956119 1498 1499 CMakeLists.txt | 22 ++++++++++++++++++++++ 1500 1 file changed, 22 insertions(+) 1501 1502commit 377be0ea7a1d0ec3572a7f9a5f9ed42adeaa4503 1503Author: Lasse Collin <lasse.collin@tukaani.org> 1504Date: 2025-05-21 16:07:01 +0300 1505 1506 Build: With symbol versioning, try to pass --undefined-version to linker 1507 1508 Fixes: https://github.com/tukaani-project/xz/issues/180 1509 Fixes: https://bugs.gentoo.org/956119 1510 1511 configure.ac | 23 +++++++++++++++++++++++ 1512 src/liblzma/Makefile.am | 2 ++ 1513 2 files changed, 25 insertions(+) 1514 1515commit ff49c82176ca53646a1cbbbb4efc35a542745812 1516Author: Lasse Collin <lasse.collin@tukaani.org> 1517Date: 2025-05-21 14:48:18 +0300 1518 1519 CMake: Fix comments 1520 1521 CMakeLists.txt | 4 ++-- 1522 1 file changed, 2 insertions(+), 2 deletions(-) 1523 1524commit 71ad5e82888fdfa0fe11defa4f46cb0fc90dc326 1525Author: Lasse Collin <lasse.collin@tukaani.org> 1526Date: 2025-05-21 13:14:04 +0300 1527 1528 Translations: Update Serbian man page translations 1529 1530 Compared to the file in the Translation Project, I still had to apply 1531 a few fixes that were needed with the previous (5.7.1-dev1) version too: 1532 1533 - Remove two extra '<' characters that break the build with po4a. 1534 1535 - Don't translate XZ_DEFAULTS and XZ_OPT environment variable names. 1536 1537 po4a/sr.po | 70 ++++++++++++++++++++------------------------------------------ 1538 1 file changed, 22 insertions(+), 48 deletions(-) 1539 1540commit 31a983ad4774054074b300f55ff519484ff182c2 1541Author: Lasse Collin <lasse.collin@tukaani.org> 1542Date: 2025-05-21 12:55:28 +0300 1543 1544 Update po/.gitignore 1545 1546 po/.gitignore | 1 + 1547 1 file changed, 1 insertion(+) 1548 1549commit d9e70da25ac761544146bc2fbab6443e1a080bf4 1550Author: Lasse Collin <lasse.collin@tukaani.org> 1551Date: 2025-05-21 12:54:42 +0300 1552 1553 Translations: Update the Spanish translation 1554 1555 po/es.po | 10 +++++----- 1556 1 file changed, 5 insertions(+), 5 deletions(-) 1557 1558commit dbfb925c8198087afb3527e6c57b66fae1a980bb 1559Author: Lasse Collin <lasse.collin@tukaani.org> 1560Date: 2025-05-03 12:37:28 +0300 1561 1562 Tests: Silence a warning from GCC 15.1 1563 1564 It was (probably) intentionally without the null terminator, but the test 1565 works with null terminator too (the test still fails with xz <= 5.0.3), 1566 so simply omit one character to silence the warning. 1567 1568 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] 1569 30 | const uint8_t in[16] = "0123456789ABCDEF"; 1570 | ^~~~~~~~~~~~~~~~~~ 1571 1572 Fixes: d8db706acb83 ("liblzma: Fix possibility of incorrect LZMA_BUF_ERROR.") 1573 Fixes: https://github.com/tukaani-project/xz/issues/176 1574 1575 tests/test_bcj_exact_size.c | 2 +- 1576 1 file changed, 1 insertion(+), 1 deletion(-) 1577 1578commit 7c12726c51b2b7d77329dd72a29ecb1ec262b918 1579Author: Lasse Collin <lasse.collin@tukaani.org> 1580Date: 2025-04-28 18:16:14 +0300 1581 1582 Update THANKS 1583 1584 THANKS | 2 ++ 1585 1 file changed, 2 insertions(+) 1586 1587commit 1bd7361a043bd652ee5d0ebafd23459c57f57993 1588Author: Lasse Collin <lasse.collin@tukaani.org> 1589Date: 2025-04-25 17:32:03 +0300 1590 1591 Update THANKS 1592 1593 THANKS | 1 + 1594 1 file changed, 1 insertion(+) 1595 1596commit 5cc2e479eb447a444f5ab005fc36b7f275c75eb5 1597Author: Guillaume Outters <guillaume-installs@outters.eu> 1598Date: 2025-04-25 02:55:08 +0200 1599 1600 xz, xzdec: Capsicum sandbox: Fix incorrect use of cap_rights_clear() 1601 1602 cap_rights_clear() with no additional arguments acts as a no-op, so 1603 instead of removing all capability rights from STDIN_FILENO, the same 1604 rights were allowed for STDIN_FILENO as were allowed for src_fd. 1605 1606 Fixes: a0eecc235d3b ("xz: Make Capsicum sandbox more strict with stdin and stdout.") 1607 (The commit message says "stdout". It should have said "stderr".) 1608 1609 src/xz/sandbox.c | 2 +- 1610 src/xzdec/xzdec.c | 2 +- 1611 2 files changed, 2 insertions(+), 2 deletions(-) 1612 1613commit 56aa9a07968a6a73fada6f9b96122c5165829f3b 1614Author: Lasse Collin <lasse.collin@tukaani.org> 1615Date: 2025-04-22 21:12:50 +0300 1616 1617 CI: Valgrind: Improve the skipping of traced child processes 1618 1619 Use --trace-children-skip instead of --trace-children-skip-by-arg 1620 so that the skipping is only done based on the executable names. 1621 (--trace-children-skip-by-arg can match other args than argv[0].) 1622 1623 Update the list of executables to skip to match what the scripts run. 1624 1625 Do not skip bash or sh. If Valgrind didn't trace the shell, then the 1626 xz and xzdec programs run by the shell wouldn't be analyzed either. 1627 1628 Fixes: 7e99856f66c0 ("CI: Speed up Valgrind job by using --trace-children-skip-by-arg=...") 1629 1630 .github/workflows/ci.yml | 2 +- 1631 1 file changed, 1 insertion(+), 1 deletion(-) 1632 1633commit f33da20b75a45caad25c9a4daf7906e4f056ce91 1634Author: Lasse Collin <lasse.collin@tukaani.org> 1635Date: 2025-04-22 21:12:50 +0300 1636 1637 CI: Valgrind: Test with static liblzma 1638 1639 If shared liblzma is built, tests/test_* and src/xz/xz are wrapper 1640 scripts created by Libtool. The wrappers set library search path 1641 so that the freshly-built shared library is found. 1642 1643 With a static liblzma, no wrapper scripts are needed, and Libtool 1644 places the real executables to the aforementioned locations. This 1645 speeds up the tests under Valgrind dramatically. 1646 1647 Fixes: 6c095a98fbec ("ci: test Valgrind") 1648 1649 .github/workflows/ci.yml | 2 +- 1650 1 file changed, 1 insertion(+), 1 deletion(-) 1651 1652commit 5606fa89f91ca1d0d53e339d88f574fc731049c1 1653Author: Lasse Collin <lasse.collin@tukaani.org> 1654Date: 2025-04-22 21:12:50 +0300 1655 1656 CI: Add Ubuntu on ARM64 1657 1658 .github/workflows/ci.yml | 27 ++++++++++++++++----------- 1659 1 file changed, 16 insertions(+), 11 deletions(-) 1660 1661commit ec047a65a068087cc6f71133df414858f6886121 1662Author: Lasse Collin <lasse.collin@tukaani.org> 1663Date: 2025-04-22 16:21:50 +0300 1664 1665 Doxygen: Update the comment about tested versions 1666 1667 doxygen/Doxyfile | 2 +- 1668 1 file changed, 1 insertion(+), 1 deletion(-) 1669 1670commit 4f86e77bef8918b0c64183590609357a275558d8 1671Author: Lasse Collin <lasse.collin@tukaani.org> 1672Date: 2025-04-22 16:21:50 +0300 1673 1674 Doxygen: Set HAVE_DOT = NO 1675 1676 Debian and Ubuntu have a patch that changes the upstream default to 1677 HAVE_DOT = YES. Undo it to have more consistent results across distros. 1678 1679 This was noticed in Ubuntu CI runner where "doxygen" tried to run "dot" 1680 but that failed due to "dot" not being installed. "doxygen" still 1681 finished with exit status 0 until the commit that turned warnings to 1682 errors with WARN_AS_ERROR = FAIL_ON_WARNINGS. 1683 1684 doxygen/Doxyfile | 4 ++++ 1685 1 file changed, 4 insertions(+) 1686 1687commit ff96542d1c78f744d992be5890c95d90b2d19047 1688Author: Lasse Collin <lasse.collin@tukaani.org> 1689Date: 2025-04-22 16:21:50 +0300 1690 1691 Doxygen: Treat warnings as errors 1692 1693 Also set WARN_IF_UNDOCUMENTED = NO because even the API headers have 1694 a few things that won't have their own docs. 1695 1696 doxygen/Doxyfile | 2 ++ 1697 1 file changed, 2 insertions(+) 1698 1699commit a6711d1c4ad681aad985372d01a7deb21b4a1b8b 1700Author: Lasse Collin <lasse.collin@tukaani.org> 1701Date: 2025-04-22 16:21:50 +0300 1702 1703 Doxygen: Fix errors and some warnings in internal docs 1704 1705 src/liblzma/check/crc32_fast.c | 2 +- 1706 src/liblzma/check/crc64_fast.c | 2 +- 1707 src/liblzma/common/outqueue.h | 1 + 1708 src/xz/list.c | 2 ++ 1709 src/xz/message.h | 4 ++++ 1710 5 files changed, 9 insertions(+), 2 deletions(-) 1711 1712commit 8efd80adfcd65dfea086c1008452c6424b30b78c 1713Author: Lasse Collin <lasse.collin@tukaani.org> 1714Date: 2025-04-22 16:21:50 +0300 1715 1716 CI: Use --disable-sandbox instead of --enable-sandbox=no 1717 1718 It's the same thing, just a style difference. 1719 1720 build-aux/ci_build.bash | 2 +- 1721 1 file changed, 1 insertion(+), 1 deletion(-) 1722 1723commit a2e47c7a59d835ba80beef53b986d45e99ecd94a 1724Author: Lasse Collin <lasse.collin@tukaani.org> 1725Date: 2025-04-22 16:21:50 +0300 1726 1727 CI: Support Doxygen in ci_build.bash 1728 1729 build-aux/ci_build.bash | 4 ++++ 1730 1 file changed, 4 insertions(+) 1731 1732commit 9048e724945a3dfbf86d7f97437113f27ea41c63 1733Author: Lasse Collin <lasse.collin@tukaani.org> 1734Date: 2025-04-22 16:21:50 +0300 1735 1736 CI: Add Doxygen dependency to CMake builds on Ubuntu and macOS 1737 1738 .github/workflows/ci.yml | 4 ++-- 1739 1 file changed, 2 insertions(+), 2 deletions(-) 1740 1741commit d8e9dc63a6124336e72a849b8104ba60720f0fe2 1742Author: Lasse Collin <lasse.collin@tukaani.org> 1743Date: 2025-04-22 16:21:50 +0300 1744 1745 CI: Support XZ_NLS=OFF with CMake 1746 1747 build-aux/ci_build.bash | 1 + 1748 1 file changed, 1 insertion(+) 1749 1750commit ffa9fadecc85d21308aebac7b070fb5be791190f 1751Author: Lasse Collin <lasse.collin@tukaani.org> 1752Date: 2025-04-22 16:21:50 +0300 1753 1754 CI: Revise MSYS2 1755 1756 Re-enable CLANG64 environment. Add CLANGARM64. Don't add MINGW64 1757 to slightly reduce the number of runner VMs needed. 1758 1759 Install the required packages using the setup-msys2 action instead 1760 of running the commands separately. 1761 1762 Test Autotools and CMake in the same job to reduce the number of VMs. 1763 This doesn't slow it down too much because the msys2-setup step is 1764 needed by both. However, do only the full builds on ARM64 because 1765 those runners seem to be slower. 1766 1767 Test fewer build configurations. The point of testing on MSYS2 is to 1768 catch Windows-related issues. It should be enough that the more unusual 1769 build configurations are tested in ci.yml. 1770 1771 Run the build commands directly instead of using ci_build.bash. This 1772 makes it easier to see what commands are run even if it is a little 1773 more verbose now. 1774 1775 Run the workflow automatically when commit are pushed to master. 1776 With the fewer build variants it's not too slow. 1777 1778 .github/workflows/msys2.yml | 197 +++++++++++++++++++++++++------------------- 1779 1 file changed, 110 insertions(+), 87 deletions(-) 1780 1781commit 6f2aaa77daef7b408dc0d9c9a534373a30da7a50 1782Author: Lasse Collin <lasse.collin@tukaani.org> 1783Date: 2025-04-22 16:21:50 +0300 1784 1785 CI: Rename the MSYS2 workflow file 1786 1787 .github/workflows/{windows-ci.yml => msys2.yml} | 0 1788 1 file changed, 0 insertions(+), 0 deletions(-) 1789 1790commit 09110ad4c74f3ee1b4b0355d92b703525eddd3ff 1791Author: Lasse Collin <lasse.collin@tukaani.org> 1792Date: 2025-04-22 16:21:50 +0300 1793 1794 CI: Enable assertions on NetBSD + CMake 1795 1796 .github/workflows/netbsd.yml | 2 +- 1797 1 file changed, 1 insertion(+), 1 deletion(-) 1798 1799commit 516b90f6e1beb243dd76adc82da0ee47e525f863 1800Author: Lasse Collin <lasse.collin@tukaani.org> 1801Date: 2025-04-21 12:23:37 +0300 1802 1803 liblzma: Update lzma_lzip_decoder() docs about trailing data 1804 1805 Don't say that the .lz format allows trailing data. According to the 1806 lzip 1.25 manual, trailing data isn't part of the file format at all. 1807 However, tools are still expected to behave as usefully as possible 1808 when there is trailing data. 1809 1810 Fix the description of lzip >= 1.20 behavior when some of the first 1811 bytes of trailing data match the magic bytes. While the lzip 1.25 manual 1812 recommends that none of the first four bytes in trailing data should 1813 match the magic bytes, the default behavior of lzip 1.25 treats 1814 trailing data as a corrupt member header only if two or three bytes 1815 match the magic bytes; one matching byte isn't enough. 1816 1817 Reported-by: Antonio Diaz Diaz 1818 Link: https://www.mail-archive.com/xz-devel@tukaani.org/msg00702.html 1819 1820 src/liblzma/api/lzma/container.h | 23 +++++++++++------------ 1821 1 file changed, 11 insertions(+), 12 deletions(-) 1822 1823commit c330220d47dc09a5bab805d22654c8c0a73d21a9 1824Author: Lasse Collin <lasse.collin@tukaani.org> 1825Date: 2025-04-21 11:21:08 +0300 1826 1827 Update THANKS 1828 1829 THANKS | 1 + 1830 1 file changed, 1 insertion(+) 1831 1832commit 6cc7672c2238e7fc66bba33cff50cecd30411063 1833Author: Lasse Collin <lasse.collin@tukaani.org> 1834Date: 2025-04-17 20:36:33 +0300 1835 1836 CI: Add DragonflyBSD 1837 1838 .github/workflows/dragonflybsd.yml | 39 ++++++++++++++++++++++++++++++++++++++ 1839 1 file changed, 39 insertions(+) 1840 1841commit 07dc50913725496bd89178539190292a66e18710 1842Author: Lasse Collin <lasse.collin@tukaani.org> 1843Date: 2025-04-17 20:36:33 +0300 1844 1845 CI: Update Solaris 1846 1847 .github/workflows/solaris.yml | 37 +++++++++++++++++++------------------ 1848 1 file changed, 19 insertions(+), 18 deletions(-) 1849 1850commit cfcaae1945c0c33df86477138746e68428972a53 1851Author: Lasse Collin <lasse.collin@tukaani.org> 1852Date: 2025-04-17 20:36:33 +0300 1853 1854 CI: Update OpenBSD 1855 1856 Use --disable-nls --enable-external-sha256 because those are used 1857 in the xz Makefile in the OpenBSD ports tree. 1858 1859 .github/workflows/openbsd.yml | 46 +++++++++++++++++++++++-------------------- 1860 1 file changed, 25 insertions(+), 21 deletions(-) 1861 1862commit 5240fcfee3b1386029a26629d75f1465b9e85ca3 1863Author: Lasse Collin <lasse.collin@tukaani.org> 1864Date: 2025-04-17 20:36:33 +0300 1865 1866 CI: Update NetBSD 1867 1868 For variety, use CMake and Ninja. 1869 1870 .github/workflows/netbsd.yml | 43 +++++++++++++++++++++++++------------------ 1871 1 file changed, 25 insertions(+), 18 deletions(-) 1872 1873commit 85ff0cf0ce11b017af21c040330f6a0c09ef7f77 1874Author: Lasse Collin <lasse.collin@tukaani.org> 1875Date: 2025-04-17 20:36:33 +0300 1876 1877 CI: Update FreeBSD 1878 1879 ARM64 was left commented out because it's slow under both 1880 ubuntu-latest (x86-64) and ubuntu-24.04-arm (aarch64) hosts. 1881 1882 .github/workflows/freebsd.yml | 61 +++++++++++++++++++++++++++++-------------- 1883 1 file changed, 42 insertions(+), 19 deletions(-) 1884 1885commit 907ac2215db1613312dc292219bac798d76394f4 1886Author: Lasse Collin <lasse.collin@tukaani.org> 1887Date: 2025-04-11 17:25:53 +0300 1888 1889 CI: Specify only the main version of the standard GH actions 1890 1891 .github/workflows/ci.yml | 4 ++-- 1892 .github/workflows/msvc.yml | 2 +- 1893 2 files changed, 3 insertions(+), 3 deletions(-) 1894 1895commit b0d0e624740b92415f78274702b5b5bfbffe4543 1896Author: Lasse Collin <lasse.collin@tukaani.org> 1897Date: 2025-04-11 17:15:08 +0300 1898 1899 CI: Add 'permissions' to ci.yml and msvc.yml 1900 1901 .github/workflows/ci.yml | 2 ++ 1902 .github/workflows/msvc.yml | 2 ++ 1903 2 files changed, 4 insertions(+) 1904 1905commit 1edc14e8ca4fc1f25ee43f17f290c045df7f49e0 1906Author: Sam James <sam@gentoo.org> 1907Date: 2025-04-10 23:15:31 +0300 1908 1909 CI: Add CIFuzz 1910 1911 xz is already part of OSS-Fuzz, but OSS-Fuzz provides & encourages [0] 1912 its 'CIFuzz' service to test individual commits. 1913 1914 [0] https://google.github.io/oss-fuzz/getting-started/continuous-integration/ 1915 1916 Co-authored-by: Lasse Collin <lasse.collin@tukaani.org> 1917 1918 .github/workflows/cifuzz.yml | 54 ++++++++++++++++++++++++++++++++++++++++++++ 1919 1 file changed, 54 insertions(+) 1920 1921commit 35e06c4c426c6cc3866a9003e87a122eb78bccf2 1922Author: Lasse Collin <lasse.collin@tukaani.org> 1923Date: 2025-04-12 15:31:01 +0300 1924 1925 CMake: Don't check for optreset if using replacement getopt_long 1926 1927 If <getopt.h> had optreset but not getopt_long, xz used optreset while 1928 the replacement getopt_long doesn't support optreset. I'm not aware of 1929 any relevant system where bug is possible. Autotools build didn't have 1930 this bug. 1931 1932 Fixes: af66cd585902 ("CMake: Add support for replacement getopt_long (lib/getopt*).") 1933 1934 CMakeLists.txt | 6 ++++-- 1935 1 file changed, 4 insertions(+), 2 deletions(-) 1936 1937commit 99f4b9db9dfc3dabad330df6242e4632c42393c6 1938Author: Lasse Collin <lasse.collin@tukaani.org> 1939Date: 2025-04-17 18:33:10 +0300 1940 1941 Update THANKS 1942 1943 THANKS | 1 + 1944 1 file changed, 1 insertion(+) 1945 1946commit dd006a67e593cb5d3dec5180face7e3010fe78da 1947Author: Lasse Collin <lasse.collin@tukaani.org> 1948Date: 2025-04-17 18:30:26 +0300 1949 1950 liblzma: Update the lzma_lzip_decoder() docs about sync flush marker 1951 1952 src/liblzma/api/lzma/container.h | 15 +++++++-------- 1953 1 file changed, 7 insertions(+), 8 deletions(-) 1954 1955commit f59c5859600b5dfeaa618fcc04e9e3bb2b005f5c 1956Author: Lasse Collin <lasse.collin@tukaani.org> 1957Date: 2025-04-17 18:16:40 +0300 1958 1959 xz: Don't mention lzip's sync flush marker on the man page 1960 1961 The sync flush marker isn't valid in .lz files. The sync flush marker 1962 may be used by lzlib, but the resulting streams are only meant to be 1963 decoded by lzlib itself. lzlib's docs make this clear. 1964 1965 Reported-by: Antonio Diaz Diaz 1966 Link: https://www.mail-archive.com/xz-devel@tukaani.org/msg00700.html 1967 Link: https://www.mail-archive.com/xz-devel@tukaani.org/msg00701.html 1968 1969 src/xz/xz.1 | 9 +-------- 1970 1 file changed, 1 insertion(+), 8 deletions(-) 1971 1972commit 49258439b4ead6866798c1ebf8a083ec9ec04520 1973Author: Lasse Collin <lasse.collin@tukaani.org> 1974Date: 2025-04-17 18:15:48 +0300 1975 1976 Update THANKS 1977 1978 THANKS | 1 + 1979 1 file changed, 1 insertion(+) 1980 1981commit a69fbd3aaebc15dc5912e64724e5abfcef09bcdf 1982Author: Lasse Collin <lasse.collin@tukaani.org> 1983Date: 2025-04-10 20:13:07 +0300 1984 1985 CI: MSVC: Use fewer runners for the same number of tests 1986 1987 Using eight runners seems wasteful. Using only two runners isn't 1988 much slower due to the runner startup overhead. 1989 1990 Also add a comment about the test that fails without b5a5d9e3f702. 1991 1992 .github/workflows/msvc.yml | 66 ++++++++++++++++++++++++++++++++++++++-------- 1993 1 file changed, 55 insertions(+), 11 deletions(-) 1994 1995commit 8a300d1c4fc644af482fb679044794c3e3f6f3e5 1996Author: Lasse Collin <lasse.collin@tukaani.org> 1997Date: 2025-04-10 20:10:31 +0300 1998 1999 Update THANKS 2000 2001 THANKS | 1 + 2002 1 file changed, 1 insertion(+) 2003 2004commit b5a5d9e3f7022e546cdfd4ddc42fe4cc56839c05 2005Author: Lasse Collin <lasse.collin@tukaani.org> 2006Date: 2025-04-07 22:36:58 +0300 2007 2008 liblzma: Disable CLMUL CRC on old MSVC targeting 32-bit x86 2009 2010 On GitHub runners, VS 2019 16.11 (MSVC 19.29.30158) results in 2011 test failures. VS 2022 17.13 (MSVC 19.43.34808) works. 2012 2013 In xz 5.6.x there was a #pragma-based workaround for MSVC builds for 2014 32-bit x86. Another method was thought to work with the new rewritten 2015 CLMUL CRC. Apparently it doesn't. Keep it simple and disable CLMUL CRC 2016 with any non-recent MSVC when building for 32-bit x86. 2017 2018 Fixes: 54eaea5ea49b ("liblzma: x86 CLMUL CRC: Rewrite") 2019 Fixes: https://github.com/tukaani-project/xz/issues/171 2020 Reported-by: Andrew Murray 2021 2022 src/liblzma/check/crc_common.h | 16 +++++++++++++--- 2023 1 file changed, 13 insertions(+), 3 deletions(-) 2024 2025commit c5fd88dfc3d2b4178dc6da65b02a63a4ef9280c5 2026Author: Lasse Collin <lasse.collin@tukaani.org> 2027Date: 2025-04-07 22:36:58 +0300 2028 2029 liblzma: Remove MSVC hack from CLMUL CRC 2030 2031 It's not enough with MSVC 19.29 (VS 2019) even if the hack was also 2032 applied to the CRC32 code. The tests crash when built for 32-bit x86. 2033 2034 src/liblzma/check/crc64_fast.c | 8 -------- 2035 1 file changed, 8 deletions(-) 2036 2037commit 49ba8c69ea7f928aded77bd856085c85a8d26156 2038Author: Lasse Collin <lasse.collin@tukaani.org> 2039Date: 2025-04-07 22:36:52 +0300 2040 2041 CI: Test 32/64-bit x86 builds with Visual Studio 2019 and 2022 2042 2043 .github/workflows/msvc.yml | 45 +++++++++++++++++++++++++++++++++++++++++++++ 2044 1 file changed, 45 insertions(+) 2045 2046commit 1176a19df6b1585b51131b0e2570e03f1fc14f46 2047Author: Lasse Collin <lasse.collin@tukaani.org> 2048Date: 2025-04-04 20:08:37 +0300 2049 2050 Tests: Add fuzz_decode_stream_mt.options 2051 2052 tests/ossfuzz/config/fuzz_decode_stream_mt.options | 4 ++++ 2053 1 file changed, 4 insertions(+) 2054 2055commit c3cb1e53a114ac944f559fe7cac45dbf48cca156 2056Author: Lasse Collin <lasse.collin@tukaani.org> 2057Date: 2025-04-03 15:06:07 +0300 2058 2059 doc/SHA256SUMS: Add 5.8.1 2060 2061 doc/SHA256SUMS | 7 +++++++ 2062 1 file changed, 7 insertions(+) 2063 2064commit a522a226545730551f7e7c2685fab27cf567746c 2065Author: Lasse Collin <lasse.collin@tukaani.org> 2066Date: 2025-04-03 14:34:43 +0300 2067 2068 Bump version and soname for 5.8.1 2069 2070 src/liblzma/Makefile.am | 2 +- 2071 src/liblzma/api/lzma/version.h | 2 +- 2072 2 files changed, 2 insertions(+), 2 deletions(-) 2073 2074commit 1c462c2ad86ff85766928638431029cd0b0dc995 2075Author: Lasse Collin <lasse.collin@tukaani.org> 2076Date: 2025-04-03 14:34:43 +0300 2077 2078 Add NEWS for 5.8.1 2079 2080 NEWS | 30 ++++++++++++++++++++++++++++++ 2081 1 file changed, 30 insertions(+) 2082 2083commit 513cabcf7f5ce1c3ed0619e791393fc53d1dbbd0 2084Author: Lasse Collin <lasse.collin@tukaani.org> 2085Date: 2025-04-03 14:34:43 +0300 2086 2087 Tests: Call lzma_code() in smaller chunks in fuzz_common.h 2088 2089 This makes it easy to crash fuzz_decode_stream_mt when tested 2090 against the code from 5.8.0. 2091 2092 Obviously this might make it harder to reach some other code path now. 2093 The previous code has been in use since 2018 when fuzzing was added 2094 in 106d1a663d4b ("Tests: Add a fuzz test program and a config file 2095 for OSS-Fuzz."). 2096 2097 tests/ossfuzz/fuzz_common.h | 31 ++++++++++++++++++++++++------- 2098 1 file changed, 24 insertions(+), 7 deletions(-) 2099 2100commit 48440e24a25911ae59e8518b67a1e0f6f1c293bf 2101Author: Lasse Collin <lasse.collin@tukaani.org> 2102Date: 2025-04-03 14:34:43 +0300 2103 2104 Tests: Add a fuzzing target for the multithreaded .xz decoder 2105 2106 It doesn't seem possible to trigger the CVE-2025-31115 bug with this 2107 fuzzing target at the moment. It's because the code in fuzz_common.h 2108 passes the whole input buffer to lzma_code() at once. 2109 2110 tests/ossfuzz/fuzz_decode_stream_mt.c | 47 +++++++++++++++++++++++++++++++++++ 2111 1 file changed, 47 insertions(+) 2112 2113commit 0c80045ab82c406858d9d5bcea9f48ebc3d0a81d 2114Author: Lasse Collin <lasse.collin@tukaani.org> 2115Date: 2025-04-03 14:34:42 +0300 2116 2117 liblzma: mt dec: Fix lack of parallelization in single-shot decoding 2118 2119 Single-shot decoding means calling lzma_code() by giving it the whole 2120 input at once and enough output buffer space to store the uncompressed 2121 data, and combining this with LZMA_FINISH and no timeout 2122 (lzma_mt.timeout = 0). This way the file is decoded with a single 2123 lzma_code() call if possible. 2124 2125 The bug prevented the decoder from starting more than one worker thread 2126 in single-shot mode. The issue was noticed when reviewing the code; 2127 there are no bug reports. Thus maybe few have tried this mode. 2128 2129 Fixes: 64b6d496dc81 ("liblzma: Threaded decoder: Always wait for output if LZMA_FINISH is used.") 2130 2131 src/liblzma/common/stream_decoder_mt.c | 11 +++++++++-- 2132 1 file changed, 9 insertions(+), 2 deletions(-) 2133 2134commit 8188048854e8d11071b8a50d093c74f4c030acc9 2135Author: Lasse Collin <lasse.collin@tukaani.org> 2136Date: 2025-04-03 14:34:42 +0300 2137 2138 liblzma: mt dec: Don't modify thr->in_size in the worker thread 2139 2140 Don't set thr->in_size = 0 when returning the thread to the stack of 2141 available threads. Not only is it useless, but the main thread may 2142 read the value in SEQ_BLOCK_THR_RUN. With valid inputs, it made 2143 no difference if the main thread saw the original value or 0. With 2144 invalid inputs (when worker thread stops early), thr->in_size was 2145 no longer modified after the previous commit with the security fix 2146 ("Don't free the input buffer too early"). 2147 2148 So while the bug appears harmless now, it's important to fix it because 2149 the variable was being modified without proper locking. It's trivial 2150 to fix because there is no need to change the value. Only main thread 2151 needs to set the value in (in SEQ_BLOCK_THR_INIT) when starting a new 2152 Block before the worker thread is activated. 2153 2154 Fixes: 4cce3e27f529 ("liblzma: Add threaded .xz decompressor.") 2155 Reviewed-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc> 2156 Thanks-to: Sam James <sam@gentoo.org> 2157 2158 src/liblzma/common/stream_decoder_mt.c | 6 ++++-- 2159 1 file changed, 4 insertions(+), 2 deletions(-) 2160 2161commit d5a2ffe41bb77b918a8c96084885d4dbe4bf6480 2162Author: Lasse Collin <lasse.collin@tukaani.org> 2163Date: 2025-04-03 14:34:42 +0300 2164 2165 liblzma: mt dec: Don't free the input buffer too early (CVE-2025-31115) 2166 2167 The input buffer must be valid as long as the main thread is writing 2168 to the worker-specific input buffer. Fix it by making the worker 2169 thread not free the buffer on errors and not return the worker thread to 2170 the pool. The input buffer will be freed when threads_end() is called. 2171 2172 With invalid input, the bug could at least result in a crash. The 2173 effects include heap use after free and writing to an address based 2174 on the null pointer plus an offset. 2175 2176 The bug has been there since the first committed version of the threaded 2177 decoder and thus affects versions from 5.3.3alpha to 5.8.0. 2178 2179 As the commit message in 4cce3e27f529 says, I had made significant 2180 changes on top of Sebastian's patch. This bug was indeed introduced 2181 by my changes; it wasn't in Sebastian's version. 2182 2183 Thanks to Harri K. Koskinen for discovering and reporting this issue. 2184 2185 Fixes: 4cce3e27f529 ("liblzma: Add threaded .xz decompressor.") 2186 Reported-by: Harri K. Koskinen <x64nop@nannu.org> 2187 Reviewed-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc> 2188 Thanks-to: Sam James <sam@gentoo.org> 2189 2190 src/liblzma/common/stream_decoder_mt.c | 31 ++++++++++++++++++++++--------- 2191 1 file changed, 22 insertions(+), 9 deletions(-) 2192 2193commit c0c835964dfaeb2513a3c0bdb642105152fe9f34 2194Author: Lasse Collin <lasse.collin@tukaani.org> 2195Date: 2025-04-03 14:34:42 +0300 2196 2197 liblzma: mt dec: Simplify by removing the THR_STOP state 2198 2199 The main thread can directly set THR_IDLE in threads_stop() which is 2200 called when errors are detected. threads_stop() won't return the stopped 2201 threads to the pool or free the memory pointed by thr->in anymore, but 2202 it doesn't matter because the existing workers won't be reused after 2203 an error. The resources will be cleaned up when threads_end() is 2204 called (reinitializing the decoder always calls threads_end()). 2205 2206 Reviewed-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc> 2207 Thanks-to: Sam James <sam@gentoo.org> 2208 2209 src/liblzma/common/stream_decoder_mt.c | 75 +++++++++++++--------------------- 2210 1 file changed, 29 insertions(+), 46 deletions(-) 2211 2212commit 831b55b971cf579ee16a854f177c36b20d3c6999 2213Author: Lasse Collin <lasse.collin@tukaani.org> 2214Date: 2025-04-03 14:34:42 +0300 2215 2216 liblzma: mt dec: Fix a comment 2217 2218 Reviewed-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc> 2219 Thanks-to: Sam James <sam@gentoo.org> 2220 2221 src/liblzma/common/stream_decoder_mt.c | 2 +- 2222 1 file changed, 1 insertion(+), 1 deletion(-) 2223 2224commit b9d168eee4fb6393b4fe207c0aeb5faee316ca1a 2225Author: Lasse Collin <lasse.collin@tukaani.org> 2226Date: 2025-04-03 14:34:30 +0300 2227 2228 liblzma: Add assertions to lzma_bufcpy() 2229 2230 src/liblzma/common/common.c | 6 ++++++ 2231 1 file changed, 6 insertions(+) 2232 2233commit c8e0a4897b4d0f906966f5d4d4f662221d64f3ae 2234Author: Lasse Collin <lasse.collin@tukaani.org> 2235Date: 2025-04-02 16:40:22 +0300 2236 2237 DOS: Update Makefile to fix the build 2238 2239 dos/Makefile | 2 ++ 2240 1 file changed, 2 insertions(+) 2241 2242commit 307c02ed698a69763ef1c9c0df4ff24727442118 2243Author: Lasse Collin <lasse.collin@tukaani.org> 2244Date: 2025-03-29 12:41:32 +0200 2245 2246 sysdefs.h: Avoid <stdalign.h> even with C11 compilers 2247 2248 Oracle Developer Studio 12.6 on Solaris 10 claims C11 support in 2249 __STDC_VERSION__ and supports _Alignas. However, <stdalign.h> is missing. 2250 We only need alignas, so define it to _Alignas with C11/C17 compilers. 2251 If something included <stdalign.h> later, it shouldn't cause problems. 2252 2253 Thanks to Ihsan Dogan for reporting the issue and testing the fix. 2254 2255 Fixes: c0e7eaae8d6eef1e313c9d0da20ccf126ec61f38 2256 2257 src/common/sysdefs.h | 4 +++- 2258 1 file changed, 3 insertions(+), 1 deletion(-) 2259 2260commit 7ce38b318339d6c01378a77585e08169ca3a604e 2261Author: Lasse Collin <lasse.collin@tukaani.org> 2262Date: 2025-03-29 12:32:05 +0200 2263 2264 Update THANKS 2265 2266 THANKS | 1 + 2267 1 file changed, 1 insertion(+) 2268 2269commit 688e51bde4c987589717b2be1a1fde9576c604fc 2270Author: Lasse Collin <lasse.collin@tukaani.org> 2271Date: 2025-03-29 12:21:51 +0200 2272 2273 Translations: Update the Croatian translation 2274 2275 po/hr.po | 14 +++++++------- 2276 1 file changed, 7 insertions(+), 7 deletions(-) 2277 2278commit 173fb5c68b08a8c1369550267be258132b7760c6 2279Author: Lasse Collin <lasse.collin@tukaani.org> 2280Date: 2025-03-25 18:23:57 +0200 2281 2282 doc/SHA256SUMS: Add 5.8.0 2283 2284 doc/SHA256SUMS | 6 ++++++ 2285 1 file changed, 6 insertions(+) 2286 2287commit db9258e828bc2cd96e3954f1ddcc9d3530589025 2288Author: Lasse Collin <lasse.collin@tukaani.org> 2289Date: 2025-03-25 15:18:32 +0200 2290 2291 Bump version and soname for 5.8.0 2292 2293 Also remove the LZMA_UNSTABLE macro. 2294 2295 src/liblzma/Makefile.am | 2 +- 2296 src/liblzma/api/lzma/bcj.h | 2 -- 2297 src/liblzma/api/lzma/version.h | 6 +++--- 2298 src/liblzma/common/common.h | 2 -- 2299 src/liblzma/liblzma_generic.map | 2 +- 2300 src/liblzma/liblzma_linux.map | 2 +- 2301 6 files changed, 6 insertions(+), 10 deletions(-) 2302 2303commit bfb752a38f89ed03fc93d54f11c09f43fda64bc2 2304Author: Lasse Collin <lasse.collin@tukaani.org> 2305Date: 2025-03-25 15:18:32 +0200 2306 2307 Add NEWS for 5.8.0 2308 2309 NEWS | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2310 1 file changed, 62 insertions(+) 2311 2312commit 6ccbb904da851eb0c174c8dbd43e84da31739720 2313Author: Lasse Collin <lasse.collin@tukaani.org> 2314Date: 2025-03-25 15:18:31 +0200 2315 2316 Translations: Run "make -C po update-po" 2317 2318 POT-Creation-Date is set to match the timestamp in 5.7.2beta which 2319 in the Translation Project is known as 5.8.0-pre1. The strings 2320 haven't changed since 5.7.1alpha but a few comments have. 2321 2322 This is a very noisy commit, but this helps keeping the PO files 2323 similar between the Git repository and stable release tarballs. 2324 2325 po/ca.po | 964 ++++++++++++++++++++++++++++++++++++++++++++--------------- 2326 po/cs.po | 935 ++++++++++++++++++++++++++++++++++++++++++---------------- 2327 po/da.po | 663 ++++++++++++++++++++++++++++++----------- 2328 po/de.po | 7 +- 2329 po/eo.po | 966 +++++++++++++++++++++++++++++++++++++++++++++--------------- 2330 po/es.po | 7 +- 2331 po/fi.po | 2 +- 2332 po/fr.po | 916 +++++++++++++++++++++++++++++++++++++++++--------------- 2333 po/hu.po | 966 +++++++++++++++++++++++++++++++++++++++++++++--------------- 2334 po/ka.po | 7 +- 2335 po/ko.po | 7 +- 2336 po/nl.po | 7 +- 2337 po/pl.po | 7 +- 2338 po/pt_BR.po | 962 ++++++++++++++++++++++++++++++++++++++++++++--------------- 2339 po/sr.po | 2 +- 2340 po/sv.po | 7 +- 2341 po/tr.po | 7 +- 2342 po/uk.po | 7 +- 2343 po/vi.po | 948 +++++++++++++++++++++++++++++++++++++++++++--------------- 2344 po/zh_CN.po | 940 ++++++++++++++++++++++++++++++++++++++++++++-------------- 2345 po/zh_TW.po | 2 +- 2346 21 files changed, 6209 insertions(+), 2120 deletions(-) 2347 2348commit 891a5f057a6bb2dd2e3ce5e3bdd7a1f1ee03b800 2349Author: Lasse Collin <lasse.collin@tukaani.org> 2350Date: 2025-03-25 15:18:31 +0200 2351 2352 Translations: Run po4a/update-po 2353 2354 Also remove the trivial obsolete messages like man page dates. 2355 2356 This is a noisy commit, but this helps keeping the PO files similar 2357 between the Git repository and stable release tarballs. 2358 2359 po4a/fr.po | 82 +++++++++++++++++++++++++++++++++++++------------------ 2360 po4a/pt_BR.po | 88 +++++++++++++++++++++++++++++++++++++++++------------------ 2361 po4a/sr.po | 79 ++++++++++++++++++++++++++++++++++------------------- 2362 3 files changed, 167 insertions(+), 82 deletions(-) 2363 2364commit 4f52e7387012cb3510b01c937dd9b3a0c6a3ac6c 2365Author: Lasse Collin <lasse.collin@tukaani.org> 2366Date: 2025-03-25 15:18:31 +0200 2367 2368 Translations: Partially fix overtranslation in Serbian man pages 2369 2370 Names of environment variables and some other strings must be present 2371 in the original form. The translator couldn't be reached so I'm 2372 changing some of the strings myself. In the "Robot mode" section, 2373 occurrences in the middle of sentences weren't changed to reduce 2374 the chance of grammar breakage, but I kept the translated strings in 2375 parenthesis in the headings. It's not ideal, but now people shouldn't 2376 need to look at the English man page to find the English strings. 2377 2378 po4a/sr.po | 66 ++++++++++++++++++++++++++++++++++++++++++-------------------- 2379 1 file changed, 45 insertions(+), 21 deletions(-) 2380 2381commit ff5d944749b99eb5ab35e2ebaf01d05a59e7169b 2382Author: Lasse Collin <lasse.collin@tukaani.org> 2383Date: 2025-03-25 15:18:31 +0200 2384 2385 liblzma: Count the extra bytes in LZMA/LZMA2 decoder memory usage 2386 2387 src/liblzma/lz/lz_decoder.c | 3 ++- 2388 1 file changed, 2 insertions(+), 1 deletion(-) 2389 2390commit 943b012d09f717f7b44284c4e4976ea41264c731 2391Author: Lasse Collin <lasse.collin@tukaani.org> 2392Date: 2025-03-25 15:18:31 +0200 2393 2394 liblzma: Use SSE2 intrinsics instead of memcpy() in dict_repeat() 2395 2396 SSE2 is supported on every x86-64 processor. The SSE2 code is used on 2397 32-bit x86 if compiler options permit unconditional use of SSE2. 2398 2399 dict_repeat() copies short random-sized unaligned buffers. At least 2400 on glibc, FreeBSD, and Windows (MSYS2, UCRT, MSVCRT), memcpy() is 2401 clearly faster than byte-by-byte copying in this use case. Compared 2402 to the memcpy() version, the new SSE2 version reduces decompression 2403 time by 0-5 % depending on the machine and libc. It should never be 2404 slower than the memcpy() version. 2405 2406 However, on musl 1.2.5 on x86-64, the memcpy() version is the slowest. 2407 Compared to the memcpy() version: 2408 2409 - The byte-by-version takes 6-7 % less time to decompress. 2410 - The SSE2 version takes 16-18 % less time to decompress. 2411 2412 The numbers are from decompressing a Linux kernel source tarball in 2413 single-threaded mode on older AMD and Intel systems. The tarball 2414 compresses well, and thus dict_repeat() performance matters more 2415 than with some other files. 2416 2417 src/liblzma/lz/lz_decoder.c | 14 ++++++-- 2418 src/liblzma/lz/lz_decoder.h | 87 ++++++++++++++++++++++++++++++++++++++++----- 2419 2 files changed, 90 insertions(+), 11 deletions(-) 2420 2421commit bc14e4c94e788d42eeab984298391fc0ca46f969 2422Author: Lasse Collin <lasse.collin@tukaani.org> 2423Date: 2025-03-25 15:18:31 +0200 2424 2425 liblzma: Add "restrict" to a few functions in lz_decoder.h 2426 2427 This doesn't make any difference in practice because compilers can 2428 already see that writing through the dict->buf pointer cannot modify 2429 the contents of *dict itself: The LZMA decoder makes a local copy of 2430 the lzma_dict structure, and even if it didn't, the pointer to 2431 lzma_dict in the LZMA decoder is already "restrict". 2432 2433 It's nice to add "restrict" anyway. uint8_t is typically unsigned char 2434 which can alias anything. Without the above conditions or "restrict", 2435 compilers could need to assume that writing through dict->buf might 2436 modify *dict. This would matter in dict_repeat() because the loops 2437 refer to dict->buf and dict->pos instead of making local copies of 2438 those members for the duration of the loops. If compilers had to 2439 assume that writing through dict->buf can affect *dict, then compilers 2440 would need to emit code that reloads dict->buf and dict->pos after 2441 every write through dict->buf. 2442 2443 src/liblzma/lz/lz_decoder.h | 7 ++++--- 2444 1 file changed, 4 insertions(+), 3 deletions(-) 2445 2446commit e82ee090c567e560f51a056775a17f534d159d65 2447Author: Lasse Collin <lasse.collin@tukaani.org> 2448Date: 2025-03-25 15:18:30 +0200 2449 2450 liblzma: Define LZ_DICT_INIT_POS for initial dictionary position 2451 2452 It's more readable. 2453 2454 src/liblzma/lz/lz_decoder.c | 4 ++-- 2455 src/liblzma/lz/lz_decoder.h | 9 ++++++--- 2456 2 files changed, 8 insertions(+), 5 deletions(-) 2457 2458commit 8e7cd0091e5239334437decbe1989662d45a2f47 2459Author: Lasse Collin <lasse.collin@tukaani.org> 2460Date: 2025-03-25 15:18:30 +0200 2461 2462 Windows: Update README-Windows.txt about UCRT 2463 2464 windows/README-Windows.txt | 3 ++- 2465 1 file changed, 2 insertions(+), 1 deletion(-) 2466 2467commit 2c24292d341e505e5579fccac3bce5bc71d839ef 2468Author: Lasse Collin <lasse.collin@tukaani.org> 2469Date: 2025-03-25 15:18:15 +0200 2470 2471 Update THANKS 2472 2473 THANKS | 1 + 2474 1 file changed, 1 insertion(+) 2475 2476commit 48053c90898fa191a216aefca01626520a7413f4 2477Author: Lasse Collin <lasse.collin@tukaani.org> 2478Date: 2025-03-17 15:33:25 +0200 2479 2480 Translations: Update the Italian translation 2481 2482 po/it.po | 32 ++++++++++++++++---------------- 2483 1 file changed, 16 insertions(+), 16 deletions(-) 2484 2485commit 8d6f06a65f50358fad13567f5dd8af41ef1d2b58 2486Author: Lasse Collin <lasse.collin@tukaani.org> 2487Date: 2025-03-17 15:28:56 +0200 2488 2489 Translations: Update the Portuguese translation 2490 2491 The language tag in the Translation Project is pt, not pt_PT, 2492 thus I changed the "Language:" line to pt. 2493 2494 po/pt.po | 1045 +++++++++++++++++++++++++++++++------------------------------- 2495 1 file changed, 526 insertions(+), 519 deletions(-) 2496 2497commit c3439b039f46fe547ad603e16dc3bd63c1ca9b0c 2498Author: Lasse Collin <lasse.collin@tukaani.org> 2499Date: 2025-03-14 13:02:21 +0200 2500 2501 Translations: Update the Italian translation 2502 2503 po/it.po | 1020 +++++++++++++++++++++++++++++++------------------------------- 2504 1 file changed, 516 insertions(+), 504 deletions(-) 2505 2506commit 79b4ab8d79528dd633a84df2d29e63f5d13ccbdf 2507Author: Lasse Collin <lasse.collin@tukaani.org> 2508Date: 2025-03-12 20:48:39 +0200 2509 2510 Translations: Update the Italian man page translations 2511 2512 Only trivial additions but this keeps the file in sync with the TP. 2513 2514 po4a/it.po | 4 ++-- 2515 1 file changed, 2 insertions(+), 2 deletions(-) 2516 2517commit 515b6fc8557825e1335012b3b1c8cf71e2c38775 2518Author: Lasse Collin <lasse.collin@tukaani.org> 2519Date: 2025-03-12 19:38:54 +0200 2520 2521 Translations: Update the Italian man page translations 2522 2523 po4a/it.po | 129 ++++++++++++++++++++++++++++++++++++------------------------- 2524 1 file changed, 77 insertions(+), 52 deletions(-) 2525 2526commit 333b7c0b776295f0941269b4e6cdb1a0ba5f6218 2527Author: Lasse Collin <lasse.collin@tukaani.org> 2528Date: 2025-03-10 21:00:31 +0200 2529 2530 Translations: Update the Korean man page translations 2531 2532 po4a/ko.po | 139 +++++++++++++++++++++++++++++++++++-------------------------- 2533 1 file changed, 80 insertions(+), 59 deletions(-) 2534 2535commit ae52ebd27dc0be5e1ba62fb0c45255d8563fcd88 2536Author: Lasse Collin <lasse.collin@tukaani.org> 2537Date: 2025-03-10 20:56:57 +0200 2538 2539 Translations: Update the German man page translations 2540 2541 po4a/de.po | 102 ++++++++++++++++++++++++++++++++++++++----------------------- 2542 1 file changed, 63 insertions(+), 39 deletions(-) 2543 2544commit 1028e52c93d2292b44ff7bae8e721025d2f2c94d 2545Author: Lasse Collin <lasse.collin@tukaani.org> 2546Date: 2025-03-10 13:13:30 +0200 2547 2548 CMake: Fix tuklib_use_system_extensions 2549 2550 Revert back to a macro so that list(APPEND CMAKE_REQUIRED_DEFINITIONS) 2551 will affect the calling scope. I had forgotten that while CMake 2552 functions inherit the variables from the parent scope, the changes 2553 to them are local unless using set(... PARENT_SCOPE). 2554 2555 This also means that the commit message in 5bb77d0920dc is wrong. The 2556 commit itself is still fine, making it clearer that -DHAVE_SYS_PARAM_H 2557 is only needed for specific check_c_source_compiles() calls. 2558 2559 Fixes: c1ea7bd0b60eed6ebcdf9a713ca69034f6f07179 2560 2561 cmake/tuklib_common.cmake | 7 +++++-- 2562 1 file changed, 5 insertions(+), 2 deletions(-) 2563 2564commit 80e48836024ec2d7cbd557575be6da3d1f055cba 2565Author: Lasse Collin <lasse.collin@tukaani.org> 2566Date: 2025-03-10 11:38:55 +0200 2567 2568 INSTALL: Document -bmaxdata on AIX 2569 2570 This is based on a pull request and AIX docs. I haven't tested the 2571 instructions myself. 2572 2573 Closes: https://github.com/tukaani-project/xz/pull/137 2574 2575 INSTALL | 5 +++++ 2576 1 file changed, 5 insertions(+) 2577 2578commit ab319186b6d0454285ff4941a777ac95e580f60f 2579Author: Lasse Collin <lasse.collin@tukaani.org> 2580Date: 2025-03-10 11:37:19 +0200 2581 2582 Update THANKS 2583 2584 THANKS | 1 + 2585 1 file changed, 1 insertion(+) 2586 2587commit 4434671a04436038f88ab0feaa251cc8d7abb683 2588Author: Collin Funk <collin.funk1@gmail.com> 2589Date: 2025-03-09 19:14:31 -0700 2590 2591 tuklib_physmem: Silence -Wsign-conversion on AIX 2592 2593 Closes: https://github.com/tukaani-project/xz/pull/168 2594 2595 src/common/tuklib_physmem.c | 2 +- 2596 1 file changed, 1 insertion(+), 1 deletion(-) 2597 2598commit 18bcaa4fafc935d89ffde94301fa6427907306bf 2599Author: Lasse Collin <lasse.collin@tukaani.org> 2600Date: 2025-03-09 22:10:38 +0200 2601 2602 Translations: Update the Romanian man page translations 2603 2604 po4a/ro.po | 110 ++++++++++++++++++++++++++++++++++++------------------------- 2605 1 file changed, 66 insertions(+), 44 deletions(-) 2606 2607commit 1e17b7f42fe2f9df279f44ad7043d3753cd00363 2608Author: Lasse Collin <lasse.collin@tukaani.org> 2609Date: 2025-03-09 21:28:15 +0200 2610 2611 Translations: Update the Croatian translation 2612 2613 po/hr.po | 19 +++++++++++-------- 2614 1 file changed, 11 insertions(+), 8 deletions(-) 2615 2616commit ff85e6130d5940896915cdbb99aa9ece9d41240b 2617Author: Lasse Collin <lasse.collin@tukaani.org> 2618Date: 2025-03-09 21:23:34 +0200 2619 2620 Translations: Update the Romanian translation 2621 2622 po/ro.po | 24 +++++++++++++----------- 2623 1 file changed, 13 insertions(+), 11 deletions(-) 2624 2625commit a5bfb33f30f77e656723d365db8b06e089d3de61 2626Author: Lasse Collin <lasse.collin@tukaani.org> 2627Date: 2025-03-09 21:11:34 +0200 2628 2629 Translations: Update the Ukrainian man page translations 2630 2631 po4a/uk.po | 107 ++++++++++++++++++++++++++++++++++++------------------------- 2632 1 file changed, 64 insertions(+), 43 deletions(-) 2633 2634commit 5bb77d0920dcf949d8eb04eb19204b7b199e42df 2635Author: Lasse Collin <lasse.collin@tukaani.org> 2636Date: 2025-03-09 14:43:07 +0200 2637 2638 CMake: Use cmake_push_check_state in tuklib_cpucores and tuklib_physmem 2639 2640 Now the changes to CMAKE_REQUIRED_DEFINITIONS are temporary and don't 2641 leak to the calling code. 2642 2643 cmake/tuklib_cpucores.cmake | 3 +++ 2644 cmake/tuklib_physmem.cmake | 4 +++- 2645 2 files changed, 6 insertions(+), 1 deletion(-) 2646 2647commit c1ea7bd0b60eed6ebcdf9a713ca69034f6f07179 2648Author: Lasse Collin <lasse.collin@tukaani.org> 2649Date: 2025-03-09 14:06:35 +0200 2650 2651 CMake: Revise tuklib_use_system_extensions 2652 2653 Define NetBSD and Darwin/macOS feature test macros. Autoconf defines 2654 these too (and a few others). 2655 2656 Define the macros on Windows except with MSVC. The _GNU_SOURCE macro 2657 makes a difference with mingw-w64. 2658 2659 Use a function instead of a macro. Don't take the TARGET_OR_ALL argument 2660 because there's always global effect because the global variable 2661 CMAKE_REQUIRED_DEFINITIONS is modified. 2662 2663 CMakeLists.txt | 2 +- 2664 cmake/tuklib_common.cmake | 27 +++++++++++++++------------ 2665 2 files changed, 16 insertions(+), 13 deletions(-) 2666 2667commit 4243c45a48ef8c103d77b75d9f93d48adcb631db 2668Author: Lasse Collin <lasse.collin@tukaani.org> 2669Date: 2025-03-08 14:54:29 +0200 2670 2671 doc/SHA256SUMS: Add 5.7.2beta 2672 2673 doc/SHA256SUMS | 3 +++ 2674 1 file changed, 3 insertions(+) 2675 2676commit cc7f2fc1cf9f3c63cbce90ee92bfbb004f98140b 2677Author: Lasse Collin <lasse.collin@tukaani.org> 2678Date: 2025-03-08 14:29:57 +0200 2679 2680 Bump version and soname for 5.7.2beta 2681 2682 src/liblzma/Makefile.am | 2 +- 2683 src/liblzma/api/lzma/version.h | 4 ++-- 2684 src/liblzma/liblzma_generic.map | 2 +- 2685 src/liblzma/liblzma_linux.map | 2 +- 2686 4 files changed, 5 insertions(+), 5 deletions(-) 2687 2688commit 62e44b36167de27541776dcf677ed04077c9fd19 2689Author: Lasse Collin <lasse.collin@tukaani.org> 2690Date: 2025-03-08 14:24:38 +0200 2691 2692 Add NEWS for 5.7.2beta 2693 2694 NEWS | 35 +++++++++++++++++++++++++++++++++++ 2695 1 file changed, 35 insertions(+) 2696 2697commit 70f1f203789433b5d7b8b22e1655abc465d659f7 2698Author: Lasse Collin <lasse.collin@tukaani.org> 2699Date: 2025-03-08 14:23:00 +0200 2700 2701 COPYING: Remove the note about old releases 2702 2703 COPYING | 19 ------------------- 2704 1 file changed, 19 deletions(-) 2705 2706commit db9827dc38ff79de747a6fc7a99619e961dbc5e6 2707Author: Lasse Collin <lasse.collin@tukaani.org> 2708Date: 2025-03-08 14:22:28 +0200 2709 2710 xz: Update the man page about the environment variables again 2711 2712 src/xz/xz.1 | 22 +++++++++++----------- 2713 1 file changed, 11 insertions(+), 11 deletions(-) 2714 2715commit 99c584891bd1d946561cebded2226df9b83f1efb 2716Author: Lasse Collin <lasse.collin@tukaani.org> 2717Date: 2025-03-06 19:26:09 +0200 2718 2719 liblzma: Edit spelling in a comment 2720 2721 It was found with codespell. 2722 2723 src/liblzma/api/lzma/container.h | 2 +- 2724 1 file changed, 1 insertion(+), 1 deletion(-) 2725 2726commit 7a234c8c05a8f64efde013cd6a6d31a90b7d0d28 2727Author: Lasse Collin <lasse.collin@tukaani.org> 2728Date: 2025-03-06 19:14:23 +0200 2729 2730 xz: Update the man page about the environment variables 2731 2732 src/xz/xz.1 | 26 ++++++++++++++++++++++++-- 2733 1 file changed, 24 insertions(+), 2 deletions(-) 2734 2735commit 808f05af3ef40730d40b3798666757bd866484f1 2736Author: Lasse Collin <lasse.collin@tukaani.org> 2737Date: 2025-03-06 17:37:39 +0200 2738 2739 Docs: Add a few TRANSLATORS comments to man pages 2740 2741 All translators know that --command-line-options must not be translated. 2742 With some other strings it's not obvious when the untranslated string 2743 must be preserved. These comments hopefully help. 2744 2745 src/scripts/xzmore.1 | 2 ++ 2746 src/xz/xz.1 | 22 ++++++++++++++++++++++ 2747 2 files changed, 24 insertions(+) 2748 2749commit 051de255f00dda331e2a6fa189a6e7fe56a7c69b 2750Author: Lasse Collin <lasse.collin@tukaani.org> 2751Date: 2025-03-06 16:34:32 +0200 2752 2753 Scripts: Mark the LZMA Utils script aliases as deprecated 2754 2755 The deprecated aliases are lzcmp, lzdiff, lzless, lzmore, 2756 lzgrep, lzegrep, and lzfgrep. The commands that start with 2757 the xz prefix have identical behavior, for example, both 2758 lzgrep and xzgrep handle all supported file formats. 2759 2760 This doesn't affect lzma, unlzma, lzcat, lzmadec, or lzmainfo. 2761 The last release of LZMA Utils was made in 2008, but the lzma 2762 compatibility alias for the gzip-like tool is still in common use. 2763 Deprecating it would cause unnecessary breakage. 2764 2765 src/scripts/xzdiff.1 | 5 ++++- 2766 src/scripts/xzgrep.1 | 6 +++++- 2767 src/scripts/xzless.1 | 4 +++- 2768 src/scripts/xzmore.1 | 4 +++- 2769 4 files changed, 15 insertions(+), 4 deletions(-) 2770 2771commit 4941ea454c02cf15a64d6434a0778fc2a81282fc 2772Author: Lasse Collin <lasse.collin@tukaani.org> 2773Date: 2025-03-02 21:13:04 +0200 2774 2775 Translations: Add Serbian man page translations 2776 2777 po4a/po4a.conf | 2 +- 2778 po4a/sr.po | 3892 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2779 2 files changed, 3893 insertions(+), 1 deletion(-) 2780 2781commit d142d96f24daa451edaabfca8594e202932b3c0b 2782Author: Lasse Collin <lasse.collin@tukaani.org> 2783Date: 2025-03-02 20:42:14 +0200 2784 2785 Translations: Update Georgian translation 2786 2787 po/ka.po | 4 ++-- 2788 1 file changed, 2 insertions(+), 2 deletions(-) 2789 2790commit 9b7e45d841195c8fd8d286e26f810df28c53dd16 2791Author: Lasse Collin <lasse.collin@tukaani.org> 2792Date: 2025-02-28 21:07:21 +0200 2793 2794 Update THANKS 2795 2796 THANKS | 1 + 2797 1 file changed, 1 insertion(+) 2798 2799commit 9351592710e0df3238b09d39c545a643c50ac88f 2800Author: Lasse Collin <lasse.collin@tukaani.org> 2801Date: 2025-02-22 16:04:58 +0200 2802 2803 Update THANKS 2804 2805 THANKS | 1 + 2806 1 file changed, 1 insertion(+) 2807 2808commit 9023be7831faca2f28def55e16c39e3a42e1e262 2809Author: Lasse Collin <lasse.collin@tukaani.org> 2810Date: 2025-02-19 16:33:52 +0200 2811 2812 Translations: Update the Croatian translation 2813 2814 po/hr.po | 6 +++--- 2815 1 file changed, 3 insertions(+), 3 deletions(-) 2816 2817commit 2eaf242c56e8c65db83d48b018fa44aeafeb33a5 2818Author: Lasse Collin <lasse.collin@tukaani.org> 2819Date: 2025-02-17 21:46:15 +0200 2820 2821 Build: Fix out-of-tree builds when using the replacement getopt_long 2822 2823 Nowaways $(top_builddir)/lib/getopt.h depends on headers in 2824 $(top_srcdir)/lib, so both have to be in the include path. 2825 CMake-based build already did this. 2826 2827 Fixes: 7e884c00d0093c38339f17fb1d280eec493f42ca 2828 2829 src/lzmainfo/Makefile.am | 6 ++++-- 2830 src/xz/Makefile.am | 6 ++++-- 2831 src/xzdec/Makefile.am | 6 ++++-- 2832 3 files changed, 12 insertions(+), 6 deletions(-) 2833 2834commit 41322b2c60cd2c67a1053cb40d27e573420185b7 2835Author: Lasse Collin <lasse.collin@tukaani.org> 2836Date: 2025-02-17 18:25:52 +0200 2837 2838 m4/getopt.m4: Remove an outdated comment 2839 2840 m4/getopt.m4 | 3 --- 2841 1 file changed, 3 deletions(-) 2842 2843commit 03c23a4952bce1b50a1d213ca2d1c15acd76a489 2844Author: Lasse Collin <lasse.collin@tukaani.org> 2845Date: 2025-02-17 18:11:58 +0200 2846 2847 Build: Allow forcing the use of the replacement getopt_long 2848 2849 Now one can pass gl_replace_getopt=yes to configure to force the use 2850 of GNU getopt_long from the lib directory. This only checks that the 2851 value of gl_replace_getopt is non-empty, so one cannot force the 2852 replacement to be disabled. 2853 2854 Closes: https://github.com/tukaani-project/xz/pull/166 2855 2856 m4/getopt.m4 | 5 +++-- 2857 1 file changed, 3 insertions(+), 2 deletions(-) 2858 2859commit c23b837d15960ecc0d537f0260f389904e1e7f02 2860Author: Lasse Collin <lasse.collin@tukaani.org> 2861Date: 2025-02-17 18:11:42 +0200 2862 2863 Update THANKS 2864 2865 THANKS | 1 + 2866 1 file changed, 1 insertion(+) 2867 2868commit 2672a38f1159babf9ba3cca429f644bb823a8bdd 2869Author: Lasse Collin <lasse.collin@tukaani.org> 2870Date: 2025-02-12 19:23:31 +0200 2871 2872 Update THANKS 2873 2874 THANKS | 2 ++ 2875 1 file changed, 2 insertions(+) 2876 2877commit 4fdcbfaf3f222299747c6a815762a74eeb1b0b23 2878Author: Lasse Collin <lasse.collin@tukaani.org> 2879Date: 2025-02-11 12:13:41 +0200 2880 2881 Update THANKS 2882 2883 THANKS | 3 +++ 2884 1 file changed, 3 insertions(+) 2885 2886commit 0d553568f1af9a35779ecac41392a6c871786930 2887Author: Lasse Collin <lasse.collin@tukaani.org> 2888Date: 2025-02-08 11:39:08 +0200 2889 2890 Translations: Update the Polish translation 2891 2892 po/pl.po | 802 ++++++++++++++++++++++++++++++++++++--------------------------- 2893 1 file changed, 464 insertions(+), 338 deletions(-) 2894 2895commit 9f165076aebb3b5115d2b6520529db8fa11a6bdd 2896Author: Lasse Collin <lasse.collin@tukaani.org> 2897Date: 2025-02-07 19:12:03 +0200 2898 2899 Docs: Update TODO a little 2900 2901 TODO | 22 ++++------------------ 2902 1 file changed, 4 insertions(+), 18 deletions(-) 2903 2904commit f5aa292c534f87b9dd588e667d1c65ed31e5f289 2905Author: Lasse Collin <lasse.collin@tukaani.org> 2906Date: 2025-02-07 18:50:56 +0200 2907 2908 Add researcher credits of CVE-2022-1271 and CVE-2024-47611 to THANKS 2909 2910 These are specific phrases that were included in the advisories and 2911 NEWS. It's nice to have them in THANKS as well. 2912 2913 THANKS | 4 ++++ 2914 1 file changed, 4 insertions(+) 2915 2916commit 7cf463b5add70e3fb48a10de3965c8beb6c01ad9 2917Author: Lasse Collin <lasse.collin@tukaani.org> 2918Date: 2025-02-07 18:43:00 +0200 2919 2920 Update THANKS 2921 2922 THANKS | 5 +++++ 2923 1 file changed, 5 insertions(+) 2924 2925commit 6b7fe7e27b77038592e2c2e31df955059dda7d1d 2926Author: Lasse Collin <lasse.collin@tukaani.org> 2927Date: 2025-02-04 14:12:46 +0200 2928 2929 Docs: Update the "Translations" section in README 2930 2931 Make it clearer that translations cannot be accepted if they don't 2932 come via the Translation Project. 2933 2934 Column headings have been handled automatically for years and now --help 2935 is autowrapped too, so the related instructions can be removed. 2936 2937 README | 107 ++++++++++++++++++++++++----------------------------------------- 2938 1 file changed, 39 insertions(+), 68 deletions(-) 2939 2940commit 2c7aee94936babf84b61b55420e503a0b2629ec1 2941Author: Lasse Collin <lasse.collin@tukaani.org> 2942Date: 2025-02-04 13:23:53 +0200 2943 2944 debug/translations.bash: Revise a little 2945 2946 Make it work for out-of-tree builds without requiring one to specify 2947 the location of the xz executable. 2948 2949 Add xz --filters-help. 2950 2951 Make the output shorter by reducing the number of xz -lvv test files. 2952 2953 Show the value of LANGUAGE environment variable. 2954 2955 Show the xz.git version using git describe --abbrev=8 instead of =4. 2956 2957 debug/translation.bash | 24 +++++++++++------------- 2958 1 file changed, 11 insertions(+), 13 deletions(-) 2959 2960commit c6b15e7045209002bbbf4979c48072af01c20d8d 2961Author: Lasse Collin <lasse.collin@tukaani.org> 2962Date: 2025-02-04 13:20:52 +0200 2963 2964 Build: Use "git describe --abbrev=8" in snapshot tarball names 2965 2966 8 is more likely to be reproducible than the old 4 without being 2967 excessively long for a small repository like this. 2968 2969 Makefile.am | 2 +- 2970 1 file changed, 1 insertion(+), 1 deletion(-) 2971 2972commit 0ce97987c5b27cfb6f98984e5fd7477880e0cf33 2973Author: Lasse Collin <lasse.collin@tukaani.org> 2974Date: 2025-02-04 19:37:17 +0200 2975 2976 Update THANKS 2977 2978 THANKS | 2 ++ 2979 1 file changed, 2 insertions(+) 2980 2981commit 353c33355cb12e5016d49052fd1e90d15568aa37 2982Author: Lasse Collin <lasse.collin@tukaani.org> 2983Date: 2025-02-03 16:29:31 +0200 2984 2985 Translations: Update the Serbian translation 2986 2987 po/sr.po | 805 ++++++++++++++++++++++++++++++++++++--------------------------- 2988 1 file changed, 458 insertions(+), 347 deletions(-) 2989 2990commit 887dc281885052bced32b3aa309506ea58a2e78e 2991Author: Lasse Collin <lasse.collin@tukaani.org> 2992Date: 2025-02-03 16:15:38 +0200 2993 2994 Translations: Update Chinese (traditional) translation 2995 2996 Since there are no spaces between words, the unsophisticated automatic 2997 word wrapping code needs some help. Compared to the version in the 2998 Translation Project, I added a few \t characters which the word 2999 wrapping code interprets as zero width spaces (hopefully they are 3000 placed correctly). These edits can be seen with this command: 3001 3002 grep -v ^# po/zh_TW.po | grep --color -F '\t' 3003 3004 po/zh_TW.po | 843 +++++++++++++++++++++++++++++++++--------------------------- 3005 1 file changed, 471 insertions(+), 372 deletions(-) 3006 3007commit 0f1454cf5f460a4095f47f8f73f5a290e9777d7f 3008Author: Lasse Collin <lasse.collin@tukaani.org> 3009Date: 2025-02-03 16:12:44 +0200 3010 3011 Update THANKS 3012 3013 THANKS | 2 ++ 3014 1 file changed, 2 insertions(+) 3015 3016commit 23ea031820086d302a213be005a091df763b8a7b 3017Author: Lasse Collin <lasse.collin@tukaani.org> 3018Date: 2025-02-02 14:15:07 +0200 3019 3020 Build: Update posix-shell.m4 from Gnulib 3021 3022 Tabs have been converted to spaces and a "serial" number has been 3023 added. The previous version was from 2008/2009. There are no functional 3024 changes since then but now it's clearer that the copy in XZ Utils 3025 isn't outdated. 3026 3027 The new file was picked from the Gnulib commit 3028 81a4c1e3b7692e95c0806d948cbab9148ad85ef2. A later commit adds 3029 a warranty disclaimer to the license, which obviously is fine, 3030 but I didn't find a SPDX license identifier for the new license, 3031 so for simplicity I used the earlier commit. 3032 3033 m4/posix-shell.m4 | 31 ++++++++++++++++--------------- 3034 1 file changed, 16 insertions(+), 15 deletions(-) 3035 3036commit 84c33c0384aa4604ff7956f2fae6f83ea60ba96b 3037Author: Lasse Collin <lasse.collin@tukaani.org> 3038Date: 2025-02-02 12:51:03 +0200 3039 3040 Build: Check for -fsanitize= also in $CC 3041 3042 People may put -fsanitize in CC instead of CFLAGS so check both. 3043 Landlock sandbox isn't compatible with sanitizers so it's nice 3044 to catch the incompatible options at configure time. 3045 3046 Don't attempt to do the same in CMakeLists.txt; the check for 3047 CMAKE_C_FLAGS / CFLAGS shall be enough there. The extra flags from 3048 the CC environment variable go into the undocumented internal variable 3049 CMAKE_C_COMPILER_ARG1 (all flags from CC go into that same variable). 3050 Peeking the internal variable merely for improved diagnostics isn't 3051 worth it. 3052 3053 Fixes: 88588b1246d8c26ffbc138b3e5c413c5f14c3179 3054 3055 configure.ac | 5 +++-- 3056 1 file changed, 3 insertions(+), 2 deletions(-) 3057 3058commit a7304ea4a7daede9789a8fe422b714e372737120 3059Author: Lasse Collin <lasse.collin@tukaani.org> 3060Date: 2023-09-26 19:11:20 +0300 3061 3062 Build: Remove the FIXME about -Werror checks 3063 3064 configure.ac | 7 ------- 3065 1 file changed, 7 deletions(-) 3066 3067commit 1780bba74075da5e7764615bd323e95e19057dee 3068Author: Lasse Collin <lasse.collin@tukaani.org> 3069Date: 2023-09-26 19:10:51 +0300 3070 3071 Build: If using a GCC compatible compiler, ensure that -Werror works 3072 3073 The check can be skipped by passing SKIP_WERROR_CHECK=yes to configure. 3074 It won't be documented anywhere else than in the error message. 3075 3076 Ways to test: 3077 3078 ./configure CC=gcc CFLAGS=-Wunused-macros 3079 ./configure CC=clang CFLAGS=-Weverything 3080 ./configure CC=clang CFLAGS=-Weverything SKIP_WERROR_CHECK=yes 3081 3082 configure.ac | 26 ++++++++++++++++++++++++++ 3083 1 file changed, 26 insertions(+) 3084 3085commit 3aca2daefbdedd7cc0fb75ddde6b714273b1cc1d 3086Author: Lasse Collin <lasse.collin@tukaani.org> 3087Date: 2025-02-02 14:30:15 +0200 3088 3089 Update THANKS 3090 3091 THANKS | 4 ++++ 3092 1 file changed, 4 insertions(+) 3093 3094commit 186ff78ab40ceb07cde139506cab42a927ca99d2 3095Author: Lasse Collin <lasse.collin@tukaani.org> 3096Date: 2025-02-01 12:49:09 +0200 3097 3098 Translations: Update Romanian translation 3099 3100 po/ro.po | 12 ++++++------ 3101 1 file changed, 6 insertions(+), 6 deletions(-) 3102 3103commit 40a8ce3e10747ca5233610cc2cb704fc303c48e4 3104Author: Lasse Collin <lasse.collin@tukaani.org> 3105Date: 2025-01-30 18:16:43 +0200 3106 3107 Translations: Update Korean man page translations 3108 3109 po4a/ko.po | 146 ++++++++++++++++++++++++------------------------------------- 3110 1 file changed, 56 insertions(+), 90 deletions(-) 3111 3112commit 1787f9bd18ea8798d64b636cdefe6d0fda9b8f72 3113Author: Lasse Collin <lasse.collin@tukaani.org> 3114Date: 2025-01-30 18:15:52 +0200 3115 3116 Translations: Add Italian man page translations 3117 3118 po4a/it.po | 3876 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3119 po4a/po4a.conf | 2 +- 3120 2 files changed, 3877 insertions(+), 1 deletion(-) 3121 3122commit 9b9182e561787a811fc0178489589f28c3e0174c 3123Author: Lasse Collin <lasse.collin@tukaani.org> 3124Date: 2025-01-29 22:18:29 +0200 3125 3126 Translations: Update the Finnish translation 3127 3128 po/fi.po | 13 +++++++------ 3129 1 file changed, 7 insertions(+), 6 deletions(-) 3130 3131commit 7d73ff7a9d8eab6270f0b1ff7d10c0aa6f5ba53f 3132Author: Lasse Collin <lasse.collin@tukaani.org> 3133Date: 2025-01-29 20:50:03 +0200 3134 3135 lzmainfo: Use tuklib_mbstr_wrap for --help text 3136 3137 Some languages have so long strings that they need to be wrapped. 3138 3139 CMakeLists.txt | 4 ++++ 3140 src/lzmainfo/Makefile.am | 2 ++ 3141 src/lzmainfo/lzmainfo.c | 36 ++++++++++++++++++++++++++---------- 3142 3 files changed, 32 insertions(+), 10 deletions(-) 3143 3144commit c56eb4707627d700695813fccdddd1483eac4f21 3145Author: Lasse Collin <lasse.collin@tukaani.org> 3146Date: 2025-01-29 20:00:06 +0200 3147 3148 Translations: Update the Croatian translation 3149 3150 po/hr.po | 926 ++++++++++++++++++++++++++++++++++++--------------------------- 3151 1 file changed, 529 insertions(+), 397 deletions(-) 3152 3153commit 69f4aec0a2442ab81f9ab66e5871a6546aefb0fc 3154Author: Lasse Collin <lasse.collin@tukaani.org> 3155Date: 2025-01-29 19:56:01 +0200 3156 3157 Translations: Update the Finnish translation 3158 3159 po/fi.po | 911 +++++++++++++++++++++++++++++++++------------------------------ 3160 1 file changed, 483 insertions(+), 428 deletions(-) 3161 3162commit d49dde33cf5f488bb38b1f57e172c4e3343fb383 3163Author: Lasse Collin <lasse.collin@tukaani.org> 3164Date: 2025-01-29 19:55:27 +0200 3165 3166 Translations: Update the German man page translations 3167 3168 po4a/de.po | 147 +++++++++++++++++++++++-------------------------------------- 3169 1 file changed, 55 insertions(+), 92 deletions(-) 3170 3171commit 23b99fc4a1f35bec5d63ffd02b14cacbdce9fe3c 3172Author: Lasse Collin <lasse.collin@tukaani.org> 3173Date: 2025-01-29 19:55:17 +0200 3174 3175 Translations: Update the German translation 3176 3177 po/de.po | 825 +++++++++++++++++++++++++++++++++++---------------------------- 3178 1 file changed, 460 insertions(+), 365 deletions(-) 3179 3180commit 7edab2bde0606b42229d9c04fe664069e38de3fb 3181Author: Lasse Collin <lasse.collin@tukaani.org> 3182Date: 2025-01-29 19:55:05 +0200 3183 3184 Translations: Update the Turkish translation 3185 3186 po/tr.po | 892 +++++++++++++++++++++++++++++++++++---------------------------- 3187 1 file changed, 490 insertions(+), 402 deletions(-) 3188 3189commit fac4d0fa5277d7a1f621707621ee9516f0bdbac5 3190Author: Lasse Collin <lasse.collin@tukaani.org> 3191Date: 2025-01-29 19:54:36 +0200 3192 3193 Translations: Add the Dutch translation 3194 3195 po/LINGUAS | 1 + 3196 po/nl.po | 1268 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3197 2 files changed, 1269 insertions(+) 3198 3199commit abe5092f24b55dde9f7f78fac1bf810bce173273 3200Author: Lasse Collin <lasse.collin@tukaani.org> 3201Date: 2025-01-29 19:53:50 +0200 3202 3203 Translations: Update the Georgian translation 3204 3205 po/ka.po | 153 +++++++++++++++++++++++++++++++++++++++++++++++---------------- 3206 1 file changed, 115 insertions(+), 38 deletions(-) 3207 3208commit b97b23c78d8100eec363c3e999c511560366d347 3209Author: Lasse Collin <lasse.collin@tukaani.org> 3210Date: 2025-01-29 19:53:21 +0200 3211 3212 Translations: Update the Spanish translation 3213 3214 po/es.po | 824 ++++++++++++++++++++++++++++++++++----------------------------- 3215 1 file changed, 450 insertions(+), 374 deletions(-) 3216 3217commit c68318cb49e0562bd22e88724ce85e76c6789a3a 3218Author: Lasse Collin <lasse.collin@tukaani.org> 3219Date: 2025-01-29 19:53:06 +0200 3220 3221 Translations: Update the Korean translation 3222 3223 po/ko.po | 785 +++++++++++++++++++++++++++++++++++++-------------------------- 3224 1 file changed, 460 insertions(+), 325 deletions(-) 3225 3226commit 153ee17f635962a474499f786ea1de1e1a2bb276 3227Author: Lasse Collin <lasse.collin@tukaani.org> 3228Date: 2025-01-29 19:52:42 +0200 3229 3230 Translations: Update the Romanian man page translations 3231 3232 po4a/ro.po | 141 +++++++++++++++++++++++-------------------------------------- 3233 1 file changed, 54 insertions(+), 87 deletions(-) 3234 3235commit 6ed308197e1f9d6c7a5cfe5aae301e75544017c4 3236Author: Lasse Collin <lasse.collin@tukaani.org> 3237Date: 2025-01-29 19:51:59 +0200 3238 3239 Translations: Update the Romanian translation 3240 3241 po/ro.po | 818 +++++++++++++++++++++++++++++++++++---------------------------- 3242 1 file changed, 461 insertions(+), 357 deletions(-) 3243 3244commit 06028803e19219f642aa9abddd3525c43594ec6c 3245Author: Lasse Collin <lasse.collin@tukaani.org> 3246Date: 2025-01-29 19:50:50 +0200 3247 3248 Translations: Update the Ukrainian man page translations 3249 3250 po4a/uk.po | 142 +++++++++++++++++++++++-------------------------------------- 3251 1 file changed, 54 insertions(+), 88 deletions(-) 3252 3253commit 8cbaf896a65a53c1d1e7e2ffc80d6ea216b1e8df 3254Author: Lasse Collin <lasse.collin@tukaani.org> 3255Date: 2025-01-29 19:50:26 +0200 3256 3257 Translations: Update the Ukrainian translation 3258 3259 po/uk.po | 813 ++++++++++++++++++++++++++++++++++++--------------------------- 3260 1 file changed, 460 insertions(+), 353 deletions(-) 3261 3262commit 81c352907b8048b97d9868947026701a49f377ef 3263Author: Lasse Collin <lasse.collin@tukaani.org> 3264Date: 2025-01-29 19:48:43 +0200 3265 3266 Translations: Update the Swedish translation 3267 3268 po/sv.po | 847 ++++++++++++++++++++++++++++++++++----------------------------- 3269 1 file changed, 462 insertions(+), 385 deletions(-) 3270 3271commit 999ce263718a52ba74245c3e2a416ab11494d1b1 3272Author: Lasse Collin <lasse.collin@tukaani.org> 3273Date: 2025-01-28 16:33:32 +0200 3274 3275 tuklib_physmem: Clean up disabled code 3276 3277 src/common/tuklib_physmem.c | 9 +-------- 3278 1 file changed, 1 insertion(+), 8 deletions(-) 3279 3280commit 4d7e7c9d94f7a5ad4931a5bbd6ed9d00173fa1ab 3281Author: Lasse Collin <lasse.collin@tukaani.org> 3282Date: 2025-01-28 16:28:18 +0200 3283 3284 Windows: Avoid an error message on broken pipe 3285 3286 Also make xz not process more input files after a broken pipe has 3287 been detected. This matches the behavior on POSIX. If all files 3288 are being written to standard output, trying with the next file is 3289 pointless when it's known that standard output won't accept more data. 3290 3291 xzdec already stopped after the first error. It does so with all 3292 errors, so it differs from xz: 3293 3294 $ xz -dc not_found_1 not_found_2 3295 xz: not_found_1: No such file or directory 3296 xz: not_found_2: No such file or directory 3297 3298 $ xzdec not_found_1 not_found_2 3299 xzdec: not_found_1: No such file or directory 3300 3301 Reported-by: Vincent Torri 3302 3303 src/xz/file_io.c | 13 +++++++++++++ 3304 src/xzdec/xzdec.c | 11 ++++++++++- 3305 2 files changed, 23 insertions(+), 1 deletion(-) 3306 3307commit 95b638480aa8203e547c709c651f421c22db1718 3308Author: Lasse Collin <lasse.collin@tukaani.org> 3309Date: 2025-01-23 19:59:17 +0200 3310 3311 doc/SHA256SUMS: Add 5.6.4 and 5.7.1alpha 3312 3313 doc/SHA256SUMS | 9 +++++++++ 3314 1 file changed, 9 insertions(+) 3315 3316commit cdae0df31e4c2dfb1e885941cd1998e5a2b6e39d 3317Author: Lasse Collin <lasse.collin@tukaani.org> 3318Date: 2025-01-23 11:50:42 +0200 3319 3320 Bump version and soname for 5.7.1alpha 3321 3322 src/liblzma/Makefile.am | 2 +- 3323 src/liblzma/api/lzma/version.h | 2 +- 3324 src/liblzma/liblzma_generic.map | 2 +- 3325 src/liblzma/liblzma_linux.map | 2 +- 3326 4 files changed, 4 insertions(+), 4 deletions(-) 3327 3328commit 4d2af2c43bae25ef4ef9cd88304471d4859aa322 3329Author: Lasse Collin <lasse.collin@tukaani.org> 3330Date: 2025-01-23 11:48:43 +0200 3331 3332 Translations: Run po4a/update-po 3333 3334 po4a/de.po | 64 +++++++++++++++++++++++++++++++++++++++++++++++++---------- 3335 po4a/fr.po | 57 +++++++++++++++++++++++++++++++++++++++++++++++----- 3336 po4a/ko.po | 64 +++++++++++++++++++++++++++++++++++++++++++++++++---------- 3337 po4a/pt_BR.po | 57 +++++++++++++++++++++++++++++++++++++++++++++++----- 3338 po4a/ro.po | 64 +++++++++++++++++++++++++++++++++++++++++++++++++---------- 3339 po4a/uk.po | 64 +++++++++++++++++++++++++++++++++++++++++++++++++---------- 3340 6 files changed, 320 insertions(+), 50 deletions(-) 3341 3342commit ff0b825505e60e21b32e33c42f551c8f34ba393f 3343Author: Lasse Collin <lasse.collin@tukaani.org> 3344Date: 2025-01-23 11:40:46 +0200 3345 3346 Add NEWS for 5.7.1alpha 3347 3348 NEWS | 107 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3349 1 file changed, 107 insertions(+) 3350 3351commit f6cd3e3bfc8d1f5a76dd55170968bf4582b95baf 3352Author: Lasse Collin <lasse.collin@tukaani.org> 3353Date: 2025-01-23 11:40:46 +0200 3354 3355 Add NEWS for 5.6.4 3356 3357 NEWS | 45 +++++++++++++++++++++++++++++++++++++++++++++ 3358 1 file changed, 45 insertions(+) 3359 3360commit b3af3297e4d6cf0eafb48155aa97bb06c82a9228 3361Author: Lasse Collin <lasse.collin@tukaani.org> 3362Date: 2025-01-23 11:40:46 +0200 3363 3364 NEWS: The security fix in 5.6.3 is known as CVE-2024-47611 3365 3366 NEWS | 4 +++- 3367 1 file changed, 3 insertions(+), 1 deletion(-) 3368 3369commit a04b9dd0c7c74fabd8c393d2dc68a221276d6e29 3370Author: Lasse Collin <lasse.collin@tukaani.org> 3371Date: 2025-01-22 16:55:09 +0200 3372 3373 windows/build.bash: Fix error message 3374 3375 Fixes: 1ee716f74085223c8fbcae1d5a384e6bf53c0f6a 3376 3377 windows/build.bash | 2 +- 3378 1 file changed, 1 insertion(+), 1 deletion(-) 3379 3380commit 4eae859ae8ad7072eaa74aeaee79a2c3c12c55cb 3381Author: Lasse Collin <lasse.collin@tukaani.org> 3382Date: 2025-01-22 15:03:55 +0200 3383 3384 Windows: Disable MinGW-w64's stdio functions in size-optimized builds 3385 3386 This only affects builds with UCRT. With legacy MSVCRT, the replacement 3387 functions are always enabled. 3388 3389 Omitting the MinGW-w64 replacements saves over 20 KiB per executable. 3390 The downside is that --enable-small or XZ_SMALL=ON disables thousand 3391 separator support in xz messages. If someone is OK with the slower 3392 speed of slightly smaller builds, lack of thousand separators won't 3393 matter. 3394 3395 Don't override __USE_MINGW_ANSI_STDIO if it is already defined (via 3396 CPPFLAGS or such method). 3397 3398 src/common/sysdefs.h | 30 +++++++++++++++++++++--------- 3399 src/xz/util.c | 6 +++++- 3400 2 files changed, 26 insertions(+), 10 deletions(-) 3401 3402commit a831bc185bdd44c06847eae8df2d35cc281f65da 3403Author: Lasse Collin <lasse.collin@tukaani.org> 3404Date: 2025-01-20 16:44:27 +0200 3405 3406 liblzma: Add raw ARM64, RISC-V, and x86 BCJ filter APIs 3407 3408 Put them behind the LZMA_UNSTABLE macro for now. 3409 3410 These low-level special APIs might become useful in erofs-utils. 3411 3412 src/liblzma/api/lzma/bcj.h | 99 +++++++++++++++++++++++++++++++++++++++++ 3413 src/liblzma/common/common.h | 2 + 3414 src/liblzma/liblzma_generic.map | 10 +++++ 3415 src/liblzma/liblzma_linux.map | 10 +++++ 3416 src/liblzma/simple/arm64.c | 18 ++++++++ 3417 src/liblzma/simple/riscv.c | 18 ++++++++ 3418 src/liblzma/simple/x86.c | 24 ++++++++++ 3419 7 files changed, 181 insertions(+) 3420 3421commit 6f5cdd4534faf7db4b6c123651d6a606bc59b98c 3422Author: Lasse Collin <lasse.collin@tukaani.org> 3423Date: 2025-01-20 16:31:49 +0200 3424 3425 xz: Unify a few strings with liblzma 3426 3427 Avoid having both "%s: foo" and "foo" as translatable strings 3428 so that translators don't need to handle it twice. 3429 3430 src/xz/options.c | 11 ++++++----- 3431 src/xz/util.c | 4 ++-- 3432 2 files changed, 8 insertions(+), 7 deletions(-) 3433 3434commit 713fdaa8b06a83f18b06811aba7b9bd7b7cbf1cb 3435Author: Lasse Collin <lasse.collin@tukaani.org> 3436Date: 2025-01-20 16:31:49 +0200 3437 3438 xz: Translate error messages from lzma_str_to_filters() 3439 3440 liblzma doesn't use gettext but the messages are included in xz.pot, 3441 so xz can translate the messages. 3442 3443 src/xz/coder.c | 9 +++------ 3444 1 file changed, 3 insertions(+), 6 deletions(-) 3445 3446commit f2e2b267cab8d7aa0b0a58c325546ee5070c0028 3447Author: Lasse Collin <lasse.collin@tukaani.org> 3448Date: 2025-01-20 16:31:49 +0200 3449 3450 liblzma: Mark string conversion messages as translatable 3451 3452 po/POTFILES.in | 1 + 3453 src/liblzma/common/string_conversion.c | 96 ++++++++++++++++++++-------------- 3454 2 files changed, 59 insertions(+), 38 deletions(-) 3455 3456commit f49d7413d9a0d480ded6d448c1ef7475ae6cd1c9 3457Author: Lasse Collin <lasse.collin@tukaani.org> 3458Date: 2025-01-20 16:31:35 +0200 3459 3460 liblzma: Tweak a few error messages in lzma_str_to_filters() 3461 3462 src/liblzma/common/string_conversion.c | 9 +++++---- 3463 1 file changed, 5 insertions(+), 4 deletions(-) 3464 3465commit da359c360e986b21cd8d7b888c6a80f56b9d49c7 3466Author: Lasse Collin <lasse.collin@tukaani.org> 3467Date: 2025-01-19 20:11:54 +0200 3468 3469 Update THANKS 3470 3471 THANKS | 1 + 3472 1 file changed, 1 insertion(+) 3473 3474commit f032373561cefaf07f92ffe3fbc471ec6770456e 3475Author: Lasse Collin <lasse.collin@tukaani.org> 3476Date: 2025-01-19 19:40:32 +0200 3477 3478 Update THANKS 3479 3480 THANKS | 1 + 3481 1 file changed, 1 insertion(+) 3482 3483commit 51f038f8cbd5d8a95954c05bfcbbc32f2a313615 3484Author: Lasse Collin <lasse.collin@tukaani.org> 3485Date: 2025-01-13 08:44:58 +0200 3486 3487 liblzma: memcmplen.h: Use 8-byte method on 64-bit unaligned archs 3488 3489 Previously it was enabled only on x86-64 and ARM64 when also support 3490 for unaligned access was detected or manually enabled at built time. 3491 3492 In the default build configuration, the 8-byte method is now enabled 3493 also on 64-bit RISC-V and 64-bit PowerPC (both endiannesses). It was 3494 reported that on big endian POWER9, encoding time may reduce 12-13 %. 3495 3496 This change only affects builds with GCC and Clang because the code 3497 uses __builtin_ctzll or __builtin_clzll. 3498 3499 Thanks to Marcus Comstedt for testing on POWER9. 3500 3501 src/liblzma/common/memcmplen.h | 3 +-- 3502 1 file changed, 1 insertion(+), 2 deletions(-) 3503 3504commit 96336b0110d47756a9fd2a103fbf0a99e905fbed 3505Author: Lasse Collin <lasse.collin@tukaani.org> 3506Date: 2025-01-12 13:06:17 +0200 3507 3508 Update THANKS 3509 3510 THANKS | 1 + 3511 1 file changed, 1 insertion(+) 3512 3513commit 150356207c8d6a3e0af465b676430d19d62f884c 3514Author: Lasse Collin <lasse.collin@tukaani.org> 3515Date: 2025-01-12 12:59:20 +0200 3516 3517 liblzma: Fix the encoder breakage on big endian ARM64 3518 3519 When the 8-byte method was enabled for ARM64, a check for endianness 3520 wasn't added. This broke the LZMA/LZMA2 encoder. Test suite caught it. 3521 3522 Fixes: cd64dd70d5665b6048829c45772d08606f44672e 3523 Co-authored-by: Marcus Comstedt <marcus@mc.pp.se> 3524 3525 src/liblzma/common/memcmplen.h | 9 +++++++-- 3526 1 file changed, 7 insertions(+), 2 deletions(-) 3527 3528commit b01b0958025a2da284b53a583f313f8140636cb5 3529Author: Lasse Collin <lasse.collin@tukaani.org> 3530Date: 2025-01-12 11:04:27 +0200 3531 3532 Windows: Update manifest comments about long UTF-8 filenames 3533 3534 src/common/w32_application.manifest.comments.txt | 23 +++++++++++++++-------- 3535 1 file changed, 15 insertions(+), 8 deletions(-) 3536 3537commit 0dfc67d37ebb038be8a9b17b536d1b561d52e81a 3538Author: Lasse Collin <lasse.collin@tukaani.org> 3539Date: 2025-01-12 10:47:58 +0200 3540 3541 Windows: Update build.bash and its README-Windows.txt to UCRT 3542 3543 While MSVCRT builds are possible, UCRT works better with UTF-8. 3544 A 32-bit build is included still but hopefully it's not actually 3545 needed anymore. 3546 3547 windows/README-Windows.txt | 17 ++++++++--------- 3548 windows/build.bash | 20 ++++++++++++++------ 3549 2 files changed, 22 insertions(+), 15 deletions(-) 3550 3551commit 7b3eb2db6c4ba24b5eb438e58ab1ca57e14e59c2 3552Author: Lasse Collin <lasse.collin@tukaani.org> 3553Date: 2025-01-10 13:11:40 +0200 3554 3555 Translations: Update Serbian translation 3556 3557 I rewrapped a few overlong lines. Those edits aren't in the 3558 Translation Project. Automatic wrapping in the master branch 3559 means that these strings need to be updated soon anyway. 3560 3561 po/sr.po | 346 ++++++++++++++++++++++----------------------------------------- 3562 1 file changed, 121 insertions(+), 225 deletions(-) 3563 3564commit 950da11ce09c90412dcbca29689575037640667a 3565Author: Lasse Collin <lasse.collin@tukaani.org> 3566Date: 2025-01-08 19:26:29 +0200 3567 3568 Build: Use --sort=name in TAR_OPTIONS 3569 3570 Use also LC_COLLATE=C to make the sorting locale-independent. 3571 Sorting makes the file order reproducible. 3572 3573 Makefile.am | 3 ++- 3574 1 file changed, 2 insertions(+), 1 deletion(-) 3575 3576commit 75d91d6b39ea3e2fae8f027dcec01be2dca9594d 3577Author: Lasse Collin <lasse.collin@tukaani.org> 3578Date: 2025-01-08 19:08:08 +0200 3579 3580 xz: Workaround broken O_SEARCH in musl 3581 3582 Testing with musl 1.2.5 and Linux 6.12, O_SEARCH doesn't result 3583 in a file descriptor that works with fsync() although it should work. 3584 See the added comment. 3585 3586 The same issue affected gzip --synchronous: 3587 3588 https://bugs.gnu.org/75405 3589 3590 Thanks to Paul Eggert. 3591 3592 src/xz/file_io.c | 11 +++++++++++ 3593 1 file changed, 11 insertions(+) 3594 3595commit ea92eae122a3ccefa61087f84fd99b417fc9ee3c 3596Author: Lasse Collin <lasse.collin@tukaani.org> 3597Date: 2025-01-07 21:34:33 +0200 3598 3599 Revert "xz: O_SEARCH cannot be used for fsync()" 3600 3601 This reverts commit 4014e2479c7b0273f15bd0c9c017c5fe859b0d8f. 3602 3603 POSIX-conforming O_SEARCH should allow fsync(). 3604 3605 src/xz/file_io.c | 21 +++++++++++---------- 3606 1 file changed, 11 insertions(+), 10 deletions(-) 3607 3608commit 4014e2479c7b0273f15bd0c9c017c5fe859b0d8f 3609Author: Lasse Collin <lasse.collin@tukaani.org> 3610Date: 2025-01-05 21:43:11 +0200 3611 3612 xz: O_SEARCH cannot be used for fsync() 3613 3614 Opening a directory with O_SEARCH results in a file descriptor that can 3615 be used with functions like openat(). Such a file descriptor cannot be 3616 used with fsync(). Use O_RDONLY instead. 3617 3618 In musl, O_SEARCH becomes Linux-specific O_PATH. A file descriptor 3619 from O_PATH doesn't allow fsync(). 3620 3621 Seems that it's not possible to fsync() a directory that has write 3622 and search permissions but not read permission. 3623 3624 Fixes: 2a9e91d796d091740489d951fa7780525e4275f1 3625 3626 src/xz/file_io.c | 21 ++++++++++----------- 3627 1 file changed, 10 insertions(+), 11 deletions(-) 3628 3629commit ad2b57cb477b753293c25a01fc24c7f84ee523c2 3630Author: Lasse Collin <lasse.collin@tukaani.org> 3631Date: 2025-01-05 20:48:28 +0200 3632 3633 CI: Make ctest show errors from failed tests 3634 3635 build-aux/ci_build.bash | 2 +- 3636 1 file changed, 1 insertion(+), 1 deletion(-) 3637 3638commit c405264c031aceaf68dfd1546d6337afcebd48e5 3639Author: Lasse Collin <lasse.collin@tukaani.org> 3640Date: 2025-01-05 20:14:49 +0200 3641 3642 tuklib_mbstr_nonprint: Preserve the value of errno 3643 3644 A typical use case is like this: 3645 3646 printf("%s: %s\n", tuklib_mask_nonprint(filename), strerror(errno)); 3647 3648 tuklib_mask_nonprint() may call mbrtowc() and malloc() which may modify 3649 errno. If errno isn't preserved, the error message might be wrong if 3650 a compiler decides to call tuklib_mask_nonprint() before strerror(). 3651 3652 Fixes: 40e573305535960574404d2eae848b248c95ea7e 3653 3654 src/common/tuklib_mbstr_nonprint.c | 17 ++++++++++++++--- 3655 src/common/tuklib_mbstr_nonprint.h | 4 +++- 3656 2 files changed, 17 insertions(+), 4 deletions(-) 3657 3658commit 2a9e91d796d091740489d951fa7780525e4275f1 3659Author: Lasse Collin <lasse.collin@tukaani.org> 3660Date: 2025-01-05 20:14:49 +0200 3661 3662 xz: Use fsync() before deleting the input file, and add --no-sync 3663 3664 xz's default behavior is to delete the input file after successful 3665 compression or decompression (unless writing to standard output). 3666 If the system crashes soon after the deletion, it is possible that 3667 the newly written file has not yet hit the disk while the previous 3668 delete operation might have. In that case neither the original file 3669 nor the written file is available. 3670 3671 Call fsync() on the file. On POSIX systems, sync also the directory 3672 where the file was created. 3673 3674 Add a new option --no-sync which disables fsync() usage. It can avoid 3675 a (possibly significant) performance penalty when processing many 3676 small files. It's fine to use --no-sync when one knows that the files 3677 are easy to recreate or restore after a system crash. 3678 3679 Using fsync() after every flush initiated by --flush-timeout was 3680 considered. It wasn't implemented at least for now. 3681 3682 - --flush-timeout is typically used when writing to stdout. If stdout 3683 is a file, xz cannot (portably) sync the directory of the file. 3684 One would need to create the output file first, sync the directory, 3685 and then run xz with fsync() enabled. 3686 3687 - If xz --flush-timeout output goes to a file, it's possible to use 3688 a separate script to sync the file, for example, once per minute 3689 while telling xz to flush more frequently. 3690 3691 - Not supporting syncing with --flush-timeout was simpler. 3692 3693 Portability notes: 3694 3695 - On systems that lack O_SEARCH (like Linux), "xz dir/file" will now 3696 fail if "dir" cannot be opened for reading. If "dir" still has 3697 write and search permissions (like d-wx------ in "ls -l"), 3698 previously xz would have been able to compress "dir/file" still. 3699 Now it only works if using --no-sync (or --keep or --stdout). 3700 3701 - <libgen.h> and dirname() should be available on all POSIX systems, 3702 and aren't needed on non-POSIX systems. 3703 3704 - fsync() is available on all POSIX systems. The directory syncing 3705 could be changed to fdatasync() although at least on ext4 it 3706 doesn't seem to make a performance difference in xz's usage. 3707 fdatasync() would need a build system check to support (old) 3708 special cases, for example, MINIX 3.3.0 doesn't have fdatasync() 3709 and Solaris 10 needs -lrt. 3710 3711 - On native Windows, _commit() is used to replace fsync(). Directory 3712 syncing isn't done and shouldn't be needed. (In Cygwin, fsync() on 3713 directories is a no-op.) 3714 3715 - DJGPP has fsync() for files. ;-) 3716 3717 Using fsync() was considered somewhere around 2009 and again in 2016 but 3718 those times the idea was rejected. For comparison, GNU gzip 1.7 (2016) 3719 added the option --synchronous which enables fsync(). 3720 3721 Co-authored-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc> 3722 Fixes: https://bugs.debian.org/814089 3723 Link: https://www.mail-archive.com/xz-devel@tukaani.org/msg00282.html 3724 Closes: https://github.com/tukaani-project/xz/pull/151 3725 3726 src/xz/args.c | 14 ++++++ 3727 src/xz/args.h | 2 +- 3728 src/xz/file_io.c | 129 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 3729 src/xz/file_io.h | 6 +++ 3730 src/xz/message.c | 3 ++ 3731 src/xz/sandbox.c | 5 ++- 3732 src/xz/xz.1 | 24 ++++++++++- 3733 7 files changed, 177 insertions(+), 6 deletions(-) 3734 3735commit 2e28c7145747b3287283f13c9d2becd73a7c4a1f 3736Author: Lasse Collin <lasse.collin@tukaani.org> 3737Date: 2024-12-27 09:15:50 +0200 3738 3739 xz: Use "goto" for error handling in io_open_dest_real() 3740 3741 src/xz/file_io.c | 20 +++++++++----------- 3742 1 file changed, 9 insertions(+), 11 deletions(-) 3743 3744commit 75107217670a97b7b772833669d88c3c2f188e37 3745Author: Lasse Collin <lasse.collin@tukaani.org> 3746Date: 2025-01-05 12:10:05 +0200 3747 3748 liblzma: Always validate the first digit of a preset string 3749 3750 lzma_str_to_filters() may call parse_lzma12_preset() in two ways. The 3751 call from str_to_filters() detects the string type from the first 3752 character(s) and as a side-effect it validates the first digit of 3753 the preset string. So this change makes no difference there. 3754 3755 However, the call from parse_options() doesn't pre-validate the string. 3756 parse_lzma12_preset() will return an invalid value which is passed to 3757 lzma_lzma_preset() which safely rejects it. The bug still affects the 3758 the error message: 3759 3760 $ xz --filters=lzma2:preset=X 3761 xz: Error in --filters=FILTERS option: 3762 xz: lzma2:preset=X 3763 xz: ^ 3764 xz: Unsupported preset 3765 3766 After the fix: 3767 3768 $ xz --filters=lzma2:preset=X 3769 xz: Error in --filters=FILTERS option: 3770 xz: lzma2:preset=X 3771 xz: ^ 3772 xz: Unsupported preset 3773 3774 The ^ now correctly points to the X and not past it because the X itself 3775 is the problematic character. 3776 3777 Fixes: cedeeca2ea6ada5b0411b2ae10d7a859e837f203 3778 3779 src/liblzma/common/string_conversion.c | 4 ++++ 3780 1 file changed, 4 insertions(+) 3781 3782commit 52ff32433734d03befd85a5bf00fba77d6501455 3783Author: Lasse Collin <lasse.collin@tukaani.org> 3784Date: 2025-01-05 11:40:34 +0200 3785 3786 xz: Fix getopt_long argument type in --filters* 3787 3788 Forgetting the argument (or not using = to separate the option from 3789 the argument) resulted in lzma_str_to_filters() being called with NULL 3790 as input string argument. The function handles it fine but xz passes 3791 the NULL to printf() too: 3792 3793 $ xz --filters 3794 xz: Error in --filters=FILTERS option: 3795 xz: (null) 3796 xz: ^ 3797 xz: Unexpected NULL pointer argument(s) to lzma_str_to_filters() 3798 3799 Now it's correct: 3800 3801 $ xz --filters 3802 xz: option '--filters' requires an argument 3803 3804 The --filters-help option doesn't take any arguments. 3805 3806 Fixes: 9ded880a0221f4d1256845fc4ab957ffd377c760 3807 Fixes: d6af7f347077b22403133239592e478931307759 3808 Fixes: a165d7df1964121eb9df715e6f836a31c865beef 3809 3810 src/xz/args.c | 22 +++++++++++----------- 3811 1 file changed, 11 insertions(+), 11 deletions(-) 3812 3813commit 2655c81b5e92278b0fd51f6537c1116f8349b02a 3814Author: Lasse Collin <lasse.collin@tukaani.org> 3815Date: 2025-01-04 20:04:56 +0200 3816 3817 xzdec: Don't leave Landlock file descriptor open for no reason 3818 3819 This fix is similar to 48ff3f06521ca326996ab9a04d1b342098960427. 3820 3821 Fixes: d74fb5f060b76db709b50f5fd37490394e52f975 3822 3823 src/xzdec/xzdec.c | 2 ++ 3824 1 file changed, 2 insertions(+) 3825 3826commit 35df4c2bc0500e60ba9d0d163d37a6d110d6841e 3827Author: Lasse Collin <lasse.collin@tukaani.org> 3828Date: 2025-01-04 20:02:18 +0200 3829 3830 xz: Make --single-stream imply --keep 3831 3832 Suggested by xx on #tukaani on 2024-04-12. 3833 3834 src/xz/args.c | 3 +++ 3835 src/xz/xz.1 | 9 ++++++++- 3836 2 files changed, 11 insertions(+), 1 deletion(-) 3837 3838commit 6f412814a8019700248229ce972530159a0d9872 3839Author: Lasse Collin <lasse.collin@tukaani.org> 3840Date: 2025-01-04 19:57:07 +0200 3841 3842 Update AUTHORS 3843 3844 The contributions have been rewritten. 3845 3846 AUTHORS | 2 +- 3847 src/liblzma/check/crc32_arm64.h | 1 - 3848 src/liblzma/check/crc32_fast.c | 1 - 3849 src/liblzma/check/crc_common.h | 1 - 3850 4 files changed, 1 insertion(+), 4 deletions(-) 3851 3852commit 5651d153031a7ee2581cdba9bff658031826cb50 3853Author: Lasse Collin <lasse.collin@tukaani.org> 3854Date: 2025-01-04 15:02:16 +0200 3855 3856 xz: Avoid printf formats like %2$s 3857 3858 It's a POSIX feature that isn't in standard C. It's not available on 3859 Windows. Even MinGW-w64 with __USE_MINGW_ANSI_STDIO doesn't support 3860 it even though it supports POSIX %'d for thousand separators. 3861 3862 Gettext's <libintl.h> provides overrides for printf and other functions 3863 which do support the %2$s formats. Translations use them. But xz should 3864 work on Windows without <libintl.h> too. 3865 3866 Fixes: 3e9177fd206d20d6d8acc7d203c25a9ae0549229 3867 3868 src/xz/message.c | 51 ++++++++++++++++++++++++++++++++------------------- 3869 1 file changed, 32 insertions(+), 19 deletions(-) 3870 3871commit 63b246c90e7677c617faab1d3f6fc5c643b5e7cf 3872Author: Lasse Collin <lasse.collin@tukaani.org> 3873Date: 2025-01-04 14:41:37 +0200 3874 3875 tuklib_mbstr_wrap: Add printf format attribute 3876 3877 It's supported by GCC 3.x already. 3878 3879 src/common/tuklib_common.h | 7 +++++++ 3880 src/common/tuklib_mbstr_wrap.h | 1 + 3881 2 files changed, 8 insertions(+) 3882 3883commit a7313c01d9b8db71ffb61dc1dd7c4ea928824b4b 3884Author: Lasse Collin <lasse.collin@tukaani.org> 3885Date: 2025-01-04 13:44:12 +0200 3886 3887 xz: Translate a Windows-specific string 3888 3889 Originally I thought that native Windows builds wouldn't be translated 3890 but nowadays at least MSYS2 ships such binaries. 3891 3892 src/xz/file_io.c | 2 +- 3893 1 file changed, 1 insertion(+), 1 deletion(-) 3894 3895commit 00eb6073c088be9e7516dfc00a13ef520827b57c 3896Author: Lasse Collin <lasse.collin@tukaani.org> 3897Date: 2025-01-02 15:32:10 +0200 3898 3899 xz: Use my_landlock.h 3900 3901 A slightly silly thing is that xz may now query the ABI version up to 3902 three times. We could call my_landlock_ruleset_attr_forbid_all() only 3903 once and cache the result but it didn't seem worth doing. 3904 3905 CMakeLists.txt | 1 + 3906 src/xz/sandbox.c | 72 ++++++++++---------------------------------------------- 3907 2 files changed, 13 insertions(+), 60 deletions(-) 3908 3909commit 0fc5a625d7cc4ad51fde9367de088b9ad3bd40f6 3910Author: Lasse Collin <lasse.collin@tukaani.org> 3911Date: 2025-01-02 15:32:10 +0200 3912 3913 xzdec: Use my_landlock.h 3914 3915 CMakeLists.txt | 1 + 3916 src/xzdec/xzdec.c | 34 ++++++---------------------------- 3917 2 files changed, 7 insertions(+), 28 deletions(-) 3918 3919commit 38cb8ec9fd70d25fca6b473de44cf61586238552 3920Author: Lasse Collin <lasse.collin@tukaani.org> 3921Date: 2025-01-02 15:32:10 +0200 3922 3923 Add my_landlock.h with helper functions to use Linux Landlock 3924 3925 This supports up to Landlock ABI version 6. The current code in 3926 xz and xzdec only support up to ABI version 4. 3927 3928 src/Makefile.am | 1 + 3929 src/common/my_landlock.h | 141 +++++++++++++++++++++++++++++++++++++++++++++++ 3930 2 files changed, 142 insertions(+) 3931 3932commit 672da29bb3a209a727ae46c0df948d7eea69f2e2 3933Author: Lasse Collin <lasse.collin@tukaani.org> 3934Date: 2025-01-01 18:46:50 +0200 3935 3936 liblzma: Silence warnings from "clang -Wimplicit-fallthrough" 3937 3938 src/liblzma/lzma/lzma_decoder.c | 2 +- 3939 1 file changed, 1 insertion(+), 1 deletion(-) 3940 3941commit 1a8a1ad9a1e3179ce267baa551fb17b30624b4dd 3942Author: Lasse Collin <lasse.collin@tukaani.org> 3943Date: 2025-01-01 15:34:51 +0200 3944 3945 Build: Use -Wimplicit-fallthrough=5 when supported 3946 3947 Now that we have the FALLTHROUGH macro, use the strictest mode with 3948 GCC so that comment-based fallthrough markings are no longer accepted. 3949 3950 In GCC, -Wextra includes -Wimplicit-fallthrough=3 and 3951 -Wimplicit-fallthrough is the same as -Wimplicit-fallthrough=3. 3952 Thus, the strict mode requires specifying -Wimplicit-fallthrough=5. 3953 3954 Clang has -Wimplicit-fallthrough which is *not* enabled by -Wextra. 3955 Clang doesn't have a variant that takes an argument. Thus we need 3956 to check for -Wimplicit-fallthrough. Do it before checking for 3957 -Wimplicit-fallthrough=5 so that the latter overrides the former 3958 when using GCC. 3959 3960 CMakeLists.txt | 2 ++ 3961 configure.ac | 2 ++ 3962 2 files changed, 4 insertions(+) 3963 3964commit 94adc996e45cc5cad9352cc3271d3a1a2f5c4c22 3965Author: Lasse Collin <lasse.collin@tukaani.org> 3966Date: 2025-01-01 15:30:50 +0200 3967 3968 Replace "Fall through" comments with FALLTHROUGH 3969 3970 src/liblzma/common/alone_decoder.c | 3 +-- 3971 src/liblzma/common/auto_decoder.c | 5 ++--- 3972 src/liblzma/common/block_decoder.c | 6 ++---- 3973 src/liblzma/common/block_encoder.c | 6 ++---- 3974 src/liblzma/common/common.c | 2 +- 3975 src/liblzma/common/file_info.c | 22 +++++++++------------- 3976 src/liblzma/common/index_decoder.c | 9 +++------ 3977 src/liblzma/common/index_encoder.c | 6 ++---- 3978 src/liblzma/common/index_hash.c | 7 +++---- 3979 src/liblzma/common/lzip_decoder.c | 14 +++++--------- 3980 src/liblzma/common/stream_decoder.c | 16 ++++++---------- 3981 src/liblzma/common/stream_decoder_mt.c | 25 +++++++++---------------- 3982 src/liblzma/common/stream_encoder_mt.c | 10 ++++------ 3983 src/liblzma/lzma/lzma2_encoder.c | 9 +++------ 3984 src/xz/args.c | 2 +- 3985 src/xz/list.c | 3 +-- 3986 16 files changed, 54 insertions(+), 91 deletions(-) 3987 3988commit f31c3a6647b5a5d056324a9c83e6b2c940ebec22 3989Author: Lasse Collin <lasse.collin@tukaani.org> 3990Date: 2025-01-01 15:08:51 +0200 3991 3992 sysdefs.h: Add FALLTHROUGH macro 3993 3994 src/common/sysdefs.h | 9 +++++++++ 3995 1 file changed, 9 insertions(+) 3996 3997commit e34dbd6a0ae7a560a5508d51fc0bd142c5a320dc 3998Author: Lasse Collin <lasse.collin@tukaani.org> 3999Date: 2025-01-01 15:06:15 +0200 4000 4001 xzdec: Fix language in a comment 4002 4003 src/xzdec/xzdec.c | 2 +- 4004 1 file changed, 1 insertion(+), 1 deletion(-) 4005 4006commit 16821252c504071f5c2012e415e59cbf5fb79820 4007Author: Lasse Collin <lasse.collin@tukaani.org> 4008Date: 2025-01-02 13:35:48 +0200 4009 4010 Windows: Make NLS require UCRT and gettext-runtime >= 0.23.1 4011 4012 Also remove the recently-added workaround from tuklib_gettext.h. 4013 Requiring a new enough gettext-runtime is cleaner. I guess it's 4014 mostly MSYS2 where xz is built with translation support, so once 4015 MSYS2 has Gettext >= 0.23.1, this requirement shouldn't be a problem 4016 in practice. 4017 4018 CMakeLists.txt | 29 ++++++++++++++++++++++++++ 4019 configure.ac | 29 ++++++++++++++++++++++++++ 4020 src/common/tuklib_gettext.h | 51 --------------------------------------------- 4021 3 files changed, 58 insertions(+), 51 deletions(-) 4022 4023commit aa1807ed942579f700a08ab091b796cf04e31aec 4024Author: Lasse Collin <lasse.collin@tukaani.org> 4025Date: 2025-01-02 11:52:17 +0200 4026 4027 windows/build-with-cmake.bat: Fix ENABLE_NLS to XZ_NLS 4028 4029 Fixes: 29f77c7b707f2458fb047e77497354b195e05b14 4030 4031 windows/build-with-cmake.bat | 2 +- 4032 1 file changed, 1 insertion(+), 1 deletion(-) 4033 4034commit ea21c76aa2406ba06ac154fe57741734c04f260f 4035Author: Lasse Collin <lasse.collin@tukaani.org> 4036Date: 2024-12-30 11:21:57 +0200 4037 4038 Build: Use git log --pretty=medium when creating ChangeLog 4039 4040 It's the default in git-log. Specifying it explicitly is good in case 4041 a user has set format.pretty to a different value. 4042 4043 Makefile.am | 4 ++-- 4044 1 file changed, 2 insertions(+), 2 deletions(-) 4045 4046commit 08050c0788ce5bac0ffd572e9784a2749c4a13df 4047Author: Lasse Collin <lasse.collin@tukaani.org> 4048Date: 2024-12-30 10:51:33 +0200 4049 4050 Windows: Update MinGW-w64 + CMake instructions to recommend UCRT 4051 4052 windows/INSTALL-MinGW-w64_with_CMake.txt | 38 +++++++++++++++++++------------- 4053 1 file changed, 23 insertions(+), 15 deletions(-) 4054 4055commit 653732bd6f06d8f465bf353bf6e1c16f1405b906 4056Author: Lasse Collin <lasse.collin@tukaani.org> 4057Date: 2024-12-30 10:51:26 +0200 4058 4059 xz man page: Describe the source file deletion in -z and -d options 4060 4061 The DESCRIPTION section always explained it, and the OPTIONS section 4062 only described the differences to the default behavior. However, new 4063 users in a hurry may skip reading DESCRIPTION. The default behavior 4064 is a bit dangerous, thus it's good to repeat in --compress and 4065 --decompress docs that source file is removed after successful operation. 4066 4067 Fixes: https://github.com/tukaani-project/xz/issues/150 4068 4069 src/xz/xz.1 | 17 ++++++++++++++++- 4070 1 file changed, 16 insertions(+), 1 deletion(-) 4071 4072commit bb79f79b278fd4fb06a0bcd5ab3445c468f9baaf 4073Author: Lasse Collin <lasse.collin@tukaani.org> 4074Date: 2024-12-27 21:52:28 +0200 4075 4076 Build: Set libtool -version-info so that it matches with CMake 4077 4078 In the past, they haven't been in sync in development versions 4079 although they (of course) have been in stable releases. 4080 4081 src/liblzma/Makefile.am | 2 +- 4082 1 file changed, 1 insertion(+), 1 deletion(-) 4083 4084commit cf54f70e14c218faf5019ffa2fa769ed73772ee8 4085Author: Lasse Collin <lasse.collin@tukaani.org> 4086Date: 2024-12-28 18:28:56 +0200 4087 4088 CMake/macOS: Use GNU Libtool compatible shared library versioning 4089 4090 Because this increases the Mach-O compatibility_version, this commit 4091 shouldn't cause any ABI compatibility trouble for existing CMake users 4092 on macOS. This is assuming that they won't later downgrade to an older 4093 liblzma version that was built with CMake before this commit. 4094 4095 Meson allows customising the Mach-O versioning too. So the three 4096 build systems can be configured to be compatible. 4097 4098 CMakeLists.txt | 51 ++++++++++++++++++++++++++++++++++++++++++++++++--- 4099 1 file changed, 48 insertions(+), 3 deletions(-) 4100 4101commit 94e17916689d38bc09bf35e602ed6f6276034b59 4102Author: Lasse Collin <lasse.collin@tukaani.org> 4103Date: 2024-12-28 14:49:45 +0200 4104 4105 CMake: Edit a comment 4106 4107 CMakeLists.txt | 2 +- 4108 1 file changed, 1 insertion(+), 1 deletion(-) 4109 4110commit 6b50590725aeae8a2aed06faa3238cb9f8771c1b 4111Author: Lasse Collin <lasse.collin@tukaani.org> 4112Date: 2024-12-28 20:39:49 +0200 4113 4114 version.sh: Omit an unwanted dot from development versions 4115 4116 It printed 5.7.0.alpha instead of 5.7.0alpha. 4117 4118 Fixes: e7a42cda7c827e016619e8cab15e2faf5d4181ae 4119 4120 build-aux/version.sh | 2 +- 4121 1 file changed, 1 insertion(+), 1 deletion(-) 4122 4123commit f7a248f56e94310a080051c4a709c08514fa48b1 4124Author: Lasse Collin <lasse.collin@tukaani.org> 4125Date: 2024-12-27 16:25:07 +0200 4126 4127 CMake: Remove a duplicate word from a comment 4128 4129 CMakeLists.txt | 4 ++-- 4130 1 file changed, 2 insertions(+), 2 deletions(-) 4131 4132commit 8b7c55d148f4a9b3702207164e862437ddffad33 4133Author: Lasse Collin <lasse.collin@tukaani.org> 4134Date: 2024-12-27 16:23:12 +0200 4135 4136 INSTALL: Document CMAKE_DLL_NAME_WITH_SOVERSION 4137 4138 INSTALL | 19 +++++++++++++++++++ 4139 1 file changed, 19 insertions(+) 4140 4141commit 260d5d36203955a7148ae1ab05d0931c942028d5 4142Author: Lasse Collin <lasse.collin@tukaani.org> 4143Date: 2024-12-26 21:27:18 +0200 4144 4145 xz: Fix comments 4146 4147 src/xz/file_io.c | 4 ++-- 4148 src/xz/file_io.h | 4 ++-- 4149 2 files changed, 4 insertions(+), 4 deletions(-) 4150 4151commit bf6da9a573a780cd1a7fb1728ef55d09e58dad11 4152Author: Dexter Castor Döpping <dexter.c.dopping@gmail.com> 4153Date: 2024-12-22 13:44:03 +0100 4154 4155 CMake: Disable unity builds project-wide 4156 4157 liblzma and xz can't be compiled as a unity/jumbo build because of 4158 redeclarations and type name reuse. The CMake documentation recommends 4159 setting UNITY_BUILD to false in this case. 4160 4161 This is especially important if we're compiled as a subproject and the 4162 consumer wants to use CMAKE_UNITY_BUILD=ON for the rest of their code 4163 base. 4164 4165 Closes: https://github.com/tukaani-project/xz/pull/158 4166 4167 CMakeLists.txt | 6 ++++++ 4168 1 file changed, 6 insertions(+) 4169 4170commit f8c328eed1bf0a0168132025a52116b7735f894c 4171Author: Lasse Collin <lasse.collin@tukaani.org> 4172Date: 2024-12-20 08:51:18 +0200 4173 4174 Windows: Workaround a UTF-8 issue in Gettext's libintl_setlocale() 4175 4176 See the comment. In this package, locale is set at program startup and 4177 not changed later, so the point (2) in the comment isn't a problem. 4178 4179 Fixes: 46ee0061629fb075d61d83839e14dd193337af59 4180 4181 src/common/tuklib_gettext.h | 51 +++++++++++++++++++++++++++++++++++++++++++++ 4182 1 file changed, 51 insertions(+) 4183 4184commit 03533906093529701ba91081907d8977991997de 4185Author: Lasse Collin <lasse.collin@tukaani.org> 4186Date: 2024-12-20 06:50:36 +0200 4187 4188 Revert "Windows: Use UTF-8 locale when active code page is UTF-8" 4189 4190 This reverts commit 0d0b574cc45045d6150d397776340c068df59e2a. 4191 4192 src/common/tuklib_gettext.h | 32 ++------------------------------ 4193 1 file changed, 2 insertions(+), 30 deletions(-) 4194 4195commit 4b319e05afef4eab2fbafb6223f25d128ec99fce 4196Author: Lasse Collin <lasse.collin@tukaani.org> 4197Date: 2024-12-19 18:31:09 +0200 4198 4199 xzdec: Use setlocale() instead of tuklib_gettext_setlocale() 4200 4201 xzdec isn't translated and doesn't need libintl on Windows even 4202 when NLS is enabled, thus libintl_setlocale() cannot interfere 4203 with the locale settings. Thus, standard setlocale() works perfectly. 4204 4205 In the commit 78868b6e, the explanation in the commit message is wrong. 4206 4207 Fixes: 78868b6ed63fa4c89f73e3dfed27abfb8b0d46db 4208 4209 src/xzdec/xzdec.c | 9 +++------ 4210 1 file changed, 3 insertions(+), 6 deletions(-) 4211 4212commit 34b80e282ea76ec793eaedaef58a36c3913dec78 4213Author: Lasse Collin <lasse.collin@tukaani.org> 4214Date: 2024-12-19 19:36:15 +0200 4215 4216 Windows: Revert the setlocale(LC_ALL, ".UTF8") documentation 4217 4218 Only leave the FindFileFirstA() notes from 20dfca81, reverting 4219 the incorrect setlocale() notes. On Windows, Gettext's <libintl.h> 4220 overrides setlocale() with libintl_setlocale() wrapper. I hadn't 4221 noticed this, and thus my conclusions were wrong. 4222 4223 Fixes: 20dfca8171dad4c64785ac61d5b68972c444877b 4224 4225 src/common/w32_application.manifest.comments.txt | 21 +-------------------- 4226 1 file changed, 1 insertion(+), 20 deletions(-) 4227 4228commit 5794cda064ce980450eaa5a4e2c71bd317168ce4 4229Author: Lasse Collin <lasse.collin@tukaani.org> 4230Date: 2024-12-18 17:49:05 +0200 4231 4232 tuklib_mbstr_wrap: Silence a warning from Clang 4233 4234 Fixes: ca529c3f41a4a19a59e2e252e6dd9255f130c634 4235 4236 src/common/tuklib_mbstr_wrap.c | 9 +++++++++ 4237 1 file changed, 9 insertions(+) 4238 4239commit 16c9796ef970ae349c54fef9a346e394d7cc4c75 4240Author: Lasse Collin <lasse.collin@tukaani.org> 4241Date: 2024-12-18 14:00:09 +0200 4242 4243 Update THANKS 4244 4245 THANKS | 2 ++ 4246 1 file changed, 2 insertions(+) 4247 4248commit 3b5c8a1fcab385eed9cc95684223fddd7cf5a053 4249Author: Lasse Collin <lasse.collin@tukaani.org> 4250Date: 2024-12-18 14:00:09 +0200 4251 4252 Update TODO 4253 4254 Fixes: 5f6dddc6c911df02ba660564e78e6de80947c947 4255 4256 TODO | 3 --- 4257 1 file changed, 3 deletions(-) 4258 4259commit 22a35e64ce3d331b668f15f858a7bb3da3acc78e 4260Author: Lasse Collin <lasse.collin@tukaani.org> 4261Date: 2024-12-18 14:00:09 +0200 4262 4263 lzmainfo: Use tuklib_mbstr_nonprint 4264 4265 CMakeLists.txt | 3 +++ 4266 src/lzmainfo/Makefile.am | 1 + 4267 src/lzmainfo/lzmainfo.c | 16 ++++++++++------ 4268 3 files changed, 14 insertions(+), 6 deletions(-) 4269 4270commit 03111595ee713e0f94fb4f4a19a15594d5149347 4271Author: Lasse Collin <lasse.collin@tukaani.org> 4272Date: 2024-12-18 14:00:09 +0200 4273 4274 xzdec: Use tuklib_mbstr_nonprint 4275 4276 CMakeLists.txt | 3 +++ 4277 src/xzdec/Makefile.am | 2 ++ 4278 src/xzdec/xzdec.c | 15 +++++++++++---- 4279 3 files changed, 16 insertions(+), 4 deletions(-) 4280 4281commit d22f96921fd2f94d842f3cc2e5f729cb3cca5122 4282Author: Lasse Collin <lasse.collin@tukaani.org> 4283Date: 2024-12-18 14:00:09 +0200 4284 4285 xz: Use tuklib_mbstr_nonprint 4286 4287 Call tuklib_mask_nonprint() on filenames and also on a few other 4288 strings from the command line too. 4289 4290 The filename printed by "xz --robot --list" (in list.c) is also masked. 4291 It's good to get rid of tabs and newlines which would desync the output 4292 but masking other chars wouldn't be strictly necessary. It might matter 4293 with sensible filenames if LC_CTYPE is "C" (when iswprint() might reject 4294 non-ASCII chars) and a script wants to read a filename from xz's output. 4295 Hopefully it's an unusual enough corner case to not be a real problem. 4296 4297 CMakeLists.txt | 2 ++ 4298 src/xz/Makefile.am | 1 + 4299 src/xz/coder.c | 19 ++++++++----- 4300 src/xz/file_io.c | 81 ++++++++++++++++++++++++++++++++++-------------------- 4301 src/xz/list.c | 32 +++++++++++++-------- 4302 src/xz/main.c | 10 +++++-- 4303 src/xz/message.c | 8 ++++-- 4304 src/xz/options.c | 10 ++++--- 4305 src/xz/private.h | 1 + 4306 src/xz/suffix.c | 12 ++++---- 4307 10 files changed, 113 insertions(+), 63 deletions(-) 4308 4309commit 40e573305535960574404d2eae848b248c95ea7e 4310Author: Lasse Collin <lasse.collin@tukaani.org> 4311Date: 2024-12-18 14:00:09 +0200 4312 4313 Add tuklib_mbstr_nonprint to mask non-printable characters 4314 4315 Malicious filenames or other untrusted strings may affect the state of 4316 the terminal when such strings are printed as part of (error) messages. 4317 Add functions that mask such characters. 4318 4319 It's not enough to handle only single-byte control characters. 4320 In multibyte locales, some control characters are multibyte too, for 4321 example, terminals interpret C1 control characters (U+0080 to U+009F) 4322 that are two bytes as UTF-8. 4323 4324 Instead of checking for control characters with iswcntrl(), this 4325 uses iswprint() to detect printable characters. This is much stricter. 4326 On Windows it's actually too strict as it rejects some characters that 4327 definitely are printable. 4328 4329 Gnulib's quotearg would do a lot more but I hope this simpler method 4330 is good enough here. 4331 4332 Thanks to Ryan Colyer for the discussion about the problems of 4333 the earlier single-byte-only method. 4334 4335 Thanks to Christian Weisgerber for reporting a bug in an earlier 4336 version of this code. 4337 4338 Thanks to Jeroen Roovers for a typo fix. 4339 4340 Closes: https://github.com/tukaani-project/xz/pull/118 4341 4342 src/Makefile.am | 2 + 4343 src/common/tuklib_mbstr_nonprint.c | 151 +++++++++++++++++++++++++++++++++++++ 4344 src/common/tuklib_mbstr_nonprint.h | 69 +++++++++++++++++ 4345 3 files changed, 222 insertions(+) 4346 4347commit 36190c8c4bb13d1eab84a30f3650a5ec5ff0e402 4348Author: Lasse Collin <lasse.collin@tukaani.org> 4349Date: 2024-12-18 11:33:09 +0200 4350 4351 Translations: Add preliminary Georgian translation 4352 4353 Most of the auto-wrapped strings are translated already. A few 4354 strings have changed since this was created though. This file 4355 isn't in the Translation Project *yet* because these strings 4356 are still very new. 4357 4358 Closes: https://github.com/tukaani-project/xz/pull/145 4359 4360 po/LINGUAS | 1 + 4361 po/ka.po | 1186 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4362 2 files changed, 1187 insertions(+) 4363 4364commit 4a0c4f92b820b84ace625a95305a9d56cb662f4e 4365Author: Lasse Collin <lasse.collin@tukaani.org> 4366Date: 2024-10-30 20:50:20 +0200 4367 4368 xz: Make one string simpler for translators 4369 4370 Leading spaces in the string can get miscounted by translators. 4371 4372 src/xz/list.c | 4 ++-- 4373 1 file changed, 2 insertions(+), 2 deletions(-) 4374 4375commit 3fcf547e926f6c0414b23459f7b43164f7e8c378 4376Author: Lasse Collin <lasse.collin@tukaani.org> 4377Date: 2024-12-17 10:26:10 +0200 4378 4379 lzmainfo: Sync the translatable strings with xz 4380 4381 src/lzmainfo/lzmainfo.c | 20 ++++++++++++-------- 4382 1 file changed, 12 insertions(+), 8 deletions(-) 4383 4384commit 3e9177fd206d20d6d8acc7d203c25a9ae0549229 4385Author: Lasse Collin <lasse.collin@tukaani.org> 4386Date: 2024-12-17 10:26:10 +0200 4387 4388 xz: Use automatic word wrapping for help texts 4389 4390 --long-help is now one line longer because --lzma1 is now on its 4391 own line. 4392 4393 CMakeLists.txt | 2 + 4394 src/xz/Makefile.am | 3 +- 4395 src/xz/message.c | 482 ++++++++++++++++++++++++++++++++++------------------- 4396 3 files changed, 313 insertions(+), 174 deletions(-) 4397 4398commit a0eecc9eb23ac583ccf442de3f5c106d4b09482d 4399Author: Lasse Collin <lasse.collin@tukaani.org> 4400Date: 2024-12-16 18:46:45 +0200 4401 4402 po/Makevars: Add --keyword=W_:... to XGETTEXT_OPTIONS 4403 4404 The text was copied from tuklib_gettext.h. 4405 4406 Also rearrange the --keyword options to be last on the line. 4407 4408 po/Makevars | 2 +- 4409 1 file changed, 1 insertion(+), 1 deletion(-) 4410 4411commit ca529c3f41a4a19a59e2e252e6dd9255f130c634 4412Author: Lasse Collin <lasse.collin@tukaani.org> 4413Date: 2024-12-16 18:43:52 +0200 4414 4415 Add tuklib_mbstr_wrap for automatic word wrapping 4416 4417 Automatic word wrapping makes translators' work easier and reduces 4418 errors like misaligned columns or overlong lines. Right-to-left 4419 languages and languages that don't use spaces between words will 4420 still need extra effort. (xz hasn't been translated to any RTL 4421 language so far.) 4422 4423 cmake/tuklib_mbstr.cmake | 4 + 4424 m4/tuklib_mbstr.m4 | 2 +- 4425 src/Makefile.am | 2 + 4426 src/common/tuklib_gettext.h | 11 ++ 4427 src/common/tuklib_mbstr_wrap.c | 285 +++++++++++++++++++++++++++++++++++++++++ 4428 src/common/tuklib_mbstr_wrap.h | 203 +++++++++++++++++++++++++++++ 4429 6 files changed, 506 insertions(+), 1 deletion(-) 4430 4431commit 314b83cebad0244a0015a8abc6d8d086b581c215 4432Author: Lasse Collin <lasse.collin@tukaani.org> 4433Date: 2024-12-17 17:57:18 +0200 4434 4435 Build: Sort filenames to ASCII order in Makefile.am 4436 4437 src/Makefile.am | 2 +- 4438 1 file changed, 1 insertion(+), 1 deletion(-) 4439 4440commit df399c52554dfdf60259ca2cce97adbcfff39dc0 4441Author: Lasse Collin <lasse.collin@tukaani.org> 4442Date: 2024-10-21 18:51:24 +0300 4443 4444 tuklib_mbstr_width: Add tuklib_mbstr_width_mem() 4445 4446 It's a new function split from tuklib_mbstr_width(). 4447 It's useful with partial strings that aren't terminated with \0. 4448 4449 src/common/tuklib_mbstr.h | 17 +++++++++++++++++ 4450 src/common/tuklib_mbstr_width.c | 8 ++++++++ 4451 2 files changed, 25 insertions(+) 4452 4453commit 51081efae4c52c226e96da95313916eba99f885f 4454Author: Lasse Collin <lasse.collin@tukaani.org> 4455Date: 2024-12-16 20:08:27 +0200 4456 4457 tuklib_mbstr_width: Update a comment about shift states 4458 4459 src/common/tuklib_mbstr_width.c | 11 ++++++++--- 4460 1 file changed, 8 insertions(+), 3 deletions(-) 4461 4462commit 7ff1b0ac53866877bdfd79acf5fee0269058c58b 4463Author: Lasse Collin <lasse.collin@tukaani.org> 4464Date: 2024-10-21 18:47:56 +0300 4465 4466 tuklib_mbstr_width: Don't mention shift states in the API docs 4467 4468 It is assumed that this code won't be used with charsets that use 4469 locking shift states. 4470 4471 src/common/tuklib_mbstr.h | 8 ++------ 4472 1 file changed, 2 insertions(+), 6 deletions(-) 4473 4474commit 3c16105936320e4095dbe84fa9a33a4a6d46a597 4475Author: Lasse Collin <lasse.collin@tukaani.org> 4476Date: 2024-10-21 18:41:41 +0300 4477 4478 tuklib_mbstr_width: Use stricter return value checking 4479 4480 This should make no difference in practice (at least if mbrtowc() 4481 isn't broken). 4482 4483 src/common/tuklib_mbstr_width.c | 2 +- 4484 1 file changed, 1 insertion(+), 1 deletion(-) 4485 4486commit b797c44c42ea54fe1c52722a2fca0c9618575598 4487Author: Lasse Collin <lasse.collin@tukaani.org> 4488Date: 2024-12-16 20:06:07 +0200 4489 4490 tuklib_mbstr_width: Change the behavior when wcwidth() is not available 4491 4492 If wcwidth() isn't available (Windows), previously it was assumed 4493 that one byte == one column in the terminal. Now it is assumed that 4494 one multibyte character == one column. This works better with UTF-8. 4495 Languages that only use single-width characters without any combining 4496 characters should work correctly with this. 4497 4498 In xz, none of po/*.po contain combining characters and only ko.po, 4499 zh_CN.po, and zh_TW.po contain fullwidth characters. Thus, "only" 4500 those three translations in xz are broken on Windows with the 4501 UTF-8 code page. Broken means that column headings in xz -lvv and 4502 (only in the master branch) strings in --long-help are misaligned, 4503 so it's not a huge problem. I don't know if those three languages 4504 displayed perfectly before the UTF-8 change because I hadn't tested 4505 translations with native Windows builds before. 4506 4507 Fixes: 46ee0061629fb075d61d83839e14dd193337af59 4508 4509 src/common/tuklib_mbstr_width.c | 13 +++++++++++-- 4510 1 file changed, 11 insertions(+), 2 deletions(-) 4511 4512commit 78868b6ed63fa4c89f73e3dfed27abfb8b0d46db 4513Author: Lasse Collin <lasse.collin@tukaani.org> 4514Date: 2024-12-18 14:23:13 +0200 4515 4516 xzdec: Use setlocale() via tuklib_gettext_setlocale() 4517 4518 xzdec isn't translated and didn't have locale-specific behavior 4519 in the past. On Windows with UTF-8 in the application manifest, 4520 setting the locale makes a difference though: 4521 4522 - Without any setlocale() call, non-ASCII filenames don't display 4523 properly in Command Prompt unless one first uses "chcp 65001" 4524 to set the console code page to UTF-8. 4525 4526 - setlocale(LC_ALL, "") is enough to make non-ASCII filenames 4527 print correctly in Command Prompt without using "chcp 65001", 4528 assuming that the non-UTF-8 code page (like 850) supports 4529 those non-ASCII characters. 4530 4531 - setlocale(LC_ALL, ".UTF8") is even better because then mbrtowc() and 4532 such functions use an UTF-8 locale instead of a legacy code page. 4533 The tuklib_gettext_setlocale() macro takes care of this (without 4534 enabling any translations). 4535 4536 Fixes: 46ee0061629fb075d61d83839e14dd193337af59 4537 4538 src/xzdec/xzdec.c | 12 ++++++++++++ 4539 1 file changed, 12 insertions(+) 4540 4541commit 0d0b574cc45045d6150d397776340c068df59e2a 4542Author: Lasse Collin <lasse.collin@tukaani.org> 4543Date: 2024-12-17 14:59:37 +0200 4544 4545 Windows: Use UTF-8 locale when active code page is UTF-8 4546 4547 XZ Utils 5.6.3 set the active code page to UTF-8 to fix CVE-2024-47611. 4548 This wasn't paired with UCRT-specific setlocale(LC_ALL, ".UTF8"), thus 4549 non-ASCII characters from translations became mojibake. 4550 4551 Fixes: 46ee0061629fb075d61d83839e14dd193337af59 4552 4553 src/common/tuklib_gettext.h | 32 ++++++++++++++++++++++++++++++-- 4554 1 file changed, 30 insertions(+), 2 deletions(-) 4555 4556commit 20dfca8171dad4c64785ac61d5b68972c444877b 4557Author: Lasse Collin <lasse.collin@tukaani.org> 4558Date: 2024-12-17 15:01:29 +0200 4559 4560 Windows: Document the need for setlocale(LC_ALL, ".UTF8") 4561 4562 Also warn about unpaired surrogates and (somewhat UTF-8-specific) 4563 MAX_PATH issue in FindFirstFileA(). 4564 4565 Fixes: 46ee0061629fb075d61d83839e14dd193337af59 4566 4567 src/common/w32_application.manifest.comments.txt | 28 +++++++++++++++++++++++- 4568 1 file changed, 27 insertions(+), 1 deletion(-) 4569 4570commit 4e936f234056e5831013ed922145b666b04bb1e3 4571Author: Lasse Collin <lasse.collin@tukaani.org> 4572Date: 2024-12-18 14:12:22 +0200 4573 4574 xzdec: Call tuklib_progname_init() early enough 4575 4576 If the early pledge() call on OpenBSD fails, it calls my_errorf() 4577 which requires the "progname" variable. 4578 4579 Fixes: d74fb5f060b76db709b50f5fd37490394e52f975 4580 4581 src/xzdec/xzdec.c | 6 +++--- 4582 1 file changed, 3 insertions(+), 3 deletions(-) 4583 4584commit 61feaf681bd793dc5c919732b44bca7dcf2ed1b8 4585Author: Lasse Collin <lasse.collin@tukaani.org> 4586Date: 2024-12-15 19:08:32 +0200 4587 4588 CMake: Bump maximum policy version to 3.31 4589 4590 With CMake 3.31, there were a few warnings from 4591 CMP0177 "install() DESTINATION paths are normalized". 4592 These occurred because the install(FILES) command in 4593 my_install_man_lang() is called with a DESTINATION path 4594 that contains two consecutive slashes, for example, 4595 "share/man//man1". Such a path is for the English man pages. 4596 With translated man pages, the language code goes between 4597 the slashes. The warning was probably triggered because the 4598 extra slash gets removed by the normalization. 4599 4600 CMakeLists.txt | 2 +- 4601 1 file changed, 1 insertion(+), 1 deletion(-) 4602 4603commit b0bb84dd7bbdcc85243386a0051c7b2cb5fc6a18 4604Author: Lasse Collin <lasse.collin@tukaani.org> 4605Date: 2024-12-15 18:35:27 +0200 4606 4607 Update THANKS 4608 4609 THANKS | 1 + 4610 1 file changed, 1 insertion(+) 4611 4612commit bee0c044d30a6ad3b3d94901c27e7519f6f46e27 4613Author: Dexter Castor Döpping <dexter.c.dopping@gmail.com> 4614Date: 2024-12-08 18:24:29 +0100 4615 4616 liblzma: Fix incorrect macro name in a comment 4617 4618 Fixes: 33b8a24b6646a9dbfd8358405aec466b13078559 4619 Closes: https://github.com/tukaani-project/xz/pull/155 4620 4621 src/liblzma/api/lzma/lzma12.h | 2 +- 4622 1 file changed, 1 insertion(+), 1 deletion(-) 4623 4624commit 2cfa1ad0a9eb62b1847cf13f9aee290158978a3a 4625Author: Lasse Collin <lasse.collin@tukaani.org> 4626Date: 2024-12-17 10:36:43 +0200 4627 4628 license-check.sh: Add an exception for doc/SHA256SUMS 4629 4630 Fixes: 36b531022f24a2ab57a2dfb9e5052f1c176e9d9a 4631 4632 build-aux/license-check.sh | 1 + 4633 1 file changed, 1 insertion(+) 4634 4635commit 36b531022f24a2ab57a2dfb9e5052f1c176e9d9a 4636Author: Lasse Collin <lasse.collin@tukaani.org> 4637Date: 2024-12-01 21:38:17 +0200 4638 4639 doc/SHA256SUMS: Add the list of SHA-256 hashes of release files 4640 4641 The release files are signed but verifying the signatures cannot 4642 catch certain types of attacks: 4643 4644 1. A malicious maintainer could make more than one variant of 4645 a package. One could be for general distribution. Another 4646 with malicious content could be targeted to specific users, 4647 for example, distributing the malicious version on a mirror 4648 controlled by the attacker. 4649 4650 2. If the signing key of an honest maintainer was compromised 4651 without being detected, a similar situation as described 4652 above could occur. 4653 4654 SHA256SUMS could be put on the project website but having it in 4655 the Git repository makes it obvious that old lines aren't modified 4656 when the file is updated. 4657 4658 Hashes of uncompressed files are included too. This way tarballs 4659 can be recompressed and the hashes can still be verified. 4660 4661 .gitattributes | 1 + 4662 doc/SHA256SUMS | 218 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4663 2 files changed, 219 insertions(+) 4664 4665commit fe9e66993fdbcc2981c7361b9b034a451eb0fc42 4666Author: Lasse Collin <lasse.collin@tukaani.org> 4667Date: 2024-11-30 12:05:59 +0200 4668 4669 Docs: Remove .github/SECURITY.md 4670 4671 One of the reasons to have this file in the xz repository was to 4672 show vulnerability reporting info in the Security section on GitHub. 4673 On 2024-11-25, I added SECURITY.md to the tukaani-project organization 4674 on GitHub: 4675 4676 https://github.com/tukaani-project/.github/blob/main/SECURITY.md 4677 4678 GitHub shows that file in all projects in the organization unless 4679 overridden by a project-specific SECURITY.md. Thus, removing 4680 the file from the xz repo makes GitHub show the organization-wide 4681 text instead. 4682 4683 Maintaining a single copy for the whole GitHub organization makes 4684 things simpler. It's also nicer to have fewer GitHub-specific files 4685 in the xz repo. Information how to report bugs (including security 4686 issues) is available in README and on the home page too. 4687 4688 The OpenSSF Scorecard tool didn't find .github/SECURITY.md from the 4689 xz repository. There was a suggestion to move the file to the top-level 4690 directory where Scorecard should find it. However, Scorecard does find 4691 the organization-wide SECURITY.md. Thus, the file isn't needed in the 4692 xz repository to score points in the Scorecard game: 4693 4694 https://scorecard.dev/viewer/?uri=github.com/tukaani-project/xz 4695 4696 Closes: https://github.com/tukaani-project/xz/issues/148 4697 Closes: https://github.com/tukaani-project/xz/pull/149 4698 4699 .github/SECURITY.md | 14 -------------- 4700 1 file changed, 14 deletions(-) 4701 4702commit b36177273602ebc83e9cc58517f63a7b6af33f70 4703Author: Lasse Collin <lasse.collin@tukaani.org> 4704Date: 2024-11-30 10:27:14 +0200 4705 4706 Translations: Update the Chinese (traditional) translation 4707 4708 po/zh_TW.po | 201 +++++++++++++++++++++++++----------------------------------- 4709 1 file changed, 84 insertions(+), 117 deletions(-) 4710 4711commit c15115f7ede492f20c91b08ba485f9426f60233f 4712Author: Lasse Collin <lasse.collin@tukaani.org> 4713Date: 2024-10-30 19:54:34 +0200 4714 4715 liblzma: Optimize the loop conditions in BCJ filters 4716 4717 Compilers cannot optimize the addition "i + 4" away since theoretically 4718 it could overflow. 4719 4720 src/liblzma/simple/arm.c | 4 +++- 4721 src/liblzma/simple/arm64.c | 4 +++- 4722 src/liblzma/simple/armthumb.c | 7 ++++++- 4723 src/liblzma/simple/ia64.c | 4 +++- 4724 src/liblzma/simple/powerpc.c | 4 +++- 4725 src/liblzma/simple/sparc.c | 5 +++-- 4726 6 files changed, 21 insertions(+), 7 deletions(-) 4727 4728commit 9f69e71e78621fd056f5eaaad7cdcd9279310fb5 4729Author: Lasse Collin <lasse.collin@tukaani.org> 4730Date: 2024-11-25 16:26:54 +0200 4731 4732 Update THANKS 4733 4734 THANKS | 1 + 4735 1 file changed, 1 insertion(+) 4736 4737commit 48ff3f06521ca326996ab9a04d1b342098960427 4738Author: Mark Wielaard <mark@klomp.org> 4739Date: 2024-11-25 12:28:44 +0200 4740 4741 xz: Landlock: Fix a file descriptor leak 4742 4743 src/xz/sandbox.c | 1 + 4744 1 file changed, 1 insertion(+) 4745 4746commit dbca3d078ec581600600abebbb18769d3d713914 4747Author: Sam James <sam@gentoo.org> 4748Date: 2024-10-02 03:04:03 +0100 4749 4750 CI: update FreeBSD, NetBSD, OpenBSD, Solaris actions 4751 4752 Checked the changes and they're all innocuous. This should hopefully 4753 fix the "externally managed" pip error in these jobs that started 4754 recently. 4755 4756 .github/workflows/freebsd.yml | 2 +- 4757 .github/workflows/netbsd.yml | 2 +- 4758 .github/workflows/openbsd.yml | 2 +- 4759 .github/workflows/solaris.yml | 2 +- 4760 4 files changed, 4 insertions(+), 4 deletions(-) 4761 4762commit a94b85bea3f04d8c1f4e2e6f648a9a15bc6ce58f 4763Author: Lasse Collin <lasse.collin@tukaani.org> 4764Date: 2024-10-01 12:17:39 +0300 4765 4766 Add NEWS for 5.6.3 4767 4768 NEWS | 125 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4769 1 file changed, 125 insertions(+) 4770 4771commit be4bf94446b6286a5dffdde85fc1d21448f4edff 4772Author: Lasse Collin <lasse.collin@tukaani.org> 4773Date: 2024-10-01 14:49:41 +0300 4774 4775 cmake/tuklib_large_file_support.cmake: Add a missing include 4776 4777 v5.2 didn't build with CMake. Other branches had 4778 include(CMakePushCheckState) in top-level CMakeLists.txt 4779 which made the build work. 4780 4781 Fixes: 597f49b61475438a43a417236989b2acc968a686 4782 4783 cmake/tuklib_large_file_support.cmake | 1 + 4784 1 file changed, 1 insertion(+) 4785 4786commit 1ebbe915d4e0d877154261b5f8103719a6722975 4787Author: Lasse Collin <lasse.collin@tukaani.org> 4788Date: 2024-10-01 12:10:23 +0300 4789 4790 Update THANKS 4791 4792 THANKS | 2 ++ 4793 1 file changed, 2 insertions(+) 4794 4795commit 74702ee00ecfd080d8ab11118cd25dbe6c437ec0 4796Author: Lasse Collin <lasse.collin@tukaani.org> 4797Date: 2024-10-01 12:10:23 +0300 4798 4799 Tests/Windows: Add the application manifest to the test programs 4800 4801 This ensures that the test programs get executed the same way as 4802 the binaries that are installed. 4803 4804 CMakeLists.txt | 14 ++++++++++---- 4805 tests/Makefile.am | 10 ++++++++++ 4806 tests/tests.cmake | 33 ++++++++++++++++++++++++++++++++- 4807 tests/tests_w32res.rc | 18 ++++++++++++++++++ 4808 4 files changed, 70 insertions(+), 5 deletions(-) 4809 4810commit 7ddf2273e0e4654582ee65db19d44431bfdb5791 4811Author: Lasse Collin <lasse.collin@tukaani.org> 4812Date: 2024-10-01 12:10:23 +0300 4813 4814 license-check.sh: Add an exception for w32_application.manifest 4815 4816 The file gets embedded as is into executables, thus it cannot 4817 hold a license identifier. 4818 4819 build-aux/license-check.sh | 1 + 4820 1 file changed, 1 insertion(+) 4821 4822commit 46ee0061629fb075d61d83839e14dd193337af59 4823Author: Lasse Collin <lasse.collin@tukaani.org> 4824Date: 2024-10-01 12:10:23 +0300 4825 4826 Windows: Embed an application manifest in the EXE files 4827 4828 IMPORTANT: This includes a security fix to command line tool 4829 argument handling. 4830 4831 Some toolchains embed an application manifest by default to declare 4832 UAC-compliance. Some also declare compatibility with Vista/8/8.1/10/11 4833 to let the app access features newer than those of Vista. 4834 4835 We want all the above but also two more things: 4836 4837 - Declare that the app is long path aware to support paths longer 4838 than 259 characters (this may also require a registry change). 4839 4840 - Force the code page to UTF-8. This allows the command line tools 4841 to access files whose names contain characters that don't exist 4842 in the current legacy code page (except unpaired surrogates). 4843 The UTF-8 code page also fixes security issues in command line 4844 argument handling which can be exploited with malicious filenames. 4845 See the new file w32_application.manifest.comments.txt. 4846 4847 Thanks to Orange Tsai and splitline from DEVCORE Research Team 4848 for discovering this issue. 4849 4850 Thanks to Vijay Sarvepalli for reporting the issue to me. 4851 4852 Thanks to Kelvin Lee for testing with MSVC and helping with 4853 the required build system fixes. 4854 4855 CMakeLists.txt | 18 +++ 4856 src/Makefile.am | 4 +- 4857 src/common/common_w32res.rc | 5 + 4858 src/common/w32_application.manifest | 28 ++++ 4859 src/common/w32_application.manifest.comments.txt | 178 +++++++++++++++++++++++ 4860 5 files changed, 232 insertions(+), 1 deletion(-) 4861 4862commit dad153091552b52a41b95ec4981c6951f1cae487 4863Author: Lasse Collin <lasse.collin@tukaani.org> 4864Date: 2024-09-29 14:46:52 +0300 4865 4866 Windows: Set DLL name accurately in StringFileInfo on Cygwin and MSYS2 4867 4868 Now the information in the "Details" tab in the file properties 4869 dialog matches the naming convention of Cygwin and MSYS2. This 4870 is only a cosmetic change. 4871 4872 src/liblzma/liblzma_w32res.rc | 10 +++++++++- 4873 1 file changed, 9 insertions(+), 1 deletion(-) 4874 4875commit 8940ecb96fe9f0f2a9cfb8b66fe9ed31ffbea904 4876Author: Lasse Collin <lasse.collin@tukaani.org> 4877Date: 2024-09-25 15:47:55 +0300 4878 4879 common_w32res.rc: White space edits 4880 4881 LANGUAGE and VS_VERSION_INFO begin new statements so put an empty line 4882 between them. 4883 4884 src/common/common_w32res.rc | 15 ++++++++------- 4885 1 file changed, 8 insertions(+), 7 deletions(-) 4886 4887commit c3b9dad07d3fd9319f88386b7095019bcea45ce1 4888Author: Lasse Collin <lasse.collin@tukaani.org> 4889Date: 2024-09-28 20:09:50 +0300 4890 4891 CMake: Add the resource files to the Cygwin and MSYS2 builds 4892 4893 Autotools-based build has always done this so this is for consistency. 4894 4895 However, the CMake build won't create the DEF file when building 4896 for Cygwin or MSYS2 because in that context it should be useless. 4897 (If Cygwin or MSYS2 is used to host building of normal Windows 4898 binaries then the DEF file is still created.) 4899 4900 CMakeLists.txt | 16 ++++++++++------ 4901 1 file changed, 10 insertions(+), 6 deletions(-) 4902 4903commit da4f275bd1c18b897e5c2dd0043546de3accce0a 4904Author: Lasse Collin <lasse.collin@tukaani.org> 4905Date: 2024-09-28 15:19:14 +0300 4906 4907 CMake: Fix Windows resource file dependencies 4908 4909 If common_w32res.rc is modified, the resource files need to be rebuilt. 4910 In contrast, the liblzma*.map files truly are link dependencies. 4911 4912 CMakeLists.txt | 17 +++++++++-------- 4913 1 file changed, 9 insertions(+), 8 deletions(-) 4914 4915commit 1c673c0aac7f7dee8dda2c1140351c8417a71e47 4916Author: Lasse Collin <lasse.collin@tukaani.org> 4917Date: 2024-09-29 01:20:03 +0300 4918 4919 CMake: Checking for CYGWIN covers MSYS2 too 4920 4921 On MSYS2, both CYGWIN and MSYS are set. 4922 4923 CMakeLists.txt | 2 +- 4924 1 file changed, 1 insertion(+), 1 deletion(-) 4925 4926commit 6aaa0173b839e28429d43a8b62d257ad2f3b4521 4927Author: Lasse Collin <lasse.collin@tukaani.org> 4928Date: 2024-09-28 09:37:30 +0300 4929 4930 Translations: Add the SPDX license identifier to pt_BR.po 4931 4932 po/pt_BR.po | 2 ++ 4933 1 file changed, 2 insertions(+) 4934 4935commit dc7b9f24b737e4e55bcbbdde6754883f991c2cfb 4936Author: Lasse Collin <lasse.collin@tukaani.org> 4937Date: 2024-09-25 16:41:37 +0300 4938 4939 Windows/CMake: Use the correct resource file for lzmadec.exe 4940 4941 CMakeLists.txt was using xzdec_w32res.rc for both xzdec and lzmadec. 4942 4943 Fixes: 998d0b29536094a89cf385a3b894e157db1ccefe 4944 4945 CMakeLists.txt | 2 +- 4946 1 file changed, 1 insertion(+), 1 deletion(-) 4947 4948commit b834ae5f80911a3819d6cdb484f61b257174c544 4949Author: Lasse Collin <lasse.collin@tukaani.org> 4950Date: 2024-09-25 21:29:59 +0300 4951 4952 Translations: Update the Brazilian Portuguese translation 4953 4954 po/pt_BR.po | 144 ++++++++++++++++++++++-------------------------------------- 4955 1 file changed, 53 insertions(+), 91 deletions(-) 4956 4957commit eceb023d4c129fd63ee881a2d8696eaf52ad1532 4958Author: Lasse Collin <lasse.collin@tukaani.org> 4959Date: 2024-09-17 01:21:15 +0300 4960 4961 Update THANKS 4962 4963 THANKS | 1 + 4964 1 file changed, 1 insertion(+) 4965 4966commit 76cfd0a9bb33ae8e534b1f73f6359dc825589f2f 4967Author: Tobias Stoeckmann <tobias@stoeckmann.org> 4968Date: 2024-09-16 23:19:46 +0200 4969 4970 lzmainfo: Avoid integer overflow 4971 4972 The MB output can overflow with huge numbers. Most likely these are 4973 invalid .lzma files anyway, but let's avoid garbage output. 4974 4975 lzmadec was adapted from LZMA Utils. The original code with this bug 4976 was written in 2005, over 19 years ago. 4977 4978 Co-authored-by: Lasse Collin <lasse.collin@tukaani.org> 4979 Closes: https://github.com/tukaani-project/xz/pull/144 4980 4981 src/lzmainfo/lzmainfo.c | 5 ++--- 4982 1 file changed, 2 insertions(+), 3 deletions(-) 4983 4984commit 78355aebb7fb654302e5e33692ba109909dacaff 4985Author: Tobias Stoeckmann <tobias@stoeckmann.org> 4986Date: 2024-09-16 22:04:40 +0200 4987 4988 xzdec: Remove unused short option -M 4989 4990 "xzdec -M123" exited with exit status 1 without printing 4991 any messages. The "M:" entry should have been removed when 4992 the memory usage limiter support was removed from xzdec. 4993 4994 Fixes: 792331bdee706aa852a78b171040ebf814c6f3ae 4995 Closes: https://github.com/tukaani-project/xz/pull/143 4996 [ Lasse: Commit message edits ] 4997 4998 src/xzdec/xzdec.c | 2 +- 4999 1 file changed, 1 insertion(+), 1 deletion(-) 5000 5001commit e5758db7bd75587a2499e0771907521a4aa86908 5002Author: Lasse Collin <lasse.collin@tukaani.org> 5003Date: 2024-09-10 13:54:47 +0300 5004 5005 Update THANKS 5006 5007 THANKS | 1 + 5008 1 file changed, 1 insertion(+) 5009 5010commit 80ffa38f56657257ed4d90d76f6bd2f2bcb8163c 5011Author: Firas Khalil Khana <firasuke@gmail.com> 5012Date: 2024-09-10 12:30:32 +0300 5013 5014 Build: Fix a typo in autogen.sh 5015 5016 Fixes: e9be74f5b129fe8a5388d588e68b1b7f5168a310 5017 Closes: https://github.com/tukaani-project/xz/pull/141 5018 5019 autogen.sh | 2 +- 5020 1 file changed, 1 insertion(+), 1 deletion(-) 5021 5022commit 68c54e45d042add64a4cb44bfc87ca74d29b87e2 5023Author: Lasse Collin <lasse.collin@tukaani.org> 5024Date: 2024-09-02 20:08:40 +0300 5025 5026 Translations: Update Chinese (simplified) translation 5027 5028 Differences to the zh_CN.po file from the Translation Project: 5029 5030 - Two uses of \v were fixed. 5031 5032 - Missing "OPTS" translation in --riscv[=OPTS] was copied from 5033 previous lines. 5034 5035 - "make update-po" was run to remove line numbers from comments. 5036 5037 po/zh_CN.po | 102 ++++++++++++++++++++++++------------------------------------ 5038 1 file changed, 40 insertions(+), 62 deletions(-) 5039 5040commit 2230692aa1bcebb586100183831e3daf1714d60a 5041Author: Lasse Collin <lasse.collin@tukaani.org> 5042Date: 2024-09-02 19:40:50 +0300 5043 5044 Translations: Update the Catalan translation 5045 5046 Differences to the ca.po file from the Translation Project: 5047 5048 - An overlong line translating --filters-help was wrapped. 5049 5050 - "make update-po" was used to remove line numbers from the comments 5051 to match the changes in fccebe2b4fd513488fc920e4dac32562ed3c7637 5052 and 093490b58271e9424ce38a7b1b38bcf61b9c86c6. xz.pot in the TP 5053 is older than these commits. 5054 5055 po/ca.po | 171 ++++++++++++++++++++++++++------------------------------------- 5056 1 file changed, 69 insertions(+), 102 deletions(-) 5057 5058commit 3e7723ce26f74c71919984a6180504b4548cbb7e 5059Author: Lasse Collin <lasse.collin@tukaani.org> 5060Date: 2024-08-22 14:06:16 +0300 5061 5062 Update THANKS 5063 5064 THANKS | 1 + 5065 1 file changed, 1 insertion(+) 5066 5067commit d3e0e679b2b8b428598bb8ba56a17715190814db 5068Author: Lasse Collin <lasse.collin@tukaani.org> 5069Date: 2024-08-22 14:06:16 +0300 5070 5071 CMake: Don't install lzmadec.1 symlinks if XZ_TOOL_LZMADEC=OFF 5072 5073 Thanks-to: 榆柳松 (ZhengSen Wang) <wzhengsen@gmail.com> 5074 Fixes: fb50c6ba1d4c9405e5b12b5988b01a3002638c5d 5075 Closes: https://github.com/tukaani-project/xz/pull/134 5076 5077 CMakeLists.txt | 12 ++++++++++-- 5078 1 file changed, 10 insertions(+), 2 deletions(-) 5079 5080commit acdf21033abe347d9a279e9fe757f90ed16c1dbb 5081Author: Lasse Collin <lasse.collin@tukaani.org> 5082Date: 2024-08-22 14:06:16 +0300 5083 5084 CMake: Fix the build when XZ_TOOL_LZMADEC=OFF 5085 5086 Co-developed-by: 榆柳松 (ZhengSen Wang) <wzhengsen@gmail.com> 5087 Fixes: fb50c6ba1d4c9405e5b12b5988b01a3002638c5d 5088 Fixes: https://github.com/tukaani-project/xz/pull/134 5089 5090 CMakeLists.txt | 6 ++++-- 5091 1 file changed, 4 insertions(+), 2 deletions(-) 5092 5093commit 5e375987509fab484b7bef0b90be92f241c58c91 5094Author: Lasse Collin <lasse.collin@tukaani.org> 5095Date: 2024-08-22 11:01:07 +0300 5096 5097 Update THANKS 5098 5099 THANKS | 1 + 5100 1 file changed, 1 insertion(+) 5101 5102commit 6cd7c8607843c337edfe2c472aa316602a393754 5103Author: Yifeng Li <tomli@tomli.me> 5104Date: 2024-08-22 02:18:49 +0000 5105 5106 liblzma: Fix x86-64 movzw compatibility in range_decoder.h 5107 5108 Support for instruction "movzw" without suffix in "GNU as" was 5109 added in commit [1] and stabilized in binutils 2.27, released 5110 in August 2016. Earlier systems don't accept this instruction 5111 without a suffix, making range_decoder.h's inline assembly 5112 unable to build on old systems such as Ubuntu 16.04, creating 5113 error messages like: 5114 5115 lzma_decoder.c: Assembler messages: 5116 lzma_decoder.c:371: Error: no such instruction: `movzw 2(%r11),%esi' 5117 lzma_decoder.c:373: Error: no such instruction: `movzw 4(%r11),%edi' 5118 lzma_decoder.c:388: Error: no such instruction: `movzw 6(%r11),%edx' 5119 lzma_decoder.c:398: Error: no such instruction: `movzw (%r11,%r14,4),%esi' 5120 5121 Change "movzw" to "movzwl" for compatibility. 5122 5123 [1] https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=c07315e0c610e0e3317b4c02266f81793df253d2 5124 5125 Suggested-by: Lasse Collin <lasse.collin@tukaani.org> 5126 Tested-by: Yifeng Li <tomli@tomli.me> 5127 Signed-off-by: Yifeng Li <tomli@tomli.me> 5128 Fixes: 3182a330c1512cc1f5c87b5c5a272578e60a5158 5129 Fixes: https://github.com/tukaani-project/xz/issues/121 5130 Closes: https://github.com/tukaani-project/xz/pull/136 5131 5132 src/liblzma/rangecoder/range_decoder.h | 24 ++++++++++++------------ 5133 1 file changed, 12 insertions(+), 12 deletions(-) 5134 5135commit bf901dee5d4c46609645e50311c0cb2dfdcf9738 5136Author: Lasse Collin <lasse.collin@tukaani.org> 5137Date: 2024-07-19 20:02:43 +0300 5138 5139 Build: Comment that elf_aux_info(3) will be available on OpenBSD >= 7.6 5140 5141 CMakeLists.txt | 2 +- 5142 configure.ac | 17 +++++++++++------ 5143 2 files changed, 12 insertions(+), 7 deletions(-) 5144 5145commit f7103c2c2a8fa51d1f308ba7387beeff20a0d4dd 5146Author: Lasse Collin <lasse.collin@tukaani.org> 5147Date: 2024-07-19 19:42:26 +0300 5148 5149 Revert "liblzma: Add ARM64 CRC32 instruction support detection on OpenBSD" 5150 5151 This reverts commit dc03f6290f5b9bd3d50c7e12e58dee870889d599. 5152 5153 OpenBSD 7.6 will support elf_aux_info(3), and the detection code used 5154 on FreeBSD will work on OpenBSD 7.6 too. Keep things simpler and drop 5155 the OpenBSD-specific sysctl() method. 5156 5157 Thanks to Christian Weisgerber. 5158 5159 CMakeLists.txt | 6 ------ 5160 configure.ac | 9 --------- 5161 src/liblzma/check/crc32_arm64.h | 15 --------------- 5162 src/liblzma/check/crc_common.h | 1 - 5163 4 files changed, 31 deletions(-) 5164 5165commit 7c292dd0bf23cefcdf4b1509f3666322e08a7ede 5166Author: Lasse Collin <lasse.collin@tukaani.org> 5167Date: 2024-07-13 22:10:37 +0300 5168 5169 liblzma: Tweak a comment 5170 5171 src/liblzma/simple/arm64.c | 4 ++-- 5172 1 file changed, 2 insertions(+), 2 deletions(-) 5173 5174commit 6408edac5529d6ec0abf52794074f229c8362303 5175Author: Lasse Collin <lasse.collin@tukaani.org> 5176Date: 2024-07-11 22:17:56 +0300 5177 5178 CMake: Bump maximum policy version to 3.30 5179 5180 CMakeLists.txt | 2 +- 5181 1 file changed, 1 insertion(+), 1 deletion(-) 5182 5183commit 9231c39ffb518196d6664a86e5325e744621a21b 5184Author: Lasse Collin <lasse.collin@tukaani.org> 5185Date: 2024-07-06 15:13:19 +0300 5186 5187 CMake: Require CMake 3.20 or later 5188 5189 This allows a few cleanups. 5190 5191 CMakeLists.txt | 78 ++++++++++++++++++++-------------------------------------- 5192 1 file changed, 27 insertions(+), 51 deletions(-) 5193 5194commit 028185dd4889e3d6235ff13560160ebca6985021 5195Author: Lasse Collin <lasse.collin@tukaani.org> 5196Date: 2024-07-09 14:27:51 +0300 5197 5198 Update THANKS 5199 5200 THANKS | 1 + 5201 1 file changed, 1 insertion(+) 5202 5203commit baecfa142644eb5f5c6dd6f8e2f531c362fa3747 5204Author: Lasse Collin <lasse.collin@tukaani.org> 5205Date: 2024-07-06 14:04:48 +0300 5206 5207 xz: Remove the TODO comment about --recursive 5208 5209 It won't be implemented. find + xargs is more flexible, for example, 5210 it allows compressing small files in parallel. An example for that 5211 has been included in the xz man page since 2010. 5212 5213 src/xz/args.c | 1 - 5214 1 file changed, 1 deletion(-) 5215 5216commit f691d58fae82bd815c5f86ffad10fe9b6b59dad8 5217Author: Lasse Collin <lasse.collin@tukaani.org> 5218Date: 2024-07-06 14:04:16 +0300 5219 5220 Document --disable-loongarch-crc32 in INSTALL 5221 5222 INSTALL | 8 ++++++++ 5223 1 file changed, 8 insertions(+) 5224 5225commit b3e53122f42796aaebd767bab920cf7bedf69966 5226Author: Lasse Collin <lasse.collin@tukaani.org> 5227Date: 2024-07-03 20:45:48 +0300 5228 5229 CMake: Link xz against Threads::Threads if using pthreads 5230 5231 The liblzma target was recently changed to link against Threads::Threads 5232 with the PRIVATE keyword. I had forgotten that xz itself depends on 5233 pthreads too due to pthread_sigmask(). Thus, the build broke when 5234 building shared liblzma and pthread_sigmask() wasn't in libc. 5235 5236 Thanks to Peter Seiderer for the bug report. 5237 5238 Fixes: ac05f1b0d7cda1e7ae79775a8dfecc54601d7f1c 5239 Fixes: https://github.com/tukaani-project/xz/issues/129#issuecomment-2204522994 5240 5241 CMakeLists.txt | 13 +++++++++++++ 5242 1 file changed, 13 insertions(+) 5243 5244commit 5742ec1fc7f2cf1c82cfe3477bb90594a4658374 5245Author: Lasse Collin <lasse.collin@tukaani.org> 5246Date: 2024-07-02 22:49:33 +0300 5247 5248 Update THANKS 5249 5250 THANKS | 1 + 5251 1 file changed, 1 insertion(+) 5252 5253commit 2d13d10357ecad243d7e4ff1de0e6b437c38a47a 5254Author: Lasse Collin <lasse.collin@tukaani.org> 5255Date: 2024-07-02 20:23:35 +0300 5256 5257 CMake: Improve NLS error messages 5258 5259 CMakeLists.txt | 11 +++++++---- 5260 1 file changed, 7 insertions(+), 4 deletions(-) 5261 5262commit 628d8d2c4fdf9e6a91c7bba7a743f400a94c2909 5263Author: Lasse Collin <lasse.collin@tukaani.org> 5264Date: 2024-07-02 20:19:47 +0300 5265 5266 CMake: Update the comment at the top of CMakeLists.txt 5267 5268 While po/*.gmo files won't be used from the release tarball, 5269 the generated translated man pages will be used still. Those 5270 are text files and po4a has slightly more dependencies than 5271 gettext tools so installing po4a might be a bit more challenging 5272 in some situations. 5273 5274 CMakeLists.txt | 17 +++++++---------- 5275 1 file changed, 7 insertions(+), 10 deletions(-) 5276 5277commit b4b23c94fd4429abc663ced28d5cdc9cf7eb7507 5278Author: Lasse Collin <lasse.collin@tukaani.org> 5279Date: 2024-07-02 20:12:40 +0300 5280 5281 CMake: Drop support for pre-generated po/*.gmo files 5282 5283 When a release tarball is created using Autotools, the tarball includes 5284 po/*.gmo files which are binary files generated from po/*.po. Other 5285 tarball creation methods don't and won't create the .gmo files. 5286 5287 It feels clearer if CMake will never install pre-generated binary files 5288 from the source package. If people are able to install CMake, they 5289 likely are able to install gettext tools as well (assuming they want 5290 translations). 5291 5292 CMakeLists.txt | 66 +++++++++++++++++++--------------------------------------- 5293 1 file changed, 21 insertions(+), 45 deletions(-) 5294 5295commit fb99f8e8c50171b898cb79fe1dc703d5f91e4f0a 5296Author: Lasse Collin <lasse.collin@tukaani.org> 5297Date: 2024-07-02 19:14:50 +0300 5298 5299 CMake: Make XZ_NLS handling more robust 5300 5301 If a user set XZ_NLS=ON but find_package(Intl) failed or CMake version 5302 wasn't at least 3.20, the configuration would fail in a cryptic way. 5303 5304 If XZ_NLS is enabled, require that CMake is new enough and that either 5305 gettext tools or pre-generated .gmo files are available. Otherwise fail 5306 the configuration. Previously missing gettext tools and .gmo files would 5307 only result in a warning. 5308 5309 Missing man page translations are still only a warning. 5310 5311 Thanks to Peter Seiderer for the bug report. 5312 5313 Fixes: https://github.com/tukaani-project/xz/issues/129 5314 Closes: https://github.com/tukaani-project/xz/pull/130 5315 5316 CMakeLists.txt | 82 ++++++++++++++++++++++++++++++++-------------------------- 5317 1 file changed, 46 insertions(+), 36 deletions(-) 5318 5319commit ec6157570ea8a8e38158894e530d35416ff6a0f8 5320Author: Lasse Collin <lasse.collin@tukaani.org> 5321Date: 2024-07-02 19:39:05 +0300 5322 5323 CI: Add gettext as a dependency to CMake builds 5324 5325 .github/workflows/ci.yml | 4 ++-- 5326 1 file changed, 2 insertions(+), 2 deletions(-) 5327 5328commit 24f0f7e399de03bb2ff675d97b723d14f17ed6ac 5329Author: Lasse Collin <lasse.collin@tukaani.org> 5330Date: 2024-07-02 18:43:56 +0300 5331 5332 CMake: Fix ENABLE_NLS comment too 5333 5334 Fixes: 29f77c7b707f2458fb047e77497354b195e05b14 5335 5336 CMakeLists.txt | 2 +- 5337 1 file changed, 1 insertion(+), 1 deletion(-) 5338 5339commit a0df0676130bc565af0ec911e68a1d0fbc3ed0fb 5340Author: Lasse Collin <lasse.collin@tukaani.org> 5341Date: 2024-07-02 18:02:50 +0300 5342 5343 CMake: The compile definition is ENABLE_NLS, not XZ_NLS 5344 5345 The CMake variables were renamed and accidentally also 5346 the compile definition was renamed. As a result, translation 5347 support wasn't actually enabled in the executables. 5348 5349 Fixes: 29f77c7b707f2458fb047e77497354b195e05b14 5350 5351 CMakeLists.txt | 4 ++-- 5352 1 file changed, 2 insertions(+), 2 deletions(-) 5353 5354commit 45d08abc33ccc52d2f050dcec458badc2ce59d0b 5355Author: Lasse Collin <lasse.collin@tukaani.org> 5356Date: 2024-07-01 17:33:20 +0300 5357 5358 Update AUTHORS and THANKS 5359 5360 AUTHORS | 2 +- 5361 THANKS | 1 + 5362 2 files changed, 2 insertions(+), 1 deletion(-) 5363 5364commit 7baf6835cfbf9c85ba37f9ffb7d4f87fb86a474e 5365Author: Xi Ruoyao <xry111@xry111.site> 5366Date: 2024-06-28 13:36:43 +0300 5367 5368 liblzma: Speed up CRC32 calculation on 64-bit LoongArch 5369 5370 The crc.w.{b/h/w/d}.w instructions in LoongArch can calculate the CRC32 5371 result for 1/2/4/8 bytes in a single operation. Using these is much 5372 faster compared to the generic method. 5373 5374 Optimized CRC32 is enabled unconditionally on 64-bit LoongArch because 5375 the LoongArch specification says that CRC32 instructions shall be 5376 implemented for 64-bit processors. Optimized CRC32 isn't enabled for 5377 32-bit LoongArch processors because not enough information is available 5378 about them. 5379 5380 Co-authored-by: Lasse Collin <lasse.collin@tukaani.org> 5381 5382 Closes: https://github.com/tukaani-project/xz/pull/86 5383 5384 CMakeLists.txt | 25 ++++++++++++++ 5385 configure.ac | 40 +++++++++++++++++++++++ 5386 src/liblzma/check/Makefile.inc | 3 +- 5387 src/liblzma/check/crc32_fast.c | 2 ++ 5388 src/liblzma/check/crc32_loongarch.h | 65 +++++++++++++++++++++++++++++++++++++ 5389 src/liblzma/check/crc_common.h | 15 +++++++++ 5390 6 files changed, 149 insertions(+), 1 deletion(-) 5391 5392commit 0ed893668554fb0758003289f8a6af9bd08b89d1 5393Author: Lasse Collin <lasse.collin@tukaani.org> 5394Date: 2024-06-28 14:20:49 +0300 5395 5396 liblzma: ARM64 CRC32: Align the buffer faster 5397 5398 Instead of doing it byte by byte, use the 1/2/4-byte CRC32 instructions. 5399 5400 src/liblzma/check/crc32_arm64.h | 54 ++++++++++++++++++++++++++++++----------- 5401 1 file changed, 40 insertions(+), 14 deletions(-) 5402 5403commit 7e99856f66c07852c4e0de7aa01951e9147d86b0 5404Author: Sam James <sam@gentoo.org> 5405Date: 2024-06-28 14:18:35 +0300 5406 5407 CI: Speed up Valgrind job by using --trace-children-skip-by-arg=... 5408 5409 This addresses the issue I mentioned in 5410 6c095a98fbec70b790253a663173ecdb669108c4 and speeds up the Valgrind 5411 job a bit, because non-xz tools aren't run unnecessarily with 5412 Valgrind by the script tests. 5413 5414 .github/workflows/ci.yml | 2 +- 5415 1 file changed, 1 insertion(+), 1 deletion(-) 5416 5417commit 2402e8a1ae92676fa0d4cb1b761d7f62f005c098 5418Author: Lasse Collin <lasse.collin@tukaani.org> 5419Date: 2024-06-25 16:00:22 +0300 5420 5421 Build: Prepend, not append, PTHREAD_CFLAGS to LIBS 5422 5423 It shouldn't make any difference because LIBS should be empty 5424 at that point in configure. But prepending is the correct way 5425 because in general the libraries being added might require other 5426 libraries that come later on the command line. 5427 5428 configure.ac | 2 +- 5429 1 file changed, 1 insertion(+), 1 deletion(-) 5430 5431commit 7bb46f2b7b3989c1b589a247a251470f65e91cda 5432Author: Lasse Collin <lasse.collin@tukaani.org> 5433Date: 2024-06-25 14:24:29 +0300 5434 5435 Build: Use AC_LINK_IFELSE to handle implicit function declarations 5436 5437 It's more robust in case the compiler allows pre-C99 implicit function 5438 declarations. If an x86 intrinsic is missing and gets treated as 5439 implicit function, the linking step will very probably fail. This 5440 isn't the only way to workaround implicit function declarations but 5441 it might be the simplest and cleanest. 5442 5443 The problem hasn't been observed in the wild. 5444 5445 There are a couple more AC_COMPILE_IFELSE uses in configure.ac. 5446 Of these, Landlock check calls prctl() and in theory could have 5447 the same problem. In practice it doesn't as the check program 5448 looks for several other things too. However, it was changed to 5449 AC_LINK_IFELSE still to look more correct. 5450 5451 Similarly, m4/tuklib_cpucores.m4 and m4/tuklib_physmem.m4 were 5452 updated although they haven't given any trouble either. They 5453 have worked all these years because those check programs rely 5454 on specific headers and types: if headers or types are missing, 5455 compilation will fail. Using the linker makes these checks more 5456 similar to the ones in cmake/tuklib_*.cmake which always link. 5457 5458 configure.ac | 8 ++++++-- 5459 m4/tuklib_cpucores.m4 | 8 ++++---- 5460 m4/tuklib_physmem.m4 | 17 +++++++++++------ 5461 3 files changed, 21 insertions(+), 12 deletions(-) 5462 5463commit 35eb57355ad1c415a838d26192d5af84abb7cf39 5464Author: Lasse Collin <lasse.collin@tukaani.org> 5465Date: 2024-06-24 23:35:59 +0300 5466 5467 Build: Use AC_LINK_IFELSE instead of -Werror 5468 5469 AC_COMPILE_IFELSE needed -Werror because Clang <= 14 would merely 5470 warn about the unsupported attribute and implicit function declaration. 5471 Changing to AC_LINK_IFELSE handles the implicit declaration because 5472 the symbol __crc32d is unlikely to exist in libc. 5473 5474 Note that the other part of the check is that #include <arm_acle.h> 5475 must work. If the header is missing, most compilers give an error 5476 and the linking step won't be attempted. 5477 5478 Avoiding -Werror makes the check more robust in case CFLAGS contains 5479 warning flags that break -Werror anyway (but this isn't the only check 5480 in configure.ac that has this problem). Using AC_LINK_IFELSE also makes 5481 the check more similar to how it is done in CMakeLists.txt. 5482 5483 configure.ac | 12 +----------- 5484 1 file changed, 1 insertion(+), 11 deletions(-) 5485 5486commit 5a728813c378cc3c4c9c95793762452418d08f1b 5487Author: Lasse Collin <lasse.collin@tukaani.org> 5488Date: 2024-06-24 23:34:34 +0300 5489 5490 Build: Sync the compile check changes from CMakeLists.txt 5491 5492 It's nice to keep these in sync. The use of main() will later allow 5493 AC_LINK_IFELSE usage too which may avoid the more fragile -Werror. 5494 5495 configure.ac | 15 ++++++++------- 5496 1 file changed, 8 insertions(+), 7 deletions(-) 5497 5498commit 5279828635a95abdef82e691fc4979d362780e63 5499Author: Lasse Collin <lasse.collin@tukaani.org> 5500Date: 2024-06-24 20:14:43 +0300 5501 5502 CMake: Not experimental anymore 5503 5504 While the CMake support has gotten a lot less testing than 5505 the Autotools-based build, the supported features should now 5506 be equal. The output may differ slightly, for example, 5507 liblzma.pc may have 5508 5509 Libs.private: -pthread -lpthread 5510 5511 with Autotools on GNU/Linux. CMake doesn't put any options 5512 in Libs.private because on modern glibc the pthread functions 5513 are in libc. The options options aren't required to link static 5514 liblzma into an application. 5515 5516 Autotools-based build doesn't generate or install 5517 lib/cmake/liblzma-*.cmake files. This means that on most 5518 platforms one cannot rely on 5519 5520 find_package(liblzma 5.2.5 REQUIRED CONFIG) 5521 5522 or such finding those files. 5523 5524 CMakeLists.txt | 9 ++++++--- 5525 1 file changed, 6 insertions(+), 3 deletions(-) 5526 5527commit de215a0517645d16343f3a5336d3df884a4f665f 5528Author: Lasse Collin <lasse.collin@tukaani.org> 5529Date: 2024-06-25 16:11:13 +0300 5530 5531 CMake: Use configure_file() to copy a file 5532 5533 I had missed this simpler method before. It does create a dependency 5534 so that if .in.h changes the copying is done again. 5535 5536 CMakeLists.txt | 17 +++++++---------- 5537 1 file changed, 7 insertions(+), 10 deletions(-) 5538 5539commit e620f35097c0ad20cd76d8258750aa706758ced9 5540Author: Lasse Collin <lasse.collin@tukaani.org> 5541Date: 2024-06-25 15:51:48 +0300 5542 5543 CMake: Always add pthread flags into CMAKE_REQUIRED_LIBRARIES 5544 5545 It was weird to add CMAKE_THREAD_LIBS_INIT in CMAKE_REQUIRED_LIBRARIES 5546 only if CLOCK_MONOTONIC is available. Alternative would be to remove 5547 the thread libs from CMAKE_REQUIRED_LIBRARIES after the check for 5548 pthread_condattr_setclock() but keeping the libs should be fine too. 5549 Then it's ready in case more pthread functions were wanted some day. 5550 5551 CMakeLists.txt | 6 ++++-- 5552 1 file changed, 4 insertions(+), 2 deletions(-) 5553 5554commit 068a70e54932ca32ca2922aff5a67a62615c650b 5555Author: Sam James <sam@gentoo.org> 5556Date: 2024-06-24 19:25:30 +0100 5557 5558 CMake: Tweak comments 5559 5560 Co-authored-by: Lasse Collin <lasse.collin@tukaani.org> 5561 5562 CMakeLists.txt | 15 +++++++-------- 5563 1 file changed, 7 insertions(+), 8 deletions(-) 5564 5565commit 3c95c93bca593bdd54ac5cc01526b12c82c78faa 5566Author: Lasse Collin <lasse.collin@tukaani.org> 5567Date: 2024-06-24 22:42:01 +0300 5568 5569 CMake: Edit white space for consistency 5570 5571 CMakeLists.txt | 26 +++++++++++++------------- 5572 1 file changed, 13 insertions(+), 13 deletions(-) 5573 5574commit 114cba69dbb96003e676c8c87a2e9943b12d065f 5575Author: Lasse Collin <lasse.collin@tukaani.org> 5576Date: 2024-06-24 22:41:10 +0300 5577 5578 CMake: Fix three checks if building with -flto 5579 5580 In CMake, check_c_source_compiles() always links too. With 5581 link-time optimization, unused functions may get omitted if 5582 main() doesn't depend on them. Consider the following which 5583 tries to check if somefunction() is available when <someheader.h> 5584 has been included: 5585 5586 #include <someheader.h> 5587 int foo(void) { return somefunction(); } 5588 int main(void) { return 0; } 5589 5590 LTO may omit foo() completely because the program as a whole doesn't 5591 need it and then the program will link even if the symbol somefunction 5592 isn't available in libc or other library being linked in, and then 5593 the test may pass when it shouldn't. 5594 5595 What happens if <someheader.h> doesn't declare somefunction()? 5596 Shouldn't the test fail in the compilation phase already? It should 5597 but many compilers don't follow the C99 and later standards that 5598 prohibit implicit function declarations. Instead such compilers 5599 assume that somefunction() exists, compilation succeeds (with a 5600 warning), and then linker with LTO omits the call to somefunction(). 5601 5602 Change the tests so that they are part of main(). If compiler accepts 5603 implicitly declared functions, LTO cannot omit them because it has to 5604 assume that they might have side effects and thus linking will fail. 5605 On the other hand, if the functions/intrinsics being used are supported, 5606 they might get optimized away but in that case it's fine because they 5607 really are supported. 5608 5609 It is fine to use __attribute__((target(...))) for main(). At least 5610 it works with GCC 4.9 to 14.1 on x86-64. 5611 5612 Reported-by: Sam James <sam@gentoo.org> 5613 5614 CMakeLists.txt | 19 ++++++++----------- 5615 1 file changed, 8 insertions(+), 11 deletions(-) 5616 5617commit 78e882205e1f1e91df2af2cb7da00fe205dede99 5618Author: Lasse Collin <lasse.collin@tukaani.org> 5619Date: 2024-06-24 21:19:14 +0300 5620 5621 CMake: Use MATCHES instead of multiple STREQUAL 5622 5623 CMakeLists.txt | 11 ++++------- 5624 1 file changed, 4 insertions(+), 7 deletions(-) 5625 5626commit d3f20382fc1bd865eb70a65455d5022ed05caac8 5627Author: Lasse Collin <lasse.collin@tukaani.org> 5628Date: 2024-06-24 21:06:18 +0300 5629 5630 CMake: Improve the comment about LIBS 5631 5632 CMakeLists.txt | 6 ++++++ 5633 1 file changed, 6 insertions(+) 5634 5635commit 33ec377729a3889e58d98934b2777b2754a3e045 5636Author: Lasse Collin <lasse.collin@tukaani.org> 5637Date: 2024-06-24 20:01:25 +0300 5638 5639 CMake: Fix a typo in a message 5640 5641 It was spotted with codespell. 5642 5643 CMakeLists.txt | 2 +- 5644 1 file changed, 1 insertion(+), 1 deletion(-) 5645 5646commit 2a47be823cd6c717bc91fa29c7710c9b1ae0331f 5647Author: Lasse Collin <lasse.collin@tukaani.org> 5648Date: 2024-06-24 19:58:54 +0300 5649 5650 Document CMake options in INSTALL 5651 5652 INSTALL | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----- 5653 1 file changed, 106 insertions(+), 9 deletions(-) 5654 5655commit 3faf4e8079a46bd46e05cd1234365724a6a33802 5656Author: Lasse Collin <lasse.collin@tukaani.org> 5657Date: 2024-06-24 17:18:44 +0300 5658 5659 CI: Don't omit crc32 from the list with CMake anymore 5660 5661 XZ_CHECKS accepts it but works without too. 5662 5663 build-aux/ci_build.bash | 10 +--------- 5664 1 file changed, 1 insertion(+), 9 deletions(-) 5665 5666commit 1bf83cded2955282fe1a868f08c83d4e5d6dca4a 5667Author: Lasse Collin <lasse.collin@tukaani.org> 5668Date: 2024-06-24 17:39:54 +0300 5669 5670 CI: Workaround buggy config.guess on Ubuntu 22.04LTS and 24.04LTS 5671 5672 Check for the wrong triplet from config.guess and override it with 5673 the --build option on the configure command line. Then i386 assembly 5674 autodetection will work. 5675 5676 These Ubuntu versions (and as of writing, also Debian unstable) 5677 ship config.guess version 2022-01-09 which contains a bug that 5678 was fixed in version 2022-05-08. It results in a wrong configure 5679 triplet when using CC="gcc -m32" to build i386 binaries. 5680 5681 Upstream fix: 5682 https://git.savannah.gnu.org/cgit/config.git/commit/?id=f56a7140386d08a531bcfd444d632b28c61a6329 5683 5684 More information: 5685 https://mail.gnu.org/archive/html/config-patches/2022-05/msg00003.html 5686 5687 build-aux/ci_build.bash | 9 +++++++++ 5688 1 file changed, 9 insertions(+) 5689 5690commit dbcdabf68fee9ed694b68c3a82e6adbeff20b679 5691Author: Lasse Collin <lasse.collin@tukaani.org> 5692Date: 2024-06-24 15:24:52 +0300 5693 5694 CI: Use CC="gcc -m32" to get i386 compiler on x86-64 5695 5696 The old method put it in CFLAGS which is a wrong place because 5697 config.guess doesn't read CFLAGS. 5698 5699 .github/workflows/ci.yml | 4 ++-- 5700 1 file changed, 2 insertions(+), 2 deletions(-) 5701 5702commit 0c1e6d900bac127464fb30a854776e1810ab5f16 5703Author: Lasse Collin <lasse.collin@tukaani.org> 5704Date: 2024-06-24 14:54:17 +0300 5705 5706 CI: Let CMake use the CC environment variable 5707 5708 CC from environment is used to initialize CMAKE_C_COMPILER so 5709 setting CMAKE_C_COMPILER explicitly isn't needed. 5710 5711 The syntax in ci_build.bash was broken in case one wished to put 5712 spaces in CC. 5713 5714 build-aux/ci_build.bash | 4 ---- 5715 1 file changed, 4 deletions(-) 5716 5717commit a3d6eb797c1bd9b0425ef6754e475e43e62bf075 5718Author: Lasse Collin <lasse.collin@tukaani.org> 5719Date: 2024-06-20 23:25:42 +0300 5720 5721 CMake: Add autodetection for 32-bit x86 CRC assembly usage 5722 5723 CMakeLists.txt | 33 ++++++++++++++++++--------------- 5724 1 file changed, 18 insertions(+), 15 deletions(-) 5725 5726commit dbc14f213e5cf866f1f42b7c6381a91e1189908c 5727Author: Lasse Collin <lasse.collin@tukaani.org> 5728Date: 2024-06-20 23:00:59 +0300 5729 5730 CMake: Move option(XZ_ASM_I386) downwards a few lines 5731 5732 CMakeLists.txt | 16 ++++++++-------- 5733 1 file changed, 8 insertions(+), 8 deletions(-) 5734 5735commit e5c2b07b489b155c1bebd5cb5e5b94325c2fef1a 5736Author: Lasse Collin <lasse.collin@tukaani.org> 5737Date: 2024-06-20 18:45:41 +0300 5738 5739 DOS: Update Makefile and config.h for the CRC changes 5740 5741 dos/Makefile | 4 ++-- 5742 dos/config.h | 3 +++ 5743 2 files changed, 5 insertions(+), 2 deletions(-) 5744 5745commit fe77c4e130d62dc3f9c1de40a18c0c6caa5a4d88 5746Author: Lasse Collin <lasse.collin@tukaani.org> 5747Date: 2024-06-23 15:35:35 +0300 5748 5749 liblzma: Tidy up crc_common.h 5750 5751 Prefix ARM64_RUNTIME_DETECTION with CRC_ and reorder it to be with 5752 the other ARM64-specific lines. That macro isn't used outside this 5753 file. 5754 5755 ARM64 CLMUL implementation doesn't exist yet and thus CRC64_ARM64_CLMUL 5756 isn't used anywhere yet. 5757 5758 It's not ideal that the single-letter CRC utility macros are here 5759 as they pollute the namespace of the LZ encoder files. Those could 5760 be moved their own crc_macros.h like they were in 5.2.x but in practice 5761 this is fine enough already. 5762 5763 src/liblzma/check/crc_common.h | 62 ++++++++++++++++++++++++++++-------------- 5764 1 file changed, 42 insertions(+), 20 deletions(-) 5765 5766commit 7484d375384f551d475ff44a93590a225e0cb8f6 5767Author: Lasse Collin <lasse.collin@tukaani.org> 5768Date: 2024-06-23 14:22:08 +0300 5769 5770 liblzma: Move lzma_crcXX_table[][] declarations to crc_common.h 5771 5772 LZ encoder needs lzma_crc32_table[0] but otherwise those tables 5773 are private to the CRC code. In contrast, the other things in 5774 check.h are needed in several places. 5775 5776 src/liblzma/check/check.h | 18 ------------------ 5777 src/liblzma/check/crc32_small.c | 3 +++ 5778 src/liblzma/check/crc_common.h | 18 ++++++++++++++++++ 5779 src/liblzma/lz/lz_encoder_hash.h | 4 ++-- 5780 4 files changed, 23 insertions(+), 20 deletions(-) 5781 5782commit 85b081f5d4598342b8c155a2c08697fb2adc372c 5783Author: Lasse Collin <lasse.collin@tukaani.org> 5784Date: 2024-06-19 18:38:22 +0300 5785 5786 liblzma: Make 32-bit x86 CRC assembly co-exist with CLMUL 5787 5788 Now runtime detection of CLMUL support can pick between the CLMUL and 5789 the generic assembly implementations. Whatever overhead this has for 5790 builds that omit CLMUL completely isn't important because builds for 5791 any non-ancient system is likely to include the CLMUL code too. 5792 5793 Handle the CRC tables in crcXX_fast.c files because now these files 5794 are built even when assembly code is used. 5795 5796 If 32-bit x86 assembly is enabled then it will always be built even 5797 if compiler flags were such that CLMUL would be allowed unconditionally. 5798 That is, runtime detection will be used anyway. This keeps the build 5799 rules simpler. 5800 5801 In LZ encoder, build and use lzma_lz_hash_table[256] if CLMUL CRC 5802 is used without runtime detection. Previously this wasn't needed 5803 because crc32_table.c included the lzma_crc32_table[][] in the build 5804 unless encoder support had been disabled. Including an 8 KiB table 5805 was silly when only 1 KiB is actually used. So now liblzma is 7 KiB 5806 smaller if CLMUL is enabled without runtime detection. 5807 5808 CMakeLists.txt | 8 ++------ 5809 src/liblzma/check/Makefile.inc | 8 ++------ 5810 src/liblzma/check/crc32_fast.c | 14 ++++++++++++- 5811 src/liblzma/check/crc32_table.c | 42 --------------------------------------- 5812 src/liblzma/check/crc32_x86.S | 14 +++++-------- 5813 src/liblzma/check/crc64_fast.c | 18 +++++++++++++---- 5814 src/liblzma/check/crc64_table.c | 37 ---------------------------------- 5815 src/liblzma/check/crc64_x86.S | 14 +++++-------- 5816 src/liblzma/check/crc_common.h | 18 +++++++++-------- 5817 src/liblzma/check/crc_x86_clmul.h | 5 ----- 5818 src/liblzma/lz/lz_encoder.c | 2 +- 5819 src/liblzma/lz/lz_encoder_hash.h | 30 ++++++++++++++++++++-------- 5820 12 files changed, 74 insertions(+), 136 deletions(-) 5821 5822commit 6667d503b5dc9826654e3d9ad505e1883ff6c388 5823Author: Lasse Collin <lasse.collin@tukaani.org> 5824Date: 2024-06-19 17:44:41 +0300 5825 5826 liblzma: CRC: Rename crcXX_generic to lzma_crcXX_generic 5827 5828 This prepares for the possibility that lzma_crc32_generic and 5829 lzma_crc64_generic are extern functions. 5830 5831 src/liblzma/check/crc32_fast.c | 6 +++--- 5832 src/liblzma/check/crc64_fast.c | 6 +++--- 5833 2 files changed, 6 insertions(+), 6 deletions(-) 5834 5835commit 1dca581ff20aa1cde61e9e5267d3aeb0af9b6845 5836Author: Lasse Collin <lasse.collin@tukaani.org> 5837Date: 2024-06-20 22:55:22 +0300 5838 5839 CMake: Define HAVE_CRC_X86_ASM when 32-bit x86 CRC assembly is used 5840 5841 CMakeLists.txt | 3 +++ 5842 1 file changed, 3 insertions(+) 5843 5844commit f76837acb65676e541d8ee79cd62dbbf27280a62 5845Author: Lasse Collin <lasse.collin@tukaani.org> 5846Date: 2024-05-10 16:00:26 +0300 5847 5848 Build: Define HAVE_CRC_X86_ASM when 32-bit x86 CRC assembly is used 5849 5850 This makes it easier to determine when the CRC tables are needed. 5851 5852 configure.ac | 9 +++++++-- 5853 1 file changed, 7 insertions(+), 2 deletions(-) 5854 5855commit 9ce0866b070850da4dc837741ff055faa218bdd6 5856Author: Lasse Collin <lasse.collin@tukaani.org> 5857Date: 2024-06-21 00:46:09 +0300 5858 5859 CI: Update to the new renamed options in CMakeLists.txt 5860 5861 build-aux/ci_build.bash | 10 +++++----- 5862 1 file changed, 5 insertions(+), 5 deletions(-) 5863 5864commit 0232e66d5bc5b01a25a447c657e51747626488ab 5865Author: Lasse Collin <lasse.collin@tukaani.org> 5866Date: 2024-06-20 18:12:22 +0300 5867 5868 CMake: Add XZ_EXTERNAL_SHA256 5869 5870 CMakeLists.txt | 121 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 5871 1 file changed, 116 insertions(+), 5 deletions(-) 5872 5873commit 4535b80caead82a7ddf7feb988b8fbc773152522 5874Author: Lasse Collin <lasse.collin@tukaani.org> 5875Date: 2024-06-20 18:12:21 +0300 5876 5877 CMake: Move threading detection a few lines up 5878 5879 It feels clearer this way, and when support for external SHA-256 5880 is added, this will keep the order of the library detection the 5881 same as in configure.ac (check for pthreads before libmd) although 5882 it shouldn't matter in practice. 5883 5884 CMakeLists.txt | 176 ++++++++++++++++++++++++++++----------------------------- 5885 1 file changed, 88 insertions(+), 88 deletions(-) 5886 5887commit 94d062dbac34d366eb26625034200cc3457e6645 5888Author: Lasse Collin <lasse.collin@tukaani.org> 5889Date: 2024-06-20 18:12:21 +0300 5890 5891 CMake: Move the sandbox code out of the liblzma section 5892 5893 Sandboxing is for the command line tools, not liblzma. 5894 No functional changes. 5895 5896 CMakeLists.txt | 214 ++++++++++++++++++++++++++++----------------------------- 5897 1 file changed, 107 insertions(+), 107 deletions(-) 5898 5899commit 75ce4797d49621710e6da95d8cb91541028c6d68 5900Author: Lasse Collin <lasse.collin@tukaani.org> 5901Date: 2024-06-20 18:12:21 +0300 5902 5903 CMake: Keep existing options in LIBS when adding -lrt 5904 5905 This makes no difference yet because -lrt is currently the only option 5906 that might be added to LIBS. 5907 5908 CMakeLists.txt | 2 +- 5909 1 file changed, 1 insertion(+), 1 deletion(-) 5910 5911commit 47aaa92516fd9609821d04e5e94ca6558e56d62b 5912Author: Lasse Collin <lasse.collin@tukaani.org> 5913Date: 2024-06-15 18:07:04 +0300 5914 5915 CMake: Don't install scripts if the xz tool isn't built 5916 5917 The scripts need the xz tool. 5918 5919 CMakeLists.txt | 11 +++++++++-- 5920 tests/tests.cmake | 2 +- 5921 2 files changed, 10 insertions(+), 3 deletions(-) 5922 5923commit fb50c6ba1d4c9405e5b12b5988b01a3002638c5d 5924Author: Lasse Collin <lasse.collin@tukaani.org> 5925Date: 2024-06-15 18:07:04 +0300 5926 5927 CMake: Add XZ_TOOL_XZDEC and XZ_TOOL_LZMADEC 5928 5929 CMakeLists.txt | 15 ++++++++++++++- 5930 1 file changed, 14 insertions(+), 1 deletion(-) 5931 5932commit def767f7d18ccbd81cd5e5b46c8b6031f3a1de34 5933Author: Lasse Collin <lasse.collin@tukaani.org> 5934Date: 2024-06-15 18:07:04 +0300 5935 5936 CMake: Add XZ_TOOL_LZMAINFO 5937 5938 CMakeLists.txt | 4 +++- 5939 1 file changed, 3 insertions(+), 1 deletion(-) 5940 5941commit 5600e370fb7e11eafabc6c3ef5bf6510e859f4f0 5942Author: Lasse Collin <lasse.collin@tukaani.org> 5943Date: 2024-06-15 18:07:04 +0300 5944 5945 CMake: Add XZ_TOOL_XZ 5946 5947 CMakeLists.txt | 4 +++- 5948 1 file changed, 3 insertions(+), 1 deletion(-) 5949 5950commit 6a3c4aaa43a90da441e1156c5ffd2e6098f5521f 5951Author: Lasse Collin <lasse.collin@tukaani.org> 5952Date: 2024-06-15 18:07:04 +0300 5953 5954 Windows: Drop Visual Studio 2013 support 5955 5956 This simplifies things a little. Building liblzma with VS2013 probably 5957 still worked but building the command line tools was not supported. 5958 5959 Microsoft ended support for VS2013 on 2024-04. 5960 5961 CMakeLists.txt | 9 +++++++-- 5962 src/common/sysdefs.h | 6 +----- 5963 windows/INSTALL-MSVC.txt | 8 ++------ 5964 3 files changed, 10 insertions(+), 13 deletions(-) 5965 5966commit 5d5c92b26246936461a635dda1f95740d7de2058 5967Author: Lasse Collin <lasse.collin@tukaani.org> 5968Date: 2024-06-15 18:07:04 +0300 5969 5970 CMake: Add XZ_TOOL_SCRIPTS 5971 5972 CMakeLists.txt | 44 +++++++++++++++++++++++++++++--------------- 5973 1 file changed, 29 insertions(+), 15 deletions(-) 5974 5975commit d274a2bc00d235f07e96aaf82c149794cfe82b12 5976Author: Lasse Collin <lasse.collin@tukaani.org> 5977Date: 2024-06-15 18:07:04 +0300 5978 5979 CMake: Add XZ_DOC 5980 5981 CMakeLists.txt | 45 ++++++++++++++++++++++++--------------------- 5982 1 file changed, 24 insertions(+), 21 deletions(-) 5983 5984commit 188143a50ade67253ed256608f50f78aa1380403 5985Author: Lasse Collin <lasse.collin@tukaani.org> 5986Date: 2024-06-20 21:53:03 +0300 5987 5988 CMake: Refactor XZ_SYMBOL_VERSIONING to match configure.ac 5989 5990 Make the available options and their behavior match 5991 --enable-symbol-versions in configure.ac. 5992 5993 Don't enable symbol versions on Linux if not using glibc. Previously 5994 the generic variant was selected on Microblaze or if using NVHPC 5995 without checking that libc is glibc. 5996 5997 Leave the cache variable to "auto" or "yes" if that was specified 5998 instead of setting it to the autodetected value by default. A downside 5999 is that one cannot easily see which variant the autodetection code 6000 has selected. The same applies to XZ_SANDBOX and XZ_THREADS though. 6001 6002 CMakeLists.txt | 125 ++++++++++++++++++++++++++++++++++----------------------- 6003 1 file changed, 75 insertions(+), 50 deletions(-) 6004 6005commit cc52ef8ed3b75a581262c587f6c06c213a550f86 6006Author: Lasse Collin <lasse.collin@tukaani.org> 6007Date: 2024-06-15 18:07:04 +0300 6008 6009 CMake: Use the same option list for XZ_THREADS as in configure.ac 6010 6011 Also clarify that "yes" will fail if no threading support is found. 6012 If no threading is wanted, it has to be disabled manually. 6013 6014 configure.ac doesn't behave this way at the moment. Instead it 6015 assumes pthreads to be present if not targeting Windows. If pthreads 6016 actually are missing, the build fails later. 6017 6018 CMakeLists.txt | 18 ++++++++++-------- 6019 1 file changed, 10 insertions(+), 8 deletions(-) 6020 6021commit 37f7af3452bab0a34ce320c2ad532835f18752d9 6022Author: Lasse Collin <lasse.collin@tukaani.org> 6023Date: 2024-06-15 18:07:04 +0300 6024 6025 CMake: Use the same option list for XZ_SANDBOX as in configure.ac 6026 6027 It's simpler to document this way. 6028 6029 CMakeLists.txt | 20 ++++++++++---------- 6030 1 file changed, 10 insertions(+), 10 deletions(-) 6031 6032commit c715dec8e800b65145918cfb0ee9bbc90faa8aad 6033Author: Lasse Collin <lasse.collin@tukaani.org> 6034Date: 2024-06-15 18:07:04 +0300 6035 6036 CMake: Fix indentation 6037 6038 CMakeLists.txt | 2 +- 6039 1 file changed, 1 insertion(+), 1 deletion(-) 6040 6041commit ea379f2f180befabd2039342db8eaeb757fdd2b7 6042Author: Lasse Collin <lasse.collin@tukaani.org> 6043Date: 2024-06-15 18:07:04 +0300 6044 6045 CMake: Add warning options for GCC and Clang 6046 6047 The list was copied from configure.ac and should be kept in sync. 6048 (Pretend that the deleted comment in CMakeLists.txt didn't exist.) 6049 6050 There is no need to add equivalent of --enable-werror as CMake >= 3.24 6051 supports -DCMAKE_COMPILE_WARNING_AS_ERROR=ON. 6052 6053 CMakeLists.txt | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++----- 6054 1 file changed, 59 insertions(+), 5 deletions(-) 6055 6056commit 74223338197b7dfcd69f56df78b6502805a75f23 6057Author: Lasse Collin <lasse.collin@tukaani.org> 6058Date: 2024-06-15 18:07:04 +0300 6059 6060 CMake: Use \040 instead of \x20 for a space 6061 6062 This is for consistency with 4c81c9611f8b2e1ad65eb7fa166afc570c58607e 6063 where \040 has to be used because \0x20F gets interpret at three hex 6064 digits. Octals escapes are never longer than three digits. 6065 6066 CMakeLists.txt | 2 +- 6067 1 file changed, 1 insertion(+), 1 deletion(-) 6068 6069commit e8854b6bdc956c46dc4232bd07c17163034a00f2 6070Author: Lasse Collin <lasse.collin@tukaani.org> 6071Date: 2024-06-15 18:07:04 +0300 6072 6073 CMake: Add XZ_ASSUME_RAM 6074 6075 CMakeLists.txt | 4 +++- 6076 1 file changed, 3 insertions(+), 1 deletion(-) 6077 6078commit e1127e75cb82e0385f02c995771d6fe1420f43c5 6079Author: Lasse Collin <lasse.collin@tukaani.org> 6080Date: 2024-06-15 18:07:04 +0300 6081 6082 CMake: Rename liblzma_INSTALL_CMAKEDIR to XZ_INSTALL_CMAKEDIR 6083 6084 CMakeLists.txt | 6 +++--- 6085 1 file changed, 3 insertions(+), 3 deletions(-) 6086 6087commit 96abfe98c15e431a50a6a31015c5bb05540ab2ff 6088Author: Lasse Collin <lasse.collin@tukaani.org> 6089Date: 2024-06-15 18:07:04 +0300 6090 6091 CMake: Refactor ADDITIONAL_CHECK_TYPES to XZ_CHECKS 6092 6093 Now "crc32" is in the list too for completeness but it doesn't 6094 actually have any effect. The description of the cache variable 6095 says that "crc32 is always built" so it should be clear enough. 6096 6097 CMakeLists.txt | 14 +++++++------- 6098 tests/tests.cmake | 17 ++++++++--------- 6099 2 files changed, 15 insertions(+), 16 deletions(-) 6100 6101commit 679500ffe00ecb4f02292129e7529ab7392f3943 6102Author: Lasse Collin <lasse.collin@tukaani.org> 6103Date: 2024-06-15 18:07:04 +0300 6104 6105 CMake: Rename the cache variable POSIX_SHELL to XZ_POSIX_SHELL 6106 6107 We still need the variable POSIX_SHELL for configure_file() 6108 but it doesn't need to be a cache variable. 6109 6110 CMakeLists.txt | 7 ++++--- 6111 1 file changed, 4 insertions(+), 3 deletions(-) 6112 6113commit e5c0eb2e50e5522a0a55e7ba83fe49b04c8a6eef 6114Author: Lasse Collin <lasse.collin@tukaani.org> 6115Date: 2024-06-15 18:07:04 +0300 6116 6117 CMake: Rename ENCODERS and DECODERS to use XZ_ prefix 6118 6119 CMakeLists.txt | 34 +++++++++++++++++----------------- 6120 tests/tests.cmake | 4 ++-- 6121 2 files changed, 19 insertions(+), 19 deletions(-) 6122 6123commit e7785e2061f95d44aa6c0856b09cc0fbad7d6154 6124Author: Lasse Collin <lasse.collin@tukaani.org> 6125Date: 2024-06-15 18:07:04 +0300 6126 6127 CMake: Rename MATCH_FINDERS to XZ_MATCH_FINDERS 6128 6129 CMakeLists.txt | 6 +++--- 6130 1 file changed, 3 insertions(+), 3 deletions(-) 6131 6132commit 63294806b488a27a28a0960f6a257695dd2b569a 6133Author: Lasse Collin <lasse.collin@tukaani.org> 6134Date: 2024-06-15 18:07:04 +0300 6135 6136 CMake: Rename SYMBOL_VERSIONING to XZ_SYMBOL_VERSIONING 6137 6138 CMakeLists.txt | 9 +++++---- 6139 1 file changed, 5 insertions(+), 4 deletions(-) 6140 6141commit ad245b133675d285bca5d48123062e9d1e3f747e 6142Author: Lasse Collin <lasse.collin@tukaani.org> 6143Date: 2024-06-15 18:07:04 +0300 6144 6145 CMake: Rename ENABLE_THREADS to XZ_THREADS 6146 6147 CMakeLists.txt | 24 +++++++++++------------- 6148 1 file changed, 11 insertions(+), 13 deletions(-) 6149 6150commit 4250d4de32e66e558cc2ebe73b05255633c933ed 6151Author: Lasse Collin <lasse.collin@tukaani.org> 6152Date: 2024-06-15 18:07:04 +0300 6153 6154 CMake: Rename ENABLE_SANDBOX to XZ_SANDBOX 6155 6156 CMakeLists.txt | 23 +++++++++++------------ 6157 1 file changed, 11 insertions(+), 12 deletions(-) 6158 6159commit 0fdcd0c582f1a38542cd647dde449d9447d5888d 6160Author: Lasse Collin <lasse.collin@tukaani.org> 6161Date: 2024-06-15 18:07:04 +0300 6162 6163 CMake: Rename ENABLE_X86_ASM to XZ_ASM_I386 6164 6165 CMakeLists.txt | 10 +++++----- 6166 1 file changed, 5 insertions(+), 5 deletions(-) 6167 6168commit e017d5526e316003fdb2a3f76acbb83443f14ddf 6169Author: Lasse Collin <lasse.collin@tukaani.org> 6170Date: 2024-06-15 18:07:04 +0300 6171 6172 CMake: Rename CREATE_XZ_SYMLINKS to XZ_TOOL_SYMLINKS 6173 6174 This only affects the names unxz and xzcat. The xz-prefixed script 6175 symlinks (xzfgrep and such) are always created if scripts are enabled. 6176 6177 CMakeLists.txt | 4 ++-- 6178 1 file changed, 2 insertions(+), 2 deletions(-) 6179 6180commit 04cac14fcb9fb302c24e90b04ca4b77d3717b50c 6181Author: Lasse Collin <lasse.collin@tukaani.org> 6182Date: 2024-06-15 18:07:04 +0300 6183 6184 CMake: Rename CREATE_LZMA_SYMLINKS to XZ_TOOL_LZMA_SYMLINKS 6185 6186 Update the description too. 6187 6188 It affects creation of not only the legacy lzma, unlzma, lzcat symlinks 6189 but also lzgrep and other legacy names for the scripts. The last 6190 LZMA Utils release was made in 2008 but these names are still used 6191 in some places to handle .lzma files. 6192 6193 CMakeLists.txt | 7 ++++--- 6194 1 file changed, 4 insertions(+), 3 deletions(-) 6195 6196commit 612ccebf884eb1a9b6848e230c24f97a03fe917a 6197Author: Lasse Collin <lasse.collin@tukaani.org> 6198Date: 2024-06-15 18:07:04 +0300 6199 6200 CMake: Rename ALLOW_ARM64_CRC32 to XZ_ARM64_CRC32 6201 6202 Update description too. 6203 6204 CMakeLists.txt | 6 +++--- 6205 1 file changed, 3 insertions(+), 3 deletions(-) 6206 6207commit 3dcc12290d6dffbe7f10f501c141d325bad65901 6208Author: Lasse Collin <lasse.collin@tukaani.org> 6209Date: 2024-06-15 18:07:04 +0300 6210 6211 CMake: Rename ALLOW_CLMUL_CRC to XZ_CLMUL_CRC 6212 6213 Update description too. 6214 6215 CMakeLists.txt | 6 +++--- 6216 1 file changed, 3 insertions(+), 3 deletions(-) 6217 6218commit 4b8faa72442da9aa1a356f5848aae798d8588a7d 6219Author: Lasse Collin <lasse.collin@tukaani.org> 6220Date: 2024-06-15 18:07:04 +0300 6221 6222 CMake: Rename ENABLE_DOXYGEN to XZ_DOXYGEN 6223 6224 CMakeLists.txt | 4 ++-- 6225 1 file changed, 2 insertions(+), 2 deletions(-) 6226 6227commit b56273ae575bac350e50b0c689269dcab04b04b3 6228Author: Lasse Collin <lasse.collin@tukaani.org> 6229Date: 2024-06-15 18:07:04 +0300 6230 6231 CMake: Rename LZIP_DECODER to XZ_LZIP_DECODER 6232 6233 CMakeLists.txt | 4 ++-- 6234 tests/tests.cmake | 2 +- 6235 2 files changed, 3 insertions(+), 3 deletions(-) 6236 6237commit 2343992fcbe8b436da6df888be37713cccaff0ab 6238Author: Lasse Collin <lasse.collin@tukaani.org> 6239Date: 2024-06-15 18:07:04 +0300 6240 6241 CMake: Rename MICROLZMA_ENCODER/DECODER to XZ_MICROLZMA_ENCODER/DECODER 6242 6243 CMakeLists.txt | 8 ++++---- 6244 tests/tests.cmake | 2 +- 6245 2 files changed, 5 insertions(+), 5 deletions(-) 6246 6247commit 96f0a6632cc0598a26d93255b0c444df18dc7891 6248Author: Lasse Collin <lasse.collin@tukaani.org> 6249Date: 2024-06-15 18:07:04 +0300 6250 6251 CMake: Rename ENABLE_SMALL to XZ_SMALL 6252 6253 CMakeLists.txt | 14 +++++++------- 6254 1 file changed, 7 insertions(+), 7 deletions(-) 6255 6256commit 29f77c7b707f2458fb047e77497354b195e05b14 6257Author: Lasse Collin <lasse.collin@tukaani.org> 6258Date: 2024-06-15 18:07:04 +0300 6259 6260 CMake: Rename ENABLE_NLS to XZ_NLS 6261 6262 Also update the description to mention that this affects installation 6263 of translated man pages too. 6264 6265 Prefixing the cache variables with the project name helps if 6266 the package is used as a subproject in another package. 6267 It also makes the package-specific options group more nicely 6268 in ccmake and cmake-gui. 6269 6270 CMakeLists.txt | 28 +++++++++++++++------------- 6271 1 file changed, 15 insertions(+), 13 deletions(-) 6272 6273commit ac05f1b0d7cda1e7ae79775a8dfecc54601d7f1c 6274Author: Lasse Collin <lasse.collin@tukaani.org> 6275Date: 2024-06-15 23:34:29 +0300 6276 6277 CMake: Link Threads::Threads as PRIVATE to liblzma 6278 6279 This way pthread options aren't passed to the linker when linking 6280 against shared liblzma but they are still passed when linking against 6281 static liblzma. (Also, one never needs the include path of the 6282 threading library to use liblzma since liblzma's API headers 6283 don't #include <pthread.h>. But <pthread.h> tends to be in the 6284 default include path so here this change makes no difference.) 6285 6286 One cannot mix target_link_libraries() calls that use the scope 6287 (PRIVATE, PUBLIC, or INTERFACE) keyword and calls that don't use it. 6288 The calls without the keyword are like PUBLIC except perhaps when 6289 they aren't, or something like that... It seems best to always 6290 specify a scope keyword as the meanings of those three keywords 6291 at least are clear. 6292 6293 CMakeLists.txt | 2 +- 6294 1 file changed, 1 insertion(+), 1 deletion(-) 6295 6296commit 82986d8c691a294c78b48d8391303e5c428b5437 6297Author: Lasse Collin <lasse.collin@tukaani.org> 6298Date: 2024-06-16 19:39:32 +0300 6299 6300 CMake: Add empty lines 6301 6302 CMakeLists.txt | 2 ++ 6303 1 file changed, 2 insertions(+) 6304 6305commit 2aecffe0f0e14f3ef635e8cd7b405420f2385de2 6306Author: Lasse Collin <lasse.collin@tukaani.org> 6307Date: 2024-06-16 19:37:36 +0300 6308 6309 CMake: Use CMAKE_THREAD_LIBS_INIT in liblzma.pc only with pthreads 6310 6311 This shouldn't make much difference in practice as on Windows 6312 no flags are needed anyway and unitialized variable (when threading 6313 is disabled) expands to empty. But it's clearer this way. 6314 6315 CMakeLists.txt | 8 +++++++- 6316 1 file changed, 7 insertions(+), 1 deletion(-) 6317 6318commit 664918bd3635ea8e773f06022286ecb0c485166c 6319Author: Lasse Collin <lasse.collin@tukaani.org> 6320Date: 2024-06-17 18:20:14 +0300 6321 6322 Update THANKS 6323 6324 THANKS | 3 +++ 6325 1 file changed, 3 insertions(+) 6326 6327commit 5ca96a93488d0f5a530c78b274cac317453807ff 6328Author: Lasse Collin <lasse.collin@tukaani.org> 6329Date: 2024-06-16 19:25:07 +0300 6330 6331 CMake: Use native newlines in liblzma.pc 6332 6333 vcpkg doesn't specify the newline type so it should be fine to 6334 use native newlines in liblzma.pc on Windows. 6335 6336 CMakeLists.txt | 4 +--- 6337 1 file changed, 1 insertion(+), 3 deletions(-) 6338 6339commit ebd155c3a1b87411edae06d3bdaa9659ec057522 6340Author: Lasse Collin <lasse.collin@tukaani.org> 6341Date: 2024-06-16 19:18:56 +0300 6342 6343 CMake: Use relative paths in liblzma.pc if possible 6344 6345 Now liblzma.pc can be relocatable only if using CMake >= 3.20 6346 but that should be OK as now we shouldn't get broken liblzma.pc 6347 if CMAKE_INSTALL_LIBDIR or CMAKE_INSTALL_INCLUDEDIR contain an 6348 absolute path. 6349 6350 Thanks to Eli Schwartz. 6351 6352 CMakeLists.txt | 18 ++++++++++++++---- 6353 1 file changed, 14 insertions(+), 4 deletions(-) 6354 6355commit 7a366d93cfd74ce10201db400be8836199944e36 6356Author: Lasse Collin <lasse.collin@tukaani.org> 6357Date: 2024-06-16 18:33:08 +0300 6358 6359 Revert "CMake: Set only "prefix" as an absolute path in liblzma.pc" 6360 6361 This reverts commit 5d1c649ba9eb7a5b9371252ebfbc2911dc774e69. 6362 6363 While CMAKE_INSTALL_<dir> tend to be relative paths, they don't need 6364 to be. Thus the commit was broken. A fancier method is required. 6365 6366 Thanks to Eli Schwartz for the bug report and explanation. 6367 6368 CMakeLists.txt | 6 +++--- 6369 1 file changed, 3 insertions(+), 3 deletions(-) 6370 6371commit 30a2d5d51006301a3ddab5ef1f5ff0a9d74dce6f 6372Author: Lasse Collin <lasse.collin@tukaani.org> 6373Date: 2024-06-16 13:39:37 +0300 6374 6375 liblzma: CRC CLMUL: Omit is_arch_extension_supported() when not needed 6376 6377 On E2K the function compiles only due to compiler emulation but the 6378 function is never used. It's cleaner to omit the function when it's 6379 not needed even though it's a "static inline" function. 6380 6381 Thanks to Ilya Kurdyukov. 6382 6383 src/liblzma/check/crc_x86_clmul.h | 4 ++++ 6384 1 file changed, 4 insertions(+) 6385 6386commit 54eaea5ea49bb8bca4286d4412f19ac73187489e 6387Author: Lasse Collin <lasse.collin@tukaani.org> 6388Date: 2024-06-16 13:21:34 +0300 6389 6390 liblzma: x86 CLMUL CRC: Rewrite 6391 6392 It's faster with both tiny and large buffers and doesn't require 6393 disabling any sanitizers. With large buffers the extra speed is 6394 from folding four 16-byte chunks in parallel. 6395 6396 The 32-bit x86 with MSVC reportedly still needs a workaround. 6397 Now the simpler "__asm mov ebx, ebx" trick is enough but it 6398 needs to be in lzma_crc64() instead of crc64_arch_optimized(). 6399 Thanks to Iouri Kharon for testing and the fix. 6400 6401 Thanks to Ilya Kurdyukov for testing the speed with aligned and 6402 unaligned buffers on a few x86 processors and on E2K v6. 6403 6404 Thanks to Sam James for general feedback. 6405 6406 Fixes: https://github.com/tukaani-project/xz/issues/112 6407 Fixes: https://github.com/tukaani-project/xz/issues/122 6408 6409 src/liblzma/check/crc64_fast.c | 8 + 6410 src/liblzma/check/crc_x86_clmul.h | 437 ++++++++++++++++++++------------------ 6411 2 files changed, 237 insertions(+), 208 deletions(-) 6412 6413commit c0e7eaae8d6eef1e313c9d0da20ccf126ec61f38 6414Author: Lasse Collin <lasse.collin@tukaani.org> 6415Date: 2024-06-01 14:44:04 +0300 6416 6417 sysdefs.h: Add alignas 6418 6419 src/common/sysdefs.h | 11 +++++++++++ 6420 1 file changed, 11 insertions(+) 6421 6422commit 20014c261451381d5e2f58e63e7b1fbefd4df4bf 6423Author: Lasse Collin <lasse.collin@tukaani.org> 6424Date: 2024-06-11 12:47:59 +0300 6425 6426 liblzma: Use a single macro to select CLMUL CRC to build 6427 6428 This way it's clearer that two things cannot be selected 6429 at the same time. 6430 6431 src/liblzma/check/crc32_fast.c | 2 +- 6432 src/liblzma/check/crc64_fast.c | 2 +- 6433 src/liblzma/check/crc_x86_clmul.h | 18 ++++++++++-------- 6434 3 files changed, 12 insertions(+), 10 deletions(-) 6435 6436commit d8fb0986171bd6a3066b236fc9a6b3d573c8e441 6437Author: Lasse Collin <lasse.collin@tukaani.org> 6438Date: 2024-06-10 15:31:01 +0300 6439 6440 liblzma: CRC32 CLMUL: Refactor the constants and simplify 6441 6442 By using modulus scaled constants, the final reduction can 6443 be simplified. 6444 6445 src/liblzma/check/crc_x86_clmul.h | 52 +++++++-------------------------------- 6446 1 file changed, 9 insertions(+), 43 deletions(-) 6447 6448commit ef652ac391ff7e8cda656238dc5b5f83bc1554c2 6449Author: Lasse Collin <lasse.collin@tukaani.org> 6450Date: 2024-06-10 15:12:48 +0300 6451 6452 liblzma: CRC64 CLMUL: Refactor the constants 6453 6454 Now it refers to crc_clmul_consts_gen.c. vfold8 was renamed to mu_p 6455 and the p no longer has the lowest bit set (it makes no difference 6456 as the output bits it affects are ignored). 6457 6458 src/liblzma/check/crc_x86_clmul.h | 43 +++++++-------------------------------- 6459 1 file changed, 7 insertions(+), 36 deletions(-) 6460 6461commit 9f5fc17e32bf5c7c6cfadf40c29a1dedb4cc03ac 6462Author: Lasse Collin <lasse.collin@tukaani.org> 6463Date: 2024-06-10 14:45:44 +0300 6464 6465 liblzma: Add crc_clmul_consts_gen.c 6466 6467 It's a standalone program that prints the required constants. 6468 It's won't be a part of the normal build of the package. 6469 6470 src/liblzma/check/Makefile.inc | 1 + 6471 src/liblzma/check/crc_clmul_consts_gen.c | 160 +++++++++++++++++++++++++++++++ 6472 2 files changed, 161 insertions(+) 6473 6474commit 71b147aab7fe4a60ed57b697d5bb490f099894be 6475Author: Lasse Collin <lasse.collin@tukaani.org> 6476Date: 2024-05-09 21:44:03 +0300 6477 6478 liblzma: Remove CRC_USE_GENERIC_FOR_SMALL_INPUTS 6479 6480 It was already commented out. 6481 6482 src/liblzma/check/crc32_fast.c | 21 --------------------- 6483 src/liblzma/check/crc64_fast.c | 5 ----- 6484 src/liblzma/check/crc_common.h | 14 -------------- 6485 src/liblzma/check/crc_x86_clmul.h | 9 +-------- 6486 4 files changed, 1 insertion(+), 48 deletions(-) 6487 6488commit f99a7be40645f86959a5b180dfae948dd165e07c 6489Author: Lasse Collin <lasse.collin@tukaani.org> 6490Date: 2024-05-09 21:03:39 +0300 6491 6492 liblzma: Remove crc_attr_no_sanitize_address 6493 6494 It's not enough to silence the address sanitizer. Also memory and 6495 thread sanitizers would need to be silenced. They, at least currently, 6496 aren't smart enough to see that the extra bytes are discarded from 6497 the xmm registers by later instructions. 6498 6499 Valgrind is smarter, possibly because this kind of code isn't weird 6500 to write in assembly. Agner Fog's optimizing_assembly.pdf even mentions 6501 this idea of doing an aligned read and then discarding the extra 6502 bytes. The sanitizers don't instrument assembly code but Valgrind 6503 checks all code. 6504 6505 It's better to change the implementation to avoid the sanitization 6506 attributes which also look scary in the code. (Somehow they can look 6507 more scary than __asm__ which is implictly unsanitized.) 6508 6509 See also: 6510 https://github.com/tukaani-project/xz/issues/112 6511 https://github.com/tukaani-project/xz/issues/122 6512 6513 src/liblzma/check/crc_common.h | 9 --------- 6514 src/liblzma/check/crc_x86_clmul.h | 3 --- 6515 2 files changed, 12 deletions(-) 6516 6517commit ead4d151996f8a18bf9b07eb1e175c0a1590e562 6518Author: Lasse Collin <lasse.collin@tukaani.org> 6519Date: 2024-06-10 15:37:49 +0300 6520 6521 Revert "Build: Temporarily disable CRC CLMUL to silence OSS Fuzz" 6522 6523 This reverts commit 9f1a6d6f9a258886933a22239a5b81af34b28199. 6524 6525 configure.ac | 4 +--- 6526 1 file changed, 1 insertion(+), 3 deletions(-) 6527 6528commit 2178acf8a4d40a93e970cfcf9b807d5ef6c8da92 6529Author: Lasse Collin <lasse.collin@tukaani.org> 6530Date: 2024-06-12 14:26:44 +0300 6531 6532 CMake: Prefer C11 with a fallback to C99 6533 6534 There is no need to make a similar change in configure.ac. 6535 With Autoconf 2.72, the deprecated macro AC_PROG_CC_C99 6536 is an alias for AC_PROG_CC which prefers a C11 compiler. 6537 6538 CMakeLists.txt | 17 +++++++++++------ 6539 1 file changed, 11 insertions(+), 6 deletions(-) 6540 6541commit c97e9c12fef4d1093ee2a75236742481361f50f5 6542Author: Lasse Collin <lasse.collin@tukaani.org> 6543Date: 2024-06-12 14:20:21 +0300 6544 6545 Update THANKS 6546 6547 THANKS | 4 ++++ 6548 1 file changed, 4 insertions(+) 6549 6550commit 89e9f12e03324b8a186e807b268f34f92d1b2f41 6551Author: Lasse Collin <lasse.collin@tukaani.org> 6552Date: 2024-06-11 11:15:49 +0300 6553 6554 Tests: Improve the CRC32 test 6555 6556 A similar one was already there for CRC64 but nowadays also CRC32 6557 has a CLMUL implementation, so it's good to test it better too. 6558 6559 tests/test_check.c | 17 +++++++++++++---- 6560 1 file changed, 13 insertions(+), 4 deletions(-) 6561 6562commit c7164b1927e3fe7cdba70ee4687e1a590a81043b 6563Author: Lasse Collin <lasse.collin@tukaani.org> 6564Date: 2024-06-11 22:42:26 +0300 6565 6566 xz: Fix white space 6567 6568 src/xz/list.c | 6 +++--- 6569 1 file changed, 3 insertions(+), 3 deletions(-) 6570 6571commit 0a32d2072c598de281058b26dc08920fbf0cd2a1 6572Author: Lasse Collin <lasse.collin@tukaani.org> 6573Date: 2024-06-11 21:59:09 +0300 6574 6575 liblzma: Fix a typo in a comment 6576 6577 Thanks to Sam James for spotting it. 6578 6579 Fixes: f644473a211394447824ea00518d0a214ff3f7f2 6580 6581 src/liblzma/check/crc_x86_clmul.h | 2 +- 6582 1 file changed, 1 insertion(+), 1 deletion(-) 6583 6584commit afd9b4d282a10186808c3331dad4caf79c02d55f 6585Author: Lasse Collin <lasse.collin@tukaani.org> 6586Date: 2024-05-10 15:52:26 +0300 6587 6588 liblzma: Fix a comment indentation 6589 6590 src/liblzma/check/crc_common.h | 6 +++--- 6591 1 file changed, 3 insertions(+), 3 deletions(-) 6592 6593commit 50e6bff274568c568930e15094da8217e7d47d28 6594Author: Lasse Collin <lasse.collin@tukaani.org> 6595Date: 2024-05-09 22:09:12 +0300 6596 6597 liblzma: Fix white space 6598 6599 src/liblzma/check/crc32_table.c | 10 +++++----- 6600 src/liblzma/check/crc_x86_clmul.h | 6 +++--- 6601 src/liblzma/check/sha256.c | 2 +- 6602 3 files changed, 9 insertions(+), 9 deletions(-) 6603 6604commit caea7844d3824755d053b4743c4913d73ac2db3d 6605Author: Lasse Collin <lasse.collin@tukaani.org> 6606Date: 2024-06-01 14:25:29 +0300 6607 6608 tuklib: __STDC_VERSION__ in C23 is 202311 6609 6610 src/common/tuklib_common.h | 4 +--- 6611 1 file changed, 1 insertion(+), 3 deletions(-) 6612 6613commit 9e73918a4f14be754a23f74dda45ca431939a4a0 6614Author: RainRat <rainrat78@yahoo.ca> 6615Date: 2024-06-05 15:21:49 -0700 6616 6617 Fix typos 6618 6619 Closes: https://github.com/tukaani-project/xz/pull/124 6620 6621 INSTALL | 2 +- 6622 doc/examples/03_compress_custom.c | 2 +- 6623 src/common/tuklib_integer.h | 2 +- 6624 src/liblzma/api/lzma/container.h | 2 +- 6625 src/xz/mytime.c | 2 +- 6626 tests/test_filter_str.c | 2 +- 6627 6 files changed, 6 insertions(+), 6 deletions(-) 6628 6629commit 04b23addf3733873667675df2439725f076c2f36 6630Author: Lasse Collin <lasse.collin@tukaani.org> 6631Date: 2024-06-07 15:47:20 +0300 6632 6633 tuklib_integer: Fix building on OpenBSD/sparc64 that uses GCC 4.2 6634 6635 GCC 4.2 doesn't have __builtin_bswap16() and friends so tuklib_integer.h 6636 tries to use OS-specific byte swap methods instead. On OpenBSD those 6637 macros are swap16/32/64 instead of bswap16/32/64 like on other *BSDs 6638 and Darwin. 6639 6640 An alternative to "#ifdef __OpenBSD__" could be "#ifdef swap16" as it 6641 is a macro. But since OpenBSD seems to be a special case under this 6642 special case of "*BSDs and Darwin", checking for __OpenBSD__ seems 6643 the more conservative choice now. 6644 6645 Thanks to Christian Weisgerber and Brad Smith who both submitted 6646 the same patch a few hours apart. 6647 6648 Co-authored-by: Christian Weisgerber <naddy@mips.inka.de> 6649 Co-authored-by: Brad Smith <brad@comstyle.com> 6650 Closes: https://github.com/tukaani-project/xz/pull/126 6651 6652 src/common/tuklib_integer.h | 12 +++++++++--- 6653 1 file changed, 9 insertions(+), 3 deletions(-) 6654 6655commit dc03f6290f5b9bd3d50c7e12e58dee870889d599 6656Author: Lasse Collin <lasse.collin@tukaani.org> 6657Date: 2024-06-07 15:06:59 +0300 6658 6659 liblzma: Add ARM64 CRC32 instruction support detection on OpenBSD 6660 6661 The C code is from Christian Weisgerber, I merely reordered the OSes. 6662 Then I added the build system checks without testing them. 6663 6664 Also thanks to Brad Smith who submitted a similar patch on GitHub 6665 a few hours after Christian had sent his via email. 6666 6667 Co-authored-by: Christian Weisgerber <naddy@mips.inka.de> 6668 Closes: https://github.com/tukaani-project/xz/pull/125 6669 6670 CMakeLists.txt | 6 ++++++ 6671 configure.ac | 9 +++++++++ 6672 src/liblzma/check/crc32_arm64.h | 15 +++++++++++++++ 6673 src/liblzma/check/crc_common.h | 1 + 6674 4 files changed, 31 insertions(+) 6675 6676commit f5c2ae58ec68c665e62c790b842657afcb31474c 6677Author: Lasse Collin <lasse.collin@tukaani.org> 6678Date: 2024-06-05 13:55:43 +0300 6679 6680 Update THANKS 6681 6682 THANKS | 2 ++ 6683 1 file changed, 2 insertions(+) 6684 6685commit e5491dfab9c54dc7078a8d3d07fabb91d6e06418 6686Author: Lasse Collin <lasse.collin@tukaani.org> 6687Date: 2024-06-05 13:42:47 +0300 6688 6689 CMake: Include the "alpha" or "beta" suffix in PACKAGE_VERSION 6690 6691 This way the version string gets into xzgrep and other scripts 6692 in full and also into liblzma.pc. 6693 6694 For the project() command, a suffixless string is required though. 6695 6696 CMakeLists.txt | 16 +++++++++++++--- 6697 1 file changed, 13 insertions(+), 3 deletions(-) 6698 6699commit 1d3c61575fda0be6b2d50c9e32a343349d5cd5c0 6700Author: Lasse Collin <lasse.collin@tukaani.org> 6701Date: 2024-06-05 13:30:28 +0300 6702 6703 CMake: Fix wrong version variable 6704 6705 liblzma_VERSION has never existed in the repository. xz_VERSION from 6706 the project() command was used for liblzma SOVERSION so use xz_VERSION 6707 here too. 6708 6709 The wrong variable did no harm in practice as PROJECT_VERSION 6710 was used as the fallback. It has the same value as xz_VERSION. 6711 6712 Fixes: 7e3493d40eac0c3fa3d5124097745a70e15c41f6 6713 6714 CMakeLists.txt | 2 +- 6715 1 file changed, 1 insertion(+), 1 deletion(-) 6716 6717commit 5d1c649ba9eb7a5b9371252ebfbc2911dc774e69 6718Author: Lasse Collin <lasse.collin@tukaani.org> 6719Date: 2024-06-05 12:59:59 +0300 6720 6721 CMake: Set only "prefix" as an absolute path in liblzma.pc 6722 6723 CMake provides variables that are relative to CMAKE_INSTALL_PREFIX 6724 so use them instead of repeating the full path. 6725 6726 CMakeLists.txt | 6 +++--- 6727 1 file changed, 3 insertions(+), 3 deletions(-) 6728 6729commit e0d6d05ce0d464e966c0669bbf869202a43cc2f7 6730Author: Lasse Collin <lasse.collin@tukaani.org> 6731Date: 2024-06-04 23:59:29 +0300 6732 6733 CMake: Fix liblzma filename in Windows environments 6734 6735 This is a mess because liblzma DLL outside Cygwin and MSYS2 6736 is liblzma.dll instead of lzma.dll to avoid a conflict with 6737 lzma.dll from LZMA SDK. 6738 6739 On Cygwin the name was "liblzma-5.dll" while "cyglzma-5.dll" 6740 would have been correct (and match what Libtool produces). 6741 MSYS2 likely was broken too as it uses the "msys-" prefix. 6742 6743 This change has no effect with MinGW-w64 because with that 6744 the "lib" prefix was correct already. 6745 6746 With MSVC builds this is a small breaking change that requires developers 6747 to adjust the library name when linking against liblzma. The liblzma.dll 6748 name is kept as is but the import library and static library are now 6749 lzma.lib instead of liblzma.lib. This is helpful when using pkgconf 6750 because "pkgconf --msvc-syntax --libs liblzma" outputs "lzma.lib" 6751 (it's converted from "-llzma" in liblzma.pc). It would be easy to 6752 keep the liblzma.lib naming but the pkgconf compatibility seems worth 6753 it in the long run. The lzma.lib name is compatible with MinGW-w64 6754 too as -llzma will find also lzma.lib. 6755 6756 vcpkg had been patching CMakeLists.txt this way since 2022 but I 6757 learned this only recently. The reasoning for the patch makes sense, 6758 and while this is a small breaking change with MSVC, it seems like 6759 a decent compromise as it keeps the DLL name the same. 6760 6761 2022 patch in vcpkg: https://github.com/microsoft/vcpkg/blob/0707a17ecf1466d64cf1a3c1ee18c8ff02aadb2d/ports/liblzma/win_output_name.patch 6762 See the discussion: https://github.com/microsoft/vcpkg/pull/39024 6763 6764 Thanks to Vincent Torri for confirming the naming issue on Cygwin. 6765 6766 CMakeLists.txt | 34 ++++++++++++++++++++++++++++++---- 6767 1 file changed, 30 insertions(+), 4 deletions(-) 6768 6769commit e7a42cda7c827e016619e8cab15e2faf5d4181ae 6770Author: Lasse Collin <lasse.collin@tukaani.org> 6771Date: 2024-06-03 16:55:03 +0300 6772 6773 Fix version.sh compatiblity with Solaris 6774 6775 The ancient /bin/tr on Solaris doesn't support '\n'. 6776 With /usr/xpg4/bin/tr it works but it might not be in PATH. 6777 6778 Another problem was that sed was given input that didn't have a newline 6779 at the end. Text files must end with a newline to be portable. 6780 6781 Fix both problems: 6782 6783 - Handle multiline input within sed itself to avoid one tr invocation. 6784 The default sed even on Solaris does understand \n. 6785 6786 - Use octals in tr -d. \012 works for ASCII "line feed", it's even 6787 used as an example in the Solaris man page. But we must strip 6788 also ASCII "carriage return" \015 and EBCDIC "next line" \025. 6789 The EBCDIC case got handled with \n previously. Stripping \012 6790 and \015 on EBCDIC system won't matter as those control chars 6791 won't be present in the string in the first place. 6792 6793 An awk-based solution could be an alternative but it might need 6794 special casing on Solaris to used nawk instead of awk. The changes 6795 in this commit are smaller and should have a smaller risk for 6796 regressions. It's also possible that version.sh will be dropped 6797 entirely at some point. 6798 6799 build-aux/version.sh | 5 ++--- 6800 1 file changed, 2 insertions(+), 3 deletions(-) 6801 6802commit a61c9ab4751f2710dcd5459c7d74bbf20781f0f9 6803Author: Lasse Collin <lasse.collin@tukaani.org> 6804Date: 2024-06-03 17:07:11 +0300 6805 6806 CI: Don't require po4a on Solaris 6807 6808 .github/workflows/solaris.yml | 2 +- 6809 1 file changed, 1 insertion(+), 1 deletion(-) 6810 6811commit 5229bdf5335ce18ed54beb7e646e39927663be86 6812Author: Lasse Collin <lasse.collin@tukaani.org> 6813Date: 2024-06-03 15:08:15 +0300 6814 6815 CI: Use set -e on Solaris too 6816 6817 .github/workflows/solaris.yml | 1 + 6818 1 file changed, 1 insertion(+) 6819 6820commit afa938e429c1ce07d26d02999352fb014b62ff3d 6821Author: Lasse Collin <lasse.collin@tukaani.org> 6822Date: 2024-06-03 17:44:50 +0300 6823 6824 CMake: Install liblzma.pc even with MSVC 6825 6826 I had misunderstood that it wouldn't be useful with MSVC. 6827 vcpkg had been installing liblzma.pc with custom rules since 2020, 6828 years before liblzma.pc support was added to CMakeLists.txt. 6829 6830 See: 6831 https://github.com/microsoft/vcpkg/blob/eb895b95aac6fd7485373702f29f508c42a180a0/ports/liblzma/portfile.cmake 6832 https://github.com/microsoft/vcpkg/pull/39024#issuecomment-2145064670 6833 6834 CMakeLists.txt | 8 +++----- 6835 1 file changed, 3 insertions(+), 5 deletions(-) 6836 6837commit 35f8649f08341639a627fd06350e938124ca3622 6838Author: Sam James <sam@gentoo.org> 6839Date: 2024-06-03 06:16:23 +0100 6840 6841 ci: don't pin official GH actions via commit, just tag 6842 6843 There's no real value in doing it via commit for official GH actions. We 6844 can keep using pinned commits for unofficial actions. It's hassle for no 6845 gain. 6846 6847 Maybe going forward we can limit this further by only being paranoid 6848 for the jobs with any access to tokens. 6849 6850 .github/workflows/ci.yml | 4 ++-- 6851 .github/workflows/freebsd.yml | 2 +- 6852 .github/workflows/netbsd.yml | 2 +- 6853 .github/workflows/openbsd.yml | 2 +- 6854 .github/workflows/solaris.yml | 2 +- 6855 .github/workflows/windows-ci.yml | 4 ++-- 6856 6 files changed, 8 insertions(+), 8 deletions(-) 6857 6858commit e885dae37ff5b1dbc760dabc1e03e866a7302ef2 6859Author: Christoph Junghans <christoph.junghans@gmail.com> 6860Date: 2024-04-30 07:49:26 -0600 6861 6862 ci: set -e on openbsd 6863 6864 Closes: https://github.com/tukaani-project/xz/pull/116 6865 6866 .github/workflows/openbsd.yml | 1 + 6867 1 file changed, 1 insertion(+) 6868 6869commit 21b02dd128cf9e8c76325ec124f70381862dcf19 6870Author: Christoph Junghans <christoph.junghans@gmail.com> 6871Date: 2024-04-30 07:48:58 -0600 6872 6873 ci: set -e on netbsd 6874 6875 .github/workflows/netbsd.yml | 1 + 6876 1 file changed, 1 insertion(+) 6877 6878commit 8641f0c24c041136670c975b23408184b45431bc 6879Author: Christoph Junghans <christoph.junghans@gmail.com> 6880Date: 2024-04-25 14:56:06 -0700 6881 6882 ci: actually fail on FreeBSD 6883 6884 Without "set -e" the job will always be successful. 6885 6886 See vmactions/freebsd-vm#72 6887 6888 .github/workflows/freebsd.yml | 1 + 6889 1 file changed, 1 insertion(+) 6890 6891commit ef616683ef11f11ffdfbe0624da33905e28a70f9 6892Author: Andrew Murray <radarhere@users.noreply.github.com> 6893Date: 2024-04-25 09:24:46 +1000 6894 6895 Updated actions 6896 6897 Closes: https://github.com/tukaani-project/xz/pull/115 6898 6899 .github/workflows/ci.yml | 4 ++-- 6900 .github/workflows/windows-ci.yml | 6 +++--- 6901 2 files changed, 5 insertions(+), 5 deletions(-) 6902 6903commit 57b440d316da9ac9cb312ee7e6890f5382556f10 6904Author: Sam James <sam@gentoo.org> 6905Date: 2024-06-03 02:49:40 +0100 6906 6907 ci: add po4a 6908 6909 .github/workflows/netbsd.yml | 2 +- 6910 .github/workflows/openbsd.yml | 3 ++- 6911 2 files changed, 3 insertions(+), 2 deletions(-) 6912 6913commit 08cdf4be9a673d78efe393b53dd73bf43c81dd95 6914Author: Sam James <sam@gentoo.org> 6915Date: 2024-04-13 21:02:04 +0100 6916 6917 ci: add Solaris 6918 6919 Inspired by https://github.com/RsyncProject/rsync/commit/3f2a38b01184cae9a931280b534acf5a3dae2e94. 6920 6921 It runs on Solaris 5.11 via a VirtualBox VM. 6922 6923 .github/workflows/solaris.yml | 31 +++++++++++++++++++++++++++++++ 6924 1 file changed, 31 insertions(+) 6925 6926commit b69768c8bd1a34fde311935c551d061ba52d9a3f 6927Author: Sam James <sam@gentoo.org> 6928Date: 2024-04-14 08:08:00 +0100 6929 6930 xz: list: suppress -Wformat-nonliteral for Solaris 6931 6932 Solaris' GCC can't understand that our use is fine, unlike modern compilers: 6933 ``` 6934 list.c: In function 'print_totals_basic': 6935 list.c:1191:4: error: format not a string literal, argument types not checked [-Werror=format-nonliteral] 6936 uint64_to_str(totals.files, 0)); 6937 ^~~~~~~~~~~~~ 6938 cc1: all warnings being treated as errors 6939 ``` 6940 6941 It's presumably because of older gettext missing format attributes. 6942 6943 This is with `gcc (GCC) 7.3.0`. 6944 6945 src/xz/list.c | 7 +++++++ 6946 1 file changed, 7 insertions(+) 6947 6948commit bb90e1f66d9beb490c4c99763e79519045968710 6949Author: Lasse Collin <lasse.collin@tukaani.org> 6950Date: 2024-06-03 11:44:28 +0300 6951 6952 license-check.sh: Fix reporting of unclear license info 6953 6954 The main feature was broken because an old variable name hadn't 6955 been updated to match the rest of the script. 6956 6957 build-aux/license-check.sh | 4 ++-- 6958 1 file changed, 2 insertions(+), 2 deletions(-) 6959 6960commit b8d134e61ede9f4a296226d97f5c20721fb4e8e2 6961Author: Lasse Collin <lasse.collin@tukaani.org> 6962Date: 2024-05-31 21:36:26 +0300 6963 6964 Update THANKS 6965 6966 THANKS | 3 +++ 6967 1 file changed, 3 insertions(+) 6968 6969commit 162587d3fb3fcedc6eee61eda3ccaaf60c80f0de 6970Author: Lasse Collin <lasse.collin@tukaani.org> 6971Date: 2024-05-29 17:47:13 +0300 6972 6973 Translations: Run po4a/update-po 6974 6975 Now the files are in the new formatting without source file 6976 line numbers. Future updates should keep the diffs much smaller. 6977 6978 po4a/de.po | 1592 ++++++++++--------- 6979 po4a/fr.po | 4450 +++++++++++++++++----------------------------------- 6980 po4a/ko.po | 1592 ++++++++++--------- 6981 po4a/pt_BR.po | 4817 ++++++++++++++++++--------------------------------------- 6982 po4a/ro.po | 1592 ++++++++++--------- 6983 po4a/uk.po | 1592 ++++++++++--------- 6984 6 files changed, 6114 insertions(+), 9521 deletions(-) 6985 6986commit 50cd8ed002473c5cd53980e70a53e5e6ad646ffe 6987Author: Lasse Collin <lasse.collin@tukaani.org> 6988Date: 2024-05-29 17:44:53 +0300 6989 6990 Translations: Run "make -C po update-po" 6991 6992 In the past this wasn't done before releases; the Git repository 6993 just contained the files from the Translation Project. But this 6994 way it is clearer when comparing release tarballs against the 6995 Git repository. In future releases this might no longer be necessary 6996 within a stable branch as the .po files won't change so easily anymore 6997 when creating a tarball. 6998 6999 po/ca.po | 567 +++++++++++++++++++++++++--------------- 7000 po/cs.po | 821 +++++++++++++++++++++++++++++++++++++-------------------- 7001 po/da.po | 809 +++++++++++++++++++++++++++++++++++--------------------- 7002 po/de.po | 403 ++++++++++++++-------------- 7003 po/eo.po | 403 ++++++++++++++-------------- 7004 po/es.po | 403 ++++++++++++++-------------- 7005 po/fi.po | 578 +++++++++++++++++++++++++--------------- 7006 po/fr.po | 538 +++++++++++++++++++++++--------------- 7007 po/hr.po | 403 ++++++++++++++-------------- 7008 po/hu.po | 403 ++++++++++++++-------------- 7009 po/it.po | 854 +++++++++++++++++++++++++++++++++++++++--------------------- 7010 po/ko.po | 403 ++++++++++++++-------------- 7011 po/pl.po | 403 ++++++++++++++-------------- 7012 po/pt.po | 842 +++++++++++++++++++++++++++++++++++++++-------------------- 7013 po/pt_BR.po | 567 +++++++++++++++++++++++++--------------- 7014 po/ro.po | 403 ++++++++++++++-------------- 7015 po/sr.po | 838 ++++++++++++++++++++++++++++++++++++++-------------------- 7016 po/sv.po | 403 ++++++++++++++-------------- 7017 po/tr.po | 567 +++++++++++++++++++++++++--------------- 7018 po/uk.po | 403 ++++++++++++++-------------- 7019 po/vi.po | 403 ++++++++++++++-------------- 7020 po/zh_CN.po | 417 +++++++++++++++-------------- 7021 po/zh_TW.po | 558 ++++++++++++++++++++++++--------------- 7022 23 files changed, 7257 insertions(+), 5132 deletions(-) 7023 7024commit 16dbd865c8833462e1604a1e13f7effe55bb3fe6 7025Author: Lasse Collin <lasse.collin@tukaani.org> 7026Date: 2024-05-29 18:03:04 +0300 7027 7028 Add NEWS for 5.6.2 7029 7030 NEWS | 130 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 7031 1 file changed, 130 insertions(+) 7032 7033commit a0eeb5f9369c43508610dcf00140edb8e2be92a6 7034Author: Lasse Collin <lasse.collin@tukaani.org> 7035Date: 2024-05-29 18:03:04 +0300 7036 7037 Add NEWS for 5.4.7 7038 7039 NEWS | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 7040 1 file changed, 89 insertions(+) 7041 7042commit 9b476fb93a9672f2e70b56e3e9c7e9cfedd6c162 7043Author: Lasse Collin <lasse.collin@tukaani.org> 7044Date: 2024-05-29 18:03:04 +0300 7045 7046 Add NEWS for 5.2.13 7047 7048 NEWS | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 7049 1 file changed, 115 insertions(+) 7050 7051commit 9284f1aea31f0eb23e2ea72f7218b271e2234762 7052Author: Lasse Collin <lasse.collin@tukaani.org> 7053Date: 2024-05-29 16:33:24 +0300 7054 7055 Build: Update po/*.po files only when needed 7056 7057 When po/xz.pot doesn't exist, running "make" or "make dist" will 7058 create it. Then the .po files will be updated but only if they 7059 actually would change more than the POT-Creation-Date line. 7060 Then the .gmo files would be generated from the .po files. 7061 This is the case before and after this commit. 7062 7063 However, "make dist" and thus "make mydist" did a forced update 7064 to the files, updating them even if the only change was the 7065 POT-Creation-Date line. This had pros and cons: It made it clear 7066 that the .po file really is in sync with the recent strings in 7067 the package. On the other hand, it added noise in form of changed 7068 files in the source tree and distribution tarballs. It can be 7069 ignored with something like "diff -I'^"POT-Creation-Date: '" but 7070 it's still a minor annoyance *if* there's not enough value in 7071 having the most recent timestamp. 7072 7073 Setting DIST_DEPENDS_ON_UPDATE_PO = no means that such forced 7074 update won't happen in "make dist" anymore. However, the "mydist" 7075 target will use xz.pot-update target which is the same target that 7076 is run when xz.pot doesn't exist at all yet. Thus "mydist" will 7077 ensure that the translations are up to date, without noise from 7078 changes that would affect only the POT-Creation-Date line. 7079 7080 Note that po4a always uses msgmerge with --update, so POT-Creation-Date 7081 in the man page translations is never the only change in .po files. 7082 In that sense this commit makes the message translations behave more 7083 similarly to the man page translations. 7084 7085 Distribution tarballs will still have non-reproducible POT-Creation-Date 7086 in po/xz.pot and po4a/xz-man.pot but those are just two files. Even they 7087 could be made reproducible from a Git timestamp if desired. 7088 7089 Makefile.am | 3 ++- 7090 po/Makevars | 6 +++++- 7091 2 files changed, 7 insertions(+), 2 deletions(-) 7092 7093commit 4beba1cd62d7f8f7a6f1e899b68292d94c53b599 7094Author: Lasse Collin <lasse.collin@tukaani.org> 7095Date: 2024-05-28 21:10:33 +0300 7096 7097 po4a/update-po: Disable wrapping in .pot and .po files 7098 7099 The .po files from the Translation Project come with unwrapped 7100 strings so this matches it. 7101 7102 This may reduce the noise in diffs too. When the beginning of 7103 a paragraph had changed, the rest of the lines got rewrapped 7104 in msgsid. Now it's just one very long line that changes when 7105 a paragraph has been edited. 7106 7107 The --add-location=file option was removed as redundant. The line 7108 numbers don't exist in the .pot file due to --porefs file and thus 7109 they cannot get copied to the .po files either. 7110 7111 po4a/update-po | 15 +++++++++++---- 7112 1 file changed, 11 insertions(+), 4 deletions(-) 7113 7114commit b14c130a58a649f9a73392eeb122cb252327c569 7115Author: Lasse Collin <lasse.collin@tukaani.org> 7116Date: 2024-05-28 18:36:53 +0300 7117 7118 Update contact info in README 7119 7120 README | 12 +++++++++--- 7121 1 file changed, 9 insertions(+), 3 deletions(-) 7122 7123commit 75f5f2e014b0ee646963f36bc6a9c840fb272353 7124Author: Lasse Collin <lasse.collin@tukaani.org> 7125Date: 2024-05-28 13:25:07 +0300 7126 7127 Translations: Use --package-name=xz-man with po4a 7128 7129 This is to match reality. See the added comment. 7130 7131 po4a/update-po | 9 ++++++++- 7132 1 file changed, 8 insertions(+), 1 deletion(-) 7133 7134commit eb217d016cfbbba1babc19a61095b3ea25898af6 7135Author: Lasse Collin <lasse.collin@tukaani.org> 7136Date: 2024-05-28 13:03:40 +0300 7137 7138 Translations: Omit --package-name from po/Makevars 7139 7140 This is closer to the reality in the po/*.po files. 7141 7142 po/Makevars | 3 +-- 7143 1 file changed, 1 insertion(+), 2 deletions(-) 7144 7145commit d28a4b2520adeeaa1b9e921bf42c7c1f36552c06 7146Author: Lasse Collin <lasse.collin@tukaani.org> 7147Date: 2024-05-27 17:45:51 +0300 7148 7149 license-check.sh: Use '--' with slightly untrusted filenames 7150 7151 Names from git ls-files should be safe but if one runs it on 7152 a tree without the .git dir and there are extra files, it's 7153 safer to have the end of arguments marked with '--'. 7154 7155 build-aux/license-check.sh | 6 +++--- 7156 1 file changed, 3 insertions(+), 3 deletions(-) 7157 7158commit fda0ec862a34094cf23fc25d0e0a95858c3a3ab5 7159Author: Lasse Collin <lasse.collin@tukaani.org> 7160Date: 2024-05-27 17:41:37 +0300 7161 7162 license-check.sh: Use xargs -0 instead of -d 7163 7164 Neither are in POSIX but -0 is much more portable in practice. 7165 7166 Despite the old comment, the grep usage should be portable already. 7167 7168 build-aux/license-check.sh | 11 ++++++----- 7169 1 file changed, 6 insertions(+), 5 deletions(-) 7170 7171commit 9114267038deaecf4832a5cacb5acbe6591ac839 7172Author: Lasse Collin <lasse.collin@tukaani.org> 7173Date: 2024-05-28 01:17:45 +0300 7174 7175 Translations: Omit man page line numbers from .pot and .po files 7176 7177 po4a/update-po | 5 +++++ 7178 1 file changed, 5 insertions(+) 7179 7180commit 093490b58271e9424ce38a7b1b38bcf61b9c86c6 7181Author: Lasse Collin <lasse.collin@tukaani.org> 7182Date: 2024-05-28 01:06:30 +0300 7183 7184 Translations: Use the xgettext option --add-location=file 7185 7186 po/Makevars | 3 ++- 7187 1 file changed, 2 insertions(+), 1 deletion(-) 7188 7189commit fccebe2b4fd513488fc920e4dac32562ed3c7637 7190Author: Lasse Collin <lasse.collin@tukaani.org> 7191Date: 2024-05-28 00:43:53 +0300 7192 7193 Translations: Use the msgmerge option --add-location=file 7194 7195 This way the PO file diffs are less noisy but the locations of the 7196 strings are still present at file level, just without line numbers. 7197 7198 The option is available since gettext 0.19 (2014). 7199 configure.ac requires 0.19.6. 7200 7201 po/Makevars | 2 +- 7202 1 file changed, 1 insertion(+), 1 deletion(-) 7203 7204commit f361d9ae85707a87eb28db400eb7229cec103d58 7205Author: Lasse Collin <lasse.collin@tukaani.org> 7206Date: 2024-05-27 12:22:08 +0300 7207 7208 Build: Use $(SHELL) instead of sh to run scripts in Makefile.am 7209 7210 Makefile.am | 14 +++++++------- 7211 1 file changed, 7 insertions(+), 7 deletions(-) 7212 7213commit a26dece34793a09aac2476f954d162d03e9cf62b 7214Author: Lasse Collin <lasse.collin@tukaani.org> 7215Date: 2024-05-23 17:25:13 +0300 7216 7217 Translations: Change the home page URLs in man page translations 7218 7219 Since the source strings have changed, these would get marked as 7220 fuzzy and the original string would be used instead. The original 7221 and translated strings are identical in this case so it wouldn't 7222 matter. But patching the translations helps still because then 7223 po4a will show the correct translation percentage. 7224 7225 po4a/de.po | 8 ++++---- 7226 po4a/fr.po | 4 ++-- 7227 po4a/ko.po | 4 ++-- 7228 po4a/pt_BR.po | 4 ++-- 7229 po4a/ro.po | 8 ++++---- 7230 po4a/uk.po | 8 ++++---- 7231 6 files changed, 18 insertions(+), 18 deletions(-) 7232 7233commit 24387c234b4eed1ef9a7eaa107391740b4095568 7234Author: Lasse Collin <lasse.collin@tukaani.org> 7235Date: 2024-05-23 15:15:18 +0300 7236 7237 CMake: Add manual support for 32-bit x86 assembly files 7238 7239 One has to pass -DENABLE_X86_ASM=ON to cmake to enable the 7240 CRC assembly code. Autodetection isn't done. Looking at 7241 CMAKE_SYSTEM_PROCESSOR might not work as it comes from uname 7242 unless cross-compilation is done using a CMake toolchain file. 7243 7244 On top of this, if the code is run on modern processors that support 7245 the CLMUL instruction, then the C code should be faster (but then 7246 one should also be using a x86-64 build if possible). 7247 7248 CMakeLists.txt | 34 +++++++++++++++++++++++++++++++--- 7249 1 file changed, 31 insertions(+), 3 deletions(-) 7250 7251commit 0fb3c9c3f684f5a25bd425ed079a20a79f0c969d 7252Author: Lasse Collin <lasse.collin@tukaani.org> 7253Date: 2024-05-23 14:26:45 +0300 7254 7255 CMake: Rename USE_DOXYGEN to ENABLE_DOXYGEN 7256 7257 It's more consistent with the other option() uses. 7258 7259 CMakeLists.txt | 4 ++-- 7260 1 file changed, 2 insertions(+), 2 deletions(-) 7261 7262commit 6bbec3bda02bf87d24fa095074456e723589921f 7263Author: Lasse Collin <lasse.collin@tukaani.org> 7264Date: 2024-05-22 15:21:53 +0300 7265 7266 Mention license-check.sh in COPYING 7267 7268 COPYING | 6 ++++++ 7269 1 file changed, 6 insertions(+) 7270 7271commit 62733592a1cc6f0b41f46ef52e06d1a6fe1ff38a 7272Author: Lasse Collin <lasse.collin@tukaani.org> 7273Date: 2024-05-22 15:21:53 +0300 7274 7275 Use more confident language in COPYING 7276 7277 COPYING | 8 ++++---- 7278 1 file changed, 4 insertions(+), 4 deletions(-) 7279 7280commit a119a4209e8827e1d7c2cfd30cb9f5a9b76f9dff 7281Author: Lasse Collin <lasse.collin@tukaani.org> 7282Date: 2024-05-22 15:21:53 +0300 7283 7284 Build: Run license-check.sh in "mydist" and "dist-hook" 7285 7286 In mydist the point is to check using the file list from the Git 7287 repository. In dist-hook it is to check that the TARBALL_IGNORE 7288 patterns work when the .git dir or the "git" command aren't available. 7289 7290 Refuse to create a distribution tarball if license issues are found. 7291 7292 Makefile.am | 2 ++ 7293 1 file changed, 2 insertions(+) 7294 7295commit f3434ecfcb45154508752986f4fc670b8f0555dc 7296Author: Lasse Collin <lasse.collin@tukaani.org> 7297Date: 2024-05-22 15:21:53 +0300 7298 7299 Add build-aux/license-check.sh 7300 7301 This helps in spotting files that lack SPDX license identifier 7302 and which haven't been explicitly white listed either. The script 7303 requires the .git directory to be present as only the files that 7304 are in the Git repository are checked. 7305 7306 XZ Utils isn't FSFE REUSE compliant for now. 7307 7308 Makefile.am | 1 + 7309 build-aux/license-check.sh | 174 +++++++++++++++++++++++++++++++++++++++++++++ 7310 2 files changed, 175 insertions(+) 7311 7312commit 9ae2ebc1e504a1814b0788de95fb5c58c0328dde 7313Author: Lasse Collin <lasse.collin@tukaani.org> 7314Date: 2024-04-29 17:16:38 +0300 7315 7316 Add SPDX license identifiers to files under tests/ossfuzz 7317 7318 tests/ossfuzz/Makefile | 2 ++ 7319 tests/ossfuzz/config/fuzz_decode_alone.options | 2 ++ 7320 tests/ossfuzz/config/fuzz_decode_stream.options | 2 ++ 7321 tests/ossfuzz/config/fuzz_encode_stream.options | 2 ++ 7322 tests/ossfuzz/config/fuzz_lzma.dict | 2 ++ 7323 tests/ossfuzz/config/fuzz_xz.dict | 2 ++ 7324 6 files changed, 12 insertions(+) 7325 7326commit 9000d70eb9815bd7f43ffddc1c3316c507aa0e05 7327Author: Lasse Collin <lasse.collin@tukaani.org> 7328Date: 2024-04-29 17:16:06 +0300 7329 7330 Add SPDX license identifier to .codespellrc 7331 7332 .codespellrc | 2 ++ 7333 1 file changed, 2 insertions(+) 7334 7335commit 903c16fcfa5bfad0cdb2a7383d941243bcb12e76 7336Author: Lasse Collin <lasse.collin@tukaani.org> 7337Date: 2024-05-22 15:12:09 +0300 7338 7339 Move entries po4a/.gitignore to the top level .gitignore 7340 7341 The po4a directory is in EXTRA_DIST and thus all files there 7342 are included in the package. .gitignore doesn't belong in the 7343 package so keep that file out of the po4a directory. 7344 7345 .gitignore | 4 ++++ 7346 po4a/.gitignore | 3 --- 7347 2 files changed, 4 insertions(+), 3 deletions(-) 7348 7349commit 56f1d5ed68e84ba5dfa328ea2291b8f46c995125 7350Author: Lasse Collin <lasse.collin@tukaani.org> 7351Date: 2024-05-20 16:55:00 +0300 7352 7353 Tests: Make the config.h grep patterns Meson compatible 7354 7355 Now the test scripts detect both 7356 7357 #define HAVE_DECODER_ARM 7358 #define HAVE_DECODER_ARM 1 7359 7360 as support for the ARM filter without confusing it with these: 7361 7362 #define HAVE_DECODER_ARM64 7363 #define HAVE_DECODER_ARM64 1 7364 7365 Previously only the ones ending with " 1" were accepted for 7366 the macros where this kind of confusion was possible. 7367 7368 This should help with Meson support because Meson's built-in 7369 features produce config.h entries that are either 7370 7371 #define FOO 1 7372 #define FOO 0 7373 7374 or: 7375 7376 #define FOO 7377 #undef FOO 7378 7379 The former method has a benefit that one can use "#if FOO" and -Wundef 7380 will catch if a #define is missing (for example, it helps catching 7381 typos). But XZ Utils has to use the latter since it has been 7382 convenient with Autoconf's default behavior.[*] While it's easy to 7383 emulate the Autoconf style (#define FOO 1 vs. no #define at all) 7384 in Meson, it results in clumsy code. Thus it's better to change 7385 the few places in the tests where this difference matters. 7386 7387 [*] While most checks in Autoconf default to the second style above, 7388 a few things use the first style (like AC_CHECK_DECLS). The mix 7389 of both styles is the most confusing as one has to remember which 7390 macro needs #ifdef and which #if. Currently HAVE_VISIBILITY is 7391 only such config.h entry that is 1 or 0. It comes unmodified 7392 from Gnulib's visibility.m4. 7393 7394 tests/test_compress.sh | 4 ++-- 7395 tests/test_files.sh | 2 +- 7396 2 files changed, 3 insertions(+), 3 deletions(-) 7397 7398commit 9d997d6f9d4f042412e45c7b7a23a14ad2e4f9aa 7399Author: Lasse Collin <lasse.collin@tukaani.org> 7400Date: 2024-05-20 16:55:00 +0300 7401 7402 CMake: Add comments 7403 7404 tests/tests.cmake | 2 ++ 7405 1 file changed, 2 insertions(+) 7406 7407commit d35368b33e54bad2f566df99fac29ffea38e34de 7408Author: Lasse Collin <lasse.collin@tukaani.org> 7409Date: 2024-05-20 16:55:00 +0300 7410 7411 CMake: Remove the note that some tests aren't run 7412 7413 They are now in the common build configurations. 7414 7415 CMakeLists.txt | 2 -- 7416 1 file changed, 2 deletions(-) 7417 7418commit dc232d584619b2819a9c52d6ad5d8b5d56b392ba 7419Author: Lasse Collin <lasse.collin@tukaani.org> 7420Date: 2024-05-20 16:55:00 +0300 7421 7422 CMake: Add support for test_files.sh 7423 7424 tests/tests.cmake | 20 ++++++++++++++++++++ 7425 1 file changed, 20 insertions(+) 7426 7427commit a7e9230af9d1f87f474fe38886eb977d4149dc9b 7428Author: Lasse Collin <lasse.collin@tukaani.org> 7429Date: 2024-05-20 16:55:00 +0300 7430 7431 Tests: Make test_files.sh more flexible 7432 7433 Add a new optional argument to specify the directory of the xz and 7434 xzdec executables. 7435 7436 If ../config.h doesn't exist, assume that all encoders and decoders 7437 are available. 7438 7439 tests/test_files.sh | 18 +++++++++++++----- 7440 1 file changed, 13 insertions(+), 5 deletions(-) 7441 7442commit b40e6efbb48d740b9b5b303e59e344801cbb5bd8 7443Author: Lasse Collin <lasse.collin@tukaani.org> 7444Date: 2024-05-20 16:55:00 +0300 7445 7446 CMake: Add support for test_compress.sh tests 7447 7448 tests/tests.cmake | 26 ++++++++++++++++++++++++++ 7449 1 file changed, 26 insertions(+) 7450 7451commit ac3222d2cb1ff3a15eb6d58f9ea9bc78e8bc3bb2 7452Author: Lasse Collin <lasse.collin@tukaani.org> 7453Date: 2024-05-20 16:55:00 +0300 7454 7455 Tests: Make test_compress.sh more flexible 7456 7457 Add a new optional second argument: directory of the xz and xzdec 7458 executables. This is need with the CMake build where the binaries 7459 end up in the top-level build directory. 7460 7461 If ../config.h doesn't exist, assume that all encoders and decoders 7462 are available. This will make this script usable from CMake in the 7463 most common build configuration. 7464 7465 NOTE: Since the existence of ../config.h is checked, the working 7466 directory of the test script must be a subdir in the build tree! 7467 Otherwise ../config.h would look outside the build tree. 7468 7469 Use the default check type instead of forcing CRC32 or CRC64. 7470 Now the script doesn't need to check if CRC64 is available. 7471 7472 tests/test_compress.sh | 41 +++++++++++++++++++++++++++++------------ 7473 1 file changed, 29 insertions(+), 12 deletions(-) 7474 7475commit 006040b29c83104403621e950ada0c8956c56b3d 7476Author: Lasse Collin <lasse.collin@tukaani.org> 7477Date: 2024-05-20 16:55:00 +0300 7478 7479 CMake: Prepare to support the test_*.sh tests 7480 7481 This is a bit hacky since the scripts grep config.h to know which 7482 features were built but the CMake build doesn't create config.h. 7483 So instead those test scripts will be run only when all relevant 7484 features have been enabled. 7485 7486 tests/tests.cmake | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 7487 1 file changed, 49 insertions(+) 7488 7489commit 6167607a6ea72fb74eefb943c4566e3cab528cd2 7490Author: Lasse Collin <lasse.collin@tukaani.org> 7491Date: 2024-05-20 16:55:00 +0300 7492 7493 Tests: test_suffix.sh: Add a comment 7494 7495 tests/test_suffix.sh | 3 +++ 7496 1 file changed, 3 insertions(+) 7497 7498commit 4e9023857d287f624562156b60dc23d2b64c0f10 7499Author: Lasse Collin <lasse.collin@tukaani.org> 7500Date: 2024-05-18 00:34:07 +0300 7501 7502 Fix typos 7503 7504 Thanks to xx on #tukaani. 7505 7506 src/common/mythread.h | 2 +- 7507 src/common/tuklib_integer.h | 2 +- 7508 src/liblzma/api/lzma/base.h | 2 +- 7509 src/liblzma/common/filter_buffer_decoder.c | 2 +- 7510 src/liblzma/common/filter_common.c | 2 +- 7511 src/scripts/xzgrep.in | 2 +- 7512 6 files changed, 6 insertions(+), 6 deletions(-) 7513 7514commit b14d08fbbc254485ace9ccfe7908674f608a62ae 7515Author: Lasse Collin <lasse.collin@tukaani.org> 7516Date: 2024-05-18 00:23:52 +0300 7517 7518 liblzma: Fix white space 7519 7520 Thanks to xx on #tukaani. 7521 7522 src/liblzma/simple/simple_coder.h | 8 ++++---- 7523 1 file changed, 4 insertions(+), 4 deletions(-) 7524 7525commit 9f1a6d6f9a258886933a22239a5b81af34b28199 7526Author: Lasse Collin <lasse.collin@tukaani.org> 7527Date: 2024-05-15 23:14:17 +0300 7528 7529 Build: Temporarily disable CRC CLMUL to silence OSS Fuzz 7530 7531 The code makes aligned 16-byte reads which may read up to 15 bytes 7532 before the beginning or past the end of the buffer if the buffer 7533 is misaligned. The unneeded bytes are then ignored. It cannot cross 7534 page boundaries and thus cannot cause access violations. 7535 7536 This inherently trips address sanitizer which was already disabled 7537 with __attribute__((__no_sanitize_address__)). However, it also 7538 trips memory sanitizer if the extra bytes are uninitialized because 7539 memory sanitizer doesn't see that those bytes then get ignored by 7540 byte shuffling in the xmm registers. 7541 7542 The plan is to change the code so that all sanitizers pass but it's 7543 not finished yet (performance shouldn't get worse) so as a temporary 7544 measure to keep OSS Fuzz happy, the CLMUL CRC is now disabled even 7545 though I think think the code is fine to use (and easy enough to review 7546 the memory accesses in it too). 7547 7548 configure.ac | 4 +++- 7549 1 file changed, 3 insertions(+), 1 deletion(-) 7550 7551commit 142e670a413a7bce1a2647f1cf1f33f8ee2dbe88 7552Author: Lasse Collin <lasse.collin@tukaani.org> 7553Date: 2024-05-13 17:15:04 +0300 7554 7555 xz: Document the static function get_chains_memusage() 7556 7557 src/xz/coder.c | 14 ++++++++++++-- 7558 1 file changed, 12 insertions(+), 2 deletions(-) 7559 7560commit 78e984399a64bfee5d11e7308e0bdbc1006db2ca 7561Author: Lasse Collin <lasse.collin@tukaani.org> 7562Date: 2024-05-13 17:07:22 +0300 7563 7564 xz: Rename filters_memusage_max() to get_chains_memusage() 7565 7566 src/xz/coder.c | 14 ++++++-------- 7567 1 file changed, 6 insertions(+), 8 deletions(-) 7568 7569commit 54c3db0a83d3e67d89aba92a0957f2dce9b111a7 7570Author: Lasse Collin <lasse.collin@tukaani.org> 7571Date: 2024-05-13 17:04:05 +0300 7572 7573 xz: Rename filter_memusages to chains_memusages 7574 7575 src/xz/coder.c | 6 +++--- 7576 1 file changed, 3 insertions(+), 3 deletions(-) 7577 7578commit d9e1ae79ec90d6a7eafeaceaf0ece4f0c83d4417 7579Author: Lasse Collin <lasse.collin@tukaani.org> 7580Date: 2024-05-12 22:26:30 +0300 7581 7582 xz: Simplify the memory usage scaling code 7583 7584 This is closer to what it was before the --filtersX support was added, 7585 just extended to support for scaling all filter chains. The method 7586 before this commit was an extended version of the original too but 7587 it was done in a more complex way for no clear reason. In case of 7588 an error, the complex version printed fewer informative messages 7589 (a good thing) but it's not a sigificant benefit. 7590 7591 In the limit is too low even for single-threaded mode, the required 7592 amount of memory is now reported like in 5.4.x instead of like in 7593 5.5.1alpha - 5.6.1 which showed the original non-scaled usage. It 7594 had been a FIXME in the old code but it's not clear what message 7595 makes the most sense. 7596 7597 Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a 7598 7599 src/xz/coder.c | 163 ++++++++++++++++++++------------------------------------- 7600 1 file changed, 57 insertions(+), 106 deletions(-) 7601 7602commit 0ee56983d198b776878432703de664049b1be32e 7603Author: Lasse Collin <lasse.collin@tukaani.org> 7604Date: 2024-05-13 12:14:00 +0300 7605 7606 xz: Edit comments 7607 7608 src/xz/coder.h | 6 ++---- 7609 1 file changed, 2 insertions(+), 4 deletions(-) 7610 7611commit ec82a49c3553f7206104582dbfb8b64fa433b491 7612Author: Lasse Collin <lasse.collin@tukaani.org> 7613Date: 2024-05-13 12:03:51 +0300 7614 7615 xz: Rename chain_idx to chain_num 7616 7617 src/xz/coder.c | 6 +++--- 7618 1 file changed, 3 insertions(+), 3 deletions(-) 7619 7620commit a731a6993c34bbbd55abaf9c166718682b1da24f 7621Author: Lasse Collin <lasse.collin@tukaani.org> 7622Date: 2024-05-12 22:29:11 +0300 7623 7624 xz: Edit coding style 7625 7626 src/xz/coder.c | 2 +- 7627 1 file changed, 1 insertion(+), 1 deletion(-) 7628 7629commit 32eb176b89243fce3112347fe43a8ad14a9fd2be 7630Author: Lasse Collin <lasse.collin@tukaani.org> 7631Date: 2024-05-12 22:16:05 +0300 7632 7633 xz: Edit comments 7634 7635 Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a 7636 7637 src/xz/coder.c | 8 ++------ 7638 1 file changed, 2 insertions(+), 6 deletions(-) 7639 7640commit b90339f4daa510d2b1b8c550f855a99667f1d004 7641Author: Lasse Collin <lasse.collin@tukaani.org> 7642Date: 2024-05-12 21:57:49 +0300 7643 7644 xz: Fix grammar in a comment 7645 7646 Fixes: cb3111e3ed84152912b5138d690c8d9f00c6ef02 7647 7648 src/xz/coder.c | 2 +- 7649 1 file changed, 1 insertion(+), 1 deletion(-) 7650 7651commit 4c0bdaf13d651b22ba13bd93f8379724d6ccdc13 7652Author: Lasse Collin <lasse.collin@tukaani.org> 7653Date: 2024-05-12 21:46:56 +0300 7654 7655 xz: Rename filter_memusages to encoder_memusages 7656 7657 src/xz/coder.c | 12 ++++++------ 7658 1 file changed, 6 insertions(+), 6 deletions(-) 7659 7660commit b54aa023e0ec291b06e976e5f094ab0549e7b09b 7661Author: Lasse Collin <lasse.collin@tukaani.org> 7662Date: 2024-05-12 21:42:05 +0300 7663 7664 xz: Edit coding style 7665 7666 src/xz/coder.c | 8 ++++---- 7667 1 file changed, 4 insertions(+), 4 deletions(-) 7668 7669commit 49f67d3d3f42b640a7dfc4ca04c8934f658e10ce 7670Author: Lasse Collin <lasse.collin@tukaani.org> 7671Date: 2024-05-12 21:31:02 +0300 7672 7673 xz: Rename filters_index to chain_num 7674 7675 The reason is the same as in bd0782c1f13e52cd0fd8415208e30e47004a4c68. 7676 7677 src/xz/args.c | 8 ++++---- 7678 src/xz/coder.c | 8 ++++---- 7679 src/xz/coder.h | 2 +- 7680 3 files changed, 9 insertions(+), 9 deletions(-) 7681 7682commit ff9e8b3d069ecfa52ec43dcdb198542d1692a492 7683Author: Lasse Collin <lasse.collin@tukaani.org> 7684Date: 2024-05-12 21:22:43 +0300 7685 7686 xz: Replace a few uint32_t with "unsigned" to reduce the number of casts 7687 7688 These hold only tiny values. 7689 7690 src/xz/args.c | 2 +- 7691 src/xz/coder.c | 17 ++++++++--------- 7692 src/xz/coder.h | 2 +- 7693 3 files changed, 10 insertions(+), 11 deletions(-) 7694 7695commit b5e6c1113b1ba02c282bd9163eccdb521c937a78 7696Author: Lasse Collin <lasse.collin@tukaani.org> 7697Date: 2024-05-12 21:10:45 +0300 7698 7699 xz: Rename filters_used_mask to chains_used_mask 7700 7701 The reason is the same as in bd0782c1f13e52cd0fd8415208e30e47004a4c68. 7702 7703 src/xz/coder.c | 30 +++++++++++++++--------------- 7704 1 file changed, 15 insertions(+), 15 deletions(-) 7705 7706commit 32500dfaadae2ea36fda2e17b49ae7d9ac1acf52 7707Author: Lasse Collin <lasse.collin@tukaani.org> 7708Date: 2024-05-12 17:14:43 +0300 7709 7710 xz: Move the setting of "check" in coder_set_compression_settings() 7711 7712 It's more logical to do it in the beginning instead of in the middle 7713 of the filter chain handling. 7714 7715 Fixes: d6af7f347077b22403133239592e478931307759 7716 7717 src/xz/coder.c | 18 +++++++++--------- 7718 1 file changed, 9 insertions(+), 9 deletions(-) 7719 7720commit ad146b1f42bbb678175a503a45ce525e779f9b8b 7721Author: Lasse Collin <lasse.collin@tukaani.org> 7722Date: 2024-05-12 17:09:17 +0300 7723 7724 xz: Rename "filters" to "chains" 7725 7726 The convention is that 7727 7728 lzma_filter filters[LZMA_FILTERS_MAX + 1]; 7729 7730 contains the filters of a single filter chain. 7731 It was so here as well before the commit 7732 d6af7f347077b22403133239592e478931307759. 7733 It changes "filters" to a ten-element array of filter chains. 7734 It's clearer to call this array-of-arrays "chains". 7735 7736 This also renames "filter_idx" to "chain_idx" which is used 7737 as an index as in chains[chain_idx]. 7738 7739 src/xz/coder.c | 68 +++++++++++++++++++++++++++++----------------------------- 7740 1 file changed, 34 insertions(+), 34 deletions(-) 7741 7742commit 5a4ae4e4d0105404184e9a82ee08f94e1b7783e0 7743Author: Lasse Collin <lasse.collin@tukaani.org> 7744Date: 2024-05-12 16:56:15 +0300 7745 7746 xz: Clean up a comment 7747 7748 src/xz/coder.c | 9 +++------ 7749 1 file changed, 3 insertions(+), 6 deletions(-) 7750 7751commit 2de80494ed9a4dc7db395a32a5efb770ce769804 7752Author: Lasse Collin <lasse.collin@tukaani.org> 7753Date: 2024-05-12 16:52:09 +0300 7754 7755 xz: Add clarifying assertions 7756 7757 src/xz/coder.c | 4 ++++ 7758 1 file changed, 4 insertions(+) 7759 7760commit 1eaad004bf7748976324672db028e34f42802e61 7761Author: Lasse Collin <lasse.collin@tukaani.org> 7762Date: 2024-05-10 20:23:33 +0300 7763 7764 xz: Add a clarifying assertion 7765 7766 Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a 7767 7768 src/xz/coder.c | 1 + 7769 1 file changed, 1 insertion(+) 7770 7771commit 605094329b986244833c967c04963cacc41a868d 7772Author: Lasse Collin <lasse.collin@tukaani.org> 7773Date: 2024-05-12 16:47:17 +0300 7774 7775 xz: Clarify a comment 7776 7777 src/xz/coder.c | 4 +++- 7778 1 file changed, 3 insertions(+), 1 deletion(-) 7779 7780commit 8fac2577f2dbb9491afd8500f60d004c9071df3b 7781Author: Lasse Collin <lasse.collin@tukaani.org> 7782Date: 2024-05-12 16:28:25 +0300 7783 7784 xz: Use the info collected in parse_block_list() 7785 7786 This is slightly simpler and it avoids looping through 7787 the opt_block_list array. 7788 7789 src/xz/coder.c | 95 ++++++++++++++++++++++++---------------------------------- 7790 1 file changed, 39 insertions(+), 56 deletions(-) 7791 7792commit 81d350dab864b985b740742772f3b132d4c52914 7793Author: Lasse Collin <lasse.collin@tukaani.org> 7794Date: 2024-05-12 15:48:45 +0300 7795 7796 xz: Remember the filter chains and the largest Block in parse_block_list() 7797 7798 src/xz/args.c | 18 ++++++++++++++++++ 7799 src/xz/coder.c | 2 ++ 7800 src/xz/coder.h | 13 +++++++++++++ 7801 3 files changed, 33 insertions(+) 7802 7803commit 46ab56968f7dfdac187710a1223659d832fa1565 7804Author: Lasse Collin <lasse.collin@tukaani.org> 7805Date: 2024-05-12 15:38:48 +0300 7806 7807 xz: Update a comment and initialization of filters_used_mask 7808 7809 src/xz/coder.c | 16 ++++++++-------- 7810 1 file changed, 8 insertions(+), 8 deletions(-) 7811 7812commit e89293a0baeb8663707c6b4a74fbb310ec698a8f 7813Author: Lasse Collin <lasse.collin@tukaani.org> 7814Date: 2024-05-12 15:08:10 +0300 7815 7816 xz: parse_block_list: Edit integer type casting 7817 7818 src/xz/args.c | 5 ++--- 7819 1 file changed, 2 insertions(+), 3 deletions(-) 7820 7821commit 87011e40c168255cd2edea129ee68c901770603b 7822Author: Lasse Collin <lasse.collin@tukaani.org> 7823Date: 2024-05-12 14:51:37 +0300 7824 7825 xz: Make filter_memusages a local variable 7826 7827 src/xz/coder.c | 35 +++++++++++++++++++++-------------- 7828 1 file changed, 21 insertions(+), 14 deletions(-) 7829 7830commit 347b412a9374e0456bef9da0d7d79174c0b6f1a5 7831Author: Lasse Collin <lasse.collin@tukaani.org> 7832Date: 2024-05-10 20:33:08 +0300 7833 7834 xz: Remove unused code and simplify 7835 7836 opt_mode == MODE_COMPRESS isn't possible when HAVE_ENCODERS isn't 7837 defined. Thus, when *encoding*, the message about *decoder* memory 7838 usage is possible to show only when both encoder and decoder have 7839 been built. 7840 7841 Since the message is shown only at V_DEBUG, skip the memusage 7842 calculation if verbosity level isn't high enough. 7843 7844 Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a 7845 7846 src/xz/coder.c | 16 ++++------------ 7847 1 file changed, 4 insertions(+), 12 deletions(-) 7848 7849commit 31358c057c9de9d6aba96bae112b2d17942de7cb 7850Author: Lasse Collin <lasse.collin@tukaani.org> 7851Date: 2024-05-10 20:22:58 +0300 7852 7853 xz: Fix integer type from uint64_t to uint32_t 7854 7855 lzma_options_lzma.dict_size is uint32_t so use it here too. 7856 7857 Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a 7858 7859 src/xz/coder.c | 2 +- 7860 1 file changed, 1 insertion(+), 1 deletion(-) 7861 7862commit 3f71e0f3a118e1012526f94fd640a626d30cb599 7863Author: Lasse Collin <lasse.collin@tukaani.org> 7864Date: 2024-05-08 21:40:07 +0300 7865 7866 debug/translation.bash: Remove an outdated test command 7867 7868 Since 5.3.5beta, "xz --lzma2=mf=bt4,nice=2" works even though bt4 needs 7869 at least nice=4. It is rounded up internally by liblzma when needed. 7870 7871 Fixes: 5cd9f0df78cc4f8a7807bf6104adea13034fbb45 7872 7873 debug/translation.bash | 1 - 7874 1 file changed, 1 deletion(-) 7875 7876commit b05a516830095a0e1937aeb31c937fb0400408b6 7877Author: Lasse Collin <lasse.collin@tukaani.org> 7878Date: 2024-05-07 20:41:28 +0300 7879 7880 Fix the date of NEWS for 5.4.5 7881 7882 NEWS | 2 +- 7883 1 file changed, 1 insertion(+), 1 deletion(-) 7884 7885commit 6d336aeb97b69c496ddc626af403f6f21c753658 7886Author: Lasse Collin <lasse.collin@tukaani.org> 7887Date: 2024-05-07 16:21:15 +0300 7888 7889 Build: Update visibility.m4 from Gnulib 7890 7891 This fixes the syntax of the "serial" line and renames 7892 a temporary variable. 7893 7894 m4/visibility.m4 | 13 +++++++------ 7895 1 file changed, 7 insertions(+), 6 deletions(-) 7896 7897commit ab51e8ee610e2a893906859848f93d5cb0d5ba83 7898Author: Lasse Collin <lasse.collin@tukaani.org> 7899Date: 2024-05-07 15:05:21 +0300 7900 7901 po4a/update-po: Delete the *.po.authors files 7902 7903 These are temporary files that are needed only when running po4a. 7904 The top-level Makefile.am puts the whole po4a directory into 7905 distribution tarball (it's simpler) so deleting these temporary 7906 files is needed to prevent them from getting into tarballs. 7907 7908 po4a/update-po | 4 ++++ 7909 1 file changed, 4 insertions(+) 7910 7911commit e4780244a17420cc95d5498cd6e02ad10eac6e5f 7912Author: Lasse Collin <lasse.collin@tukaani.org> 7913Date: 2024-05-07 13:12:17 +0300 7914 7915 xz: Edit comments and coding style 7916 7917 src/xz/coder.c | 25 ++++++++++++------------- 7918 1 file changed, 12 insertions(+), 13 deletions(-) 7919 7920commit fe4d8b0c80eaeca3381be302eeb89aba871a7e7c 7921Author: Lasse Collin <lasse.collin@tukaani.org> 7922Date: 2024-05-06 23:08:22 +0300 7923 7924 xz: Omit an incorrect comment 7925 7926 It likely was a leftover from a development version of the code. 7927 7928 Fixes: 183819bfd9efac8c184d9bf123325719b7eee30f 7929 7930 src/xz/coder.c | 6 +----- 7931 1 file changed, 1 insertion(+), 5 deletions(-) 7932 7933commit 9bef5b8d17dd5e009d6a6b2becc2dc535da53937 7934Author: Lasse Collin <lasse.collin@tukaani.org> 7935Date: 2024-05-06 23:04:31 +0300 7936 7937 xz: Add braces to a for-statement and to an if-statement 7938 7939 No functional changes. 7940 7941 Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a 7942 Fixes: 479fd58d60622331fcbe48fddf756927b9f80d9a 7943 7944 src/xz/coder.c | 6 ++++-- 7945 1 file changed, 4 insertions(+), 2 deletions(-) 7946 7947commit de06b9f0c0a3f72569829ecadbc9c0a3ef099f57 7948Author: Lasse Collin <lasse.collin@tukaani.org> 7949Date: 2024-05-06 23:00:09 +0300 7950 7951 liblzma: Omit an unneeded array from the x86 filter 7952 7953 Fixes: 6aa2a6deeba04808a0fe4461396e7fb70277f3d4 7954 7955 src/liblzma/simple/x86.c | 5 +---- 7956 1 file changed, 1 insertion(+), 4 deletions(-) 7957 7958commit 7da488cb933fdf51cfc14cb5810beb0766224380 7959Author: Lasse Collin <lasse.collin@tukaani.org> 7960Date: 2024-05-06 22:56:31 +0300 7961 7962 CMake: Add test_suffix.sh to the tests 7963 7964 tests/tests.cmake | 13 +++++++++++++ 7965 1 file changed, 13 insertions(+) 7966 7967commit a805594ed0b4cbf7b81aa28ff46a8ab3c83c6876 7968Author: Lasse Collin <lasse.collin@tukaani.org> 7969Date: 2024-05-06 22:55:54 +0300 7970 7971 Test: Add CMake support to test_suffix.sh 7972 7973 It needs to find the xz executable from a different directory 7974 and work without config.h. 7975 7976 tests/test_suffix.sh | 12 +++++++----- 7977 1 file changed, 7 insertions(+), 5 deletions(-) 7978 7979commit 50e19489387774bab3c4a988397d0d9c7a142a46 7980Author: Lasse Collin <lasse.collin@tukaani.org> 7981Date: 2024-05-06 20:45:34 +0300 7982 7983 Update INSTALL about MINIX 3 7984 7985 The latest stable is 3.3.0 and it's from 2014. 7986 Don't mention the older versions in INSTALL. 7987 3.3.0 ships with Clang already. 7988 7989 Testing with 3.4.0beta6 shows that tuklib_physmem 7990 works too so omit comments about that from INSTALL. 7991 Visibility warnigns weren't a problem either. 7992 7993 Thus it's enough to mention the need for --disable-threads 7994 as configure doesn't autodetect the lack of pthreads. 7995 7996 INSTALL | 20 +++++++------------- 7997 1 file changed, 7 insertions(+), 13 deletions(-) 7998 7999commit 68d18aea1422a2b86b98b71d0b019233d84e01b0 8000Author: Lasse Collin <lasse.collin@tukaani.org> 8001Date: 2024-05-02 23:00:16 +0300 8002 8003 Windows: Remove the "doc/api" line from README-Windows.txt 8004 8005 Fixes: 252aa1d67bc015eeba462803ab72edeb7744d864 8006 8007 windows/README-Windows.txt | 2 -- 8008 1 file changed, 2 deletions(-) 8009 8010commit 8ede961374613aa302a13571d662cfaea1cf91f7 8011Author: Lasse Collin <lasse.collin@tukaani.org> 8012Date: 2024-05-02 22:59:04 +0300 8013 8014 Build: Don't copy doc/api from source tree to distribution tarball 8015 8016 It was copied if it existed. This was intentional when autogen.sh 8017 still built liblzma API docs with Doxygen. 8018 8019 Fixes: d3a77ebc04bf1db8d52de2d9b0f07877bc4fd139 8020 8021 Makefile.am | 5 ----- 8022 1 file changed, 5 deletions(-) 8023 8024commit 9a6761aa35ed84d30bd2fda2333a4fdf3f46ecdc 8025Author: Sam James <sam@gentoo.org> 8026Date: 2024-05-02 13:26:40 +0100 8027 8028 ci: add SPDX headers 8029 8030 I've checked over each of these and they're straightforward applications 8031 of the relevant Github Actions. 8032 8033 .github/workflows/freebsd.yml | 2 ++ 8034 .github/workflows/netbsd.yml | 2 ++ 8035 .github/workflows/openbsd.yml | 2 ++ 8036 3 files changed, 6 insertions(+) 8037 8038commit 81efe6119f86e3274e512c9eca5ec22b2196c2b3 8039Author: Yaroslav Halchenko <debian@onerussian.com> 8040Date: 2024-03-29 14:37:24 -0400 8041 8042 codespell: Ignore the THANKS file and debbugs.gnu.org URL 8043 8044 This way "codespell -i 0" is silent. 8045 8046 This is the first commit from 8047 https://github.com/tukaani-project/xz/pull/93 8048 with trivial edits by Lasse Collin. 8049 8050 .codespellrc | 6 +++++- 8051 1 file changed, 5 insertions(+), 1 deletion(-) 8052 8053commit 905bfc74fe2670fd9c39014803017ab53d325401 8054Author: Lasse Collin <lasse.collin@tukaani.org> 8055Date: 2024-04-30 14:37:11 +0300 8056 8057 Add .gitattributes to clean up git-archive output 8058 8059 .gitattributes | 7 +++++++ 8060 1 file changed, 7 insertions(+) 8061 8062commit 3334c71d3d4294a4f6569df3ba9bcf2443dfa501 8063Author: Lasse Collin <lasse.collin@tukaani.org> 8064Date: 2024-04-19 12:11:09 +0300 8065 8066 xzdec: Support Landlock ABI version 4 8067 8068 This was added to xz in 02e3505991233901575b7eabc06b2c6c62a96899 8069 but I forgot to do the same in xzdec. 8070 8071 The Landlock sandbox in xzdec could be stricter as now it's 8072 active only for the last file being decompressed. In xz, 8073 read-only sandbox is used for multi-file case. On the other hand, 8074 xz doesn't go to the strictest mode when processing the last file 8075 when more than one file was specified; xzdec does. 8076 8077 src/xzdec/xzdec.c | 18 ++++++++++++++---- 8078 1 file changed, 14 insertions(+), 4 deletions(-) 8079 8080commit 278563ef8f2b8d98d7f2c85e1a64ec1bc21d26d8 8081Author: Lasse Collin <lasse.collin@tukaani.org> 8082Date: 2024-04-30 22:22:45 +0300 8083 8084 liblzma: Fix incorrect function type error from sanitizer 8085 8086 Clang 17 with -fsanitize=address,undefined: 8087 8088 src/liblzma/common/filter_common.c:366:8: runtime error: 8089 call to function encoder_find through pointer to incorrect 8090 function type 'const lzma_filter_coder *(*)(unsigned long)' 8091 src/liblzma/common/filter_encoder.c:187: note: 8092 encoder_find defined here 8093 8094 Use a wrapper function to get the correct type neatly. 8095 This reduces the number of casts needed too. 8096 8097 This issue could be a problem with control flow integrity (CFI) 8098 methods that check the function type on indirect function calls. 8099 8100 Fixes: 3b34851de1eaf358cf9268922fa0eeed8278d680 8101 8102 src/liblzma/common/filter_decoder.c | 15 ++++++++++++--- 8103 src/liblzma/common/filter_encoder.c | 17 +++++++++++++---- 8104 2 files changed, 25 insertions(+), 7 deletions(-) 8105 8106commit 77c8f60547decefca8f2d0c905d9c708c38ee8ff 8107Author: Lasse Collin <lasse.collin@tukaani.org> 8108Date: 2024-04-30 21:41:11 +0300 8109 8110 xz: Avoid arithmetic on a null pointer 8111 8112 It's undefined behavior. The result wasn't ever used as it occurred 8113 in the last iteration of a loop. 8114 8115 Clang 17 with -fsanitize=address,undefined: 8116 8117 $ src/xz/xz --block-list=123 8118 src/xz/args.c:164:12: runtime error: applying non-zero offset 1 8119 to null pointer 8120 8121 Fixes: 88ccf47205d7f3aa314d358c72ef214f10f68b43 8122 Co-authored-by: Sam James <sam@gentoo.org> 8123 8124 src/xz/args.c | 8 +++++++- 8125 1 file changed, 7 insertions(+), 1 deletion(-) 8126 8127commit 64503cc2b76a388ced4ec5f68234a07f0dcddcd5 8128Author: Lasse Collin <lasse.collin@tukaani.org> 8129Date: 2024-04-27 20:42:00 +0300 8130 8131 CMake: Support building liblzma API docs using Doxygen 8132 8133 This is disabled by default to match the default in Autotools. 8134 Use -DUSE_DOXYGEN=ON to enable Doxygen usage. 8135 8136 This uses the update-doxygen script, thus this is under if(UNIX) 8137 although Doxygen itself can run on Windows too. 8138 8139 CMakeLists.txt | 40 +++++++++++++++++++++++++++++++--------- 8140 1 file changed, 31 insertions(+), 9 deletions(-) 8141 8142commit 0a7f5a80d8532a1d8cfa0a902c9d1ad7651eca37 8143Author: Lasse Collin <lasse.collin@tukaani.org> 8144Date: 2024-04-20 23:36:39 +0300 8145 8146 CMake: List API headers in LIBLZMA_API_HEADERS variable 8147 8148 This way the same list will be usable in more than one location. 8149 8150 CMakeLists.txt | 21 ++++++++++++--------- 8151 1 file changed, 12 insertions(+), 9 deletions(-) 8152 8153commit 541406bee3f09e9813103c6406b10fc6ab2e0d30 8154Author: Lasse Collin <lasse.collin@tukaani.org> 8155Date: 2024-04-19 15:16:42 +0300 8156 8157 PACKAGERS: Document the optional Doxygen usage 8158 8159 Also add a note that packagers should check the licensing 8160 of the Doxygen output. 8161 8162 PACKAGERS | 19 ++++++++++--------- 8163 1 file changed, 10 insertions(+), 9 deletions(-) 8164 8165commit e21efdf96f39378fe417479f89e97046680406f5 8166Author: Lasse Collin <lasse.collin@tukaani.org> 8167Date: 2024-04-27 17:47:09 +0300 8168 8169 Build: Add --enable-doxygen to generate and install API docs 8170 8171 It requires Doxygen. This option is disabled by default. 8172 8173 INSTALL | 6 ++++++ 8174 configure.ac | 10 +++++++++- 8175 src/liblzma/api/Makefile.am | 19 +++++++++++++++++++ 8176 3 files changed, 34 insertions(+), 1 deletion(-) 8177 8178commit 0ece09a575d7e542bda8825808ddd6cf7de8cc4b 8179Author: Lasse Collin <lasse.collin@tukaani.org> 8180Date: 2024-04-19 15:15:17 +0300 8181 8182 Doxygen: update-doxygen: Support out-of-tree builds 8183 8184 Also, now $0 is used to refer to the script itself. 8185 8186 doxygen/update-doxygen | 110 ++++++++++++++++++++++++++++++------------------- 8187 1 file changed, 68 insertions(+), 42 deletions(-) 8188 8189commit 2c519f641f266fd897edf680827d9c905f411440 8190Author: Lasse Collin <lasse.collin@tukaani.org> 8191Date: 2024-04-28 21:08:00 +0300 8192 8193 Doxygen: Simplify Doxyfile and add SPDX license identifier 8194 8195 This omits all comments and a few non-default options that weren't 8196 needed. Now it contains no copyrighted content from Doxygen itself. 8197 8198 doxygen/Doxyfile | 2698 +----------------------------------------------------- 8199 1 file changed, 25 insertions(+), 2673 deletions(-) 8200 8201commit bdba39a57530d11b88440df8024002be3d09e4a1 8202Author: Lasse Collin <lasse.collin@tukaani.org> 8203Date: 2024-04-19 15:14:02 +0300 8204 8205 Doxygen: Don't strip JavaScript anymore 8206 8207 The stripping method worked well with Doxygen 1.8 and 1.9 but 8208 it doesn't work with Doxygen 1.10 anymore. Since we won't ship 8209 pre-generated liblzma API docs anymore, the extra bloat and 8210 extra license info of the JavaScript files won't affect the 8211 upstream source package anymore. 8212 8213 doxygen/update-doxygen | 21 --------------------- 8214 1 file changed, 21 deletions(-) 8215 8216commit d3a77ebc04bf1db8d52de2d9b0f07877bc4fd139 8217Author: Lasse Collin <lasse.collin@tukaani.org> 8218Date: 2024-04-19 17:26:41 +0300 8219 8220 Build: Remove old Doxygen rules from top-level Makefile.am 8221 8222 Makefile.am | 12 ------------ 8223 1 file changed, 12 deletions(-) 8224 8225commit fd7faa4c338a42a6a40e854b837d285ae2e8c609 8226Author: Lasse Collin <lasse.collin@tukaani.org> 8227Date: 2024-04-19 15:10:06 +0300 8228 8229 Update COPYING to match the autogen.sh and mydist changes 8230 8231 COPYING | 11 ----------- 8232 1 file changed, 11 deletions(-) 8233 8234commit b2bc55d8a0a9f2f59bfd4302067300e650f6baa3 8235Author: Lasse Collin <lasse.collin@tukaani.org> 8236Date: 2024-04-19 17:23:43 +0300 8237 8238 Build: Don't run update-doxygen as part of "make mydist" 8239 8240 Makefile.am | 1 - 8241 1 file changed, 1 deletion(-) 8242 8243commit e9be74f5b129fe8a5388d588e68b1b7f5168a310 8244Author: Lasse Collin <lasse.collin@tukaani.org> 8245Date: 2024-04-19 15:09:48 +0300 8246 8247 autogen.sh: Don't generated Doxygen docs anymore 8248 8249 autogen.sh | 18 +++--------------- 8250 1 file changed, 3 insertions(+), 15 deletions(-) 8251 8252commit 252aa1d67bc015eeba462803ab72edeb7744d864 8253Author: Lasse Collin <lasse.collin@tukaani.org> 8254Date: 2024-04-19 17:41:36 +0300 8255 8256 windows/build.bash: Omit Doxygen docs from the package 8257 8258 They will be omitted from the source tarball and I don't want 8259 to make Doxygen a dependency of build.bash. 8260 8261 windows/build.bash | 4 ++-- 8262 1 file changed, 2 insertions(+), 2 deletions(-) 8263 8264commit 634095364d87444d62d8ec54c134c0cd4705f5d7 8265Author: Lasse Collin <lasse.collin@tukaani.org> 8266Date: 2024-04-19 14:14:47 +0300 8267 8268 README: Don't mention PDF man pages anymore 8269 8270 README | 6 +++--- 8271 1 file changed, 3 insertions(+), 3 deletions(-) 8272 8273commit dc684bf76ea23574ee9d88382057381e04e6089a 8274Author: Lasse Collin <lasse.collin@tukaani.org> 8275Date: 2024-04-19 14:10:39 +0300 8276 8277 Build: Omit PDF man pages from the package 8278 8279 pdf-local rule was added to create the PDFs still with "make pdf". 8280 The install rules are missing but that likely doesn't matter at all. 8281 8282 Makefile.am | 29 +++++++++++++++++++---------- 8283 1 file changed, 19 insertions(+), 10 deletions(-) 8284 8285commit e3531ab4125cbd5c01ebd3200791350960547189 8286Author: Lasse Collin <lasse.collin@tukaani.org> 8287Date: 2024-04-19 13:54:39 +0300 8288 8289 windows/build.bash: Don't copy PDF man pages to the package 8290 8291 windows/README-Windows.txt | 2 +- 8292 windows/build.bash | 2 +- 8293 2 files changed, 2 insertions(+), 2 deletions(-) 8294 8295commit 710a4573ef2cbd19c66318c3b2d1388e418e26c7 8296Author: Lasse Collin <lasse.collin@tukaani.org> 8297Date: 2024-04-28 01:34:50 +0300 8298 8299 Tests: test_index: Fix failures when features are disabled 8300 8301 Fixes: cd88423e76d54eb72aea037364f3ebb21f122503 8302 8303 tests/test_index.c | 13 ++++++++----- 8304 1 file changed, 8 insertions(+), 5 deletions(-) 8305 8306commit aaff75c3486c4489ce88b0efb36b41cf138af7c3 8307Author: Lasse Collin <lasse.collin@tukaani.org> 8308Date: 2024-04-20 17:09:11 +0300 8309 8310 CMake: Keep the build working if the "tests" directory is missing 8311 8312 This moves the tests section as is from CMakeLists.txt into 8313 tests/tests.cmake. CMakeLists.txt now includes tests/tests.cmake 8314 if the latter file exists. 8315 8316 Now it's possible to delete the whole "tests" directory and 8317 building with CMake will still work normally, just without 8318 the tests. This way the tests are readily available for those 8319 who want them, and those who won't run the tests anyway have 8320 a straightforward way to ensure that nothing from the "tests" 8321 directory can affect the build process. 8322 8323 CMakeLists.txt | 76 ++--------------------------------------------- 8324 tests/Makefile.am | 1 + 8325 tests/tests.cmake | 88 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 8326 3 files changed, 92 insertions(+), 73 deletions(-) 8327 8328commit a5f2aa5618fe9183706c9c514c3067985f6c338b 8329Author: Lasse Collin <lasse.collin@tukaani.org> 8330Date: 2024-04-20 13:12:50 +0300 8331 8332 Tests: Remove x86 and SPARC BCJ tests 8333 8334 These are very old but the exact test file isn't easy to reproduce 8335 as it was compiled from a short C program (bcj_test.c) long ago. 8336 These tests weren't very good anyway, just a little better than nothing. 8337 8338 tests/Makefile.am | 7 ---- 8339 tests/bcj_test.c | 64 --------------------------------- 8340 tests/compress_prepared_bcj_sparc | Bin 1240 -> 0 bytes 8341 tests/compress_prepared_bcj_x86 | Bin 1388 -> 0 bytes 8342 tests/files/README | 8 ----- 8343 tests/files/good-1-sparc-lzma2.xz | Bin 612 -> 0 bytes 8344 tests/files/good-1-x86-lzma2.xz | Bin 716 -> 0 bytes 8345 tests/test_compress_prepared_bcj_sparc | 4 --- 8346 tests/test_compress_prepared_bcj_x86 | 4 --- 8347 9 files changed, 87 deletions(-) 8348 8349commit d879686469c9c4bf2a7c0bb6420ebe4530fc8f07 8350Author: Lasse Collin <lasse.collin@tukaani.org> 8351Date: 2024-04-27 18:30:40 +0300 8352 8353 Tests: test_index: Edit a misleading test 8354 8355 tests/test_index.c | 7 +++++-- 8356 1 file changed, 5 insertions(+), 2 deletions(-) 8357 8358commit 612005bbdb0dea9dc09e9e2e9cc16a15c1480acd 8359Author: Lasse Collin <lasse.collin@tukaani.org> 8360Date: 2024-04-27 16:46:01 +0300 8361 8362 Tests: test_index: Use minimal values to test integer overflow 8363 8364 tests/test_index.c | 4 ++-- 8365 1 file changed, 2 insertions(+), 2 deletions(-) 8366 8367commit 4ad88b2544c2aaf8de8f38af54587098cbe66c1d 8368Author: Lasse Collin <lasse.collin@tukaani.org> 8369Date: 2024-04-27 15:13:39 +0300 8370 8371 Tests: test_index: Test lzma_index_buffer_decode() more 8372 8373 tests/test_index.c | 29 ++++++++++++++++++++++++++--- 8374 1 file changed, 26 insertions(+), 3 deletions(-) 8375 8376commit 575b11b0d291e66c5fce31ce7a72f11436d57c83 8377Author: Lasse Collin <lasse.collin@tukaani.org> 8378Date: 2024-04-27 15:08:29 +0300 8379 8380 Tests: test_index: Test that *i = NULL is done on LZMA_PROG_ERROR 8381 8382 On LZMA_DATA_ERROR from lzma_index_buffer_decode(), *i = NULL was 8383 already done but this adds a test for that case too. 8384 8385 tests/test_index.c | 31 +++++++++++++++++++++++++++---- 8386 1 file changed, 27 insertions(+), 4 deletions(-) 8387 8388commit 2c970debdb285823f01f75e875561d893345ac2b 8389Author: Lasse Collin <lasse.collin@tukaani.org> 8390Date: 2024-04-27 15:01:25 +0300 8391 8392 Tests: test_index: Test lzma_index_buffer_encode() with empty output buf 8393 8394 tests/test_index.c | 3 +++ 8395 1 file changed, 3 insertions(+) 8396 8397commit cd88423e76d54eb72aea037364f3ebb21f122503 8398Author: Lasse Collin <lasse.collin@tukaani.org> 8399Date: 2024-04-27 14:59:55 +0300 8400 8401 Tests: test_index: Replace if-statements with tuktest assertions 8402 8403 tests/test_index.c | 22 +++++++++------------- 8404 1 file changed, 9 insertions(+), 13 deletions(-) 8405 8406commit 7f865577a6224fbbb5f5ca52574b62ea8ac9bf51 8407Author: Lasse Collin <lasse.collin@tukaani.org> 8408Date: 2024-04-27 14:56:16 +0300 8409 8410 Tests: test_index: Make it clear that my_alloc() has no integer overflows 8411 8412 liblzma guarantees that the product of the allocation size arguments 8413 will fit in size_t. 8414 8415 Putting the pre-increment in the if-statement was clearly wrong 8416 although in practice it didn't matter here as the function is 8417 called only a couple of times. 8418 8419 tests/test_index.c | 5 ++++- 8420 1 file changed, 4 insertions(+), 1 deletion(-) 8421 8422commit 12313a3b6596cdcf012e180597f84d231f8730d3 8423Author: Lasse Collin <lasse.collin@tukaani.org> 8424Date: 2024-04-27 14:51:52 +0300 8425 8426 Tests: test_index: Verify also iter.block.number_in_stream 8427 8428 tests/test_index.c | 2 ++ 8429 1 file changed, 2 insertions(+) 8430 8431commit ad2654010d9d641ce1601beeff00630027e6bcd4 8432Author: Lasse Collin <lasse.collin@tukaani.org> 8433Date: 2024-04-27 14:51:06 +0300 8434 8435 Tests: test_index: Check cases that aren't a multiple of 4 bytes 8436 8437 tests/test_index.c | 33 +++++++++++++++++++++++++-------- 8438 1 file changed, 25 insertions(+), 8 deletions(-) 8439 8440commit 2524fcf2b68b662035437cee8edbe80067c0c240 8441Author: Lasse Collin <lasse.collin@tukaani.org> 8442Date: 2024-04-27 14:40:25 +0300 8443 8444 Tests: test_index: Edit comments and white space 8445 8446 tests/test_index.c | 18 +++++++++++------- 8447 1 file changed, 11 insertions(+), 7 deletions(-) 8448 8449commit 71eed2520e2eecae89bade9dceea16e56cfa2ea0 8450Author: Lasse Collin <lasse.collin@tukaani.org> 8451Date: 2024-04-27 14:33:38 +0300 8452 8453 liblzma: index_decoder: Fix missing initializations on LZMA_PROG_ERROR 8454 8455 If the arguments to lzma_index_decoder() or lzma_index_buffer_decode() 8456 were such that LZMA_PROG_ERROR was returned, the lzma_index **i 8457 argument wasn't touched even though the API docs say that *i = NULL 8458 is done if an error occurs. This obviously won't be done even now 8459 if i == NULL but otherwise it is best to do it due to the wording 8460 in the API docs. 8461 8462 In practice this matters very little: The problem can occur only 8463 if the functions are called with invalid arguments, that is, 8464 the calling application must already have a bug. 8465 8466 src/liblzma/common/index_decoder.c | 11 +++++++++++ 8467 1 file changed, 11 insertions(+) 8468 8469commit 0478473953f50716a2bc37b619b1c7dc2682b1ad 8470Author: Lasse Collin <lasse.collin@tukaani.org> 8471Date: 2024-04-26 18:25:18 +0300 8472 8473 CMake: Bump maximum policy version to 3.29 8474 8475 CMakeLists.txt | 2 +- 8476 1 file changed, 1 insertion(+), 1 deletion(-) 8477 8478commit a607e2b40d23f7d998dbaba76692aa30b4c3d9d3 8479Author: Sam James <sam@gentoo.org> 8480Date: 2024-04-13 22:30:44 +0100 8481 8482 ci: add NetBSD 8483 8484 .github/workflows/netbsd.yml | 29 +++++++++++++++++++++++++++++ 8485 1 file changed, 29 insertions(+) 8486 8487commit 72c210336de26fb87a928160d025fa10a638d23b 8488Author: Sam James <sam@gentoo.org> 8489Date: 2024-04-13 23:49:26 +0100 8490 8491 ci: add FreeBSD 8492 8493 .github/workflows/freebsd.yml | 29 +++++++++++++++++++++++++++++ 8494 1 file changed, 29 insertions(+) 8495 8496commit b526ec2dbfb5889845ea60548c4f5b1f97d84ab2 8497Author: Sam James <sam@gentoo.org> 8498Date: 2024-04-13 23:16:08 +0100 8499 8500 ci: add OpenBSD 8501 8502 .github/workflows/openbsd.yml | 31 +++++++++++++++++++++++++++++++ 8503 1 file changed, 31 insertions(+) 8504 8505commit c7ef767c49351743d8d011574abb9e200bf6b24f 8506Author: Sam James <sam@gentoo.org> 8507Date: 2024-04-15 05:53:01 +0100 8508 8509 liblzma: outqueue: add header guard 8510 8511 Reported by github's codeql. 8512 8513 src/liblzma/common/outqueue.h | 5 +++++ 8514 1 file changed, 5 insertions(+) 8515 8516commit 55dcae3056d95cb2ddb8b560c12ba7596bc79f2c 8517Author: Sam James <sam@gentoo.org> 8518Date: 2024-04-15 05:53:56 +0100 8519 8520 liblzma: easy_preset: add header guard 8521 8522 Reported by github's codeql. 8523 8524 src/liblzma/common/easy_preset.h | 5 +++++ 8525 1 file changed, 5 insertions(+) 8526 8527commit 4ffc60f32397371769b7d6b5e3ed8626292d58df 8528Author: Lasse Collin <lasse.collin@tukaani.org> 8529Date: 2024-04-25 14:00:57 +0300 8530 8531 tuklib_integer: Rename bswapXX to byteswapXX 8532 8533 The __builtin_bswapXX from GCC and Clang are preferred when 8534 they are available. This can allow compilers to emit the x86 MOVBE 8535 instruction instead of doing a load + byteswap as two instructions 8536 (which would happen if the byteswapping is done in inline asm). 8537 8538 bswap16, bswap32, and bswap64 exist in system headers on *BSDs 8539 and Darwin. #defining bswap16 on NetBSD results in a warning about 8540 macro redefinition. It's safest to avoid this namespace conflict 8541 completely. 8542 8543 No OS supported by tuklib_integer.h uses byteswapXX names and 8544 a web search doesn't immediately find any obvious danger of 8545 namespace conflicts. So let's try these still-pretty-short names 8546 for the macros. 8547 8548 Thanks to Sam James for pointing out the compiler warning on 8549 NetBSD 10.0. 8550 8551 src/common/tuklib_integer.h | 47 ++++++++++++++++++++------------------ 8552 src/liblzma/check/crc32_fast.c | 4 ++-- 8553 src/liblzma/check/crc32_tablegen.c | 2 +- 8554 src/liblzma/check/crc64_fast.c | 4 ++-- 8555 src/liblzma/check/crc64_tablegen.c | 2 +- 8556 5 files changed, 31 insertions(+), 28 deletions(-) 8557 8558commit 08ab0966a75b501aa7c717622223f0c13a113c75 8559Author: Lasse Collin <lasse.collin@tukaani.org> 8560Date: 2024-04-24 01:20:26 +0300 8561 8562 liblzma: API doc cleanups 8563 8564 src/liblzma/api/lzma/container.h | 2 +- 8565 src/liblzma/api/lzma/index.h | 6 +++--- 8566 src/liblzma/api/lzma/vli.h | 5 ++--- 8567 3 files changed, 6 insertions(+), 7 deletions(-) 8568 8569commit 3ac8a9bb4cccbee88350696dc9c645c48d77c989 8570Author: Lasse Collin <lasse.collin@tukaani.org> 8571Date: 2024-04-23 16:35:33 +0300 8572 8573 Tests: test_filter_str: Add a few assertions 8574 8575 tests/test_filter_str.c | 4 ++++ 8576 1 file changed, 4 insertions(+) 8577 8578commit 26c69be80523b05c84dea86c47c4ddd9a10945d7 8579Author: Lasse Collin <lasse.collin@tukaani.org> 8580Date: 2024-04-23 16:35:08 +0300 8581 8582 Tests: test_filter_str: Move one assertion and add a comment 8583 8584 tests/test_filter_str.c | 6 ++++-- 8585 1 file changed, 4 insertions(+), 2 deletions(-) 8586 8587commit 4f6af853bc99904efb8b6c28a0af7b81a8476c1b 8588Author: Lasse Collin <lasse.collin@tukaani.org> 8589Date: 2024-04-23 16:26:06 +0300 8590 8591 Tests: test_filter_str: Tweak comments and white space 8592 8593 tests/test_filter_str.c | 3 +++ 8594 1 file changed, 3 insertions(+) 8595 8596commit c92663aa1bd576e0615498a4189acf0df12e84b9 8597Author: Lasse Collin <lasse.collin@tukaani.org> 8598Date: 2024-04-23 16:25:22 +0300 8599 8600 Tests: test_filter_str: Add missing RISC-V case 8601 8602 Fixes: 89ea1a22f4ed3685b053b7260bc5acf6c75d1664 8603 8604 tests/test_filter_str.c | 3 +++ 8605 1 file changed, 3 insertions(+) 8606 8607commit b0366df1d7ed26268101f9303a001c91c0806dfc 8608Author: Lasse Collin <lasse.collin@tukaani.org> 8609Date: 2024-04-22 22:23:32 +0300 8610 8611 Tests: test_filter_str: Test *error_pos more thoroughly 8612 8613 tests/test_filter_str.c | 77 ++++++++++++++++++++++++++++++++++++++++++++++++- 8614 1 file changed, 76 insertions(+), 1 deletion(-) 8615 8616commit 70d12dd069bb9bb0d6bb1c8fafc4e6f77780263d 8617Author: Lasse Collin <lasse.collin@tukaani.org> 8618Date: 2024-04-22 21:54:39 +0300 8619 8620 liblzma: lzma_str_to_filters: Set *error_pos on all errors 8621 8622 The API docs clearly say that if error_pos isn't NULL then *error 8623 is always set on any error. However, it wasn't touched if str == NULL 8624 or filters == NULL or unsupported flags were specified. 8625 8626 Fixes: cedeeca2ea6ada5b0411b2ae10d7a859e837f203 8627 8628 src/liblzma/common/string_conversion.c | 6 ++++++ 8629 1 file changed, 6 insertions(+) 8630 8631commit ed8e552395701fbf046027cebc8be4a6755b263f 8632Author: Lasse Collin <lasse.collin@tukaani.org> 8633Date: 2024-04-22 20:31:25 +0300 8634 8635 liblzma: Clean up white space 8636 8637 src/liblzma/lz/lz_encoder.h | 2 +- 8638 1 file changed, 1 insertion(+), 1 deletion(-) 8639 8640commit 2f06920f20b1ad63b7953dc09569e1d424998849 8641Author: Lasse Collin <lasse.collin@tukaani.org> 8642Date: 2024-04-22 18:35:19 +0300 8643 8644 Tests: test_filter_flags: Edit comments and style 8645 8646 tests/test_filter_flags.c | 13 +++++++++---- 8647 1 file changed, 9 insertions(+), 4 deletions(-) 8648 8649commit b101e1d1dbc81577c0c9aa0cb89cf2e46a15eb82 8650Author: Lasse Collin <lasse.collin@tukaani.org> 8651Date: 2024-04-22 16:39:44 +0300 8652 8653 Tests: Fix C99/C11 compatibility when features are disabled 8654 8655 The array could become empty and then the initializer would be 8656 simply {} which is allowed only in GNU-C and C23. 8657 8658 tests/test_filter_flags.c | 18 ++++++++---------- 8659 1 file changed, 8 insertions(+), 10 deletions(-) 8660 8661commit f8f3a220ac8afcb8cb2812917d3b77e00c2eab0d 8662Author: Lasse Collin <lasse.collin@tukaani.org> 8663Date: 2024-04-21 20:32:16 +0300 8664 8665 DOS: Omit useless defines from config.h 8666 8667 dos/config.h | 12 ------------ 8668 1 file changed, 12 deletions(-) 8669 8670commit fc1921b04b8840caaa777c2bd5340d41b259da20 8671Author: Lasse Collin <lasse.collin@tukaani.org> 8672Date: 2024-04-21 20:27:50 +0300 8673 8674 Build: Omit useless checks for fcntl.h, limits.h, and sys/time.h 8675 8676 configure.ac | 6 ------ 8677 1 file changed, 6 deletions(-) 8678 8679commit 6aa2a6deeba04808a0fe4461396e7fb70277f3d4 8680Author: Lasse Collin <lasse.collin@tukaani.org> 8681Date: 2024-04-19 22:04:21 +0300 8682 8683 liblzma: Silence a warning from Coverity static analysis 8684 8685 It is logical why it cannot know for sure that the value has 8686 to be at most 4 if it is less than 16. 8687 8688 The x86 filter is based on a very old LZMA SDK version. Newer 8689 ones have quite a different implementation for the same filter. 8690 8691 Thanks to Sam James. 8692 8693 src/liblzma/simple/x86.c | 12 +++++------- 8694 1 file changed, 5 insertions(+), 7 deletions(-) 8695 8696commit e89d3e83b4496d0b5410870634970c0aa9721d59 8697Author: Lasse Collin <lasse.collin@tukaani.org> 8698Date: 2024-04-19 23:18:19 +0300 8699 8700 Update .gitignore 8701 8702 .gitignore | 21 ++++++++------------- 8703 1 file changed, 8 insertions(+), 13 deletions(-) 8704 8705commit 86fc4ee859709da0ff9617a1490f13ddac0a109b 8706Author: Lasse Collin <lasse.collin@tukaani.org> 8707Date: 2024-04-19 20:53:24 +0300 8708 8709 Tests: test_lzip_decoder: Tweak coding style and comments 8710 8711 tests/test_lzip_decoder.c | 58 +++++++++++++++++++++++------------------------ 8712 1 file changed, 28 insertions(+), 30 deletions(-) 8713 8714commit 38be573a279bd7b608ee7d8509ec10884e6fb0d5 8715Author: Lasse Collin <lasse.collin@tukaani.org> 8716Date: 2024-04-19 20:51:36 +0300 8717 8718 Tests: test_lzip_decoder: Remove redundant initializations 8719 8720 tests/test_lzip_decoder.c | 6 ++---- 8721 1 file changed, 2 insertions(+), 4 deletions(-) 8722 8723commit d7e4bc53eacfab9f3de95d8252bdfdc9419079c9 8724Author: Lasse Collin <lasse.collin@tukaani.org> 8725Date: 2024-04-19 20:47:24 +0300 8726 8727 Tests: test_lzip_decoder: Remove unneeded tuktest_malloc() calls 8728 8729 tests/test_lzip_decoder.c | 12 ++---------- 8730 1 file changed, 2 insertions(+), 10 deletions(-) 8731 8732commit eeca8f7c5baf1ad69606bb734d5001763466d58f 8733Author: Lasse Collin <lasse.collin@tukaani.org> 8734Date: 2024-04-15 20:35:07 +0300 8735 8736 xz: Fix white space error. 8737 8738 Thanks to xx on #tukaani. 8739 8740 src/xz/args.c | 2 +- 8741 1 file changed, 1 insertion(+), 1 deletion(-) 8742 8743commit 462ca9409940a19f743daee6b3bcc611277d0007 8744Author: Sam James <sam@gentoo.org> 8745Date: 2024-04-11 23:01:44 +0100 8746 8747 xz: add missing noreturn for message_filters_help 8748 8749 Fixes: a165d7df1964121eb9df715e6f836a31c865beef 8750 8751 src/xz/message.h | 1 + 8752 1 file changed, 1 insertion(+) 8753 8754commit 863f13d2828b99b0539ce73f9cf85bde32358034 8755Author: Sam James <sam@gentoo.org> 8756Date: 2024-04-11 19:34:04 +0100 8757 8758 xz: signals: suppress -Wsign-conversion on macOS 8759 8760 On macOS, we get: 8761 ``` 8762 signals.c: In function 'signals_init': 8763 signals.c:76:17: error: conversion to 'sigset_t' {aka 'unsigned int'} from 'int' may change the sign of the result [-Werror=sign-conversion] 8764 76 | sigaddset(&hooked_signals, sigs[i]); 8765 | ^~~~~~~~~ 8766 signals.c:81:17: error: conversion to 'sigset_t' {aka 'unsigned int'} from 'int' may change the sign of the result [-Werror=sign-conversion] 8767 81 | sigaddset(&hooked_signals, message_progress_sigs[i]); 8768 | ^~~~~~~~~ 8769 signals.c:86:9: error: conversion to 'sigset_t' {aka 'unsigned int'} from 'int' may change the sign of the result [-Werror=sign-conversion] 8770 86 | sigaddset(&hooked_signals, SIGTSTP); 8771 | ^~~~~~~~~ 8772 ``` 8773 8774 We use `int` for `hooked_signals` but we can't just cast to whatever 8775 `sigset_t` is because `sigset_t` is an opaque type. It's an unsigned int 8776 on macOS. On macOS, `sigaddset` is implemented as a macro. 8777 8778 Just suppress -Wsign-conversion for `signals_init` for macOS given 8779 there's no real nice way of fixing this. 8780 8781 src/xz/signals.c | 7 +++++++ 8782 1 file changed, 7 insertions(+) 8783 8784commit fcbd0d199933a69713cb293cbd7409a757d854cd 8785Author: Lasse Collin <lasse.collin@tukaani.org> 8786Date: 2024-04-13 22:19:40 +0300 8787 8788 Tests: test_microlzma: Add a "FIXME?" about LZMA_FINISH handling 8789 8790 tests/test_microlzma.c | 8 ++++++++ 8791 1 file changed, 8 insertions(+) 8792 8793commit 0fe2dfa68355d2b165544b2bc8babf77dcc2039e 8794Author: Lasse Collin <lasse.collin@tukaani.org> 8795Date: 2024-04-13 18:05:31 +0300 8796 8797 Tests: test_microlzma: Tweak comments, coding style, and minor details 8798 8799 A few lines were reordered, a few ARRAY_SIZE were changed to sizeof, 8800 and a few uint32_t were changed to size_t. No real functional changes 8801 were intended. 8802 8803 tests/test_microlzma.c | 149 +++++++++++++++++++++++++++---------------------- 8804 1 file changed, 83 insertions(+), 66 deletions(-) 8805 8806commit 97f0ee0f1f903f4e7c4ea23e9b89d687025d2992 8807Author: Ryan Carsten Schmidt <git@ryandesign.com> 8808Date: 2024-04-12 19:31:13 -0500 8809 8810 CI: Use only the active CPUs on macOS 8811 8812 hw.ncpu counts all CPUs including inactive ones. hw.activecpu counts 8813 only the active CPUs. 8814 8815 build-aux/ci_build.bash | 2 +- 8816 1 file changed, 1 insertion(+), 1 deletion(-) 8817 8818commit 73f629e321b74f68c9954728fa4f19261afccf46 8819Author: Sam James <sam@gentoo.org> 8820Date: 2024-04-10 18:33:55 +0100 8821 8822 ci: rename ci_build.sh -> ci_build.bash 8823 8824 We discussed the name and it's less cognitive load to just call it '.bash' 8825 so you don't have an immediate question about if bashisms are OK. 8826 8827 .github/workflows/ci.yml | 52 ++++++++++++++++---------------- 8828 .github/workflows/windows-ci.yml | 20 ++++++------ 8829 build-aux/{ci_build.sh => ci_build.bash} | 0 8830 3 files changed, 36 insertions(+), 36 deletions(-) 8831 8832commit 8709407a9ef8e7e8aec117879400e4dd3e227ada 8833Author: Sam James <sam@gentoo.org> 8834Date: 2024-04-10 17:42:23 +0100 8835 8836 ci: build in parallel by default 8837 8838 build-aux/ci_build.sh | 2 ++ 8839 1 file changed, 2 insertions(+) 8840 8841commit 65bf7e0a1ca6386f17608e8afb84ac470c18d23f 8842Author: Sam James <sam@gentoo.org> 8843Date: 2024-04-10 15:41:08 +0100 8844 8845 ci: default to -O2 8846 8847 We need this for when we're passing sanitizer flags or -gdwarf-4 for Clang 8848 with Valgrind. Just always start with -O2 if CFLAGS isn't set in the 8849 environment and append what was passed on the command line. 8850 8851 build-aux/ci_build.sh | 3 ++- 8852 1 file changed, 2 insertions(+), 1 deletion(-) 8853 8854commit bc899f9e0700ad153bd65f4804c4de7515c8a847 8855Author: Sam James <sam@gentoo.org> 8856Date: 2024-04-10 15:17:47 +0100 8857 8858 ci: make automake's test runner verbose on failures 8859 8860 This is a lot easier to work with than the save-logs thing the action 8861 tries to do... 8862 8863 build-aux/ci_build.sh | 2 +- 8864 1 file changed, 1 insertion(+), 1 deletion(-) 8865 8866commit b5e3470442531717b2457b40ab412740296af1bc 8867Author: Sam James <sam@gentoo.org> 8868Date: 2024-04-10 12:38:51 +0100 8869 8870 ci: make UBSAN abort on errors 8871 8872 Unfortunately, UBSAN doesn't do this by default. See also the change 8873 I made in Meson for this in October [0]. 8874 8875 [0] https://github.com/mesonbuild/meson/commit/7b7d2e060b447de9c2642848847370a58711ac1c 8876 8877 .github/workflows/ci.yml | 1 + 8878 1 file changed, 1 insertion(+) 8879 8880commit 6c095a98fbec70b790253a663173ecdb669108c4 8881Author: Sam James <sam@gentoo.org> 8882Date: 2024-04-10 11:43:10 +0100 8883 8884 ci: test Valgrind 8885 8886 Using `--trace-children=yes` has a trade-off here, as it makes 8887 `test_scripts.sh` pretty slow when calling various non-xz utilities. 8888 8889 But I also feel like it's not useless to have Valgrind used there and it's 8890 not easy to exclude Valgrind just for that one test... 8891 8892 I did consider using AX_VALGRIND_CHECK [0][1] but I couldn't get it working 8893 immediately with some conditionally-built tests and I wondered if it was 8894 worth spending time on at least while we're debating xz's future build 8895 system situation. 8896 8897 [0] https://www.gnu.org/software/autoconf-archive/ax_valgrind_check.html 8898 [1] https://tecnocode.co.uk/2014/12/23/automatically-valgrinding-code-with-ax_valgrind_check/ 8899 8900 .github/workflows/ci.yml | 11 ++++++++++- 8901 build-aux/ci_build.sh | 8 +++++--- 8902 2 files changed, 15 insertions(+), 4 deletions(-) 8903 8904commit 6286c1900c2d2ca33d9b1b397122c7bcdb9a4d59 8905Author: Lasse Collin <lasse.collin@tukaani.org> 8906Date: 2024-04-10 23:20:02 +0300 8907 8908 liblzma: CRC: Simplify table omission macros 8909 8910 A macro is useful to prevent a single #if directive from 8911 getting too ugly but only one macro is needed for all archs. 8912 8913 src/liblzma/check/crc32_table.c | 10 ++++------ 8914 src/liblzma/check/crc64_table.c | 4 ++-- 8915 src/liblzma/check/crc_common.h | 5 +++-- 8916 3 files changed, 9 insertions(+), 10 deletions(-) 8917 8918commit 45da936c879acf4f053a3055665bf1b10ded4462 8919Author: Lasse Collin <lasse.collin@tukaani.org> 8920Date: 2024-04-10 23:09:40 +0300 8921 8922 liblzma: ARM64 CRC: Fix omission of CRC32 table 8923 8924 The macro name had an odd typo so the table wasn't omitted 8925 when it should have. 8926 8927 Fixes: 1940f0ec28f08c0ac72c1413d9706fb82eabe6ad 8928 8929 src/liblzma/check/crc32_table.c | 2 +- 8930 1 file changed, 1 insertion(+), 1 deletion(-) 8931 8932commit 308a9af85400b0e2019f0f012c8354e831d06d65 8933Author: Lasse Collin <lasse.collin@tukaani.org> 8934Date: 2024-04-10 22:21:51 +0300 8935 8936 Build: If ARM64 feature detection func is found, stop looking for others 8937 8938 This can speed up configure a tiny bit. 8939 8940 Fixes: c5f6d79cc9515a7f22d7ea4860c6cc394b295732 8941 8942 configure.ac | 2 +- 8943 1 file changed, 1 insertion(+), 1 deletion(-) 8944 8945commit fc43cecd32bf9d5f8caa599206b15c9569af1eb6 8946Author: Lasse Collin <lasse.collin@tukaani.org> 8947Date: 2024-04-10 22:04:27 +0300 8948 8949 liblzma: ARM64 CRC32: Change style of the macOS code to match FreeBSD 8950 8951 I didn't test this but it shouldn't change any functionality. 8952 8953 Fixes: 761f5b69a4c778c8bcb09279b845b07c28790575 8954 8955 src/liblzma/check/crc32_arm64.h | 7 ++++--- 8956 1 file changed, 4 insertions(+), 3 deletions(-) 8957 8958commit 1024cd4cd966b998fedec51e385e9ee9a49b3c57 8959Author: Lasse Collin <lasse.collin@tukaani.org> 8960Date: 2024-04-10 21:59:27 +0300 8961 8962 liblzma: ARM64 CRC32: Add error checking to FreeBSD-specific code 8963 8964 Also add parenthesis to the return statement. 8965 8966 I didn't test this. 8967 8968 Fixes: 761f5b69a4c778c8bcb09279b845b07c28790575 8969 8970 src/liblzma/check/crc32_arm64.h | 6 ++++-- 8971 1 file changed, 4 insertions(+), 2 deletions(-) 8972 8973commit 2337f7021c860b026e3e849e60a9ae8d09ec0ea0 8974Author: Lasse Collin <lasse.collin@tukaani.org> 8975Date: 2024-04-10 21:56:33 +0300 8976 8977 liblzma: ARM64 CRC32: Use negation instead of subtracting from 8 8978 8979 Subtracting from 0 is negation, this just keeps warnings away. 8980 8981 Fixes: 761f5b69a4c778c8bcb09279b845b07c28790575 8982 8983 src/liblzma/check/crc32_arm64.h | 2 +- 8984 1 file changed, 1 insertion(+), 1 deletion(-) 8985 8986commit d8fffd01aa1a3c18e437a222abd34699e23ff5e7 8987Author: Lasse Collin <lasse.collin@tukaani.org> 8988Date: 2024-04-10 21:55:10 +0300 8989 8990 liblzma: ARM64 CRC32: Tweak coding style and comments 8991 8992 src/liblzma/check/crc32_arm64.h | 10 +++++----- 8993 1 file changed, 5 insertions(+), 5 deletions(-) 8994 8995commit 780d2c236de0e4749655696c2e0c26fb7565afd3 8996Author: Lasse Collin <lasse.collin@tukaani.org> 8997Date: 2024-04-09 21:55:01 +0300 8998 8999 Update SECURITY.md. 9000 9001 .github/SECURITY.md | 25 ++++++++----------------- 9002 1 file changed, 8 insertions(+), 17 deletions(-) 9003 9004commit 986865ea2f9d1f8dbef4a130926df106b0f6d41a 9005Author: Lasse Collin <lasse.collin@tukaani.org> 9006Date: 2024-04-09 17:47:01 +0300 9007 9008 CI: Remove ifunc support. 9009 9010 .github/workflows/ci.yml | 13 +++---------- 9011 build-aux/ci_build.sh | 5 +---- 9012 2 files changed, 4 insertions(+), 14 deletions(-) 9013 9014commit 689ae2427342a2ea1206eb5ca08301baf410e7e0 9015Author: Lasse Collin <lasse.collin@tukaani.org> 9016Date: 2024-04-09 17:43:16 +0300 9017 9018 liblzma: Remove ifunc support. 9019 9020 This is *NOT* done for security reasons even though the backdoor 9021 relied on the ifunc code. Instead, the reason is that in this 9022 project ifunc provides little benefits but it's quite a bit of 9023 extra code to support it. The only case where ifunc *might* matter 9024 for performance is if the CRC functions are used directly by an 9025 application. In normal compression use it's completely irrelevant. 9026 9027 CMakeLists.txt | 79 --------------------------------------- 9028 INSTALL | 8 ---- 9029 configure.ac | 79 --------------------------------------- 9030 src/liblzma/check/crc32_fast.c | 48 +++--------------------- 9031 src/liblzma/check/crc64_fast.c | 21 ----------- 9032 src/liblzma/check/crc_common.h | 9 +---- 9033 src/liblzma/check/crc_x86_clmul.h | 11 +----- 9034 7 files changed, 8 insertions(+), 247 deletions(-) 9035 9036commit 6b4c859059a7eb9b0547590c081668e14ecf8af6 9037Author: Lasse Collin <lasse.collin@tukaani.org> 9038Date: 2024-04-08 22:04:41 +0300 9039 9040 tests/files/README: Update the main heading. 9041 9042 tests/files/README | 4 ++-- 9043 1 file changed, 2 insertions(+), 2 deletions(-) 9044 9045commit 2a851e06b891ce894f918faff32a6cca6fdecee6 9046Author: Lasse Collin <lasse.collin@tukaani.org> 9047Date: 2024-04-08 22:02:45 +0300 9048 9049 tests/files/README: Explain how to recreate the ARM64 test files. 9050 9051 tests/files/README | 15 ++++++++++++++- 9052 1 file changed, 14 insertions(+), 1 deletion(-) 9053 9054commit 3d09b721b94e18fe1f853a04799697f5de10b291 9055Author: Lasse Collin <lasse.collin@tukaani.org> 9056Date: 2024-04-08 21:51:55 +0300 9057 9058 debug: Add generator for the ARM64 test file data. 9059 9060 debug/Makefile.am | 3 +- 9061 debug/testfilegen-arm64.c | 116 ++++++++++++++++++++++++++++++++++++++++++++++ 9062 2 files changed, 118 insertions(+), 1 deletion(-) 9063 9064commit 31ef676567c9d6fcc4ec9fc833c312f7a7c21c48 9065Author: Lasse Collin <lasse.collin@tukaani.org> 9066Date: 2024-04-08 21:19:38 +0300 9067 9068 xz man page: Use .ft CR instead of CW to silence warnings from groff. 9069 9070 src/xz/xz.1 | 32 ++++++++++++++++---------------- 9071 1 file changed, 16 insertions(+), 16 deletions(-) 9072 9073commit 780cbf29d5a88db2b546e9b7b019c4c33ca72685 9074Author: Lasse Collin <lasse.collin@tukaani.org> 9075Date: 2024-04-08 19:28:35 +0300 9076 9077 Fix NEWS for 5.6.0 and 5.6.1. 9078 9079 NEWS | 6 ++++++ 9080 1 file changed, 6 insertions(+) 9081 9082commit bfd0c7c478e93a1911b845459549ff94587b6ea2 9083Author: Lasse Collin <lasse.collin@tukaani.org> 9084Date: 2024-04-08 19:22:26 +0300 9085 9086 Remove the XZ logo. 9087 9088 COPYING | 5 - 9089 COPYING.CC-BY-SA-4.0 | 427 --------------------------------------------------- 9090 Makefile.am | 2 - 9091 README | 2 - 9092 doc/xz-logo.png | Bin 6771 -> 0 bytes 9093 doxygen/Doxyfile | 6 +- 9094 doxygen/footer.html | 13 -- 9095 7 files changed, 3 insertions(+), 452 deletions(-) 9096 9097commit 77a294d98a9d2d48f7e4ac273711518bf689f5c4 9098Author: Lasse Collin <lasse.collin@tukaani.org> 9099Date: 2024-04-08 18:27:39 +0300 9100 9101 Update maintainer and author info. 9102 9103 The other maintainer suddenly disappeared. 9104 9105 AUTHORS | 9 +++++++-- 9106 README | 10 +++------- 9107 THANKS | 1 - 9108 src/liblzma/api/lzma.h | 2 +- 9109 4 files changed, 11 insertions(+), 11 deletions(-) 9110 9111commit 8dd03d4484ccf80022722a16d0ed9b37f2b58072 9112Author: Lasse Collin <lasse.collin@tukaani.org> 9113Date: 2024-04-08 18:05:32 +0300 9114 9115 Docs: Update .xz file format specification to 1.2.1. 9116 9117 This only reverts the XZ URL changes. 9118 9119 doc/xz-file-format.txt | 12 ++++++++---- 9120 1 file changed, 8 insertions(+), 4 deletions(-) 9121 9122commit 17aa2e1a796d3f758802df29afc89dcf335db567 9123Author: Lasse Collin <lasse.collin@tukaani.org> 9124Date: 2024-04-08 17:33:56 +0300 9125 9126 Update website URLs back to tukaani.org. 9127 9128 The XZ projects were moved back to their original URLs. 9129 9130 .github/SECURITY.md | 2 +- 9131 CMakeLists.txt | 2 +- 9132 COPYING | 3 +-- 9133 README | 4 ++-- 9134 configure.ac | 2 +- 9135 doc/faq.txt | 2 +- 9136 doc/lzma-file-format.txt | 12 ++++++------ 9137 dos/config.h | 2 +- 9138 src/liblzma/api/lzma.h | 2 +- 9139 src/xz/xz.1 | 6 +++--- 9140 src/xzdec/xzdec.1 | 4 ++-- 9141 windows/README-Windows.txt | 2 +- 9142 12 files changed, 21 insertions(+), 22 deletions(-) 9143 9144commit 2739db981023373a2ddabc7b456c7e658bb4f582 9145Author: Lasse Collin <lasse.collin@tukaani.org> 9146Date: 2024-04-08 17:07:08 +0300 9147 9148 xzdec: Tweak coding style and comments. 9149 9150 src/xzdec/xzdec.c | 32 +++++++++++++++++++++----------- 9151 1 file changed, 21 insertions(+), 11 deletions(-) 9152 9153commit 408b6adb2a07d07c6535f859571cca38837caaf3 9154Author: Lasse Collin <lasse.collin@tukaani.org> 9155Date: 2024-04-08 15:53:46 +0300 9156 9157 tests/ossfuzz: Tiny fix to a comment. 9158 9159 tests/ossfuzz/fuzz_decode_stream.c | 2 +- 9160 1 file changed, 1 insertion(+), 1 deletion(-) 9161 9162commit db4dd74a344580e0b81436598d9741a3454245b0 9163Author: Lasse Collin <lasse.collin@tukaani.org> 9164Date: 2024-04-09 18:22:16 +0300 9165 9166 Update THANKS. 9167 9168 THANKS | 1 + 9169 1 file changed, 1 insertion(+) 9170 9171commit e93e13c8b3bec925c56e0c0b675d8000a0f7f754 9172Author: Lasse Collin <lasse.collin@tukaani.org> 9173Date: 2024-04-08 15:32:58 +0300 9174 9175 Remove the backdoor found in 5.6.0 and 5.6.1 (CVE-2024-3094). 9176 9177 While the backdoor was inactive (and thus harmless) without inserting 9178 a small trigger code into the build system when the source package was 9179 created, it's good to remove this anyway: 9180 9181 - The executable payloads were embedded as binary blobs in 9182 the test files. This was a blatant violation of the 9183 Debian Free Software Guidelines. 9184 9185 - On machines that see lots bots poking at the SSH port, the backdoor 9186 noticeably increased CPU load, resulting in degraded user experience 9187 and thus overwhelmingly negative user feedback. 9188 9189 - The maintainer who added the backdoor has disappeared. 9190 9191 - Backdoors are bad for security. 9192 9193 This reverts the following without making any other changes: 9194 9195 6e636819 Tests: Update two test files. 9196 a3a29bbd Tests: Test --single-stream can decompress bad-3-corrupt_lzma2.xz. 9197 0b4ccc91 Tests: Update RISC-V test files. 9198 8c9b8b20 liblzma: Fix typos in crc32_fast.c and crc64_fast.c. 9199 82ecc538 liblzma: Fix false Valgrind error report with GCC. 9200 cf44e4b7 Tests: Add a few test files. 9201 3060e107 Tests: Use smaller dictionary size in RISC-V test files. 9202 e2870db5 Tests: Add two RISC-V Filter test files. 9203 9204 The RISC-V test files also have real content that tests the filter 9205 but the real content would fit into much smaller files. A generator 9206 program would need to be available as well. 9207 9208 Thanks to Andres Freund for finding and reporting it and making 9209 it public quickly so others could act without a delay. 9210 See: https://www.openwall.com/lists/oss-security/2024/03/29/4 9211 9212 src/liblzma/check/crc32_fast.c | 7 +++++-- 9213 src/liblzma/check/crc64_fast.c | 4 +++- 9214 src/liblzma/check/crc_common.h | 25 ------------------------- 9215 tests/files/README | 27 --------------------------- 9216 tests/files/bad-3-corrupt_lzma2.xz | Bin 512 -> 0 bytes 9217 tests/files/bad-dict_size.lzma | Bin 41 -> 0 bytes 9218 tests/files/good-1-riscv-lzma2-1.xz | Bin 7424 -> 0 bytes 9219 tests/files/good-1-riscv-lzma2-2.xz | Bin 7432 -> 0 bytes 9220 tests/files/good-2cat.xz | Bin 136 -> 0 bytes 9221 tests/files/good-large_compressed.lzma | Bin 35421 -> 0 bytes 9222 tests/files/good-small_compressed.lzma | Bin 258 -> 0 bytes 9223 tests/test_files.sh | 11 ----------- 9224 12 files changed, 8 insertions(+), 66 deletions(-) 9225 9226commit f9cf4c05edd14dedfe63833f8ccbe41b55823b00 9227Author: Lasse Collin <lasse.collin@tukaani.org> 9228Date: 2024-03-30 14:36:28 +0200 9229 9230 CMake: Fix sabotaged Landlock sandbox check. 9231 9232 It never enabled it. 9233 9234 CMakeLists.txt | 2 +- 9235 1 file changed, 1 insertion(+), 1 deletion(-) 9236 9237commit af071ef7702debef4f1d324616a0137a5001c14c 9238Author: Jia Tan <jiat0218@gmail.com> 9239Date: 2024-03-26 01:50:02 +0800 9240 9241 Docs: Simplify SECURITY.md. 9242 9243 .github/SECURITY.md | 8 +------- 9244 1 file changed, 1 insertion(+), 7 deletions(-) 9245 9246commit 0b99783d63f27606936bb79a16c52d0d70c0b56f 9247Author: Lasse Collin <lasse.collin@tukaani.org> 9248Date: 2024-03-22 17:46:30 +0200 9249 9250 liblzma: memcmplen.h: Add a comment why subtraction is used. 9251 9252 src/liblzma/common/memcmplen.h | 13 +++++++++++++ 9253 1 file changed, 13 insertions(+) 9254 9255commit 8a25ba024d55610c448c6e4f1400a00bae51b493 9256Author: Lasse Collin <lasse.collin@tukaani.org> 9257Date: 2024-03-15 17:43:39 +0200 9258 9259 INSTALL: Document arguments of --enable-symbol-versions. 9260 9261 INSTALL | 43 +++++++++++++++++++++++++++++++++++++++---- 9262 1 file changed, 39 insertions(+), 4 deletions(-) 9263 9264commit 49324b711f9d42b3543bf2f3ae598eaa03360bd5 9265Author: Lasse Collin <lasse.collin@tukaani.org> 9266Date: 2024-03-15 17:15:50 +0200 9267 9268 Build: Use only the generic symbol versioning with NVIDIA HPC Compiler. 9269 9270 This does the previous commit with CMake. 9271 9272 AC_EGREP_CPP uses AC_REQUIRE so the outermost if-commands must 9273 be changed to AS_IF to ensure that things wont break some day. 9274 See 5a5bd7f871818029d5ccbe189f087f591258c294. 9275 9276 configure.ac | 18 +++++++++++++----- 9277 1 file changed, 13 insertions(+), 5 deletions(-) 9278 9279commit c273123ed0ebaebf49994057a7fe98aae7f42c40 9280Author: Lasse Collin <lasse.collin@tukaani.org> 9281Date: 2024-03-15 16:36:35 +0200 9282 9283 CMake: Use only the generic symbol versioning with NVIDIA HPC Compiler. 9284 9285 It doesn't support the __symver__ attribute or __asm__(".symver ..."). 9286 The generic symbol versioning can still be used since it only needs 9287 linker support. 9288 9289 CMakeLists.txt | 7 ++++++- 9290 1 file changed, 6 insertions(+), 1 deletion(-) 9291 9292commit df7f487648d18a3992386a59b8a061edca862d17 9293Author: Lasse Collin <lasse.collin@tukaani.org> 9294Date: 2024-03-13 21:38:24 +0200 9295 9296 Update THANKS. 9297 9298 THANKS | 1 + 9299 1 file changed, 1 insertion(+) 9300 9301commit 3217b82b3ec023bf8338249134a076bea0ea30ec 9302Author: Lasse Collin <lasse.collin@tukaani.org> 9303Date: 2024-03-13 21:30:18 +0200 9304 9305 liblzma: Minor comment edits. 9306 9307 src/liblzma/common/string_conversion.c | 4 ++-- 9308 src/liblzma/delta/delta_decoder.c | 2 ++ 9309 2 files changed, 4 insertions(+), 2 deletions(-) 9310 9311commit 096bc0e3f8fb4bfc4d2f3f64a7f219401ffb4c31 9312Author: Sergey Kosukhin <sergey.kosukhin@mpimet.mpg.de> 9313Date: 2024-03-13 13:07:13 +0100 9314 9315 liblzma: Fix building with NVHPC (NVIDIA HPC SDK). 9316 9317 NVHPC compiler has several issues that make it impossible to 9318 build liblzma: 9319 - the compiler cannot handle unions that contain pointers that 9320 are not the first members; 9321 - the compiler cannot handle the assembler code in range_decoder.h 9322 (LZMA_RANGE_DECODER_CONFIG has to be set to zero); 9323 - the compiler fails to produce valid code for delta_decode if the 9324 vectorization is enabled, which results in failed tests. 9325 9326 This introduces NVHPC-specific workarounds that address the issues. 9327 9328 src/liblzma/common/string_conversion.c | 6 ++++-- 9329 src/liblzma/delta/delta_decoder.c | 3 +++ 9330 src/liblzma/rangecoder/range_decoder.h | 1 + 9331 3 files changed, 8 insertions(+), 2 deletions(-) 9332 9333commit 2ad7fad67080e88fa7fc191f9d613d8b7add9c62 9334Author: Lasse Collin <lasse.collin@tukaani.org> 9335Date: 2024-03-13 21:17:10 +0200 9336 9337 CMake: Disable symbol versioning on non-glibc Linux. 9338 9339 This better matches what configure.ac does. For example, musl has 9340 only basic symbol versioning support: 9341 9342 https://wiki.musl-libc.org/functional-differences-from-glibc.html#Symbol_versioning 9343 9344 configure.ac tries to enable symbol versioning only with glibc 9345 so now CMake does the same. 9346 9347 CMakeLists.txt | 22 ++++++++++++++++++++-- 9348 1 file changed, 20 insertions(+), 2 deletions(-) 9349 9350commit 82f0c0d39eb2c026b1d96ee706f70ace868d4ed4 9351Author: Lasse Collin <lasse.collin@tukaani.org> 9352Date: 2024-03-13 20:32:46 +0200 9353 9354 CMake: Make symbol versioning configurable. 9355 9356 CMakeLists.txt | 62 +++++++++++++++++++++++++++++++++++++++------------------- 9357 1 file changed, 42 insertions(+), 20 deletions(-) 9358 9359commit 45d33bfc45e4295b8ad743bc2ae61cc724f98076 9360Author: Lasse Collin <lasse.collin@tukaani.org> 9361Date: 2024-03-13 19:47:36 +0200 9362 9363 Build: Style tweaks to configure.ac. 9364 9365 The AC_MSG_ERROR line is overlong anyway as are a few other 9366 AC_MSG_ERROR lines already. 9367 9368 configure.ac | 16 +++++++++------- 9369 1 file changed, 9 insertions(+), 7 deletions(-) 9370 9371commit f56ed6fac6619b56b005878d3b5210e2f0d721c0 9372Author: Sergey Kosukhin <sergey.kosukhin@mpimet.mpg.de> 9373Date: 2024-03-12 20:03:49 +0100 9374 9375 Build: Let the users override the symbol versioning variant. 9376 9377 There are cases when the users want to decide themselves whether 9378 they want to have the generic (even on GNU/Linux) or the linux 9379 (even if we do not recommend that) symbol versioning variant. 9380 The former might be needed to circumvent compiler issues (i.e. 9381 the compiler does not support all features that are required 9382 for the linux versioning), the latter might help in overriding 9383 the assumptions made in the configure script. 9384 9385 configure.ac | 91 +++++++++++++++++++++++++++++++++--------------------------- 9386 1 file changed, 50 insertions(+), 41 deletions(-) 9387 9388commit a4f2e20d8466369b1bb277c66f75c9e4ba9cc378 9389Author: Jia Tan <jiat0218@gmail.com> 9390Date: 2024-03-09 11:27:27 +0800 9391 9392 Add NEWS for 5.6.1 9393 9394 NEWS | 26 ++++++++++++++++++++++++++ 9395 1 file changed, 26 insertions(+) 9396 9397commit f01be8ad754a905d8c418601767480ec11621b02 9398Author: Jia Tan <jiat0218@gmail.com> 9399Date: 2024-03-09 10:43:20 +0800 9400 9401 Translations: Add missing --riscv option to man page translations. 9402 9403 po4a/de.po | 702 +++++++++++++++++++++++++++++----------------------------- 9404 po4a/fr.po | 549 ++++++++++++++++++++++----------------------- 9405 po4a/ko.po | 702 +++++++++++++++++++++++++++++----------------------------- 9406 po4a/pt_BR.po | 641 +++++++++++++++++++++++++++-------------------------- 9407 po4a/ro.po | 702 +++++++++++++++++++++++++++++----------------------------- 9408 po4a/uk.po | 702 +++++++++++++++++++++++++++++----------------------------- 9409 6 files changed, 2024 insertions(+), 1974 deletions(-) 9410 9411commit 6e636819e8f070330d835fce46289a3ff72a7b89 9412Author: Jia Tan <jiat0218@gmail.com> 9413Date: 2024-03-09 10:18:29 +0800 9414 9415 Tests: Update two test files. 9416 9417 The original files were generated with random local to my machine. 9418 To better reproduce these files in the future, a constant seed was used 9419 to recreate these files. 9420 9421 tests/files/bad-3-corrupt_lzma2.xz | Bin 484 -> 512 bytes 9422 tests/files/good-large_compressed.lzma | Bin 35430 -> 35421 bytes 9423 2 files changed, 0 insertions(+), 0 deletions(-) 9424 9425commit a3a29bbd5d86183fc7eae8f0182dace374e778d8 9426Author: Jia Tan <jiat0218@gmail.com> 9427Date: 2024-03-09 10:08:32 +0800 9428 9429 Tests: Test --single-stream can decompress bad-3-corrupt_lzma2.xz. 9430 9431 The first stream in this file is valid, so this tests that xz properly 9432 stops after decompressing it. 9433 9434 tests/test_files.sh | 11 +++++++++++ 9435 1 file changed, 11 insertions(+) 9436 9437commit 0b4ccc91454dbcf0bf521b9bd51aa270581ee23c 9438Author: Jia Tan <jiat0218@gmail.com> 9439Date: 2024-03-09 10:05:32 +0800 9440 9441 Tests: Update RISC-V test files. 9442 9443 This increases code coverage and tests for possible shifting bugs. 9444 9445 tests/files/good-1-riscv-lzma2-1.xz | Bin 7512 -> 7424 bytes 9446 tests/files/good-1-riscv-lzma2-2.xz | Bin 7512 -> 7432 bytes 9447 2 files changed, 0 insertions(+), 0 deletions(-) 9448 9449commit 8c9b8b2063daa78ead9f648c2ec3c91e8615dffb 9450Author: Jia Tan <jiat0218@gmail.com> 9451Date: 2024-03-09 09:52:32 +0800 9452 9453 liblzma: Fix typos in crc32_fast.c and crc64_fast.c. 9454 9455 src/liblzma/check/crc32_fast.c | 4 ++-- 9456 src/liblzma/check/crc64_fast.c | 3 +-- 9457 2 files changed, 3 insertions(+), 4 deletions(-) 9458 9459commit b93a8d7631d9517da63f03e0185455024a4609e8 9460Author: Jia Tan <jiat0218@gmail.com> 9461Date: 2024-03-09 09:49:55 +0800 9462 9463 Tests: Replace HAVE_MICROLZMA usage in CMake and Autotools builds. 9464 9465 This reverts commit adaacafde6661496ca2814b1e94a3ba5186428cb. 9466 9467 CMakeLists.txt | 15 ++++++++++----- 9468 configure.ac | 9 ++------- 9469 tests/Makefile.am | 9 ++++++--- 9470 tests/test_microlzma.c | 12 ++++-------- 9471 4 files changed, 22 insertions(+), 23 deletions(-) 9472 9473commit 82ecc538193b380a21622aea02b0ba078e7ade92 9474Author: Jia Tan <jiat0218@gmail.com> 9475Date: 2024-03-09 09:20:57 +0800 9476 9477 liblzma: Fix false Valgrind error report with GCC. 9478 9479 With GCC and a certain combination of flags, Valgrind will falsely 9480 trigger an invalid write. This appears to be due to the omission of 9481 instructions to properly save, set up, and restore the frame pointer. 9482 9483 The IFUNC resolver is a leaf function since it only calls a function 9484 that is inlined. So sometimes GCC omits the frame pointer instructions 9485 in the resolver unless this optimization is explictly disabled. 9486 9487 This fixes https://bugzilla.redhat.com/show_bug.cgi?id=2267598. 9488 9489 src/liblzma/check/crc32_fast.c | 9 +++------ 9490 src/liblzma/check/crc64_fast.c | 7 +++---- 9491 src/liblzma/check/crc_common.h | 25 +++++++++++++++++++++++++ 9492 3 files changed, 31 insertions(+), 10 deletions(-) 9493 9494commit 3007e74ef250f0ce95d97ffbdf2282284f93764d 9495Author: Lasse Collin <lasse.collin@tukaani.org> 9496Date: 2024-03-05 23:21:26 +0200 9497 9498 liblzma: Fix a typo in a comment in the RISC-V filter. 9499 9500 src/liblzma/simple/riscv.c | 2 +- 9501 1 file changed, 1 insertion(+), 1 deletion(-) 9502 9503commit 72d2933bfae514e0dbb123488e9f1eb7cf64175f 9504Author: Jia Tan <jiat0218@gmail.com> 9505Date: 2024-03-05 00:34:46 +0800 9506 9507 liblzma: Use attribute no_profile_instrument_function with ifunc. 9508 9509 Thanks to Sam James for determining this was the attribute needed to 9510 workaround the GCC bug and for his version of the patch in Gentoo. 9511 9512 src/liblzma/check/crc32_fast.c | 5 +++++ 9513 src/liblzma/check/crc64_fast.c | 3 +++ 9514 2 files changed, 8 insertions(+) 9515 9516commit e5faaebbcf02ea880cfc56edc702d4f7298788ad 9517Author: Jia Tan <jiat0218@gmail.com> 9518Date: 2024-03-05 00:27:31 +0800 9519 9520 Build: Require attribute no_profile_instrument_function for ifunc usage. 9521 9522 Using __attribute__((__no_profile_instrument_function__)) on the ifunc 9523 resolver works around a bug in GCC -fprofile-generate: 9524 it adds profiling code even to ifunc resolvers which can make 9525 the ifunc resolver crash at program startup. This attribute 9526 was not introduced until GCC 7 and Clang 13, so ifunc won't 9527 be used with prior versions of these compilers. 9528 9529 This bug was brought to our attention by: 9530 9531 https://bugs.gentoo.org/925415 9532 9533 And was reported to upstream GCC by: 9534 9535 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=11411 9536 9537 CMakeLists.txt | 7 +++++++ 9538 configure.ac | 7 +++++++ 9539 2 files changed, 14 insertions(+) 9540 9541commit 7eeadd279a24c26ca7ff1292b7df802b89409eb7 9542Author: Lasse Collin <lasse.collin@tukaani.org> 9543Date: 2024-03-04 19:23:18 +0200 9544 9545 liblzma: Fix a comment in the RISC-V filter. 9546 9547 src/liblzma/simple/riscv.c | 4 ++-- 9548 1 file changed, 2 insertions(+), 2 deletions(-) 9549 9550commit 5f3d0595296cc3035eae9e7bb6c3ffb1e1267333 9551Author: Lasse Collin <lasse.collin@tukaani.org> 9552Date: 2024-02-29 16:35:52 +0200 9553 9554 CMake: Warn if translated man pages are missing. 9555 9556 CMakeLists.txt | 9 +++++++++ 9557 1 file changed, 9 insertions(+) 9558 9559commit 4cd1042ee752d61370c685d0d8b20c1e935672f7 9560Author: Lasse Collin <lasse.collin@tukaani.org> 9561Date: 2024-02-29 16:35:52 +0200 9562 9563 CMake: Warn if gettext tools and pre-created .gmo files are missing. 9564 9565 It's only done with CMake >= 3.20 and if library support 9566 for translation was already found. 9567 9568 Sort of fixes: https://github.com/tukaani-project/xz/issues/82 9569 9570 CMakeLists.txt | 25 +++++++++++++++++++++++++ 9571 1 file changed, 25 insertions(+) 9572 9573commit a94b42362c8e807f92236d6d63373f04991e3a50 9574Author: Lasse Collin <lasse.collin@tukaani.org> 9575Date: 2024-02-28 18:26:25 +0200 9576 9577 xz: Add comments. 9578 9579 src/xz/coder.c | 10 ++++++++++ 9580 1 file changed, 10 insertions(+) 9581 9582commit bbf112e32307a75a54a9e170bc392811443d5c87 9583Author: Jia Tan <jiat0218@gmail.com> 9584Date: 2024-02-27 23:42:41 +0800 9585 9586 xz: Change logging level for thread reduction to highest verbosity only. 9587 9588 Now that multi threaded encoding is the default, users do not need to 9589 see a warning message everytime the number of threads is reduced. On 9590 some machines, this could happen very often. It is not unreasonable for 9591 users to need to set double verbose mode to see this kind of 9592 information. 9593 9594 To see these warning messages -vv or --verbose --verbose must be passed 9595 to set xz into the highest possible verbosity mode. 9596 9597 These warnings had caused automated testing frameworks to fail when they 9598 expected no output to stderr. 9599 9600 Thanks to Sebastian Andrzej Siewior for reporting this and for the 9601 initial version of the patch. 9602 9603 src/xz/coder.c | 4 ++-- 9604 1 file changed, 2 insertions(+), 2 deletions(-) 9605 9606commit 649f6447441510d593a88475ad6df4bcdf74ce48 9607Author: Lasse Collin <lasse.collin@tukaani.org> 9608Date: 2024-02-26 23:06:13 +0200 9609 9610 Fix sorting in THANKS. 9611 9612 THANKS | 4 ++-- 9613 1 file changed, 2 insertions(+), 2 deletions(-) 9614 9615commit 1255b7d849bf53f196a842ef2a508ed0ff577eaa 9616Author: Jia Tan <jiat0218@gmail.com> 9617Date: 2024-02-26 23:39:29 +0800 9618 9619 Update THANKS. 9620 9621 THANKS | 1 + 9622 1 file changed, 1 insertion(+) 9623 9624commit eee579fff50099ba163c12305e81a4bd42b7dd53 9625Author: Chien Wong <m@xv97.com> 9626Date: 2024-02-25 21:38:13 +0800 9627 9628 xz: Add missing RISC-V on the filter list in the man page 9629 9630 Signed-off-by: Chien Wong <m@xv97.com> 9631 9632 src/xz/xz.1 | 4 +++- 9633 1 file changed, 3 insertions(+), 1 deletion(-) 9634 9635commit 328c52da8a2bbb81307644efdb58db2c422d9ba7 9636Author: Jia Tan <jiat0218@gmail.com> 9637Date: 2024-02-26 23:02:06 +0800 9638 9639 Build: Fix Linux Landlock feature test in Autotools and CMake builds. 9640 9641 The previous Linux Landlock feature test assumed that having the 9642 linux/landlock.h header file was enough. The new feature tests also 9643 requires that prctl() and the required Landlock system calls are 9644 supported. 9645 9646 CMakeLists.txt | 25 ++++++++++++++++++++++--- 9647 configure.ac | 27 ++++++++++++++++++++++++++- 9648 src/xz/sandbox.c | 2 +- 9649 src/xz/sandbox.h | 2 +- 9650 src/xzdec/xzdec.c | 8 ++++---- 9651 5 files changed, 54 insertions(+), 10 deletions(-) 9652 9653commit eb8ad59e9bab32a8d655796afd39597ea6dcc64d 9654Author: Jia Tan <jiat0218@gmail.com> 9655Date: 2024-02-26 20:06:10 +0800 9656 9657 Tests: Add test_microlzma to .gitignore and CMakeLists.txt. 9658 9659 .gitignore | 1 + 9660 CMakeLists.txt | 1 + 9661 2 files changed, 2 insertions(+) 9662 9663commit 9eed1b9a3ae140e93a82febc05a0181e9a4f5093 9664Author: Jia Tan <jiat0218@gmail.com> 9665Date: 2024-02-26 19:56:25 +0800 9666 9667 Tests: Correct license header in test_microlzma.c. 9668 9669 tests/test_microlzma.c | 5 ++--- 9670 1 file changed, 2 insertions(+), 3 deletions(-) 9671 9672commit 8bf9f72ee1c05b9e205a72807e8a9e304785673d 9673Author: Jia Tan <jiat0218@gmail.com> 9674Date: 2024-02-25 21:41:55 +0800 9675 9676 Fix typos in NEWS and CMakeLists. 9677 9678 CMakeLists.txt | 2 +- 9679 NEWS | 2 +- 9680 2 files changed, 2 insertions(+), 2 deletions(-) 9681 9682commit 5d8d915ebe2e345820a0f54d1baf8d7d4824c0c7 9683Author: Jia Tan <jiat0218@gmail.com> 9684Date: 2024-02-24 16:30:06 +0800 9685 9686 Bump version and soname for 5.7.0alpha. 9687 9688 Like 5.5.0alpha, 5.7.0alpha won't be released, it's just to mark that 9689 the branch is not stable. 9690 9691 Once again there is no API/ABI stability for new features in devel 9692 versions. The major soname won't be bumped even if API/ABI of new 9693 features breaks between devel releases. 9694 9695 src/liblzma/Makefile.am | 2 +- 9696 src/liblzma/api/lzma/version.h | 6 +++--- 9697 src/liblzma/liblzma_generic.map | 2 +- 9698 src/liblzma/liblzma_linux.map | 2 +- 9699 4 files changed, 6 insertions(+), 6 deletions(-) 9700 9701commit a18fb1edef0d0aac12a09eed05e9c448c777af7b 9702Author: Jia Tan <jiat0218@gmail.com> 9703Date: 2024-02-24 15:50:36 +0800 9704 9705 Add NEWS for 5.6.0. 9706 9707 NEWS | 143 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 9708 1 file changed, 143 insertions(+) 9709 9710commit 24355c5280bc95e3d594432d60bb8432aa6af173 9711Author: Jia Tan <jiat0218@gmail.com> 9712Date: 2024-02-22 22:27:01 +0800 9713 9714 Translations: Remove obsolete and fuzzy matches from some translations. 9715 9716 The French and Brazilian Portuguese man page translations have not been 9717 updated since the switch from public domain to 0BSD. The old GPLv2 9718 strings have now been removed from these files. 9719 9720 po4a/fr.po | 4702 +++++++++++++++++++++++++++++++++++++---------------- 9721 po4a/pt_BR.po | 4987 ++++++++++++++++++++++++++++++++++++++++----------------- 9722 2 files changed, 6832 insertions(+), 2857 deletions(-) 9723 9724commit 02ca4a7d7b703e2ec63e00b70feec825e919dbc1 9725Author: Jia Tan <jiat0218@gmail.com> 9726Date: 2024-02-21 00:31:54 +0800 9727 9728 Translations: Patch man pages to avoid fuzzy matches. 9729 9730 This will be fixed in the next round of translations, but this avoids 9731 having a fuzzy match or not fixing the English version. 9732 9733 po4a/de.po | 2 +- 9734 po4a/ko.po | 2 +- 9735 po4a/ro.po | 2 +- 9736 po4a/uk.po | 2 +- 9737 4 files changed, 4 insertions(+), 4 deletions(-) 9738 9739commit 898aad9fc711e03452d24d9e2c5b7f77a6f9ce64 9740Author: Jia Tan <jiat0218@gmail.com> 9741Date: 2024-02-21 00:30:43 +0800 9742 9743 xzmore: Fix typo in xzmore.1. 9744 9745 Thanks to Yuri Chornoivan. 9746 9747 src/scripts/xzmore.1 | 2 +- 9748 1 file changed, 1 insertion(+), 1 deletion(-) 9749 9750commit 5631aa206c8d16b4eeab85a46b8b698f4fc4cdba 9751Author: Jia Tan <jiat0218@gmail.com> 9752Date: 2024-02-24 12:12:16 +0800 9753 9754 Translations: Update the Vietnamese translation. 9755 9756 po/vi.po | 505 ++++++++++++++++++++++++++++++++++++++------------------------- 9757 1 file changed, 309 insertions(+), 196 deletions(-) 9758 9759commit a65fd7ce9d6228e87faf61dc56a35984d0088248 9760Author: Jia Tan <jiat0218@gmail.com> 9761Date: 2024-02-24 12:06:40 +0800 9762 9763 Translations: Update the Esperanto translation. 9764 9765 po/eo.po | 502 ++++++++++++++++++++++++++++++++++++++------------------------- 9766 1 file changed, 306 insertions(+), 196 deletions(-) 9767 9768commit cf44e4b7f5dfdbf8c78aef377c10f71e274f63c0 9769Author: Jia Tan <jiat0218@gmail.com> 9770Date: 2024-02-23 23:09:59 +0800 9771 9772 Tests: Add a few test files. 9773 9774 tests/files/README | 19 +++++++++++++++++++ 9775 tests/files/bad-3-corrupt_lzma2.xz | Bin 0 -> 484 bytes 9776 tests/files/bad-dict_size.lzma | Bin 0 -> 41 bytes 9777 tests/files/good-2cat.xz | Bin 0 -> 136 bytes 9778 tests/files/good-large_compressed.lzma | Bin 0 -> 35430 bytes 9779 tests/files/good-small_compressed.lzma | Bin 0 -> 258 bytes 9780 6 files changed, 19 insertions(+) 9781 9782commit 39f4a1a86ad80b2d064b812cee42668e6c8b8c73 9783Author: Jia Tan <jiat0218@gmail.com> 9784Date: 2024-02-23 20:58:36 +0800 9785 9786 Tests: Add MicroLZMA test. 9787 9788 tests/Makefile.am | 4 +- 9789 tests/test_microlzma.c | 548 +++++++++++++++++++++++++++++++++++++++++++++++++ 9790 2 files changed, 551 insertions(+), 1 deletion(-) 9791 9792commit adaacafde6661496ca2814b1e94a3ba5186428cb 9793Author: Jia Tan <jiat0218@gmail.com> 9794Date: 2024-02-23 20:57:59 +0800 9795 9796 Build: Define HAVE_MICROLZMA when it is configured. 9797 9798 CMakeLists.txt | 4 ++++ 9799 configure.ac | 9 +++++++-- 9800 2 files changed, 11 insertions(+), 2 deletions(-) 9801 9802commit eea78216d27182ca917bf00e02feaab058a4d21e 9803Author: Jia Tan <jiat0218@gmail.com> 9804Date: 2024-02-23 20:27:15 +0800 9805 9806 xz: Fix Capsicum sandbox compile error. 9807 9808 user_abort_pipe[] was still being used instead of the parameters. 9809 9810 src/xz/sandbox.c | 4 ++-- 9811 1 file changed, 2 insertions(+), 2 deletions(-) 9812 9813commit 32b0a3ce19224f9074d01a4ffbc1655b05fcb82d 9814Author: Jia Tan <jiat0218@gmail.com> 9815Date: 2024-02-23 16:12:32 +0800 9816 9817 Build: Fix ARM64 CRC32 instruction feature test. 9818 9819 Old versions of Clang reported the unsupported function attribute and 9820 __crc32d() function as warnings instead of errors, so the feature test 9821 passed when it shouldn't have, causing a compile error at build time. 9822 -Werror was added to this feature test to fix this. The change is not 9823 needed for CMake because check_c_source_compiles() also performs 9824 linking and the error is caught then. 9825 9826 Thanks to Sebastian Andrzej Siewior for reporting this. 9827 9828 configure.ac | 10 ++++++++++ 9829 1 file changed, 10 insertions(+) 9830 9831commit 4c81c9611f8b2e1ad65eb7fa166afc570c58607e 9832Author: Lasse Collin <lasse.collin@tukaani.org> 9833Date: 2024-02-22 19:16:35 +0200 9834 9835 CMake: Add LOCALEDIR to the windres workaround. 9836 9837 LOCALEDIR may contain spaces like in "C:\Program Files". 9838 9839 CMakeLists.txt | 16 +++++++++++----- 9840 1 file changed, 11 insertions(+), 5 deletions(-) 9841 9842commit de4337fd89ca7db5feb97b5c40143404f6e22986 9843Author: Lasse Collin <lasse.collin@tukaani.org> 9844Date: 2024-02-22 15:18:25 +0200 9845 9846 xz: Landlock: Fix error message if input file is a directory. 9847 9848 If xz is given a directory, it should look like this: 9849 9850 $ xz /usr/bin 9851 xz: /usr/bin: Is a directory, skipping 9852 9853 The Landlock rules didn't allow opening directories for reading: 9854 9855 $ xz /usr/bin 9856 xz: /usr/bin: Permission denied 9857 9858 The simplest fix was to allow opening directories for reading. 9859 While it's a bit silly to allow it solely for the error message, 9860 it shouldn't make the sandbox significantly weaker. 9861 9862 The single-file use case (like when called from GNU tar) is 9863 still as strict as possible: all Landlock restrictions are 9864 enabled before (de)compression starts. 9865 9866 src/xz/sandbox.c | 15 ++++++++++++++- 9867 1 file changed, 14 insertions(+), 1 deletion(-) 9868 9869commit 120da10ae139ea52ca4275452adf8eda02d07cc8 9870Author: Lasse Collin <lasse.collin@tukaani.org> 9871Date: 2024-02-22 14:41:29 +0200 9872 9873 liblzma: Disable branchless C version in range decoder. 9874 9875 Thanks to Sebastian Andrzej Siewior and Sam James for 9876 benchmarking on various systems. 9877 9878 src/liblzma/rangecoder/range_decoder.h | 13 ++++++++++--- 9879 1 file changed, 10 insertions(+), 3 deletions(-) 9880 9881commit 00440f52be9ac2c7438c7b0cb1082f12399632c6 9882Author: Lasse Collin <lasse.collin@tukaani.org> 9883Date: 2024-02-21 17:41:32 +0200 9884 9885 INSTALL: Clarify that --disable-assembler affects only 32-bit x86. 9886 9887 INSTALL | 18 +++++++++--------- 9888 1 file changed, 9 insertions(+), 9 deletions(-) 9889 9890commit 11405be84ea294497e12d03d7219f607063f4a00 9891Author: Lasse Collin <lasse.collin@tukaani.org> 9892Date: 2024-02-19 18:41:37 +0200 9893 9894 Windows: build.bash: Include COPYING.0BSD in the package. 9895 9896 windows/build.bash | 2 +- 9897 1 file changed, 1 insertion(+), 1 deletion(-) 9898 9899commit c27cf64e3e27f4968431d65be7098a12a3a80d30 9900Author: Lasse Collin <lasse.collin@tukaani.org> 9901Date: 2024-02-18 17:59:46 +0200 9902 9903 Windows: build.bash: include liblzma-crt-mixing.txt in the package. 9904 9905 windows/build.bash | 6 ++++-- 9906 1 file changed, 4 insertions(+), 2 deletions(-) 9907 9908commit 8d38941baed05de4ff7cc775de14833108f62184 9909Author: Lasse Collin <lasse.collin@tukaani.org> 9910Date: 2024-02-18 17:17:43 +0200 9911 9912 Windows: Major update to Windows build instructions. 9913 9914 INSTALL | 68 ++++----- 9915 windows/INSTALL-MSVC.txt | 23 +-- 9916 windows/INSTALL-MinGW-w64_with_Autotools.txt | 49 +++++++ 9917 windows/INSTALL-MinGW-w64_with_CMake.txt | 203 +++++++++++++++++++++++++++ 9918 windows/INSTALL-MinGW.txt | 138 ------------------ 9919 windows/README-Windows.txt | 2 + 9920 windows/build-with-cmake.bat | 35 +++++ 9921 windows/liblzma-crt-mixing.txt | 70 +++++++++ 9922 8 files changed, 404 insertions(+), 184 deletions(-) 9923 9924commit 4b5b0d352348ff510ffb50a3b5b71788857d37a1 9925Author: Lasse Collin <lasse.collin@tukaani.org> 9926Date: 2024-02-18 15:15:04 +0200 9927 9928 Windows: Update windows/README-Windows.txt. 9929 9930 It's for binary packages built with windows/build.bash. 9931 9932 windows/README-Windows.txt | 104 ++++++++++++++++++--------------------------- 9933 1 file changed, 41 insertions(+), 63 deletions(-) 9934 9935commit 1ee716f74085223c8fbcae1d5a384e6bf53c0f6a 9936Author: Lasse Collin <lasse.collin@tukaani.org> 9937Date: 2024-02-18 15:15:04 +0200 9938 9939 Windows: Update windows/build.bash. 9940 9941 Support for the old MinGW was dropped. Only MinGW-w64 with GCC 9942 is supported now. 9943 9944 The script now supports also cross-compilation from GNU/Linux 9945 (tests are not run). MSYS2 and also the old MSYS 1.0.11 work 9946 for building on Windows. The i686 and x86_64 toolchains must 9947 be in PATH to build both 32-bit and 64-bit versions. 9948 9949 Parallel builds are done if "nproc" from GNU coreutils is available. 9950 9951 MinGW-w64 runtime copyright information file was renamed from 9952 COPYING-Windows.txt to COPYING.MinGW-w64-runtime.txt which 9953 is the filename used by MinGW-w64 itself. Its existence 9954 is now mandatory, it's checked at the beginning of the script. 9955 9956 The file TODO is no longer copied to the package. 9957 9958 windows/build.bash | 191 +++++++++++++++++++++++++++++++---------------------- 9959 1 file changed, 112 insertions(+), 79 deletions(-) 9960 9961commit 60462e42609a1d961868a1d1ebecc713c6d27e2e 9962Author: Jia Tan <jiat0218@gmail.com> 9963Date: 2024-02-20 23:32:22 +0800 9964 9965 Translations: Update the Romanian man page translations. 9966 9967 po4a/ro.po | 1715 +++++++++++++++++++++++++++++++----------------------------- 9968 1 file changed, 875 insertions(+), 840 deletions(-) 9969 9970commit 10d733e5b8929c642e00891cfa9ead9c2cdd2e05 9971Author: Jia Tan <jiat0218@gmail.com> 9972Date: 2024-02-20 23:30:25 +0800 9973 9974 Translations: Update the Korean man page translations. 9975 9976 po4a/ko.po | 6 +++--- 9977 1 file changed, 3 insertions(+), 3 deletions(-) 9978 9979commit 797a34b72ac6baff237d7a546fa941d8f78f2f62 9980Author: Jia Tan <jiat0218@gmail.com> 9981Date: 2024-02-20 21:03:53 +0800 9982 9983 Translations: Update the Spanish translation. 9984 9985 po/es.po | 6 +++--- 9986 1 file changed, 3 insertions(+), 3 deletions(-) 9987 9988commit 5c3751d019f023e091df9a653e2bb1f6ea8b0d49 9989Author: Jia Tan <jiat0218@gmail.com> 9990Date: 2024-02-20 20:18:07 +0800 9991 9992 Translations: Update the Romanian translation. 9993 9994 po/ro.po | 470 ++++++++++++++++++++++++++++++--------------------------------- 9995 1 file changed, 227 insertions(+), 243 deletions(-) 9996 9997commit e2d31154ecc750935436e8b62c6b073b2cfa84e3 9998Author: Jia Tan <jiat0218@gmail.com> 9999Date: 2024-02-20 20:15:50 +0800 10000 10001 Translations: Update the Croatian translation. 10002 10003 po/hr.po | 648 ++++++++++++++++++++++++++++++++++----------------------------- 10004 1 file changed, 355 insertions(+), 293 deletions(-) 10005 10006commit 704500f994d5ac271bfcfd592275c5a7da4dc8d2 10007Author: Jia Tan <jiat0218@gmail.com> 10008Date: 2024-02-20 20:05:44 +0800 10009 10010 Translations: Update the German man page translations. 10011 10012 po4a/de.po | 1696 +++++++++++++++++++++++++++++++----------------------------- 10013 1 file changed, 873 insertions(+), 823 deletions(-) 10014 10015commit 1cfd3dca3fef321b06db73c3c9e13f347c2e2f5f 10016Author: Jia Tan <jiat0218@gmail.com> 10017Date: 2024-02-20 19:58:25 +0800 10018 10019 Translations: Update the German translation. 10020 10021 po/de.po | 427 +++++++++++++++++++++++++++++++++------------------------------ 10022 1 file changed, 225 insertions(+), 202 deletions(-) 10023 10024commit 28b9b3f16cc7c6e5b42e691994569c17f4561c9a 10025Author: Jia Tan <jiat0218@gmail.com> 10026Date: 2024-02-20 19:56:52 +0800 10027 10028 Translations: Update the Hungarian translation. 10029 10030 po/hu.po | 556 ++++++++++++++++++++++++++++++++++++++------------------------- 10031 1 file changed, 338 insertions(+), 218 deletions(-) 10032 10033commit 00b06cd0af6ad2ee93d3006bf80417db060c2b04 10034Author: Lasse Collin <lasse.collin@tukaani.org> 10035Date: 2024-02-19 16:48:05 +0200 10036 10037 CMake: Fix building of lzmainfo when translations are enabled. 10038 10039 CMakeLists.txt | 2 ++ 10040 1 file changed, 2 insertions(+) 10041 10042commit b0d1422b6037bfea6f6723683bd82a8e6d77026c 10043Author: Lasse Collin <lasse.collin@tukaani.org> 10044Date: 2024-02-19 13:38:42 +0200 10045 10046 CMake: Don't assume that -fvisibility=hidden is supported outside Windows. 10047 10048 The original code was good enough for supporting GNU/Linux 10049 and a few others but it wasn't very portable. 10050 10051 CMake doesn't support Solaris Studio's -xldscope=hidden. 10052 If it ever does, things should still work with this commit 10053 as Solaris Studio supports not only its own __global but also 10054 the GNU C __attribute__((visibility("default"))). Support for the 10055 attribute was added in 2007 to Sun Studio 12 compiler version 5.9. 10056 10057 CMakeLists.txt | 26 ++++++++++++++++++++++---- 10058 1 file changed, 22 insertions(+), 4 deletions(-) 10059 10060commit 2ced9d34bef4dce52ecbbf84d0903ab0aae1442c 10061Author: Lasse Collin <lasse.collin@tukaani.org> 10062Date: 2024-02-19 12:20:59 +0200 10063 10064 CMake: Revise the component splitting. 10065 10066 CMakeLists.txt | 57 +++++++++++++++++++++++++++++++-------------------------- 10067 1 file changed, 31 insertions(+), 26 deletions(-) 10068 10069commit 426bdc709c169d39b31dec410016779de117ef69 10070Author: Lasse Collin <lasse.collin@tukaani.org> 10071Date: 2024-02-17 21:45:07 +0200 10072 10073 CMake: Update the main comment and document CMAKE_BUILD_TYPE=Release. 10074 10075 CMakeLists.txt | 79 ++++++++++++++++++++++++++++++++++++++++++++++------------ 10076 1 file changed, 63 insertions(+), 16 deletions(-) 10077 10078commit 4430e075f7ccfc47972d6ca0aa1c3779fc265e10 10079Author: Lasse Collin <lasse.collin@tukaani.org> 10080Date: 2024-02-17 21:27:48 +0200 10081 10082 CMake: Use -O2 instead of -O3 in CMAKE_BUILD_TYPE=Release. 10083 10084 -O3 doesn't seem useful for speed but it makes the code bigger. 10085 CMake makes is difficult for users to simply override the 10086 optimization level: CFLAGS / CMAKE_C_FLAGS aren't helpful because 10087 they go before CMAKE_C_FLAGS_RELEASE. Of course, users can override 10088 CMAKE_C_FLAGS_RELEASE directly but then they have to remember to 10089 add also -DNDEBUG to disable assertions. 10090 10091 This commit changes -O3 to -O2 in CMAKE_C_FLAGS_RELEASE if and only if 10092 CMAKE_C_FLAGS_RELEASE cache variable doesn't already exist. So if 10093 a custom value is passed on the command line (or reconfiguring an 10094 already-configured build), the cache variable won't be modified. 10095 10096 CMakeLists.txt | 19 +++++++++++++++++++ 10097 1 file changed, 19 insertions(+) 10098 10099commit 025eb6d7879e4c4e8cb29716b371e0f4c1aea660 10100Author: Lasse Collin <lasse.collin@tukaani.org> 10101Date: 2024-02-18 14:59:52 +0200 10102 10103 CMake: Handle symbol versioning on MicroBlaze specially. 10104 10105 This is to match configure.ac. 10106 10107 CMakeLists.txt | 23 +++++++++++++++++++---- 10108 1 file changed, 19 insertions(+), 4 deletions(-) 10109 10110commit 2edd1a35b2507d1ce68b52dbaebe23c4850a74ce 10111Author: Lasse Collin <lasse.collin@tukaani.org> 10112Date: 2024-02-17 22:18:12 +0200 10113 10114 CMake: Keep build working even if lib/*.[ch] are removed. 10115 10116 CMakeLists.txt | 7 ++++++- 10117 1 file changed, 6 insertions(+), 1 deletion(-) 10118 10119commit d753e2ce4715552884afadc4ed6fbf8ccca6efac 10120Author: Lasse Collin <lasse.collin@tukaani.org> 10121Date: 2024-02-17 18:10:40 +0200 10122 10123 CMake: Install documentation. 10124 10125 CMakeLists.txt | 32 ++++++++++++++++++++++++++++++++ 10126 1 file changed, 32 insertions(+) 10127 10128commit 7a0405bea9cb0df9318b70f779f82b2c473e98ac 10129Author: Lasse Collin <lasse.collin@tukaani.org> 10130Date: 2024-02-17 15:35:35 +0200 10131 10132 CMake: Bump maximum policy version to 3.28. 10133 10134 CMP0154 doesn't affect us since we don't use FILE_SET. 10135 10136 CMakeLists.txt | 2 +- 10137 1 file changed, 1 insertion(+), 1 deletion(-) 10138 10139commit c2264ffbe3892d28930b89b0123efc369cabc143 10140Author: Lasse Collin <lasse.collin@tukaani.org> 10141Date: 2024-02-17 15:35:35 +0200 10142 10143 CMake: Build lzmainfo. 10144 10145 CMakeLists.txt | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 10146 1 file changed, 54 insertions(+) 10147 10148commit 998d0b29536094a89cf385a3b894e157db1ccefe 10149Author: Lasse Collin <lasse.collin@tukaani.org> 10150Date: 2024-02-17 15:35:35 +0200 10151 10152 CMake: Build lzmadec. 10153 10154 CMakeLists.txt | 76 ++++++++++++++++++++++++++++++++-------------------------- 10155 1 file changed, 42 insertions(+), 34 deletions(-) 10156 10157commit 74e8bc7417a0f37ca7ed5ee0127d33c69b3100b9 10158Author: Lasse Collin <lasse.collin@tukaani.org> 10159Date: 2024-02-17 15:35:35 +0200 10160 10161 CMake: Add test_scripts.sh to the tests. 10162 10163 In contrast to Automake, skipping of this test when decoders 10164 are disabled is handled at CMake side instead of test_scripts.sh 10165 because CMake-build doesn't create config.h. 10166 10167 CMakeLists.txt | 14 ++++++++++++++ 10168 tests/test_scripts.sh | 13 ++++++++----- 10169 2 files changed, 22 insertions(+), 5 deletions(-) 10170 10171commit 4808f238a731befcd46c2117c62a1caaf4403989 10172Author: Lasse Collin <lasse.collin@tukaani.org> 10173Date: 2024-02-17 15:35:35 +0200 10174 10175 CMake: Install scripts. 10176 10177 Compared to the Autotools-based build, this has simpler handling 10178 for the shell (@POSIX_SHELL@) and extra PATH entry for the scripts 10179 (configure has --enable-path-for-scripts=PREFIX). The simpler 10180 metho should be enough for non-ancient systems and Solaris. 10181 10182 CMakeLists.txt | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 10183 1 file changed, 82 insertions(+), 1 deletion(-) 10184 10185commit 3462362ebd94d835c664e94ad8f414cfe7590ca7 10186Author: Lasse Collin <lasse.collin@tukaani.org> 10187Date: 2024-02-17 15:35:35 +0200 10188 10189 Scripts: Use @PACKAGE_VERSION@ instead of @VERSION@. 10190 10191 PACKAGE_VERSION was already used in liblzma.pc.in. 10192 This way only one version @foo@ is used. 10193 10194 src/scripts/xzdiff.in | 2 +- 10195 src/scripts/xzgrep.in | 2 +- 10196 src/scripts/xzless.in | 2 +- 10197 src/scripts/xzmore.in | 2 +- 10198 4 files changed, 4 insertions(+), 4 deletions(-) 10199 10200commit 67610c245ba6c68cf65991693bab9312b7dc987b 10201Author: Lasse Collin <lasse.collin@tukaani.org> 10202Date: 2024-02-17 15:35:35 +0200 10203 10204 CMake: Simplify symlink creation and install translated man pages. 10205 10206 It helps that cmake_install.cmake doesn't parallelize installation 10207 so symlinks can be created so that the target is always known to 10208 exist (a requirement on Windows in some cases). 10209 10210 This bumps the minimum CMake version from 3.13 to 3.14 to use 10211 file(CREATE_LINK ...). It could be made to work on 3.13 by 10212 calling "cmake -E create_symlink" but it's uglier code and 10213 slower in "make install". 3.14 should be a reasonable version 10214 to require nowadays, especially since the Autotools build 10215 is still the primary build system for most OSes. 10216 10217 CMakeLists.txt | 195 +++++++++++++++++++++++++++++---------------------------- 10218 1 file changed, 98 insertions(+), 97 deletions(-) 10219 10220commit 50cc1d8a5a8154428bf240c7e4972e32b17d99bf 10221Author: Lasse Collin <lasse.collin@tukaani.org> 10222Date: 2024-02-17 15:35:35 +0200 10223 10224 CMake: Add support for building and installing xz with translations. 10225 10226 If gettext tools are available, the .po files listed in po/LINGUAS 10227 are converted using msgfmt. This allows building with translations 10228 directly from xz.git without Autotools. 10229 10230 If gettext tools aren't available, the Autotools-created .gmo files 10231 in the "po" directory will be used. This allows CMake-based build 10232 to use translations from Autotools-generated tarball. 10233 10234 If translation support is found (Intl_FOUND) but both the 10235 gettext tools and the pre-generated .gmo files are missing, 10236 then "make" will fail. 10237 10238 CMakeLists.txt | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 10239 1 file changed, 66 insertions(+), 2 deletions(-) 10240 10241commit 746c471643009947f94a3494a1148f74c7381b56 10242Author: Lasse Collin <lasse.collin@tukaani.org> 10243Date: 2024-02-19 11:58:33 +0200 10244 10245 liblzma: Remove commented-out code. 10246 10247 src/liblzma/rangecoder/range_decoder.h | 3 --- 10248 1 file changed, 3 deletions(-) 10249 10250commit 4ce300ce0884c6e552de2af9ae8050b47b01f0e7 10251Author: Lasse Collin <lasse.collin@tukaani.org> 10252Date: 2024-02-17 23:07:35 +0200 10253 10254 xz: Delete old commented-out code. 10255 10256 src/xz/message.c | 19 ------------------- 10257 1 file changed, 19 deletions(-) 10258 10259commit cae9a5e0bf422e6c5e64180805904f7ed02dc3aa 10260Author: Lasse Collin <lasse.collin@tukaani.org> 10261Date: 2024-02-17 23:07:35 +0200 10262 10263 xz: Use stricter pledge(2) and Landlock sandbox. 10264 10265 This makes these sandboxing methods stricter when no files are 10266 created or deleted. That is, it's a middle ground between the 10267 initial sandbox and the strictest single-file-to-stdout sandbox: 10268 this allows opening files for reading but output has to go to stdout. 10269 10270 src/xz/main.c | 46 +++++++++++++++++++++++++++++++++------------- 10271 src/xz/sandbox.c | 32 ++++++++++++++++++++++++++++++++ 10272 src/xz/sandbox.h | 4 ++++ 10273 3 files changed, 69 insertions(+), 13 deletions(-) 10274 10275commit 02e3505991233901575b7eabc06b2c6c62a96899 10276Author: Lasse Collin <lasse.collin@tukaani.org> 10277Date: 2024-02-17 23:07:35 +0200 10278 10279 xz: Support Landlock ABI version 4. 10280 10281 Linux 6.7 added support for ABI version 4 which restricts 10282 TCP connections which xz won't need and thus those can be 10283 forbidden now. Since the ABI version is handled at runtime, 10284 supporting version 4 won't cause any compatibility issues. 10285 10286 Note that new enough kernel headers are required to get 10287 version 4 support enabled at build time. 10288 10289 src/xz/sandbox.c | 25 ++++++++++++++++++++----- 10290 1 file changed, 20 insertions(+), 5 deletions(-) 10291 10292commit 374868d81d473ab56556a1cfd6b1b36a1fab348b 10293Author: Lasse Collin <lasse.collin@tukaani.org> 10294Date: 2024-02-17 23:07:35 +0200 10295 10296 xz: Move sandboxing code to sandbox.c and improve Landlock sandbox. 10297 10298 Landlock is now always used just like pledge(2) is: first in more 10299 permissive mode and later (under certain common conditions) in 10300 a strict mode that doesn't allow opening more files. 10301 10302 I put pledge(2) first in sandbox.c because it's the simplest API 10303 to use and still somewhat fine-grained for basic applications. 10304 So it's the simplest thing to understand for anyone reading sandbox.c. 10305 10306 CMakeLists.txt | 2 + 10307 src/xz/Makefile.am | 2 + 10308 src/xz/file_io.c | 170 +----------------------------- 10309 src/xz/file_io.h | 6 -- 10310 src/xz/main.c | 50 +++------ 10311 src/xz/private.h | 6 +- 10312 src/xz/sandbox.c | 295 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 10313 src/xz/sandbox.h | 39 +++++++ 10314 8 files changed, 357 insertions(+), 213 deletions(-) 10315 10316commit 7312dfbb02197c7f990c7a3cefd027a9387d1473 10317Author: Lasse Collin <lasse.collin@tukaani.org> 10318Date: 2024-02-17 23:07:35 +0200 10319 10320 xz: Tweak comments. 10321 10322 src/xz/main.c | 4 +++- 10323 1 file changed, 3 insertions(+), 1 deletion(-) 10324 10325commit c701a5909ad9882469fbab4fab5d2d5556d3ba78 10326Author: Lasse Collin <lasse.collin@tukaani.org> 10327Date: 2024-02-17 23:07:35 +0200 10328 10329 xz: Fix message_init() description. 10330 10331 Also explicitly initialize progress_automatic to make it clear 10332 that it can be read before message_init() sets it. Static variable 10333 was initialized to false by default already so this is only for 10334 clarity. 10335 10336 src/xz/main.c | 3 ++- 10337 src/xz/message.c | 2 +- 10338 src/xz/message.h | 5 ++++- 10339 3 files changed, 7 insertions(+), 3 deletions(-) 10340 10341commit 9466306719f3b76e92fac4e55fbfd89ec92295fa 10342Author: Lasse Collin <lasse.collin@tukaani.org> 10343Date: 2024-02-17 19:35:47 +0200 10344 10345 Build: Makefile.am: Sort EXTRA_DIST. 10346 10347 Dirs first, then files in case-sensitive ASCII order. 10348 10349 Makefile.am | 14 +++++++------- 10350 1 file changed, 7 insertions(+), 7 deletions(-) 10351 10352commit f3440e78c9517db75bfa52e1a378fad60b073bbe 10353Author: Lasse Collin <lasse.collin@tukaani.org> 10354Date: 2024-02-17 19:25:05 +0200 10355 10356 Build: Don't install TODO. 10357 10358 Makefile.am | 2 +- 10359 1 file changed, 1 insertion(+), 1 deletion(-) 10360 10361commit a7a3b62e2ab03c82b2bd5c78da1d1fb8b8490381 10362Author: Jia Tan <jiat0218@gmail.com> 10363Date: 2024-02-18 01:09:11 +0800 10364 10365 Translations: Update the Korean man page translations. 10366 10367 po4a/ko.po | 1707 +++++++++++++++++++++++++++++++----------------------------- 10368 1 file changed, 871 insertions(+), 836 deletions(-) 10369 10370commit 9b315db2d5e74700f3dc0755eb86c27947c0b393 10371Author: Jia Tan <jiat0218@gmail.com> 10372Date: 2024-02-18 01:08:32 +0800 10373 10374 Translations: Update the Korean translation. 10375 10376 po/ko.po | 423 +++++++++++++++++++++++++++++++++------------------------------ 10377 1 file changed, 223 insertions(+), 200 deletions(-) 10378 10379commit 56246607dff177b0410d140fcca4a42c865723dc 10380Author: Lasse Collin <lasse.collin@tukaani.org> 10381Date: 2024-02-17 16:23:14 +0200 10382 10383 Build: Install translated lzmainfo man pages. 10384 10385 All other translated man pages were being installed but 10386 lzmainfo had been forgotten. 10387 10388 src/lzmainfo/Makefile.am | 26 ++++++++++++++++++++++++++ 10389 1 file changed, 26 insertions(+) 10390 10391commit f1d6b88aefcced538403c5c2606ba57065b16e70 10392Author: Lasse Collin <lasse.collin@tukaani.org> 10393Date: 2024-02-17 16:01:32 +0200 10394 10395 liblzma: Avoid implementation-defined behavior in the RISC-V filter. 10396 10397 GCC docs promise that it works and a few other compilers do 10398 too. Clang/LLVM is documented source code only but unsurprisingly 10399 it behaves the same as others on x86-64 at least. But the 10400 certainly-portable way is good enough here so use that. 10401 10402 src/liblzma/simple/riscv.c | 30 ++++++++++++++++++++++-------- 10403 1 file changed, 22 insertions(+), 8 deletions(-) 10404 10405commit 843ddc5f617b91ae132d6bab0f2f2d9c9fcd214a 10406Author: Lasse Collin <lasse.collin@tukaani.org> 10407Date: 2024-02-17 15:48:28 +0200 10408 10409 liblzma: Wrap a line exceeding 80 chars. 10410 10411 src/liblzma/rangecoder/range_decoder.h | 3 ++- 10412 1 file changed, 2 insertions(+), 1 deletion(-) 10413 10414commit e9053c907250c70d98b319d95fa54cb94fc76869 10415Author: Sebastian Andrzej Siewior <sebastian@breakpoint.cc> 10416Date: 2024-02-16 21:50:15 +0100 10417 10418 liblzma/rangecoder: Exclude x32 from the x86-64 optimisation. 10419 10420 The x32 port has a x86-64 ABI in term of all registers but uses only 10421 32bit pointer like x86-32. The assembly optimisation fails to compile on 10422 x32. Given the state of x32 I suggest to exclude it from the 10423 optimisation rather than trying to fix it. 10424 10425 Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc> 10426 10427 src/liblzma/rangecoder/range_decoder.h | 2 +- 10428 1 file changed, 1 insertion(+), 1 deletion(-) 10429 10430commit 3d198fb13b87f8803442e5799d465f7434a70555 10431Author: Jia Tan <jiat0218@gmail.com> 10432Date: 2024-02-17 21:05:07 +0800 10433 10434 Translations: Update the Spanish translation. 10435 10436 po/es.po | 427 +++++++++++++++++++++++++++++++++------------------------------ 10437 1 file changed, 226 insertions(+), 201 deletions(-) 10438 10439commit cf278bfe60a25b54b3786f06503bc61272970820 10440Author: Jia Tan <jiat0218@gmail.com> 10441Date: 2024-02-17 20:43:29 +0800 10442 10443 Translations: Update the Swedish translation. 10444 10445 po/sv.po | 434 +++++++++++++++++++++++++++++++++------------------------------ 10446 1 file changed, 230 insertions(+), 204 deletions(-) 10447 10448commit b0f1a41be50560cc6cb528e8e96b02b2067c52c2 10449Author: Jia Tan <jiat0218@gmail.com> 10450Date: 2024-02-17 20:41:38 +0800 10451 10452 Translations: Update the Polish translation. 10453 10454 po/pl.po | 424 +++++++++++++++++++++++++++++++++------------------------------ 10455 1 file changed, 224 insertions(+), 200 deletions(-) 10456 10457commit d74ed48b30c631b6a4c7e7858b06828293bf8520 10458Author: Jia Tan <jiat0218@gmail.com> 10459Date: 2024-02-17 20:41:02 +0800 10460 10461 Translations: Update the Ukrainian translation. 10462 10463 po/uk.po | 2 +- 10464 1 file changed, 1 insertion(+), 1 deletion(-) 10465 10466commit 711e22d5c5f3bac39ac904efb3ede874a66e2045 10467Author: Lasse Collin <lasse.collin@tukaani.org> 10468Date: 2024-02-16 17:53:34 +0200 10469 10470 Translations: Use the same sentence in xz.pot-header that the TP uses. 10471 10472 po/xz.pot-header | 2 +- 10473 1 file changed, 1 insertion(+), 1 deletion(-) 10474 10475commit fb5f6aaf18584672d0fee5dbe41fd30fc6bf5422 10476Author: Jia Tan <jiat0218@gmail.com> 10477Date: 2024-02-16 22:53:46 +0800 10478 10479 Fix typos discovered by codespell. 10480 10481 AUTHORS | 2 +- 10482 NEWS | 2 +- 10483 src/liblzma/rangecoder/range_decoder.h | 4 ++-- 10484 3 files changed, 4 insertions(+), 4 deletions(-) 10485 10486commit c64723bbb094e29b4edd98f6fcce866e1b569b42 10487Author: Jia Tan <jiat0218@gmail.com> 10488Date: 2024-02-16 22:52:41 +0800 10489 10490 Translations: Update the Ukrainian man page translations. 10491 10492 po4a/uk.po | 1710 +++++++++++++++++++++++++++++++----------------------------- 10493 1 file changed, 873 insertions(+), 837 deletions(-) 10494 10495commit 2895195ed0f68b245c7bd568c126ba6e685fa1d6 10496Author: Jia Tan <jiat0218@gmail.com> 10497Date: 2024-02-16 22:51:04 +0800 10498 10499 Translations: Update the Ukrainian translation. 10500 10501 po/uk.po | 466 ++++++++++++++++++++++++++++++--------------------------------- 10502 1 file changed, 225 insertions(+), 241 deletions(-) 10503 10504commit 4c20781f4c8f04879b64d631a4f44b4909147bde 10505Author: Lasse Collin <lasse.collin@tukaani.org> 10506Date: 2024-02-15 22:32:52 +0200 10507 10508 Translations: Omit the generic copyright line from man page headers. 10509 10510 po4a/update-po | 1 + 10511 1 file changed, 1 insertion(+) 10512 10513commit 4323bc3e0c1e1d2037d5e670a3bf6633e8a3031e 10514Author: Jia Tan <jiat0218@gmail.com> 10515Date: 2024-02-15 22:26:43 +0800 10516 10517 Update m4/.gitignore. 10518 10519 m4/.gitignore | 1 + 10520 1 file changed, 1 insertion(+) 10521 10522commit 5394a1665b7a108a54cb8b4ef3ebe59d3dbcca3a 10523Author: Lasse Collin <lasse.collin@tukaani.org> 10524Date: 2024-02-14 21:11:49 +0200 10525 10526 Tests: tuktest.h: Treat Clang separately from GCC. 10527 10528 Don't assume that Clang defines __GNUC__ as the extensions 10529 are available in clang-cl as well (and possibly in some other 10530 Clang variants?). 10531 10532 tests/tuktest.h | 6 +++--- 10533 1 file changed, 3 insertions(+), 3 deletions(-) 10534 10535commit cce7330b9f23485a0879422e0c3395a7065439ac 10536Author: Lasse Collin <lasse.collin@tukaani.org> 10537Date: 2024-02-14 21:11:03 +0200 10538 10539 Tests: tuktest.h: Add a missing word to a comment. 10540 10541 tests/tuktest.h | 4 ++-- 10542 1 file changed, 2 insertions(+), 2 deletions(-) 10543 10544commit 5dd8fc9452a3373cedc27379067ce638f992c741 10545Author: Lasse Collin <lasse.collin@tukaani.org> 10546Date: 2024-02-14 21:10:10 +0200 10547 10548 Tests: tuktest.h: Fix the comment about STest. 10549 10550 tests/tuktest.h | 3 ++- 10551 1 file changed, 2 insertions(+), 1 deletion(-) 10552 10553commit 6f1790254a03c5edf0f2976f773220f070450acd 10554Author: Jia Tan <jiat0218@gmail.com> 10555Date: 2024-02-15 01:53:40 +0800 10556 10557 Bump version for 5.5.2beta. 10558 10559 src/liblzma/api/lzma/version.h | 4 ++-- 10560 src/liblzma/liblzma_generic.map | 2 +- 10561 src/liblzma/liblzma_linux.map | 2 +- 10562 3 files changed, 4 insertions(+), 4 deletions(-) 10563 10564commit 924fdeedf48113fb1e0646d86bd89a356d21a055 10565Author: Lasse Collin <lasse.collin@tukaani.org> 10566Date: 2024-02-14 19:46:11 +0200 10567 10568 liblzma: Fix validate_map.sh. 10569 10570 Adding the SPDX license identifier changed the line numbers. 10571 10572 src/liblzma/validate_map.sh | 2 +- 10573 1 file changed, 1 insertion(+), 1 deletion(-) 10574 10575commit 22140a2df6161b0110e6b4afa5ea0a07c5b60b01 10576Author: Lasse Collin <lasse.collin@tukaani.org> 10577Date: 2024-02-14 19:38:34 +0200 10578 10579 Build: Start the generated ChangeLog from around 5.4.0 instead of 5.2.0. 10580 10581 Makefile.am | 2 +- 10582 1 file changed, 1 insertion(+), 1 deletion(-) 10583 10584commit 0b8cefa136c21d403a01b78517f4decb50172bdb 10585Author: Lasse Collin <lasse.collin@tukaani.org> 10586Date: 2024-02-14 19:27:46 +0200 10587 10588 Fixed NEWS for 5.5.2beta. 10589 10590 NEWS | 8 ++++++-- 10591 1 file changed, 6 insertions(+), 2 deletions(-) 10592 10593commit a4557bad96361d93ea171ed859ac5a696fca824f 10594Author: Lasse Collin <lasse.collin@tukaani.org> 10595Date: 2024-02-14 19:21:45 +0200 10596 10597 liblzma: Silence warnings in --enable-small build. 10598 10599 src/liblzma/lzma/lzma_decoder.c | 2 ++ 10600 src/liblzma/rangecoder/range_decoder.h | 1 + 10601 2 files changed, 3 insertions(+) 10602 10603commit 38edf473236d00b3e100dc4c4f0bf43a4993fed2 10604Author: Lasse Collin <lasse.collin@tukaani.org> 10605Date: 2024-02-14 19:15:58 +0200 10606 10607 Build: Install COPYING.0BSD as part of docs. 10608 10609 Makefile.am | 1 + 10610 1 file changed, 1 insertion(+) 10611 10612commit b74e10bd839bcdc239afb5300ffaee195f34c217 10613Author: Lasse Collin <lasse.collin@tukaani.org> 10614Date: 2024-02-14 19:14:05 +0200 10615 10616 Docs: List COPYING.0BSD in README. 10617 10618 README | 1 + 10619 1 file changed, 1 insertion(+) 10620 10621commit dfdb60ffe933a1f1497d300dbb4513ed17ec6f0e 10622Author: Lasse Collin <lasse.collin@tukaani.org> 10623Date: 2024-02-14 19:11:48 +0200 10624 10625 Docs: Include doc/examples/11_file_info.c in tarballs. 10626 10627 It was added in 2017 in c2e29f06a7d1e3ba242ac2fafc69f5d6e92f62cd 10628 but it never got into any release tarballs because it was 10629 forgotten to be added to Makefile.am. 10630 10631 Makefile.am | 1 + 10632 1 file changed, 1 insertion(+) 10633 10634commit 160b6862646d95dfdbd73ab7f1031ede0f54992d 10635Author: Lasse Collin <lasse.collin@tukaani.org> 10636Date: 2024-02-14 19:05:58 +0200 10637 10638 liblzma: Silence a warning. 10639 10640 src/liblzma/rangecoder/range_decoder.h | 2 +- 10641 1 file changed, 1 insertion(+), 1 deletion(-) 10642 10643commit eeedd4d0925ea417add04ceb42a6c0829244b50c 10644Author: Lasse Collin <lasse.collin@tukaani.org> 10645Date: 2024-02-14 18:32:27 +0200 10646 10647 Add NEWS for 5.5.2beta. 10648 10649 NEWS | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 10650 1 file changed, 60 insertions(+) 10651 10652commit 8af7db854f903068d72a9a0d21103cb0c5027fa8 10653Author: Lasse Collin <lasse.collin@tukaani.org> 10654Date: 2024-02-13 14:32:47 +0200 10655 10656 xz: Mention lzmainfo if trying to use 'lzma --list'. 10657 10658 This kind of fixes the problem reported here: 10659 https://bugs.launchpad.net/ubuntu/+source/xz-utils/+bug/1291020 10660 10661 src/xz/list.c | 16 ++++++++++++++-- 10662 1 file changed, 14 insertions(+), 2 deletions(-) 10663 10664commit 0668907ff736e4cd16738c10d39a2bc9e851aefb 10665Author: Lasse Collin <lasse.collin@tukaani.org> 10666Date: 2024-02-14 14:58:36 +0200 10667 10668 liblzma: Add comments. 10669 10670 src/liblzma/lzma/lzma_decoder.c | 9 +++++++++ 10671 src/liblzma/rangecoder/range_decoder.h | 11 +++++++++-- 10672 2 files changed, 18 insertions(+), 2 deletions(-) 10673 10674commit 109f1913d4824c8214d5bbd38ebebf62c37572da 10675Author: Lasse Collin <lasse.collin@tukaani.org> 10676Date: 2024-02-13 17:00:17 +0200 10677 10678 Scripts: Add lz4 support to xzgrep and xzdiff. 10679 10680 src/scripts/xzdiff.1 | 8 +++++--- 10681 src/scripts/xzdiff.in | 14 +++++++++----- 10682 src/scripts/xzgrep.1 | 6 ++++-- 10683 src/scripts/xzgrep.in | 1 + 10684 4 files changed, 19 insertions(+), 10 deletions(-) 10685 10686commit de55485cb23af56c5adbe3239b935c957ff8ac4f 10687Author: Lasse Collin <lasse.collin@tukaani.org> 10688Date: 2024-02-13 14:05:13 +0200 10689 10690 liblzma: Choose the range decoder variants using a bitmask macro. 10691 10692 src/liblzma/rangecoder/range_decoder.h | 64 ++++++++++++++++++++++++++++------ 10693 1 file changed, 53 insertions(+), 11 deletions(-) 10694 10695commit 0709c2b2d7c1d8f437b003f691880fd7810e5be5 10696Author: Lasse Collin <lasse.collin@tukaani.org> 10697Date: 2024-02-13 11:38:10 +0200 10698 10699 xz: Fix outdated threading related info on the man page. 10700 10701 src/xz/xz.1 | 22 ++++++++++++++-------- 10702 1 file changed, 14 insertions(+), 8 deletions(-) 10703 10704commit 3182a330c1512cc1f5c87b5c5a272578e60a5158 10705Author: Lasse Collin <lasse.collin@tukaani.org> 10706Date: 2024-02-12 17:09:10 +0200 10707 10708 liblzma: Range decoder: Add x86-64 inline assembly. 10709 10710 It's compatible with GCC and Clang. 10711 10712 src/liblzma/rangecoder/range_decoder.h | 491 +++++++++++++++++++++++++++++++++ 10713 1 file changed, 491 insertions(+) 10714 10715commit cba2edc991dffba7cd4891dbc1bd26cb950cf053 10716Author: Lasse Collin <lasse.collin@tukaani.org> 10717Date: 2024-02-12 17:09:10 +0200 10718 10719 liblzma: Range decoder: Add branchless C code. 10720 10721 It's used only for basic bittrees and fixed-size reverse bittree 10722 because those showed a clear benefit on x86-64 with GCC and Clang. 10723 The other methods were more mixed and thus are commented out but 10724 they should be tested on other archs. 10725 10726 src/liblzma/rangecoder/range_decoder.h | 76 ++++++++++++++++++++++++++++++++++ 10727 1 file changed, 76 insertions(+) 10728 10729commit e290a72d6dee71faf3a90c9678b2f730083666a7 10730Author: Lasse Collin <lasse.collin@tukaani.org> 10731Date: 2024-02-12 17:09:10 +0200 10732 10733 liblzma: Clarify a comment. 10734 10735 src/liblzma/lzma/lzma_decoder.c | 9 ++++++--- 10736 1 file changed, 6 insertions(+), 3 deletions(-) 10737 10738commit 5e04706b91ca90d6befd4da24a588a55e631d4a9 10739Author: Lasse Collin <lasse.collin@tukaani.org> 10740Date: 2024-02-12 17:09:10 +0200 10741 10742 liblzma: LZMA decoder: Optimize loop comparison. 10743 10744 But now it needs one more local variable. 10745 10746 src/liblzma/lzma/lzma_decoder.c | 5 ++--- 10747 src/liblzma/rangecoder/range_decoder.h | 10 +++++++++- 10748 2 files changed, 11 insertions(+), 4 deletions(-) 10749 10750commit 88276f9f2cb4871c7eb86952d93d07c1cf6caa66 10751Author: Lasse Collin <lasse.collin@tukaani.org> 10752Date: 2024-02-12 17:09:10 +0200 10753 10754 liblzma: Optimize literal_subcoder() macro slightly. 10755 10756 src/liblzma/lzma/lzma_common.h | 22 ++++++++++++---------- 10757 src/liblzma/lzma/lzma_decoder.c | 12 ++++++------ 10758 src/liblzma/lzma/lzma_encoder.c | 6 +++--- 10759 src/liblzma/lzma/lzma_encoder_optimum_normal.c | 2 +- 10760 src/liblzma/lzma/lzma_encoder_private.h | 4 ++-- 10761 5 files changed, 24 insertions(+), 22 deletions(-) 10762 10763commit 5938f6de4d8ec9656776cd69e78ddfd6c3ad84e5 10764Author: Lasse Collin <lasse.collin@tukaani.org> 10765Date: 2024-02-12 17:09:10 +0200 10766 10767 liblzma: LZ decoder: Add unlikely(). 10768 10769 src/liblzma/lz/lz_decoder.h | 2 +- 10770 1 file changed, 1 insertion(+), 1 deletion(-) 10771 10772commit 9c252e3ed086c6b72590b2531586c42596d4a9d9 10773Author: Lasse Collin <lasse.collin@tukaani.org> 10774Date: 2024-02-12 17:09:10 +0200 10775 10776 liblzma: LZ decoder: Remove a useless unlikely(). 10777 10778 src/liblzma/lz/lz_decoder.h | 2 +- 10779 1 file changed, 1 insertion(+), 1 deletion(-) 10780 10781commit f3872a59475456c5d365cad9f1c5be514cfa54b5 10782Author: Lasse Collin <lasse.collin@tukaani.org> 10783Date: 2024-02-12 17:09:10 +0200 10784 10785 liblzma: Optimize LZ decoder slightly. 10786 10787 Now extra buffer space is reserved so that repeating bytes for 10788 any single match will never need to copy from two places (both 10789 the beginning and the end of the buffer). This simplifies 10790 dict_repeat() and helps a little with speed. 10791 10792 This seems to reduce .lzma decompression time about 2 %, so 10793 with .xz and CRC it could be slightly less. The small things 10794 add up still. 10795 10796 src/liblzma/lz/lz_decoder.c | 43 ++++++++++++----- 10797 src/liblzma/lz/lz_decoder.h | 101 +++++++++++++++++++++------------------- 10798 src/liblzma/lzma/lzma_decoder.c | 4 +- 10799 3 files changed, 88 insertions(+), 60 deletions(-) 10800 10801commit eb518446e578acf079abae5f1ce28db7b6e59bc1 10802Author: Lasse Collin <lasse.collin@tukaani.org> 10803Date: 2024-02-12 17:09:10 +0200 10804 10805 liblzma: LZMA decoder: Get rid of next_state[]. 10806 10807 It's not completely obvious if this is better in the decoder. 10808 It should be good if compiler can avoid creating a branch 10809 (like using CMOV on x86). 10810 10811 This also makes lzma_encoder.c use the new macros. 10812 10813 src/liblzma/lzma/lzma_common.h | 14 ++++++++++++++ 10814 src/liblzma/lzma/lzma_decoder.c | 30 ++++++++---------------------- 10815 src/liblzma/lzma/lzma_encoder.c | 4 ++-- 10816 3 files changed, 24 insertions(+), 24 deletions(-) 10817 10818commit e0c0ee475c0800c08291ae45e0d66aa00d5ce604 10819Author: Lasse Collin <lasse.collin@tukaani.org> 10820Date: 2024-02-12 17:09:10 +0200 10821 10822 liblzma: LZMA decoder improvements. 10823 10824 This adds macros for bittree decoding which prepares the code 10825 for alternative C versions and inline assembly. 10826 10827 src/liblzma/lzma/lzma_decoder.c | 264 ++++++++++----------------------- 10828 src/liblzma/rangecoder/range_common.h | 4 + 10829 src/liblzma/rangecoder/range_decoder.h | 142 ++++++++++++++++-- 10830 3 files changed, 210 insertions(+), 200 deletions(-) 10831 10832commit de5c5e417645ad8906ef914bc059d08c1462fc29 10833Author: Jia Tan <jiat0218@gmail.com> 10834Date: 2024-02-12 17:09:10 +0200 10835 10836 liblzma: Creates Non-resumable and Resumable modes for lzma_decoder. 10837 10838 The new decoder resumes the first decoder loop in the Resumable mode. 10839 Then, the code executes in Non-resumable mode until it detects that it 10840 cannot guarantee to have enough input/output to decode another symbol. 10841 10842 The Resumable mode is how the decoder has always worked. Before decoding 10843 every input bit, it checks if there is enough space and will save its 10844 location to be resumed later. When the decoder has more input/output, 10845 it jumps back to the correct sequence in the Resumable mode code. 10846 10847 When the input/output buffers are large, the Resumable mode is much 10848 slower than the Non-resumable because it has more branches and is harder 10849 for the compiler to optimize since it is in a large switch block. 10850 10851 Early benchmarking shows significant time improvement (8-10% on gcc and 10852 clang x86) by using the Non-resumable code as much as possible. 10853 10854 src/liblzma/lz/lz_decoder.h | 14 +- 10855 src/liblzma/lzma/lzma_decoder.c | 720 ++++++++++++++++++++++++++++------------ 10856 2 files changed, 521 insertions(+), 213 deletions(-) 10857 10858commit e446ab7a18abfde18f8d1cf02a914df72b1370e3 10859Author: Jia Tan <jiat0218@gmail.com> 10860Date: 2024-02-12 17:09:10 +0200 10861 10862 liblzma: Creates separate "safe" range decoder mode. 10863 10864 The new "safe" range decoder mode is the same as old range decoder, but 10865 now the default behavior of the range decoder will not check if there is 10866 enough input or output to complete the operation. When the buffers are 10867 close to fully consumed, the "safe" operations must be used instead. This 10868 will improve speed because it will reduce the number of branches needed 10869 for most of the range decoder operations. 10870 10871 src/liblzma/lzma/lzma_decoder.c | 108 ++++++++------------------------- 10872 src/liblzma/rangecoder/range_decoder.h | 77 +++++++++++++++++------ 10873 2 files changed, 82 insertions(+), 103 deletions(-) 10874 10875commit 7f6d9ca329ff3e01d4b0be7366eb4f5c93da41b9 10876Author: Lasse Collin <lasse.collin@tukaani.org> 10877Date: 2024-02-12 17:09:10 +0200 10878 10879 doxygen/footer.html: Add missing closing tags and don't open a new tab. 10880 10881 The footer template from Doxygen has the closing </body> </html> 10882 as Doxygen doesn't add them otherwise. 10883 10884 target="_blank" was omitted as it's not useful here but 10885 it can be slightly annoying as one cannot just go back 10886 in the browser history. 10887 10888 Since the footer links to the license file in the same 10889 directory and not to CC website, the rel attributes 10890 can be omitted. 10891 10892 doxygen/footer.html | 6 ++++-- 10893 1 file changed, 4 insertions(+), 2 deletions(-) 10894 10895commit 26d1527d34d52b0f5d632d4fb636fb33d0867e92 10896Author: Lasse Collin <lasse.collin@tukaani.org> 10897Date: 2024-02-13 13:19:10 +0200 10898 10899 Tweak the expressions in AUTHORS. 10900 10901 AUTHORS | 31 +++++++++++++++++++++++-------- 10902 1 file changed, 23 insertions(+), 8 deletions(-) 10903 10904commit d231d56580175fa040fdd3c6207a58243ce6217b 10905Author: Lasse Collin <lasse.collin@tukaani.org> 10906Date: 2024-02-13 13:07:33 +0200 10907 10908 Translations: Add the man page translators into man page header comment. 10909 10910 It looked odd to only have the original English authors listed 10911 in the header comments of the translated files. 10912 10913 po4a/.gitignore | 1 + 10914 po4a/po4a.conf | 14 +++++++------- 10915 po4a/update-po | 18 ++++++++++++++++++ 10916 3 files changed, 26 insertions(+), 7 deletions(-) 10917 10918commit 6d35fcb936474fca1acaebfd9502c097b6fde88e 10919Author: Lasse Collin <lasse.collin@tukaani.org> 10920Date: 2024-02-12 17:09:10 +0200 10921 10922 Translations: Translate also messages of lzmainfo. 10923 10924 lzmainfo has had translation support since 2009 at least but 10925 it was never added to po/POTFILES.in so the messages weren't 10926 translated. It's a very rarely needed tool so it's not too bad. 10927 10928 This also adds src/xz/mytime.c to po/POTFILES.in although there 10929 are no translatable strings. It's simpler this way so that it 10930 won't be forgotten if strings were ever added to that file. 10931 10932 po/POTFILES.in | 2 ++ 10933 1 file changed, 2 insertions(+) 10934 10935commit a9f369dd54b05f9ac4e00ead9d765d04fc259868 10936Author: Lasse Collin <lasse.collin@tukaani.org> 10937Date: 2024-02-12 17:09:10 +0200 10938 10939 Translations: Add custom .pot header with SPDX license identifier. 10940 10941 The same is used for both po/xz.pot and po4a/xz-man.pot. 10942 10943 Makefile.am | 1 + 10944 po/xz.pot-header | 7 +++++++ 10945 po4a/update-po | 8 ++++++++ 10946 3 files changed, 16 insertions(+) 10947 10948commit 469cd6653bb96e83c5cf1031c204d34566b15f44 10949Author: Lasse Collin <lasse.collin@tukaani.org> 10950Date: 2024-02-12 17:09:10 +0200 10951 10952 Translations: po4a/update-po: Add copyright notice to xz-man.pot. 10953 10954 All man pages are under 0BSD now so this is simple now. 10955 10956 po4a/update-po | 2 +- 10957 1 file changed, 1 insertion(+), 1 deletion(-) 10958 10959commit 28ce45e38fbed4b5f54f2013e38dab47d22bf699 10960Author: Lasse Collin <lasse.collin@tukaani.org> 10961Date: 2024-02-12 17:09:10 +0200 10962 10963 Update COPYING about the man pages of the scripts. 10964 10965 COPYING | 6 +++--- 10966 1 file changed, 3 insertions(+), 3 deletions(-) 10967 10968commit e48287bf51afd5184ea74de1dcade9e153f873f7 10969Author: Lasse Collin <lasse.collin@tukaani.org> 10970Date: 2024-02-12 17:09:10 +0200 10971 10972 xzdiff, xzgrep, and xzmore: Rewrite the man pages. 10973 10974 The main reason is a kind of silly one: 10975 10976 xz-man.pot contains strings from all man pages in XZ Utils. 10977 The man pages of xzdiff, xzgrep, and xzmore were under GPLv2 10978 and the rest under 0BSD. Thus xz-man.pot contained strings 10979 under two licences. po4a creates the translated man pages 10980 from the combined 0BSD+GPLv2 xz-man.pot. 10981 10982 I haven't liked this mixing in xz-man.pot but the 10983 Translation Project requires that all man pages must be 10984 in the same .pot file. So a separate xz-man-gpl.pot 10985 wasn't an option. 10986 10987 Since these man pages are short, rewriting them was quick enough. 10988 Now xz-man.pot is entirely under 0BSD and marking the per-file 10989 licenses is simpler. 10990 10991 As a bonus, some wording hopefully is now slightly better 10992 although it's perhaps a matter of taste. 10993 10994 NOTE: In xzgrep.1, the EXIT STATUS section was written by me 10995 in the commit d796b6d7fdb8b7238b277056cf9146cce25db604 so that's 10996 why that section could be taken as is from the old xzgrep.1. 10997 10998 src/scripts/xzdiff.1 | 94 ++++++++++++++++++++++++----------------- 10999 src/scripts/xzgrep.1 | 116 ++++++++++++++++++++++++++++++++------------------- 11000 src/scripts/xzmore.1 | 79 ++++++++++++++++++++--------------- 11001 3 files changed, 173 insertions(+), 116 deletions(-) 11002 11003commit 3e551b111b8ae8150f1a1040364dbafc034f22be 11004Author: Lasse Collin <lasse.collin@tukaani.org> 11005Date: 2024-02-12 17:09:10 +0200 11006 11007 xzless: Update man page slightly. 11008 11009 The xz tool can decompress three file formats and xzless 11010 has always supported uncompressed files too. 11011 11012 src/scripts/xzless.1 | 8 ++++---- 11013 1 file changed, 4 insertions(+), 4 deletions(-) 11014 11015commit 40f36da2262d13d6e1ba8449caa855512ae626d7 11016Author: Lasse Collin <lasse.collin@tukaani.org> 11017Date: 2024-02-12 17:09:10 +0200 11018 11019 Translations: Change po/Makevars to add a copyright notice to po/xz.pot. 11020 11021 po/Makevars | 4 ++-- 11022 1 file changed, 2 insertions(+), 2 deletions(-) 11023 11024commit 24192854e2ea5c06997431a98bda3c36c5da1497 11025Author: Lasse Collin <lasse.collin@tukaani.org> 11026Date: 2024-02-12 17:09:10 +0200 11027 11028 Translations: Update po/Makevars to use the template from gettext 0.22.4. 11029 11030 Also add SPDX license identifier now that there is a known license. 11031 11032 po/Makevars | 51 ++++++++++++++++++++++++++++++++++++++++++++++----- 11033 1 file changed, 46 insertions(+), 5 deletions(-) 11034 11035commit b94154957370116480b43bcabca25fc52deb9853 11036Author: Lasse Collin <lasse.collin@tukaani.org> 11037Date: 2024-02-12 17:09:10 +0200 11038 11039 liblzma: Include the SPDX license identifier 0BSD to generated files. 11040 11041 Perhaps the generated files aren't even copyrightable but 11042 using the same license for them as for the rest of the liblzma 11043 keeps things more consistent for tools that look for license info. 11044 11045 src/liblzma/check/crc32_table_be.h | 4 +++- 11046 src/liblzma/check/crc32_table_le.h | 4 +++- 11047 src/liblzma/check/crc32_tablegen.c | 16 ++++++++++------ 11048 src/liblzma/check/crc64_table_be.h | 4 +++- 11049 src/liblzma/check/crc64_table_le.h | 4 +++- 11050 src/liblzma/check/crc64_tablegen.c | 8 +++++--- 11051 src/liblzma/lz/lz_encoder_hash_table.h | 4 +++- 11052 src/liblzma/lzma/fastpos_table.c | 4 +++- 11053 src/liblzma/lzma/fastpos_tablegen.c | 12 +++++++----- 11054 src/liblzma/rangecoder/price_table.c | 4 +++- 11055 src/liblzma/rangecoder/price_tablegen.c | 12 +++++++----- 11056 11 files changed, 50 insertions(+), 26 deletions(-) 11057 11058commit 8e4ec794836bc1701d8c9bd5e347b8ce8cc5bbb4 11059Author: Lasse Collin <lasse.collin@tukaani.org> 11060Date: 2024-02-12 17:09:10 +0200 11061 11062 liblzma: Fix compilation of price_tablegen.c. 11063 11064 It is built and run only manually so this didn't matter 11065 unless one wanted to regenerate the price_table.c. 11066 11067 src/liblzma/rangecoder/price_tablegen.c | 5 +++++ 11068 src/liblzma/rangecoder/range_common.h | 5 ++++- 11069 2 files changed, 9 insertions(+), 1 deletion(-) 11070 11071commit e99bff3ffbcdf2634fd5bd13887627ec7dbfecaf 11072Author: Lasse Collin <lasse.collin@tukaani.org> 11073Date: 2024-02-12 17:09:10 +0200 11074 11075 Add SPDX license identifiers to GPL, LGPL, and FSFULLR files. 11076 11077 extra/scanlzma/scanlzma.c | 2 ++ 11078 lib/Makefile.am | 2 ++ 11079 lib/getopt-cdefs.h | 2 ++ 11080 lib/getopt-core.h | 2 ++ 11081 lib/getopt-ext.h | 2 ++ 11082 lib/getopt-pfx-core.h | 2 ++ 11083 lib/getopt-pfx-ext.h | 2 ++ 11084 lib/getopt.c | 2 ++ 11085 lib/getopt.in.h | 2 ++ 11086 lib/getopt1.c | 2 ++ 11087 lib/getopt_int.h | 2 ++ 11088 m4/ax_pthread.m4 | 2 ++ 11089 m4/getopt.m4 | 2 ++ 11090 m4/posix-shell.m4 | 2 ++ 11091 m4/visibility.m4 | 2 ++ 11092 src/scripts/xzdiff.1 | 3 +-- 11093 src/scripts/xzdiff.in | 1 + 11094 src/scripts/xzgrep.1 | 3 +-- 11095 src/scripts/xzgrep.in | 1 + 11096 src/scripts/xzless.in | 1 + 11097 src/scripts/xzmore.1 | 3 +-- 11098 src/scripts/xzmore.in | 1 + 11099 22 files changed, 37 insertions(+), 6 deletions(-) 11100 11101commit 22af94128b89a131f5e58ae69bee5e50227c15da 11102Author: Lasse Collin <lasse.collin@tukaani.org> 11103Date: 2024-02-12 17:09:10 +0200 11104 11105 Add SPDX license identifier into 0BSD source code files. 11106 11107 .github/workflows/ci.yml | 2 ++ 11108 .github/workflows/windows-ci.yml | 2 ++ 11109 CMakeLists.txt | 2 ++ 11110 Makefile.am | 3 +-- 11111 autogen.sh | 1 + 11112 build-aux/ci_build.sh | 3 ++- 11113 build-aux/manconv.sh | 3 ++- 11114 build-aux/version.sh | 3 ++- 11115 cmake/remove-ordinals.cmake | 2 ++ 11116 cmake/tuklib_common.cmake | 4 ++++ 11117 cmake/tuklib_cpucores.cmake | 4 ++++ 11118 cmake/tuklib_integer.cmake | 4 ++++ 11119 cmake/tuklib_large_file_support.cmake | 4 ++++ 11120 cmake/tuklib_mbstr.cmake | 4 ++++ 11121 cmake/tuklib_physmem.cmake | 4 ++++ 11122 cmake/tuklib_progname.cmake | 4 ++++ 11123 configure.ac | 4 +++- 11124 debug/Makefile.am | 3 +-- 11125 debug/crc32.c | 2 ++ 11126 debug/full_flush.c | 2 ++ 11127 debug/hex2bin.c | 2 ++ 11128 debug/known_sizes.c | 2 ++ 11129 debug/memusage.c | 2 ++ 11130 debug/repeat.c | 2 ++ 11131 debug/sync_flush.c | 2 ++ 11132 debug/translation.bash | 1 + 11133 doc/examples/01_compress_easy.c | 2 ++ 11134 doc/examples/02_decompress.c | 2 ++ 11135 doc/examples/03_compress_custom.c | 2 ++ 11136 doc/examples/04_compress_easy_mt.c | 2 ++ 11137 doc/examples/11_file_info.c | 2 ++ 11138 doc/examples/Makefile | 3 +-- 11139 dos/Makefile | 2 ++ 11140 dos/config.h | 2 ++ 11141 doxygen/update-doxygen | 3 ++- 11142 extra/7z2lzma/7z2lzma.bash | 3 ++- 11143 m4/tuklib_common.m4 | 8 ++++++-- 11144 m4/tuklib_cpucores.m4 | 8 ++++++-- 11145 m4/tuklib_integer.m4 | 8 ++++++-- 11146 m4/tuklib_mbstr.m4 | 8 ++++++-- 11147 m4/tuklib_physmem.m4 | 8 ++++++-- 11148 m4/tuklib_progname.m4 | 8 ++++++-- 11149 po/POTFILES.in | 2 ++ 11150 po4a/po4a.conf | 2 ++ 11151 po4a/update-po | 3 ++- 11152 src/Makefile.am | 3 +-- 11153 src/common/common_w32res.rc | 2 ++ 11154 src/common/mythread.h | 2 ++ 11155 src/common/sysdefs.h | 2 ++ 11156 src/common/tuklib_common.h | 2 ++ 11157 src/common/tuklib_config.h | 2 ++ 11158 src/common/tuklib_cpucores.c | 2 ++ 11159 src/common/tuklib_cpucores.h | 2 ++ 11160 src/common/tuklib_exit.c | 2 ++ 11161 src/common/tuklib_exit.h | 2 ++ 11162 src/common/tuklib_gettext.h | 2 ++ 11163 src/common/tuklib_integer.h | 2 ++ 11164 src/common/tuklib_mbstr.h | 2 ++ 11165 src/common/tuklib_mbstr_fw.c | 2 ++ 11166 src/common/tuklib_mbstr_width.c | 2 ++ 11167 src/common/tuklib_open_stdxxx.c | 2 ++ 11168 src/common/tuklib_open_stdxxx.h | 2 ++ 11169 src/common/tuklib_physmem.c | 2 ++ 11170 src/common/tuklib_physmem.h | 2 ++ 11171 src/common/tuklib_progname.c | 2 ++ 11172 src/common/tuklib_progname.h | 2 ++ 11173 src/liblzma/Makefile.am | 3 +-- 11174 src/liblzma/api/Makefile.am | 3 +-- 11175 src/liblzma/api/lzma.h | 2 ++ 11176 src/liblzma/api/lzma/base.h | 2 ++ 11177 src/liblzma/api/lzma/bcj.h | 2 ++ 11178 src/liblzma/api/lzma/block.h | 2 ++ 11179 src/liblzma/api/lzma/check.h | 2 ++ 11180 src/liblzma/api/lzma/container.h | 2 ++ 11181 src/liblzma/api/lzma/delta.h | 2 ++ 11182 src/liblzma/api/lzma/filter.h | 2 ++ 11183 src/liblzma/api/lzma/hardware.h | 2 ++ 11184 src/liblzma/api/lzma/index.h | 2 ++ 11185 src/liblzma/api/lzma/index_hash.h | 2 ++ 11186 src/liblzma/api/lzma/lzma12.h | 2 ++ 11187 src/liblzma/api/lzma/stream_flags.h | 2 ++ 11188 src/liblzma/api/lzma/version.h | 2 ++ 11189 src/liblzma/api/lzma/vli.h | 2 ++ 11190 src/liblzma/check/Makefile.inc | 4 ++-- 11191 src/liblzma/check/check.c | 2 ++ 11192 src/liblzma/check/check.h | 2 ++ 11193 src/liblzma/check/crc32_arm64.h | 2 ++ 11194 src/liblzma/check/crc32_fast.c | 2 ++ 11195 src/liblzma/check/crc32_small.c | 2 ++ 11196 src/liblzma/check/crc32_table.c | 2 ++ 11197 src/liblzma/check/crc32_tablegen.c | 2 ++ 11198 src/liblzma/check/crc32_x86.S | 2 ++ 11199 src/liblzma/check/crc64_fast.c | 2 ++ 11200 src/liblzma/check/crc64_small.c | 2 ++ 11201 src/liblzma/check/crc64_table.c | 2 ++ 11202 src/liblzma/check/crc64_tablegen.c | 2 ++ 11203 src/liblzma/check/crc64_x86.S | 2 ++ 11204 src/liblzma/check/crc_common.h | 2 ++ 11205 src/liblzma/check/crc_x86_clmul.h | 2 ++ 11206 src/liblzma/check/sha256.c | 2 ++ 11207 src/liblzma/common/Makefile.inc | 3 +-- 11208 src/liblzma/common/alone_decoder.c | 2 ++ 11209 src/liblzma/common/alone_decoder.h | 2 ++ 11210 src/liblzma/common/alone_encoder.c | 2 ++ 11211 src/liblzma/common/auto_decoder.c | 2 ++ 11212 src/liblzma/common/block_buffer_decoder.c | 2 ++ 11213 src/liblzma/common/block_buffer_encoder.c | 2 ++ 11214 src/liblzma/common/block_buffer_encoder.h | 2 ++ 11215 src/liblzma/common/block_decoder.c | 2 ++ 11216 src/liblzma/common/block_decoder.h | 2 ++ 11217 src/liblzma/common/block_encoder.c | 2 ++ 11218 src/liblzma/common/block_encoder.h | 2 ++ 11219 src/liblzma/common/block_header_decoder.c | 2 ++ 11220 src/liblzma/common/block_header_encoder.c | 2 ++ 11221 src/liblzma/common/block_util.c | 2 ++ 11222 src/liblzma/common/common.c | 2 ++ 11223 src/liblzma/common/common.h | 2 ++ 11224 src/liblzma/common/easy_buffer_encoder.c | 2 ++ 11225 src/liblzma/common/easy_decoder_memusage.c | 2 ++ 11226 src/liblzma/common/easy_encoder.c | 2 ++ 11227 src/liblzma/common/easy_encoder_memusage.c | 2 ++ 11228 src/liblzma/common/easy_preset.c | 2 ++ 11229 src/liblzma/common/easy_preset.h | 2 ++ 11230 src/liblzma/common/file_info.c | 2 ++ 11231 src/liblzma/common/filter_buffer_decoder.c | 2 ++ 11232 src/liblzma/common/filter_buffer_encoder.c | 2 ++ 11233 src/liblzma/common/filter_common.c | 2 ++ 11234 src/liblzma/common/filter_common.h | 2 ++ 11235 src/liblzma/common/filter_decoder.c | 2 ++ 11236 src/liblzma/common/filter_decoder.h | 2 ++ 11237 src/liblzma/common/filter_encoder.c | 2 ++ 11238 src/liblzma/common/filter_encoder.h | 2 ++ 11239 src/liblzma/common/filter_flags_decoder.c | 2 ++ 11240 src/liblzma/common/filter_flags_encoder.c | 2 ++ 11241 src/liblzma/common/hardware_cputhreads.c | 2 ++ 11242 src/liblzma/common/hardware_physmem.c | 2 ++ 11243 src/liblzma/common/index.c | 2 ++ 11244 src/liblzma/common/index.h | 2 ++ 11245 src/liblzma/common/index_decoder.c | 2 ++ 11246 src/liblzma/common/index_decoder.h | 2 ++ 11247 src/liblzma/common/index_encoder.c | 2 ++ 11248 src/liblzma/common/index_encoder.h | 2 ++ 11249 src/liblzma/common/index_hash.c | 2 ++ 11250 src/liblzma/common/lzip_decoder.c | 2 ++ 11251 src/liblzma/common/lzip_decoder.h | 2 ++ 11252 src/liblzma/common/memcmplen.h | 2 ++ 11253 src/liblzma/common/microlzma_decoder.c | 2 ++ 11254 src/liblzma/common/microlzma_encoder.c | 2 ++ 11255 src/liblzma/common/outqueue.c | 2 ++ 11256 src/liblzma/common/outqueue.h | 2 ++ 11257 src/liblzma/common/stream_buffer_decoder.c | 2 ++ 11258 src/liblzma/common/stream_buffer_encoder.c | 2 ++ 11259 src/liblzma/common/stream_decoder.c | 2 ++ 11260 src/liblzma/common/stream_decoder.h | 2 ++ 11261 src/liblzma/common/stream_decoder_mt.c | 2 ++ 11262 src/liblzma/common/stream_encoder.c | 2 ++ 11263 src/liblzma/common/stream_encoder_mt.c | 2 ++ 11264 src/liblzma/common/stream_flags_common.c | 2 ++ 11265 src/liblzma/common/stream_flags_common.h | 2 ++ 11266 src/liblzma/common/stream_flags_decoder.c | 2 ++ 11267 src/liblzma/common/stream_flags_encoder.c | 2 ++ 11268 src/liblzma/common/string_conversion.c | 2 ++ 11269 src/liblzma/common/vli_decoder.c | 2 ++ 11270 src/liblzma/common/vli_encoder.c | 2 ++ 11271 src/liblzma/common/vli_size.c | 2 ++ 11272 src/liblzma/delta/Makefile.inc | 3 +-- 11273 src/liblzma/delta/delta_common.c | 2 ++ 11274 src/liblzma/delta/delta_common.h | 2 ++ 11275 src/liblzma/delta/delta_decoder.c | 2 ++ 11276 src/liblzma/delta/delta_decoder.h | 2 ++ 11277 src/liblzma/delta/delta_encoder.c | 2 ++ 11278 src/liblzma/delta/delta_encoder.h | 2 ++ 11279 src/liblzma/delta/delta_private.h | 2 ++ 11280 src/liblzma/liblzma.pc.in | 3 +-- 11281 src/liblzma/liblzma_generic.map | 2 ++ 11282 src/liblzma/liblzma_linux.map | 2 ++ 11283 src/liblzma/liblzma_w32res.rc | 2 ++ 11284 src/liblzma/lz/Makefile.inc | 3 +-- 11285 src/liblzma/lz/lz_decoder.c | 2 ++ 11286 src/liblzma/lz/lz_decoder.h | 2 ++ 11287 src/liblzma/lz/lz_encoder.c | 2 ++ 11288 src/liblzma/lz/lz_encoder.h | 2 ++ 11289 src/liblzma/lz/lz_encoder_hash.h | 2 ++ 11290 src/liblzma/lz/lz_encoder_mf.c | 2 ++ 11291 src/liblzma/lzma/Makefile.inc | 3 +-- 11292 src/liblzma/lzma/fastpos.h | 2 ++ 11293 src/liblzma/lzma/fastpos_tablegen.c | 2 ++ 11294 src/liblzma/lzma/lzma2_decoder.c | 2 ++ 11295 src/liblzma/lzma/lzma2_decoder.h | 2 ++ 11296 src/liblzma/lzma/lzma2_encoder.c | 2 ++ 11297 src/liblzma/lzma/lzma2_encoder.h | 2 ++ 11298 src/liblzma/lzma/lzma_common.h | 2 ++ 11299 src/liblzma/lzma/lzma_decoder.c | 2 ++ 11300 src/liblzma/lzma/lzma_decoder.h | 2 ++ 11301 src/liblzma/lzma/lzma_encoder.c | 2 ++ 11302 src/liblzma/lzma/lzma_encoder.h | 2 ++ 11303 src/liblzma/lzma/lzma_encoder_optimum_fast.c | 2 ++ 11304 src/liblzma/lzma/lzma_encoder_optimum_normal.c | 2 ++ 11305 src/liblzma/lzma/lzma_encoder_presets.c | 2 ++ 11306 src/liblzma/lzma/lzma_encoder_private.h | 2 ++ 11307 src/liblzma/rangecoder/Makefile.inc | 3 +-- 11308 src/liblzma/rangecoder/price.h | 2 ++ 11309 src/liblzma/rangecoder/price_tablegen.c | 2 ++ 11310 src/liblzma/rangecoder/range_common.h | 2 ++ 11311 src/liblzma/rangecoder/range_decoder.h | 2 ++ 11312 src/liblzma/rangecoder/range_encoder.h | 2 ++ 11313 src/liblzma/simple/Makefile.inc | 3 +-- 11314 src/liblzma/simple/arm.c | 2 ++ 11315 src/liblzma/simple/arm64.c | 2 ++ 11316 src/liblzma/simple/armthumb.c | 2 ++ 11317 src/liblzma/simple/ia64.c | 2 ++ 11318 src/liblzma/simple/powerpc.c | 2 ++ 11319 src/liblzma/simple/riscv.c | 2 ++ 11320 src/liblzma/simple/simple_coder.c | 2 ++ 11321 src/liblzma/simple/simple_coder.h | 2 ++ 11322 src/liblzma/simple/simple_decoder.c | 2 ++ 11323 src/liblzma/simple/simple_decoder.h | 2 ++ 11324 src/liblzma/simple/simple_encoder.c | 2 ++ 11325 src/liblzma/simple/simple_encoder.h | 2 ++ 11326 src/liblzma/simple/simple_private.h | 2 ++ 11327 src/liblzma/simple/sparc.c | 2 ++ 11328 src/liblzma/simple/x86.c | 2 ++ 11329 src/liblzma/validate_map.sh | 1 + 11330 src/lzmainfo/Makefile.am | 3 +-- 11331 src/lzmainfo/lzmainfo.c | 2 ++ 11332 src/lzmainfo/lzmainfo_w32res.rc | 2 ++ 11333 src/scripts/Makefile.am | 3 +-- 11334 src/xz/Makefile.am | 3 +-- 11335 src/xz/args.c | 2 ++ 11336 src/xz/args.h | 2 ++ 11337 src/xz/coder.c | 2 ++ 11338 src/xz/coder.h | 2 ++ 11339 src/xz/file_io.c | 2 ++ 11340 src/xz/file_io.h | 2 ++ 11341 src/xz/hardware.c | 2 ++ 11342 src/xz/hardware.h | 2 ++ 11343 src/xz/list.c | 2 ++ 11344 src/xz/list.h | 2 ++ 11345 src/xz/main.c | 2 ++ 11346 src/xz/main.h | 2 ++ 11347 src/xz/message.c | 2 ++ 11348 src/xz/message.h | 2 ++ 11349 src/xz/mytime.c | 2 ++ 11350 src/xz/mytime.h | 2 ++ 11351 src/xz/options.c | 2 ++ 11352 src/xz/options.h | 2 ++ 11353 src/xz/private.h | 2 ++ 11354 src/xz/signals.c | 2 ++ 11355 src/xz/signals.h | 2 ++ 11356 src/xz/suffix.c | 2 ++ 11357 src/xz/suffix.h | 2 ++ 11358 src/xz/util.c | 2 ++ 11359 src/xz/util.h | 2 ++ 11360 src/xz/xz_w32res.rc | 2 ++ 11361 src/xzdec/Makefile.am | 3 +-- 11362 src/xzdec/lzmadec_w32res.rc | 2 ++ 11363 src/xzdec/xzdec.c | 2 ++ 11364 src/xzdec/xzdec_w32res.rc | 2 ++ 11365 tests/Makefile.am | 3 +-- 11366 tests/bcj_test.c | 2 ++ 11367 tests/code_coverage.sh | 1 + 11368 tests/create_compress_files.c | 2 ++ 11369 tests/ossfuzz/fuzz_common.h | 2 ++ 11370 tests/ossfuzz/fuzz_decode_alone.c | 2 ++ 11371 tests/ossfuzz/fuzz_decode_stream.c | 2 ++ 11372 tests/ossfuzz/fuzz_encode_stream.c | 2 ++ 11373 tests/test_bcj_exact_size.c | 2 ++ 11374 tests/test_block_header.c | 2 ++ 11375 tests/test_check.c | 2 ++ 11376 tests/test_compress.sh | 1 + 11377 tests/test_compress_generated_abc | 1 + 11378 tests/test_compress_generated_random | 1 + 11379 tests/test_compress_generated_text | 1 + 11380 tests/test_compress_prepared_bcj_sparc | 1 + 11381 tests/test_compress_prepared_bcj_x86 | 1 + 11382 tests/test_files.sh | 1 + 11383 tests/test_filter_flags.c | 2 ++ 11384 tests/test_filter_str.c | 2 ++ 11385 tests/test_hardware.c | 2 ++ 11386 tests/test_index.c | 2 ++ 11387 tests/test_index_hash.c | 2 ++ 11388 tests/test_lzip_decoder.c | 2 ++ 11389 tests/test_memlimit.c | 2 ++ 11390 tests/test_scripts.sh | 1 + 11391 tests/test_stream_flags.c | 2 ++ 11392 tests/test_suffix.sh | 1 + 11393 tests/test_vli.c | 2 ++ 11394 tests/tests.h | 2 ++ 11395 tests/tuktest.h | 2 ++ 11396 windows/build.bash | 3 ++- 11397 290 files changed, 588 insertions(+), 58 deletions(-) 11398 11399commit 23de53421ea258cde6a3c33a038b1e9d08f771d1 11400Author: Lasse Collin <lasse.collin@tukaani.org> 11401Date: 2024-02-12 23:25:54 +0200 11402 11403 liblzma: Sync the AUTHORS fix about SHA-256 to lzma.h. 11404 11405 src/liblzma/api/lzma.h | 10 ++++------ 11406 1 file changed, 4 insertions(+), 6 deletions(-) 11407 11408commit 689e0228baeb95232430e90d628379db89583d71 11409Author: Lasse Collin <lasse.collin@tukaani.org> 11410Date: 2024-02-12 17:09:10 +0200 11411 11412 Change most public domain parts to 0BSD. 11413 11414 Translations and doc/xz-file-format.txt and doc/lzma-file-format.txt 11415 were not touched. 11416 11417 COPYING.0BSD was added. 11418 11419 .github/workflows/ci.yml | 3 - 11420 .github/workflows/windows-ci.yml | 3 - 11421 CMakeLists.txt | 3 - 11422 COPYING | 112 ++++++++++++++----------- 11423 COPYING.0BSD | 11 +++ 11424 Makefile.am | 3 - 11425 PACKAGERS | 11 +-- 11426 autogen.sh | 3 - 11427 build-aux/ci_build.sh | 3 - 11428 build-aux/manconv.sh | 3 - 11429 build-aux/version.sh | 3 - 11430 cmake/remove-ordinals.cmake | 3 - 11431 cmake/tuklib_common.cmake | 3 - 11432 cmake/tuklib_cpucores.cmake | 3 - 11433 cmake/tuklib_integer.cmake | 3 - 11434 cmake/tuklib_large_file_support.cmake | 3 - 11435 cmake/tuklib_mbstr.cmake | 3 - 11436 cmake/tuklib_physmem.cmake | 3 - 11437 cmake/tuklib_progname.cmake | 3 - 11438 configure.ac | 3 - 11439 debug/Makefile.am | 3 - 11440 debug/crc32.c | 3 - 11441 debug/full_flush.c | 3 - 11442 debug/hex2bin.c | 3 - 11443 debug/known_sizes.c | 3 - 11444 debug/memusage.c | 3 - 11445 debug/repeat.c | 3 - 11446 debug/sync_flush.c | 3 - 11447 debug/translation.bash | 3 - 11448 doc/examples/01_compress_easy.c | 3 - 11449 doc/examples/02_decompress.c | 3 - 11450 doc/examples/03_compress_custom.c | 3 - 11451 doc/examples/04_compress_easy_mt.c | 3 - 11452 doc/examples/11_file_info.c | 3 - 11453 doc/examples/Makefile | 3 - 11454 dos/Makefile | 3 - 11455 doxygen/update-doxygen | 3 - 11456 extra/7z2lzma/7z2lzma.bash | 3 - 11457 m4/tuklib_common.m4 | 3 - 11458 m4/tuklib_cpucores.m4 | 3 - 11459 m4/tuklib_integer.m4 | 3 - 11460 m4/tuklib_mbstr.m4 | 3 - 11461 m4/tuklib_physmem.m4 | 3 - 11462 m4/tuklib_progname.m4 | 3 - 11463 po4a/update-po | 3 - 11464 src/Makefile.am | 3 - 11465 src/common/common_w32res.rc | 3 - 11466 src/common/mythread.h | 3 - 11467 src/common/sysdefs.h | 3 - 11468 src/common/tuklib_common.h | 3 - 11469 src/common/tuklib_cpucores.c | 3 - 11470 src/common/tuklib_cpucores.h | 3 - 11471 src/common/tuklib_exit.c | 3 - 11472 src/common/tuklib_exit.h | 3 - 11473 src/common/tuklib_gettext.h | 3 - 11474 src/common/tuklib_integer.h | 3 - 11475 src/common/tuklib_mbstr.h | 3 - 11476 src/common/tuklib_mbstr_fw.c | 3 - 11477 src/common/tuklib_mbstr_width.c | 3 - 11478 src/common/tuklib_open_stdxxx.c | 3 - 11479 src/common/tuklib_open_stdxxx.h | 3 - 11480 src/common/tuklib_physmem.c | 3 - 11481 src/common/tuklib_physmem.h | 3 - 11482 src/common/tuklib_progname.c | 3 - 11483 src/common/tuklib_progname.h | 3 - 11484 src/liblzma/Makefile.am | 3 - 11485 src/liblzma/api/Makefile.am | 3 - 11486 src/liblzma/api/lzma.h | 13 ++- 11487 src/liblzma/api/lzma/base.h | 3 - 11488 src/liblzma/api/lzma/bcj.h | 3 - 11489 src/liblzma/api/lzma/block.h | 3 - 11490 src/liblzma/api/lzma/check.h | 3 - 11491 src/liblzma/api/lzma/container.h | 3 - 11492 src/liblzma/api/lzma/delta.h | 3 - 11493 src/liblzma/api/lzma/filter.h | 3 - 11494 src/liblzma/api/lzma/hardware.h | 3 - 11495 src/liblzma/api/lzma/index.h | 3 - 11496 src/liblzma/api/lzma/index_hash.h | 3 - 11497 src/liblzma/api/lzma/lzma12.h | 3 - 11498 src/liblzma/api/lzma/stream_flags.h | 3 - 11499 src/liblzma/api/lzma/version.h | 3 - 11500 src/liblzma/api/lzma/vli.h | 3 - 11501 src/liblzma/check/Makefile.inc | 3 - 11502 src/liblzma/check/check.c | 3 - 11503 src/liblzma/check/check.h | 3 - 11504 src/liblzma/check/crc32_arm64.h | 3 - 11505 src/liblzma/check/crc32_fast.c | 3 - 11506 src/liblzma/check/crc32_small.c | 3 - 11507 src/liblzma/check/crc32_table.c | 3 - 11508 src/liblzma/check/crc32_tablegen.c | 3 - 11509 src/liblzma/check/crc32_x86.S | 3 - 11510 src/liblzma/check/crc64_fast.c | 3 - 11511 src/liblzma/check/crc64_small.c | 3 - 11512 src/liblzma/check/crc64_table.c | 3 - 11513 src/liblzma/check/crc64_tablegen.c | 3 - 11514 src/liblzma/check/crc64_x86.S | 3 - 11515 src/liblzma/check/crc_common.h | 3 - 11516 src/liblzma/check/crc_x86_clmul.h | 3 - 11517 src/liblzma/check/sha256.c | 3 - 11518 src/liblzma/common/Makefile.inc | 3 - 11519 src/liblzma/common/alone_decoder.c | 3 - 11520 src/liblzma/common/alone_decoder.h | 3 - 11521 src/liblzma/common/alone_encoder.c | 3 - 11522 src/liblzma/common/auto_decoder.c | 3 - 11523 src/liblzma/common/block_buffer_decoder.c | 3 - 11524 src/liblzma/common/block_buffer_encoder.c | 3 - 11525 src/liblzma/common/block_buffer_encoder.h | 3 - 11526 src/liblzma/common/block_decoder.c | 3 - 11527 src/liblzma/common/block_decoder.h | 3 - 11528 src/liblzma/common/block_encoder.c | 3 - 11529 src/liblzma/common/block_encoder.h | 3 - 11530 src/liblzma/common/block_header_decoder.c | 3 - 11531 src/liblzma/common/block_header_encoder.c | 3 - 11532 src/liblzma/common/block_util.c | 3 - 11533 src/liblzma/common/common.c | 3 - 11534 src/liblzma/common/common.h | 3 - 11535 src/liblzma/common/easy_buffer_encoder.c | 3 - 11536 src/liblzma/common/easy_decoder_memusage.c | 3 - 11537 src/liblzma/common/easy_encoder.c | 3 - 11538 src/liblzma/common/easy_encoder_memusage.c | 3 - 11539 src/liblzma/common/easy_preset.c | 3 - 11540 src/liblzma/common/easy_preset.h | 3 - 11541 src/liblzma/common/file_info.c | 3 - 11542 src/liblzma/common/filter_buffer_decoder.c | 3 - 11543 src/liblzma/common/filter_buffer_encoder.c | 3 - 11544 src/liblzma/common/filter_common.c | 3 - 11545 src/liblzma/common/filter_common.h | 3 - 11546 src/liblzma/common/filter_decoder.c | 3 - 11547 src/liblzma/common/filter_decoder.h | 3 - 11548 src/liblzma/common/filter_encoder.c | 3 - 11549 src/liblzma/common/filter_encoder.h | 3 - 11550 src/liblzma/common/filter_flags_decoder.c | 3 - 11551 src/liblzma/common/filter_flags_encoder.c | 3 - 11552 src/liblzma/common/hardware_cputhreads.c | 3 - 11553 src/liblzma/common/hardware_physmem.c | 3 - 11554 src/liblzma/common/index.c | 3 - 11555 src/liblzma/common/index.h | 3 - 11556 src/liblzma/common/index_decoder.c | 3 - 11557 src/liblzma/common/index_decoder.h | 3 - 11558 src/liblzma/common/index_encoder.c | 3 - 11559 src/liblzma/common/index_encoder.h | 3 - 11560 src/liblzma/common/index_hash.c | 3 - 11561 src/liblzma/common/lzip_decoder.c | 3 - 11562 src/liblzma/common/lzip_decoder.h | 3 - 11563 src/liblzma/common/memcmplen.h | 3 - 11564 src/liblzma/common/microlzma_decoder.c | 3 - 11565 src/liblzma/common/microlzma_encoder.c | 3 - 11566 src/liblzma/common/outqueue.c | 3 - 11567 src/liblzma/common/outqueue.h | 3 - 11568 src/liblzma/common/stream_buffer_decoder.c | 3 - 11569 src/liblzma/common/stream_buffer_encoder.c | 3 - 11570 src/liblzma/common/stream_decoder.c | 3 - 11571 src/liblzma/common/stream_decoder.h | 3 - 11572 src/liblzma/common/stream_decoder_mt.c | 3 - 11573 src/liblzma/common/stream_encoder.c | 3 - 11574 src/liblzma/common/stream_encoder_mt.c | 3 - 11575 src/liblzma/common/stream_flags_common.c | 3 - 11576 src/liblzma/common/stream_flags_common.h | 3 - 11577 src/liblzma/common/stream_flags_decoder.c | 3 - 11578 src/liblzma/common/stream_flags_encoder.c | 3 - 11579 src/liblzma/common/string_conversion.c | 3 - 11580 src/liblzma/common/vli_decoder.c | 3 - 11581 src/liblzma/common/vli_encoder.c | 3 - 11582 src/liblzma/common/vli_size.c | 3 - 11583 src/liblzma/delta/Makefile.inc | 3 - 11584 src/liblzma/delta/delta_common.c | 3 - 11585 src/liblzma/delta/delta_common.h | 3 - 11586 src/liblzma/delta/delta_decoder.c | 3 - 11587 src/liblzma/delta/delta_decoder.h | 3 - 11588 src/liblzma/delta/delta_encoder.c | 3 - 11589 src/liblzma/delta/delta_encoder.h | 3 - 11590 src/liblzma/delta/delta_private.h | 3 - 11591 src/liblzma/liblzma.pc.in | 3 - 11592 src/liblzma/liblzma_w32res.rc | 3 - 11593 src/liblzma/lz/Makefile.inc | 3 - 11594 src/liblzma/lz/lz_decoder.c | 3 - 11595 src/liblzma/lz/lz_decoder.h | 3 - 11596 src/liblzma/lz/lz_encoder.c | 3 - 11597 src/liblzma/lz/lz_encoder.h | 3 - 11598 src/liblzma/lz/lz_encoder_hash.h | 3 - 11599 src/liblzma/lz/lz_encoder_mf.c | 3 - 11600 src/liblzma/lzma/Makefile.inc | 3 - 11601 src/liblzma/lzma/fastpos.h | 3 - 11602 src/liblzma/lzma/fastpos_tablegen.c | 3 - 11603 src/liblzma/lzma/lzma2_decoder.c | 3 - 11604 src/liblzma/lzma/lzma2_decoder.h | 3 - 11605 src/liblzma/lzma/lzma2_encoder.c | 3 - 11606 src/liblzma/lzma/lzma2_encoder.h | 3 - 11607 src/liblzma/lzma/lzma_common.h | 3 - 11608 src/liblzma/lzma/lzma_decoder.c | 3 - 11609 src/liblzma/lzma/lzma_decoder.h | 3 - 11610 src/liblzma/lzma/lzma_encoder.c | 3 - 11611 src/liblzma/lzma/lzma_encoder.h | 3 - 11612 src/liblzma/lzma/lzma_encoder_optimum_fast.c | 3 - 11613 src/liblzma/lzma/lzma_encoder_optimum_normal.c | 3 - 11614 src/liblzma/lzma/lzma_encoder_presets.c | 3 - 11615 src/liblzma/lzma/lzma_encoder_private.h | 3 - 11616 src/liblzma/rangecoder/Makefile.inc | 3 - 11617 src/liblzma/rangecoder/price.h | 3 - 11618 src/liblzma/rangecoder/price_tablegen.c | 3 - 11619 src/liblzma/rangecoder/range_common.h | 3 - 11620 src/liblzma/rangecoder/range_decoder.h | 3 - 11621 src/liblzma/rangecoder/range_encoder.h | 3 - 11622 src/liblzma/simple/Makefile.inc | 3 - 11623 src/liblzma/simple/arm.c | 3 - 11624 src/liblzma/simple/arm64.c | 3 - 11625 src/liblzma/simple/armthumb.c | 3 - 11626 src/liblzma/simple/ia64.c | 3 - 11627 src/liblzma/simple/powerpc.c | 3 - 11628 src/liblzma/simple/riscv.c | 3 - 11629 src/liblzma/simple/simple_coder.c | 3 - 11630 src/liblzma/simple/simple_coder.h | 3 - 11631 src/liblzma/simple/simple_decoder.c | 3 - 11632 src/liblzma/simple/simple_decoder.h | 3 - 11633 src/liblzma/simple/simple_encoder.c | 3 - 11634 src/liblzma/simple/simple_encoder.h | 3 - 11635 src/liblzma/simple/simple_private.h | 3 - 11636 src/liblzma/simple/sparc.c | 3 - 11637 src/liblzma/simple/x86.c | 3 - 11638 src/liblzma/validate_map.sh | 3 - 11639 src/lzmainfo/Makefile.am | 3 - 11640 src/lzmainfo/lzmainfo.1 | 4 +- 11641 src/lzmainfo/lzmainfo.c | 3 - 11642 src/lzmainfo/lzmainfo_w32res.rc | 3 - 11643 src/scripts/Makefile.am | 3 - 11644 src/scripts/xzless.1 | 4 +- 11645 src/xz/Makefile.am | 3 - 11646 src/xz/args.c | 3 - 11647 src/xz/args.h | 3 - 11648 src/xz/coder.c | 3 - 11649 src/xz/coder.h | 3 - 11650 src/xz/file_io.c | 3 - 11651 src/xz/file_io.h | 3 - 11652 src/xz/hardware.c | 3 - 11653 src/xz/hardware.h | 3 - 11654 src/xz/list.c | 3 - 11655 src/xz/list.h | 3 - 11656 src/xz/main.c | 3 - 11657 src/xz/main.h | 3 - 11658 src/xz/message.c | 3 - 11659 src/xz/message.h | 3 - 11660 src/xz/mytime.c | 3 - 11661 src/xz/mytime.h | 3 - 11662 src/xz/options.c | 3 - 11663 src/xz/options.h | 3 - 11664 src/xz/private.h | 3 - 11665 src/xz/signals.c | 3 - 11666 src/xz/signals.h | 3 - 11667 src/xz/suffix.c | 3 - 11668 src/xz/suffix.h | 3 - 11669 src/xz/util.c | 3 - 11670 src/xz/util.h | 3 - 11671 src/xz/xz.1 | 4 +- 11672 src/xz/xz_w32res.rc | 3 - 11673 src/xzdec/Makefile.am | 3 - 11674 src/xzdec/lzmadec_w32res.rc | 3 - 11675 src/xzdec/xzdec.1 | 4 +- 11676 src/xzdec/xzdec.c | 3 - 11677 src/xzdec/xzdec_w32res.rc | 3 - 11678 tests/Makefile.am | 3 - 11679 tests/bcj_test.c | 3 - 11680 tests/code_coverage.sh | 3 - 11681 tests/create_compress_files.c | 3 - 11682 tests/files/README | 3 +- 11683 tests/ossfuzz/fuzz_common.h | 3 - 11684 tests/ossfuzz/fuzz_decode_alone.c | 3 - 11685 tests/ossfuzz/fuzz_decode_stream.c | 3 - 11686 tests/ossfuzz/fuzz_encode_stream.c | 3 - 11687 tests/test_bcj_exact_size.c | 3 - 11688 tests/test_block_header.c | 3 - 11689 tests/test_check.c | 3 - 11690 tests/test_compress.sh | 3 - 11691 tests/test_files.sh | 3 - 11692 tests/test_filter_flags.c | 3 - 11693 tests/test_filter_str.c | 3 - 11694 tests/test_hardware.c | 3 - 11695 tests/test_index.c | 3 - 11696 tests/test_index_hash.c | 3 - 11697 tests/test_lzip_decoder.c | 3 - 11698 tests/test_memlimit.c | 3 - 11699 tests/test_scripts.sh | 3 - 11700 tests/test_stream_flags.c | 3 - 11701 tests/test_suffix.sh | 3 - 11702 tests/test_vli.c | 3 - 11703 tests/tests.h | 3 - 11704 tests/tuktest.h | 3 - 11705 windows/README-Windows.txt | 11 +-- 11706 windows/build.bash | 3 - 11707 288 files changed, 100 insertions(+), 911 deletions(-) 11708 11709commit 76946dc4336c831fe2cc26696a035d807dd3cf13 11710Author: Lasse Collin <lasse.collin@tukaani.org> 11711Date: 2024-02-09 17:20:31 +0200 11712 11713 Fix SHA-256 authors. 11714 11715 The initial commit 5d018dc03549c1ee4958364712fb0c94e1bf2741 11716 in 2007 had a comment in sha256.c that the code is based on 11717 Crypto++ Library 5.5.1. In 2009 the Authors list in sha256.c 11718 and the AUTHORS file was updated with information that the 11719 code had come from Crypto++ but via 7-Zip. I know I had viewed 11720 7-Zip's SHA-256 code but back then the C code has been identical 11721 enough with Crypto++, so I don't why I thought the author info 11722 would need that extra step via 7-Zip for this single file. 11723 11724 Another error is that I had mixed sha.* and shacal2.* files 11725 when checking for author info in Crypto++. The shacal2.* files 11726 aren't related to liblzma's sha256.c and thus Kevin Springle's 11727 code in Crypto++ isn't either. 11728 11729 AUTHORS | 6 ++---- 11730 src/liblzma/check/sha256.c | 14 ++++---------- 11731 2 files changed, 6 insertions(+), 14 deletions(-) 11732 11733commit 21d9cbae9eecca28ce373d3d9464defd2cf5d851 11734Author: Lasse Collin <lasse.collin@tukaani.org> 11735Date: 2024-02-09 17:20:31 +0200 11736 11737 Remove macosx/build.sh. 11738 11739 It was last updated in 2013. 11740 11741 Makefile.am | 1 - 11742 macosx/build.sh | 113 -------------------------------------------------------- 11743 2 files changed, 114 deletions(-) 11744 11745commit eac2c3c67f9113a225fb6667df862edd30366931 11746Author: Lasse Collin <lasse.collin@tukaani.org> 11747Date: 2024-02-09 17:20:31 +0200 11748 11749 Doc: Remove doc/examples_old. 11750 11751 It was good to keep these around in parallel with the newer examples 11752 but I think it's OK to remove the old ones at this point. 11753 11754 Makefile.am | 5 -- 11755 doc/examples_old/xz_pipe_comp.c | 127 -------------------------------------- 11756 doc/examples_old/xz_pipe_decomp.c | 123 ------------------------------------ 11757 3 files changed, 255 deletions(-) 11758 11759commit 89ea1a22f4ed3685b053b7260bc5acf6c75d1664 11760Author: Jia Tan <jiat0218@gmail.com> 11761Date: 2024-02-13 22:38:58 +0800 11762 11763 Tests: Add RISC-V filter support in a few places. 11764 11765 tests/test_filter_flags.c | 6 ++++++ 11766 tests/test_filter_str.c | 6 ++++++ 11767 2 files changed, 12 insertions(+) 11768 11769commit 45663443eb2b377e6171529380fee312f1adcdf4 11770Author: Jia Tan <jiat0218@gmail.com> 11771Date: 2024-02-13 22:37:07 +0800 11772 11773 liblzma: Fix build error if only RISC-V BCJ filter is enabled. 11774 11775 If any other BCJ filter was enabled for encoding or decoding, then this 11776 was not a problem. 11777 11778 src/liblzma/common/string_conversion.c | 4 +++- 11779 1 file changed, 3 insertions(+), 1 deletion(-) 11780 11781commit 2f15597d677bc35743c777d4cf3bfa698b478681 11782Author: Jia Tan <jiat0218@gmail.com> 11783Date: 2024-02-13 22:56:24 +0800 11784 11785 Translations: Update the Korean translation. 11786 11787 po/ko.po | 526 ++++++++++++++++++++++++++++++++++----------------------------- 11788 1 file changed, 284 insertions(+), 242 deletions(-) 11789 11790commit df873143ad1615c6d6aaa1bf8808b1676091dfe3 11791Author: Jia Tan <jiat0218@gmail.com> 11792Date: 2024-02-13 01:55:53 +0800 11793 11794 Translations: Update the Korean man page translations. 11795 11796 po4a/ko.po | 1375 ++++++++++++++++++++++++++++++++++-------------------------- 11797 1 file changed, 770 insertions(+), 605 deletions(-) 11798 11799commit b3f415eddb150341865a1af47959c3baba076b33 11800Author: Jia Tan <jiat0218@gmail.com> 11801Date: 2024-02-13 01:53:33 +0800 11802 11803 Translations: Update the Chinese (simplified) translation. 11804 11805 po/zh_CN.po | 424 ++++++++++++++++++++++++++++++++++++++---------------------- 11806 1 file changed, 268 insertions(+), 156 deletions(-) 11807 11808commit 9860d418d296eb3c721e5384fb367c0499b579c8 11809Author: Lasse Collin <lasse.collin@tukaani.org> 11810Date: 2024-02-09 23:21:01 +0200 11811 11812 xzless: Use ||- in LESSOPEN with with "less" 451 and newer. 11813 11814 src/scripts/xzless.in | 9 ++++++++- 11815 1 file changed, 8 insertions(+), 1 deletion(-) 11816 11817commit fd0692b0525e6c26b496492be9e2c865cab734f8 11818Author: Lasse Collin <lasse.collin@tukaani.org> 11819Date: 2024-02-09 23:00:05 +0200 11820 11821 xzless: Use --show-preproc-errors with "less" 632 and newer. 11822 11823 This makes "less" show a warning if a decompression error occurred. 11824 11825 src/scripts/xzless.in | 11 +++++++++-- 11826 1 file changed, 9 insertions(+), 2 deletions(-) 11827 11828commit adb073da76a920b5a81e6b32254f4ddb054dc57a 11829Author: Jia Tan <jiat0218@gmail.com> 11830Date: 2024-02-09 23:59:54 +0800 11831 11832 liblzma: Fix typo discovered by codespell. 11833 11834 src/liblzma/check/crc32_arm64.h | 2 +- 11835 1 file changed, 1 insertion(+), 1 deletion(-) 11836 11837commit 55d9fc883d221cbace951a370f1fb144698f8c2e 11838Author: Jia Tan <jiat0218@gmail.com> 11839Date: 2024-02-09 20:01:06 +0800 11840 11841 Translations: Update the Swedish translation. 11842 11843 po/sv.po | 420 ++++++++++++++++++++++++++++++++++++++------------------------- 11844 1 file changed, 254 insertions(+), 166 deletions(-) 11845 11846commit 55ba4a1ea321499c805eedfa811ffde690bae311 11847Author: Jia Tan <jiat0218@gmail.com> 11848Date: 2024-02-08 20:09:04 +0800 11849 11850 Translations: Update the Spanish translation. 11851 11852 po/es.po | 22 +++++++++++----------- 11853 1 file changed, 11 insertions(+), 11 deletions(-) 11854 11855commit 7f2293cd804a89d3c3b2d3ed573560ca9e1520ae 11856Author: Jia Tan <jiat0218@gmail.com> 11857Date: 2024-02-07 21:34:35 +0800 11858 11859 Translations: Update the Spanish translation. 11860 11861 po/es.po | 419 ++++++++++++++++++++++++++++++++++++++------------------------- 11862 1 file changed, 253 insertions(+), 166 deletions(-) 11863 11864commit f4af2036bc625739d6d33d9e1fede583a25c3828 11865Author: Jia Tan <jiat0218@gmail.com> 11866Date: 2024-02-07 21:28:32 +0800 11867 11868 Translations: Update the Polish translation. 11869 11870 po/pl.po | 411 ++++++++++++++++++++++++++++++++++++++------------------------- 11871 1 file changed, 249 insertions(+), 162 deletions(-) 11872 11873commit e5e93bb816043c559cddf03a3b7ba13bec353ee4 11874Author: Jia Tan <jiat0218@gmail.com> 11875Date: 2024-02-07 19:40:12 +0800 11876 11877 Translations: Update the German translation. 11878 11879 po/de.po | 396 ++++++++++++++++++++++++++++++++++++++------------------------- 11880 1 file changed, 242 insertions(+), 154 deletions(-) 11881 11882commit 28f18ff8e26902762fb007c13be235b4ac1ac071 11883Author: Jia Tan <jiat0218@gmail.com> 11884Date: 2024-02-07 19:27:25 +0800 11885 11886 Translations: Update the German man page translations. 11887 11888 po4a/de.po | 1353 +++++++++++++++++++++++++++++++++--------------------------- 11889 1 file changed, 752 insertions(+), 601 deletions(-) 11890 11891commit cabfbc7947da05aa5dfe39bec9759e076f940e3c 11892Author: Jia Tan <jiat0218@gmail.com> 11893Date: 2024-02-06 23:44:06 +0800 11894 11895 Translations: Update the Romanian translation. 11896 11897 po/ro.po | 416 ++++++++++++++++++++++++++++++++++++++------------------------- 11898 1 file changed, 252 insertions(+), 164 deletions(-) 11899 11900commit bf20c94f5d748cea2147779f4fa7e2fd2eb8555e 11901Author: Jia Tan <jiat0218@gmail.com> 11902Date: 2024-02-06 23:45:02 +0800 11903 11904 Translations: Update the Romanian man page translations. 11905 11906 po4a/ro.po | 1759 +++++++++++++++++++++++++++++++++--------------------------- 11907 1 file changed, 966 insertions(+), 793 deletions(-) 11908 11909commit 7c25ec9feb0241e4affb7432681cc4f5696f3a96 11910Author: Jia Tan <jiat0218@gmail.com> 11911Date: 2024-02-07 20:56:57 +0800 11912 11913 Translations: Update the Ukrainian translation. 11914 11915 po/uk.po | 397 ++++++++++++++++++++++++++++++++++++++------------------------- 11916 1 file changed, 242 insertions(+), 155 deletions(-) 11917 11918commit b3523250e9eef10b017473754c1e1c9e31f10374 11919Author: Jia Tan <jiat0218@gmail.com> 11920Date: 2024-02-06 23:30:03 +0800 11921 11922 Translations: Update the Ukrainian man page translations. 11923 11924 po4a/uk.po | 1363 ++++++++++++++++++++++++++++++++++-------------------------- 11925 1 file changed, 764 insertions(+), 599 deletions(-) 11926 11927commit a5c177f514f4c90e0d2f6045636fca6c2e80a20d 11928Author: Jia Tan <jiat0218@gmail.com> 11929Date: 2024-02-02 01:39:28 +0800 11930 11931 Update AUTHORS. 11932 11933 AUTHORS | 3 ++- 11934 1 file changed, 2 insertions(+), 1 deletion(-) 11935 11936commit 7f68a68c19d0ae57bd0e802be0ea8f974e41299f 11937Author: Jia Tan <jiat0218@gmail.com> 11938Date: 2024-02-02 01:38:51 +0800 11939 11940 liblzma: Update Authors list in crc32_arm64.h. 11941 11942 src/liblzma/check/crc32_arm64.h | 1 + 11943 1 file changed, 1 insertion(+) 11944 11945commit 97f9ba50b84e67b3dcb5b17dd5d3e1d14f9ad1d0 11946Author: Jia Tan <jiat0218@gmail.com> 11947Date: 2024-02-01 16:07:03 +0800 11948 11949 liblzma: Check HAVE_USABLE_CLMUL before omitting CRC32 table. 11950 11951 This was split from the prior commit so it could be easily applied to 11952 the 5.4 branch. 11953 11954 Closes: https://github.com/tukaani-project/xz/pull/77 11955 11956 src/liblzma/check/crc32_table.c | 4 ++-- 11957 1 file changed, 2 insertions(+), 2 deletions(-) 11958 11959commit ca9015f4dead2c97b48f5a6933631b0a448b65b9 11960Author: Jia Tan <jiat0218@gmail.com> 11961Date: 2024-02-01 16:06:29 +0800 11962 11963 liblzma: Check HAVE_USABLE_CLMUL before omitting CRC64 table. 11964 11965 If liblzma is configured with --disable-clmul-crc 11966 CFLAGS="-msse4.1 -mpclmul", then it will fail to compile because the 11967 generic version must be used but the CRC tables were not included. 11968 11969 src/liblzma/check/crc64_table.c | 4 ++-- 11970 1 file changed, 2 insertions(+), 2 deletions(-) 11971 11972commit 2f1552a91c825e87013925e1a67a0930e7aef592 11973Author: Jia Tan <jiat0218@gmail.com> 11974Date: 2024-01-23 18:02:13 +0800 11975 11976 liblzma: Only use ifunc in crcXX_fast.c if its needed. 11977 11978 The code was using HAVE_FUNC_ATTRIBUTE_IFUNC instead of CRC_USE_IFUNC. 11979 With ARM64, ifunc is incompatible because it requires non-inline 11980 function calls for runtime detection. 11981 11982 src/liblzma/check/crc32_fast.c | 6 +++--- 11983 src/liblzma/check/crc64_fast.c | 6 +++--- 11984 2 files changed, 6 insertions(+), 6 deletions(-) 11985 11986commit 30a25f3742287697bc57a1bef86c19ecf5129322 11987Author: Jia Tan <jiat0218@gmail.com> 11988Date: 2024-01-22 22:08:45 +0800 11989 11990 Docs: Add --disable-arm64-crc32 description to INSTALL. 11991 11992 INSTALL | 12 +++++++++++- 11993 1 file changed, 11 insertions(+), 1 deletion(-) 11994 11995commit 1940f0ec28f08c0ac72c1413d9706fb82eabe6ad 11996Author: Jia Tan <jiat0218@gmail.com> 11997Date: 2024-01-22 21:36:09 +0800 11998 11999 liblzma: Omit CRC tables when not needed with ARM64 optimizations. 12000 12001 This is similar to the existing x86-64 CLMUL conditions to omit the 12002 tables. They were slightly refactored to improve readability. 12003 12004 src/liblzma/check/crc32_table.c | 18 +++++++++++++++--- 12005 src/liblzma/check/crc64_table.c | 7 ++++++- 12006 src/liblzma/check/crc_common.h | 5 ++++- 12007 3 files changed, 25 insertions(+), 5 deletions(-) 12008 12009commit 761f5b69a4c778c8bcb09279b845b07c28790575 12010Author: Jia Tan <jiat0218@gmail.com> 12011Date: 2024-01-22 20:54:56 +0800 12012 12013 liblzma: Rename crc32_aarch64.h to crc32_arm64.h. 12014 12015 Even though the proper name for the architecture is aarch64, this 12016 project uses ARM64 throughout. So the rename is for consistency. 12017 12018 Additionally, crc32_arm64.h was slightly refactored for the following 12019 changes: 12020 12021 * Added MSVC, FreeBSD, and macOS support in 12022 is_arch_extension_supported(). 12023 12024 * crc32_arch_optimized() now checks the size when aligning the 12025 buffer. 12026 12027 * crc32_arch_optimized() loop conditions were slightly modified to 12028 avoid both decrementing the size and incrementing the buffer 12029 pointer. 12030 12031 * Use the intrinsic wrappers defined in <arm_acle.h> because GCC and 12032 Clang name them differently. 12033 12034 * Minor spacing and comment changes. 12035 12036 CMakeLists.txt | 2 +- 12037 src/liblzma/check/Makefile.inc | 2 +- 12038 src/liblzma/check/crc32_aarch64.h | 109 ---------------------------------- 12039 src/liblzma/check/crc32_arm64.h | 119 ++++++++++++++++++++++++++++++++++++++ 12040 src/liblzma/check/crc32_fast.c | 3 +- 12041 src/liblzma/check/crc64_fast.c | 3 - 12042 6 files changed, 122 insertions(+), 116 deletions(-) 12043 12044commit 455a08609caa3223066a717fb01bfa42c5dba47d 12045Author: Jia Tan <jiat0218@gmail.com> 12046Date: 2024-01-22 20:49:30 +0800 12047 12048 liblzma: Refactor crc_common.h. 12049 12050 The CRC_GENERIC is now split into CRC32_GENERIC and CRC64_GENERIC, since 12051 the ARM64 optimizations will be different between CRC32 and CRC64. 12052 12053 For the same reason, CRC_ARCH_OPTIMIZED is split into 12054 CRC32_ARCH_OPTIMIZED and CRC64_ARCH_OPTIMIZED. 12055 12056 ifunc will only be used with x86-64 CLMUL because the runtime detection 12057 methods needed with ARM64 are not compatible with ifunc. 12058 12059 src/liblzma/check/crc32_fast.c | 8 +-- 12060 src/liblzma/check/crc64_fast.c | 8 +-- 12061 src/liblzma/check/crc_common.h | 108 ++++++++++++++++++++++++++++------------- 12062 3 files changed, 82 insertions(+), 42 deletions(-) 12063 12064commit 61908e816049af7a9f43ea804a57ee8570e2e644 12065Author: Jia Tan <jiat0218@gmail.com> 12066Date: 2024-01-22 00:42:28 +0800 12067 12068 CMake: Add support for ARM64 CRC32 instruction detection. 12069 12070 CMakeLists.txt | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 12071 1 file changed, 50 insertions(+) 12072 12073commit c5f6d79cc9515a7f22d7ea4860c6cc394b295732 12074Author: Jia Tan <jiat0218@gmail.com> 12075Date: 2024-01-22 00:36:47 +0800 12076 12077 Build: Add support for ARM64 CRC32 instruction detection. 12078 12079 This adds --enable-arm64-crc32/--disable-arm64-crc32 (enabled by 12080 default) for using the ARM64 CRC32 instruction. This can be disabled if 12081 one knows the binary will never need to run on an ARM64 machine 12082 with this instruction extension. 12083 12084 configure.ac | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 12085 1 file changed, 52 insertions(+) 12086 12087commit 849d0f282a6a890c5cf5a0e0f02980b12d9ebb0f 12088Author: Chenxi Mao <chenxi.mao2013@gmail.com> 12089Date: 2024-01-09 17:23:11 +0800 12090 12091 Speed up CRC32 calculation on ARM64 12092 12093 The CRC32 instructions in ARM64 can calculate the CRC32 result 12094 for 8 bytes in a single operation, making the use of ARM64 12095 instructions much faster compared to the general CRC32 algorithm. 12096 12097 Optimized CRC32 will be enabled if ARM64 has CRC extension 12098 running on Linux. 12099 12100 Signed-off-by: Chenxi Mao <chenxi.mao2013@gmail.com> 12101 12102 CMakeLists.txt | 1 + 12103 src/liblzma/check/Makefile.inc | 3 +- 12104 src/liblzma/check/crc32_aarch64.h | 109 ++++++++++++++++++++++++++++++++++++++ 12105 src/liblzma/check/crc32_fast.c | 5 +- 12106 src/liblzma/check/crc64_fast.c | 5 +- 12107 src/liblzma/check/crc_common.h | 16 +++--- 12108 6 files changed, 130 insertions(+), 9 deletions(-) 12109 12110commit b43c3e48bf6097095eef36d44cdbec811074940a 12111Author: Jia Tan <jiat0218@gmail.com> 12112Date: 2024-01-26 19:05:51 +0800 12113 12114 Bump version number for 5.5.1alpha. 12115 12116 src/liblzma/api/lzma/version.h | 2 +- 12117 src/liblzma/liblzma_generic.map | 2 +- 12118 src/liblzma/liblzma_linux.map | 2 +- 12119 3 files changed, 3 insertions(+), 3 deletions(-) 12120 12121commit c7a7ae1500ea90bd3c2d54533e4f433933eb598f 12122Author: Jia Tan <jiat0218@gmail.com> 12123Date: 2024-01-26 19:00:52 +0800 12124 12125 Add NEWS for 5.5.1alpha 12126 12127 NEWS | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 12128 1 file changed, 80 insertions(+) 12129 12130commit 0ef8192e8d5af4e6200d5d4aee22d1f177f7a2df 12131Author: Jia Tan <jiat0218@gmail.com> 12132Date: 2024-01-26 18:54:24 +0800 12133 12134 Add NEWS for 5.4.6. 12135 12136 NEWS | 22 ++++++++++++++++++++++ 12137 1 file changed, 22 insertions(+) 12138 12139commit 93de7e751d17731315a899264f2a7239d7d2d316 12140Author: Lasse Collin <lasse.collin@tukaani.org> 12141Date: 2024-01-24 20:00:57 +0200 12142 12143 Move doc/logo/xz-logo.png to "doc" and Doxygen footer to "doxygen". 12144 12145 The footer isn't a complete HTML file so having it in the doxygen 12146 directory is a tiny bit clearer. 12147 12148 Makefile.am | 2 +- 12149 doc/{logo => }/xz-logo.png | Bin 12150 doxygen/Doxyfile | 4 ++-- 12151 doc/logo/copyright.html => doxygen/footer.html | 0 12152 4 files changed, 3 insertions(+), 3 deletions(-) 12153 12154commit 00fa01698df51c58ae2acf8c7fa4e1fb159f75a9 12155Author: Jia Tan <jiat0218@gmail.com> 12156Date: 2024-01-09 17:05:01 +0800 12157 12158 README: Add COPYING.CC-BY-SA-4.0 entry to section 1.1. 12159 12160 The Overall documentation section (1.1) table spacing had to be adjusted 12161 since the filename was very long. 12162 12163 README | 38 ++++++++++++++++++++------------------ 12164 1 file changed, 20 insertions(+), 18 deletions(-) 12165 12166commit e280470040b27c5e58d78b25b9e2bb71fc6c3882 12167Author: Jia Tan <jiat0218@gmail.com> 12168Date: 2024-01-09 16:56:16 +0800 12169 12170 Build: Add the logo and license to the release. 12171 12172 Makefile.am | 2 ++ 12173 1 file changed, 2 insertions(+) 12174 12175commit b1ee6cf259bb49ce91abe9f622294524e37edf4c 12176Author: Jia Tan <jiat0218@gmail.com> 12177Date: 2024-01-09 16:44:42 +0800 12178 12179 COPYING: Add the license for the XZ logo. 12180 12181 COPYING | 5 + 12182 COPYING.CC-BY-SA-4.0 | 427 +++++++++++++++++++++++++++++++++++++++++++++++++++ 12183 2 files changed, 432 insertions(+) 12184 12185commit 31293ae7074802cc7286089a89c7b552d930c97f 12186Author: Jia Tan <jiat0218@gmail.com> 12187Date: 2024-01-09 16:40:56 +0800 12188 12189 Doxygen: Added the XZ logo and copyright information. 12190 12191 The PROJECT_LOGO field is now used to include the XZ logo. The footer 12192 of each page now lists the copyright information instead of the default 12193 footer. The license is also copied to statisfy the copyright and so the 12194 link in the documentation can be local. 12195 12196 doc/logo/copyright.html | 11 +++++++++++ 12197 doc/logo/xz-logo.png | Bin 0 -> 6771 bytes 12198 doxygen/Doxyfile | 6 +++--- 12199 3 files changed, 14 insertions(+), 3 deletions(-) 12200 12201commit 6daa4d0ea46a8441f21f609149f3633158bf4704 12202Author: Lasse Collin <lasse.collin@tukaani.org> 12203Date: 2024-01-23 18:29:28 +0200 12204 12205 xz: Use threaded mode by defaut (as if --threads=0 was used). 12206 12207 This hopefully does more good than bad: 12208 12209 + It's faster by default. 12210 12211 + Only the threaded compressor creates files that 12212 can be decompressed in threaded mode. 12213 12214 - Compression ratio is worse, usually not too much though. 12215 When it matters, -T1 must be used. 12216 12217 - Memory usage increases. 12218 12219 - Scripts that assume single-threaded mode but don't use -T1 will 12220 possibly use too much resources, for example, if they run 12221 multiple xz processes in parallel to compress multiple files. 12222 12223 - Output from single-threaded and multi-threaded compressors 12224 differ but such changes could happen for other reasons too 12225 (they just haven't happened since 5.0.0). 12226 12227 src/xz/hardware.c | 6 +++++- 12228 src/xz/message.c | 4 ++-- 12229 src/xz/xz.1 | 9 +++++++++ 12230 3 files changed, 16 insertions(+), 3 deletions(-) 12231 12232commit a2dd2dc8e5307a7280bb99868bc478560facba2c 12233Author: Jia Tan <jiat0218@gmail.com> 12234Date: 2024-01-23 23:52:49 +0800 12235 12236 CI: Use RISC-V filter when building with BCJ support. 12237 12238 build-aux/ci_build.sh | 4 ++-- 12239 1 file changed, 2 insertions(+), 2 deletions(-) 12240 12241commit 3060e1070b2421b26c0e17794c1307ec5622f11d 12242Author: Jia Tan <jiat0218@gmail.com> 12243Date: 2024-01-23 23:52:14 +0800 12244 12245 Tests: Use smaller dictionary size in RISC-V test files. 12246 12247 tests/files/good-1-riscv-lzma2-1.xz | Bin 7512 -> 7512 bytes 12248 tests/files/good-1-riscv-lzma2-2.xz | Bin 7516 -> 7512 bytes 12249 2 files changed, 0 insertions(+), 0 deletions(-) 12250 12251commit 44ff2fa5c94dc345c4dd69195a19fc5238df60b3 12252Author: Jia Tan <jiat0218@gmail.com> 12253Date: 2024-01-23 23:50:57 +0800 12254 12255 Tests: Skip RISC-V test files if decoder was not built. 12256 12257 tests/test_files.sh | 5 +++++ 12258 1 file changed, 5 insertions(+) 12259 12260commit 6133a3f30049d3beaf7d22535b1e5d38e109be4e 12261Author: Lasse Collin <lasse.collin@tukaani.org> 12262Date: 2024-01-23 16:11:54 +0200 12263 12264 xz: Man page: Add more examples of LZMA2 options with BCJ filters. 12265 12266 src/xz/xz.1 | 38 +++++++++++++++++++++++++++++++------- 12267 1 file changed, 31 insertions(+), 7 deletions(-) 12268 12269commit 50255feeaabcc7e7db22b858a6bd64a9b5b4f16d 12270Author: Lasse Collin <lasse.collin@tukaani.org> 12271Date: 2024-01-23 00:09:48 +0200 12272 12273 liblzma: RISC-V filter: Use byte-by-byte access. 12274 12275 Not all RISC-V processors support fast unaligned access so 12276 it's better to read only one byte in the main loop. This can 12277 be faster even on x86-64 when compared to reading 32 bits at 12278 a time as half the time the address is only 16-bit aligned. 12279 12280 The downside is larger code size on archs that do support 12281 fast unaligned access. 12282 12283 src/liblzma/simple/riscv.c | 114 +++++++++++++++++++++++++++++++++------------ 12284 1 file changed, 84 insertions(+), 30 deletions(-) 12285 12286commit db5eb5f563e8baa8d912ecf576f53391ff861596 12287Author: Jia Tan <jiat0218@gmail.com> 12288Date: 2024-01-22 23:33:39 +0800 12289 12290 xz: Update xz -lvv for RISC-V filter. 12291 12292 Version 5.6.0 will be shown, even though upcoming alphas and betas 12293 will be able to support this filter. 5.6.0 looks nicer in the output and 12294 people shouldn't be encouraged to use an unstable version in production 12295 in any way. 12296 12297 src/xz/list.c | 10 ++++++++++ 12298 1 file changed, 10 insertions(+) 12299 12300commit e2870db5be1503e6a489fc3d47daf950d6f62723 12301Author: Jia Tan <jiat0218@gmail.com> 12302Date: 2024-01-22 23:33:39 +0800 12303 12304 Tests: Add two RISC-V Filter test files. 12305 12306 These test files achieve 100% code coverage in 12307 src/liblzma/simple/riscv.c. They contain all of the instructions that 12308 should be filtered and a few cases that should not. 12309 12310 tests/files/README | 8 ++++++++ 12311 tests/files/good-1-riscv-lzma2-1.xz | Bin 0 -> 7512 bytes 12312 tests/files/good-1-riscv-lzma2-2.xz | Bin 0 -> 7516 bytes 12313 3 files changed, 8 insertions(+) 12314 12315commit b26a89869315ece2f6d9d10d32d45f672550f245 12316Author: Jia Tan <jiat0218@gmail.com> 12317Date: 2024-01-22 23:33:39 +0800 12318 12319 xz: Update message in --long-help for RISC-V Filter. 12320 12321 src/xz/message.c | 1 + 12322 1 file changed, 1 insertion(+) 12323 12324commit 283f778908873eca61388029fc418fa800c9d7d7 12325Author: Jia Tan <jiat0218@gmail.com> 12326Date: 2024-01-22 23:33:39 +0800 12327 12328 xz: Update the man page for the RISC-V Filter. 12329 12330 A special note was added to suggest using four-byte alignment when the 12331 compressed instruction extension is not present in a RISC-V binary. 12332 12333 src/xz/xz.1 | 3 ++- 12334 1 file changed, 2 insertions(+), 1 deletion(-) 12335 12336commit ac3691ccca051d67f60b4a3b05b88e511d0b1b28 12337Author: Jia Tan <jiat0218@gmail.com> 12338Date: 2024-01-22 23:33:39 +0800 12339 12340 Tests: Add RISC-V Filter test in test_compress.sh. 12341 12342 tests/test_compress.sh | 1 + 12343 1 file changed, 1 insertion(+) 12344 12345commit 2959dbc7358efcf421ce51bc9cd7eae8fdd8fec4 12346Author: Jia Tan <jiat0218@gmail.com> 12347Date: 2024-01-22 23:33:39 +0800 12348 12349 liblzma: Update string_conversion.c to support RISC-V Filter. 12350 12351 src/liblzma/common/string_conversion.c | 5 +++++ 12352 1 file changed, 5 insertions(+) 12353 12354commit 34372a5adbe5a7f6bf29498410ba3a463a720966 12355Author: Jia Tan <jiat0218@gmail.com> 12356Date: 2024-01-22 23:33:39 +0800 12357 12358 CMake: Support RISC-V BCJ Filter for encoding and decoding. 12359 12360 CMakeLists.txt | 1 + 12361 1 file changed, 1 insertion(+) 12362 12363commit 440a2eccb082dc13400c09e22308a58fef85146c 12364Author: Jia Tan <jiat0218@gmail.com> 12365Date: 2024-01-22 23:33:39 +0800 12366 12367 liblzma: Add RISC-V BCJ filter. 12368 12369 The new Filter ID is 0x0B. 12370 12371 Thanks to Chien Wong <m@xv97.com> for the initial version of the Filter, 12372 the xz CLI updates, and the Autotools build system modifications. 12373 12374 Thanks to Igor Pavlov for his many contributions to the design of 12375 the filter. 12376 12377 configure.ac | 4 +- 12378 src/liblzma/api/lzma/bcj.h | 5 + 12379 src/liblzma/common/filter_common.c | 9 + 12380 src/liblzma/common/filter_decoder.c | 8 + 12381 src/liblzma/common/filter_encoder.c | 10 + 12382 src/liblzma/simple/Makefile.inc | 4 + 12383 src/liblzma/simple/riscv.c | 688 ++++++++++++++++++++++++++++++++++++ 12384 src/liblzma/simple/simple_coder.h | 9 + 12385 src/xz/args.c | 7 + 12386 9 files changed, 742 insertions(+), 2 deletions(-) 12387 12388commit 5540f4329bbdb4deb4850d4af48b18ad074bba19 12389Author: Jia Tan <jiat0218@gmail.com> 12390Date: 2024-01-19 23:08:14 +0800 12391 12392 Docs: Update .xz file format specification to 1.2.0. 12393 12394 The new RISC-V filter was added to the specification, in addition to 12395 updating the specification URL. 12396 12397 doc/xz-file-format.txt | 29 +++++++++++++++++------------ 12398 1 file changed, 17 insertions(+), 12 deletions(-) 12399 12400commit 22d86192f8cf00902a1f90ee2a83ca600794459b 12401Author: Jia Tan <jiat0218@gmail.com> 12402Date: 2024-01-19 23:08:14 +0800 12403 12404 xz: Update website URLs in the man pages. 12405 12406 src/xz/xz.1 | 6 +++--- 12407 src/xzdec/xzdec.1 | 4 ++-- 12408 2 files changed, 5 insertions(+), 5 deletions(-) 12409 12410commit 6b63c4c6139fa1bb21b570521d3d2b4a608bc34d 12411Author: Jia Tan <jiat0218@gmail.com> 12412Date: 2024-01-19 23:08:14 +0800 12413 12414 liblzma: Update website URL. 12415 12416 dos/config.h | 2 +- 12417 src/liblzma/api/lzma.h | 6 +++--- 12418 2 files changed, 4 insertions(+), 4 deletions(-) 12419 12420commit fce4758018f3a3589236f3fe7999fd9dd08c77e9 12421Author: Jia Tan <jiat0218@gmail.com> 12422Date: 2024-01-19 23:08:14 +0800 12423 12424 Docs: Update website URLs. 12425 12426 .github/SECURITY.md | 2 +- 12427 COPYING | 3 ++- 12428 README | 4 ++-- 12429 doc/faq.txt | 2 +- 12430 doc/lzma-file-format.txt | 18 +++++++++--------- 12431 windows/README-Windows.txt | 3 ++- 12432 6 files changed, 17 insertions(+), 15 deletions(-) 12433 12434commit c26812c5b2c8a2a47f43214afe6b0b840c73e4f5 12435Author: Jia Tan <jiat0218@gmail.com> 12436Date: 2024-01-19 23:08:14 +0800 12437 12438 Build: Update website URL. 12439 12440 CMakeLists.txt | 2 +- 12441 configure.ac | 2 +- 12442 2 files changed, 2 insertions(+), 2 deletions(-) 12443 12444commit fbb3ce541ef79cad1710e88a27a5babb5f6f8e5b 12445Author: Lasse Collin <lasse.collin@tukaani.org> 12446Date: 2024-01-11 15:01:50 +0200 12447 12448 liblzma: CRC: Add a comment to crc_x86_clmul.h about BUILDING_ macros. 12449 12450 src/liblzma/check/crc_x86_clmul.h | 6 ++++++ 12451 1 file changed, 6 insertions(+) 12452 12453commit 4f518c1b6b7b7ce5dcefea81acd44d7a086a8882 12454Author: Lasse Collin <lasse.collin@tukaani.org> 12455Date: 2024-01-11 15:22:36 +0200 12456 12457 liblzma: CRC: Remove crc_always_inline, use lzma_always_inline instead. 12458 12459 Now crc_simd_body() in crc_x86_clmul.h is only called once 12460 in a translation unit, we no longer need to be so cautious 12461 about ensuring the always-inline behavior. 12462 12463 src/liblzma/check/crc_common.h | 20 -------------------- 12464 src/liblzma/check/crc_x86_clmul.h | 2 +- 12465 2 files changed, 1 insertion(+), 21 deletions(-) 12466 12467commit 35c03ec6bf66f1b159964c9721a2dce0e2859b20 12468Author: Lasse Collin <lasse.collin@tukaani.org> 12469Date: 2024-01-11 14:39:46 +0200 12470 12471 liblzma: CRC: Update CLMUL comments to more generic wording. 12472 12473 src/liblzma/check/crc32_fast.c | 16 ++++++++-------- 12474 src/liblzma/check/crc64_fast.c | 10 +++++----- 12475 2 files changed, 13 insertions(+), 13 deletions(-) 12476 12477commit 66f080e8016129576536482ac377e2ecac7a2b90 12478Author: Lasse Collin <lasse.collin@tukaani.org> 12479Date: 2024-01-10 18:23:31 +0200 12480 12481 liblzma: Rename arch-specific CRC functions and macros. 12482 12483 CRC_CLMUL was split to CRC_ARCH_OPTIMIZED and CRC_X86_CLMUL. 12484 CRC_ARCH_OPTIMIZED is defined when an arch-optimized version is used. 12485 Currently the x86 CLMUL implementations are the only arch-optimized 12486 versions, and these also use the CRC_x86_CLMUL macro to tell when 12487 crc_x86_clmul.h needs to be included. 12488 12489 is_clmul_supported() was renamed to is_arch_extension_supported(). 12490 crc32_clmul() and crc64_clmul() were renamed to 12491 crc32_arch_optimized() and crc64_arch_optimized(). 12492 This way the names make sense with arch-specific non-CLMUL 12493 implementations as well. 12494 12495 src/liblzma/check/crc32_fast.c | 13 +++++++------ 12496 src/liblzma/check/crc64_fast.c | 13 +++++++------ 12497 src/liblzma/check/crc_common.h | 9 ++++++--- 12498 src/liblzma/check/crc_x86_clmul.h | 21 +++++++++++---------- 12499 4 files changed, 31 insertions(+), 25 deletions(-) 12500 12501commit 3dbed75b0b9c7087c76fe687acb5cf582cd57b99 12502Author: Lasse Collin <lasse.collin@tukaani.org> 12503Date: 2024-01-10 18:19:21 +0200 12504 12505 liblzma: Fix a comment in crc_common.h. 12506 12507 src/liblzma/check/crc_common.h | 3 ++- 12508 1 file changed, 2 insertions(+), 1 deletion(-) 12509 12510commit 419f55f9dfc2df8792902b8953d50690121afeea 12511Author: Lasse Collin <lasse.collin@tukaani.org> 12512Date: 2023-10-20 23:35:10 +0300 12513 12514 liblzma: Avoid extern lzma_crc32_clmul() and lzma_crc64_clmul(). 12515 12516 A CLMUL-only build will have the crcxx_clmul() inlined into 12517 lzma_crcxx(). Previously a jump to the extern lzma_crcxx_clmul() 12518 was needed. Notes about shared liblzma on ELF platforms: 12519 12520 - On platforms that support ifunc and -fvisibility=hidden, this 12521 was silly because CLMUL-only build would have that single extra 12522 jump instruction of extra overhead. 12523 12524 - On platforms that support neither -fvisibility=hidden nor linker 12525 version script (liblzma*.map), jumping to lzma_crcxx_clmul() 12526 would go via PLT so a few more instructions of overhead (still 12527 not a big issue but silly nevertheless). 12528 12529 There was a downside with static liblzma too: if an application only 12530 needs lzma_crc64(), static linking would make the linker include the 12531 CLMUL code for both CRC32 and CRC64 from crc_x86_clmul.o even though 12532 the CRC32 code wouldn't be needed, thus increasing code size of the 12533 executable (assuming that -ffunction-sections isn't used). 12534 12535 Also, now compilers are likely to inline crc_simd_body() 12536 even if they don't support the always_inline attribute 12537 (or MSVC's __forceinline). Quite possibly all compilers 12538 that build the code do support such an attribute. But now 12539 it likely isn't a problem even if the attribute wasn't supported. 12540 12541 Now all x86-specific stuff is in crc_x86_clmul.h. If other archs 12542 The other archs can then have their own headers with their own 12543 is_clmul_supported() and crcxx_clmul(). 12544 12545 Another bonus is that the build system doesn't need to care if 12546 crc_clmul.c is needed. 12547 12548 is_clmul_supported() stays as inline function as it's not needed 12549 when doing a CLMUL-only build (avoids a warning about unused function). 12550 12551 CMakeLists.txt | 7 +- 12552 configure.ac | 1 - 12553 src/liblzma/check/Makefile.inc | 6 +- 12554 src/liblzma/check/crc32_fast.c | 9 ++- 12555 src/liblzma/check/crc64_fast.c | 9 ++- 12556 src/liblzma/check/crc_common.h | 64 ---------------- 12557 src/liblzma/check/{crc_clmul.c => crc_x86_clmul.h} | 86 ++++++++++++++++++---- 12558 7 files changed, 91 insertions(+), 91 deletions(-) 12559 12560commit e3833e297dfb5021a197bda34ba2a795e30aaf8a 12561Author: Lasse Collin <lasse.collin@tukaani.org> 12562Date: 2023-10-21 00:06:52 +0300 12563 12564 liblzma: crc_clmul.c: Add crc_attr_target macro. 12565 12566 This reduces the number of the complex #if directives. 12567 12568 src/liblzma/check/crc_clmul.c | 30 ++++++++++++++++-------------- 12569 1 file changed, 16 insertions(+), 14 deletions(-) 12570 12571commit d164ac0e62904126f7920c25f9a2875c8cd28b97 12572Author: Lasse Collin <lasse.collin@tukaani.org> 12573Date: 2023-10-20 22:49:48 +0300 12574 12575 liblzma: Simplify existing cases with lzma_attr_no_sanitize_address. 12576 12577 src/liblzma/check/crc_clmul.c | 12 +++--------- 12578 1 file changed, 3 insertions(+), 9 deletions(-) 12579 12580commit 9523c1300d22fa715765c181cf991d14d6112fb1 12581Author: Lasse Collin <lasse.collin@tukaani.org> 12582Date: 2023-10-20 21:53:35 +0300 12583 12584 liblzma: #define crc_attr_no_sanitize_address in crc_common.h. 12585 12586 src/liblzma/check/crc_common.h | 10 ++++++++++ 12587 1 file changed, 10 insertions(+) 12588 12589commit 93d144f0930821590524247bd174afd38003d7f0 12590Author: Lasse Collin <lasse.collin@tukaani.org> 12591Date: 2023-10-20 23:25:14 +0300 12592 12593 liblzma: CRC: Add empty lines. 12594 12595 And remove one too. 12596 12597 src/liblzma/check/crc32_fast.c | 2 ++ 12598 src/liblzma/check/crc64_fast.c | 3 +++ 12599 src/liblzma/check/crc_clmul.c | 1 - 12600 3 files changed, 5 insertions(+), 1 deletion(-) 12601 12602commit 0c7e854ffd27f1cec2e9b0e61601d6f90bfa10ae 12603Author: Lasse Collin <lasse.collin@tukaani.org> 12604Date: 2023-10-20 23:19:33 +0300 12605 12606 liblzma: crc_clmul.c: Tidy up the location of MSVC pragma. 12607 12608 It makes no difference in practice. 12609 12610 src/liblzma/check/crc_clmul.c | 4 ++-- 12611 1 file changed, 2 insertions(+), 2 deletions(-) 12612 12613commit 15cf3f04f270d707a5c91cc0208b23b6db42b774 12614Author: Lasse Collin <lasse.collin@tukaani.org> 12615Date: 2023-12-20 21:16:24 +0200 12616 12617 Update THANKS. 12618 12619 THANKS | 1 + 12620 1 file changed, 1 insertion(+) 12621 12622commit cd64dd70d5665b6048829c45772d08606f44672e 12623Author: Lasse Collin <lasse.collin@tukaani.org> 12624Date: 2023-12-20 21:15:16 +0200 12625 12626 liblzma: Use 8-byte method in memcmplen.h on ARM64. 12627 12628 It requires fast unaligned access to 64-bit integers 12629 and a fast instruction to count leading zeros in 12630 a 64-bit integer (__builtin_ctzll()). This perhaps 12631 should be enabled on some other archs too. 12632 12633 Thanks to Chenxi Mao for the original patch: 12634 https://github.com/tukaani-project/xz/pull/75 (the first commit) 12635 According to the numbers there, this may improve encoding 12636 speed by about 3-5 %. 12637 12638 This enables the 8-byte method on MSVC ARM64 too which 12639 should work but wasn't tested. 12640 12641 src/liblzma/common/memcmplen.h | 18 ++++++++++-------- 12642 1 file changed, 10 insertions(+), 8 deletions(-) 12643 12644commit 12c90c00f05e19da3c0c91d8cd8e0d0d45965606 12645Author: Lasse Collin <lasse.collin@tukaani.org> 12646Date: 2023-12-20 21:01:06 +0200 12647 12648 liblzma: Check also for __clang__ in memcmplen.h. 12649 12650 This change hopefully makes no practical difference as Clang 12651 likely was detected via __GNUC__ or _MSC_VER already. 12652 12653 src/liblzma/common/memcmplen.h | 3 ++- 12654 1 file changed, 2 insertions(+), 1 deletion(-) 12655 12656commit 133c5851eb917c6d99d0b623c1689c8518e65f38 12657Author: Jia Tan <jiat0218@gmail.com> 12658Date: 2023-12-21 21:39:08 +0800 12659 12660 Translations: Update the French translation. 12661 12662 po/fr.po | 632 +++++++++++++++++++++++++++++++++++++-------------------------- 12663 1 file changed, 370 insertions(+), 262 deletions(-) 12664 12665commit 710cbc186cad0ac601c38bd6bf31167648a5581e 12666Author: Jia Tan <jiat0218@gmail.com> 12667Date: 2023-12-21 16:39:53 +0800 12668 12669 xz: Add a comment to Capsicum sandbox setup. 12670 12671 This comment is repeated in xzdec.c to help remind us why all the 12672 capabilities are removed from stdin in certain situations. 12673 12674 src/xz/file_io.c | 1 + 12675 1 file changed, 1 insertion(+) 12676 12677commit 4e1c695676bafbaecc9fb307f6ee94138ae72c12 12678Author: Jia Tan <jiat0218@gmail.com> 12679Date: 2023-12-20 22:19:19 +0800 12680 12681 Docs: Update --enable-sandbox option in INSTALL. 12682 12683 xzdec now also uses the sandbox when its configured. 12684 12685 INSTALL | 17 ++++++++++------- 12686 1 file changed, 10 insertions(+), 7 deletions(-) 12687 12688commit ebddf20214143a8e002ab897e95e880bb4c5ac44 12689Author: Jia Tan <jiat0218@gmail.com> 12690Date: 2023-12-20 22:39:13 +0800 12691 12692 CMake: Move sandbox detection outside of xz section. 12693 12694 The sandbox is now enabled for xzdec as well, so it no longer belongs 12695 in just the xz section. xz and xzdec are always built, except for older 12696 MSVC versions, so there isn't a need to conditionally show the sandbox 12697 configuration. CMake will do a little unecessary work on older MSVC 12698 versions that can't build xz or xzdec, but this is a very small 12699 downside. 12700 12701 CMakeLists.txt | 178 +++++++++++++++++++++++++++++++-------------------------- 12702 1 file changed, 98 insertions(+), 80 deletions(-) 12703 12704commit 5feb09266fd2928ec0a4dcb98c1dc7f053111316 12705Author: Jia Tan <jiat0218@gmail.com> 12706Date: 2023-12-20 22:43:44 +0800 12707 12708 Build: Allow sandbox to be configured for just xzdec. 12709 12710 If xz is disabled, then xzdec can still use the sandbox. 12711 12712 configure.ac | 10 +++++----- 12713 1 file changed, 5 insertions(+), 5 deletions(-) 12714 12715commit d74fb5f060b76db709b50f5fd37490394e52f975 12716Author: Jia Tan <jiat0218@gmail.com> 12717Date: 2023-12-19 21:18:28 +0800 12718 12719 xzdec: Add sandbox support for Pledge, Capsicum, and Landlock. 12720 12721 A very strict sandbox is used when the last file is decompressed. The 12722 likely most common use case of xzdec is to decompress a single file. 12723 The Pledge sandbox is applied to the entire process with slightly more 12724 relaxed promises, until the last file is processed. 12725 12726 Thanks to Christian Weisgerber for the initial patch adding Pledge 12727 sandboxing. 12728 12729 src/xzdec/xzdec.c | 146 +++++++++++++++++++++++++++++++++++++++++++++++++++--- 12730 1 file changed, 139 insertions(+), 7 deletions(-) 12731 12732commit b34b6a9912d6165e34ba0db151b7f9941d2e06d5 12733Author: Jia Tan <jiat0218@gmail.com> 12734Date: 2023-12-20 21:31:34 +0800 12735 12736 liblzma: Initialize lzma_lz_encoder pointers with NULL. 12737 12738 This fixes the recent change to lzma_lz_encoder that used memzero 12739 instead of the NULL constant. On some compilers the NULL constant 12740 (always 0) may not equal the NULL pointer (this only needs to guarentee 12741 to not point to valid memory address). 12742 12743 Later code compares the pointers to the NULL pointer so we must 12744 initialize them with the NULL pointer instead of 0 to guarentee 12745 code correctness. 12746 12747 src/liblzma/lz/lz_encoder.c | 6 +++++- 12748 1 file changed, 5 insertions(+), 1 deletion(-) 12749 12750commit 183a62f0b540ff4d23cc19b2b6bc2525f0bd64df 12751Author: Jia Tan <jiat0218@gmail.com> 12752Date: 2023-12-16 20:51:38 +0800 12753 12754 liblzma: Set all values in lzma_lz_encoder to NULL after allocation. 12755 12756 The first member of lzma_lz_encoder doesn't necessarily need to be set 12757 to NULL since it will always be set before anything tries to use it. 12758 However the function pointer members must be set to NULL since other 12759 functions rely on this NULL value to determine if this behavior is 12760 supported or not. 12761 12762 This fixes a somewhat serious bug, where the options_update() and 12763 set_out_limit() function pointers are not set to NULL. This seems to 12764 have been forgotten since these function pointers were added many years 12765 after the original two (code() and end()). 12766 12767 The problem is that by not setting this to NULL we are relying on the 12768 memory allocation to zero things out if lzma_filters_update() is called 12769 on a LZMA1 encoder. The function pointer for set_out_limit() is less 12770 serious because there is not an API function that could call this in an 12771 incorrect way. set_out_limit() is only called by the MicroLZMA encoder, 12772 which must use LZMA1 where set_out_limit() is always set. Its currently 12773 not possible to call set_out_limit() on an LZMA2 encoder at this time. 12774 12775 So calling lzma_filters_update() on an LZMA1 encoder had undefined 12776 behavior since its possible that memory could be manipulated so the 12777 options_update member pointed to a different instruction sequence. 12778 12779 This is unlikely to be a bug in an existing application since it relies 12780 on calling lzma_filters_update() on an LZMA1 encoder in the first place. 12781 For instance, it does not affect xz because lzma_filters_update() can 12782 only be used when encoding to the .xz format. 12783 12784 This is fixed by using memzero() to set all members of lzma_lz_encoder 12785 to NULL after it is allocated. This ensures this mistake will not occur 12786 here in the future if any additional function pointers are added. 12787 12788 src/liblzma/lz/lz_encoder.c | 4 +--- 12789 1 file changed, 1 insertion(+), 3 deletions(-) 12790 12791commit 1a1bb381db7a20cf86cb45a350e5cca35224d017 12792Author: Jia Tan <jiat0218@gmail.com> 12793Date: 2023-12-16 20:30:55 +0800 12794 12795 liblzma: Tweak a comment. 12796 12797 src/liblzma/lz/lz_encoder.c | 2 +- 12798 1 file changed, 1 insertion(+), 1 deletion(-) 12799 12800commit 55810780e04f759747b02683fb8020b8cd022a85 12801Author: Jia Tan <jiat0218@gmail.com> 12802Date: 2023-12-16 20:28:21 +0800 12803 12804 liblzma: Make parameter names in function definition match declaration. 12805 12806 lzma_raw_encoder() and lzma_raw_encoder_init() used "options" as the 12807 parameter name instead of "filters" (used by the declaration). "filters" 12808 is more clear since the parameter represents the list of filters passed 12809 to the raw encoder, each of which contains filter options. 12810 12811 src/liblzma/common/filter_encoder.c | 8 ++++---- 12812 1 file changed, 4 insertions(+), 4 deletions(-) 12813 12814commit 5dad6f628af742bab826819760deb677597445f7 12815Author: Jia Tan <jiat0218@gmail.com> 12816Date: 2023-12-16 20:18:47 +0800 12817 12818 liblzma: Improve lzma encoder init function consistency. 12819 12820 lzma_encoder_init() did not check for NULL options, but 12821 lzma2_encoder_init() did. This is more of a code style improvement than 12822 anything else to help make lzma_encoder_init() and lzma2_encoder_init() 12823 more similar. 12824 12825 src/liblzma/lzma/lzma_encoder.c | 3 +++ 12826 1 file changed, 3 insertions(+) 12827 12828commit e1b1a9d6370b788bd6078952c6c201e12bc27cbf 12829Author: Jia Tan <jiat0218@gmail.com> 12830Date: 2023-12-16 11:20:20 +0800 12831 12832 Docs: Update repository URL in Changelog. 12833 12834 ChangeLog | 2 +- 12835 1 file changed, 1 insertion(+), 1 deletion(-) 12836 12837commit f9b82bc64a9405e486575c65c1729229eb0a8198 12838Author: Jia Tan <jiat0218@gmail.com> 12839Date: 2023-12-15 16:56:31 +0800 12840 12841 CI: Update Upload Artifact Action. 12842 12843 .github/workflows/ci.yml | 2 +- 12844 .github/workflows/windows-ci.yml | 2 +- 12845 2 files changed, 2 insertions(+), 2 deletions(-) 12846 12847commit d0b24efe6cdc47db5b0fdf6306f70a2e0e63e49e 12848Author: Jia Tan <jiat0218@gmail.com> 12849Date: 2023-12-07 21:48:07 +0800 12850 12851 Tests: Silence -Wsign-conversion warning on GCC version < 10. 12852 12853 Since GCC version 10, GCC no longer complains about simple implicit 12854 integer conversions with Arithmetic operators. 12855 12856 For instance: 12857 12858 uint8_t a = 5; 12859 uint32_t b = a + 5; 12860 12861 Give a warning on GCC 9 and earlier but this: 12862 12863 uint8_t a = 5; 12864 uint32_t b = (a + 5) * 2; 12865 12866 Gives a warning with GCC 10+. 12867 12868 tests/test_block_header.c | 2 +- 12869 1 file changed, 1 insertion(+), 1 deletion(-) 12870 12871commit 4a972a8ee3ed88ac14067c1d2f15b78988e5dae8 12872Author: Jia Tan <jiat0218@gmail.com> 12873Date: 2023-12-06 18:39:03 +0800 12874 12875 Update THANKS. 12876 12877 THANKS | 1 + 12878 1 file changed, 1 insertion(+) 12879 12880commit ee2f48350099201694a7586e41d7aa2f09fc74da 12881Author: Jia Tan <jiat0218@gmail.com> 12882Date: 2023-12-06 18:30:25 +0800 12883 12884 Tests: Minor cleanups to OSS-Fuzz files. 12885 12886 Most of these fixes are small typos and tweaks. A few were caused by bad 12887 advice from me. Here is the summary of what is changed: 12888 12889 - Author line edits 12890 12891 - Small comment changes/additions 12892 12893 - Using the return value in the error messages in the fuzz targets' 12894 coder initialization code 12895 12896 - Removed fuzz_encode_stream.options. This set a max length, which may 12897 prevent some worthwhile code paths from being properly exercised. 12898 12899 - Removed the max_len option from fuzz_decode_stream.options for the 12900 same reason as fuzz_encode_stream. The alone decoder fuzz target still 12901 has this restriction. 12902 12903 - Altered the dictionary contents for fuzz_lzma.dict. Instead of keeping 12904 the properties static and varying the dictionary size, the properties 12905 are varied and the dictionary size is kept small. The dictionary size 12906 doesn't have much impact on the code paths but the properties do. 12907 12908 Closes: https://github.com/tukaani-project/xz/pull/73 12909 12910 tests/ossfuzz/Makefile | 3 ++ 12911 tests/ossfuzz/config/fuzz_decode_stream.options | 1 - 12912 tests/ossfuzz/config/fuzz_lzma.dict | 34 +++++++++++----------- 12913 tests/ossfuzz/fuzz_common.h | 16 +++++------ 12914 tests/ossfuzz/fuzz_decode_alone.c | 15 +++++----- 12915 tests/ossfuzz/fuzz_decode_stream.c | 15 +++++----- 12916 tests/ossfuzz/fuzz_encode_stream.c | 38 +++++++++++++++---------- 12917 7 files changed, 66 insertions(+), 56 deletions(-) 12918 12919commit 483bb90eec7c83e1c2bcd06287714afd62d8c17d 12920Author: Maksym Vatsyk <maksym.vatsyk@leviathansecurity.com> 12921Date: 2023-12-05 16:31:09 +0100 12922 12923 Tests: Add fuzz_encode_stream ossfuzz target. 12924 12925 This fuzz target handles .xz stream encoding. The first byte of input 12926 is used to dynamically set the preset level in order to increase the 12927 fuzz coverage of complex critical code paths. 12928 12929 tests/ossfuzz/config/fuzz_encode_stream.options | 2 + 12930 tests/ossfuzz/fuzz_encode_stream.c | 79 +++++++++++++++++++++++++ 12931 2 files changed, 81 insertions(+) 12932 12933commit 7ca8c9869df82756c3128c4fcf1058da4d18aa48 12934Author: Maksym Vatsyk <maksym.vatsyk@leviathansecurity.com> 12935Date: 2023-12-04 17:23:24 +0100 12936 12937 Tests: Add fuzz_decode_alone OSS-Fuzz target 12938 12939 This fuzz target that handles LZMA alone decoding. A new fuzz 12940 dictionary .dict was also created with common LZMA header values to 12941 help speed up the discovery of valid headers. 12942 12943 tests/ossfuzz/config/fuzz_decode_alone.options | 3 ++ 12944 tests/ossfuzz/config/fuzz_lzma.dict | 22 ++++++++++++++ 12945 tests/ossfuzz/fuzz_decode_alone.c | 41 ++++++++++++++++++++++++++ 12946 3 files changed, 66 insertions(+) 12947 12948commit 37581a77ad5a49615325b1d1925fdc402b1e1d5a 12949Author: Maksym Vatsyk <maksym.vatsyk@leviathansecurity.com> 12950Date: 2023-12-04 17:21:29 +0100 12951 12952 Tests: Update OSS-Fuzz Makefile. 12953 12954 All .c files can be built as separate fuzz targets. This simplifies 12955 the Makefile by allowing us to use wildcards instead of having a 12956 Makefile target for each fuzz target. 12957 12958 tests/ossfuzz/Makefile | 13 +++++++++---- 12959 1 file changed, 9 insertions(+), 4 deletions(-) 12960 12961commit 28ce6a1c2a74866c51f7996a6869679c236d3c94 12962Author: Maksym Vatsyk <maksym.vatsyk@leviathansecurity.com> 12963Date: 2023-12-04 17:20:08 +0100 12964 12965 Tests: Move common OSS-Fuzz target code to .h file. 12966 12967 tests/ossfuzz/fuzz_common.h | 56 ++++++++++++++++++++++++++++++++++++ 12968 tests/ossfuzz/fuzz_decode_stream.c | 59 ++++++++++---------------------------- 12969 2 files changed, 71 insertions(+), 44 deletions(-) 12970 12971commit bf0521ea1591c25b9d510c1b8be86073e9d847c6 12972Author: Maksym Vatsyk <maksym.vatsyk@leviathansecurity.com> 12973Date: 2023-12-04 17:18:20 +0100 12974 12975 Tests: Rename OSS-Fuzz files. 12976 12977 tests/ossfuzz/config/fuzz.options | 2 -- 12978 tests/ossfuzz/config/fuzz_decode_stream.options | 3 +++ 12979 tests/ossfuzz/config/{fuzz.dict => fuzz_xz.dict} | 0 12980 tests/ossfuzz/{fuzz.c => fuzz_decode_stream.c} | 0 12981 4 files changed, 3 insertions(+), 2 deletions(-) 12982 12983commit 685094b8e1c1aa1bf934de0366ca42ef599d25f7 12984Author: Jia Tan <jiat0218@gmail.com> 12985Date: 2023-11-30 23:10:43 +0800 12986 12987 Update THANKS. 12988 12989 THANKS | 1 + 12990 1 file changed, 1 insertion(+) 12991 12992commit 3b3023e00b0071e10f589bbc3674e0ec432b8add 12993Author: Kian-Meng Ang <kianmeng@cpan.org> 12994Date: 2023-11-30 23:01:19 +0800 12995 12996 Tests: Fix typos 12997 12998 tests/test_index.c | 2 +- 12999 tests/test_lzip_decoder.c | 4 ++-- 13000 2 files changed, 3 insertions(+), 3 deletions(-) 13001 13002commit 424d46ead8cbc0da57f406b76926ec4ed47437f5 13003Author: Kian-Meng Ang <kianmeng@cpan.org> 13004Date: 2023-11-30 22:59:47 +0800 13005 13006 xz: Fix typo 13007 13008 src/xz/file_io.c | 2 +- 13009 1 file changed, 1 insertion(+), 1 deletion(-) 13010 13011commit 35558adf9c45e5597f2c8dbd969885dd484038d2 13012Author: Jia Tan <jiat0218@gmail.com> 13013Date: 2023-11-30 20:41:00 +0800 13014 13015 Update THANKS. 13016 13017 THANKS | 1 + 13018 1 file changed, 1 insertion(+) 13019 13020commit fd170e8557727bed6bec0518c16415064d972e4e 13021Author: Jia Tan <jiat0218@gmail.com> 13022Date: 2023-11-22 21:20:12 +0800 13023 13024 CI: Test musl libc builds on Ubuntu runner. 13025 13026 .github/workflows/ci.yml | 19 +++++++++++++++++-- 13027 1 file changed, 17 insertions(+), 2 deletions(-) 13028 13029commit db2b4aa068a492c0013279a4ed43803e8ff9bb3e 13030Author: Jia Tan <jiat0218@gmail.com> 13031Date: 2023-11-22 21:12:15 +0800 13032 13033 CI: Allow ci_build.sh to set a different C compiler. 13034 13035 build-aux/ci_build.sh | 11 ++++++++++- 13036 1 file changed, 10 insertions(+), 1 deletion(-) 13037 13038commit ff7badef53c2cd698d4b72b945f34dfd0835e13c 13039Author: Jia Tan <jiat0218@gmail.com> 13040Date: 2023-11-24 21:19:12 +0800 13041 13042 CMake: Use consistent indentation with check_c_source_compiles(). 13043 13044 CMakeLists.txt | 4 ++-- 13045 1 file changed, 2 insertions(+), 2 deletions(-) 13046 13047commit d4af167570f2c14b002ee18a39d5b1e7e5a892b1 13048Author: Jia Tan <jiat0218@gmail.com> 13049Date: 2023-11-22 20:33:36 +0800 13050 13051 CMake: Change __attribute__((__ifunc__())) detection. 13052 13053 This renames ALLOW_ATTR_IFUNC to USE_ATTR_IFUNC and applies the ifunc 13054 detection changes that were made to the Autotools build. 13055 13056 Fixes: https://github.com/tukaani-project/xz/issues/70 13057 13058 CMakeLists.txt | 53 +++++++++++++++++++++++++++++++++++++++++++++-------- 13059 1 file changed, 45 insertions(+), 8 deletions(-) 13060 13061commit 20ecee40a0053fd16371ef0628046bf45e548d72 13062Author: Jia Tan <jiat0218@gmail.com> 13063Date: 2023-11-24 20:19:11 +0800 13064 13065 Docs: Update INSTALL for --enable_ifunc change. 13066 13067 INSTALL | 16 ++++++++-------- 13068 1 file changed, 8 insertions(+), 8 deletions(-) 13069 13070commit ffb456593d695d70052a2f71c7a2e6269217d194 13071Author: Jia Tan <jiat0218@gmail.com> 13072Date: 2023-11-21 20:56:55 +0800 13073 13074 Build: Change --enable-ifunc handling. 13075 13076 Some compilers support __attribute__((__ifunc__())) even though the 13077 dynamic linker does not. The compiler is able to create the binary 13078 but it will fail on startup. So it is not enough to just test if 13079 the attribute is supported. 13080 13081 The default value for enable_ifunc is now auto, which will attempt 13082 to compile a program using __attribute__((__ifunc__())). There are 13083 additional checks in this program if glibc is being used or if it 13084 is running on FreeBSD. 13085 13086 Setting --enable-ifunc will skip this test and always enable 13087 __attribute__((__ifunc__())), even if is not supported. 13088 13089 configure.ac | 61 +++++++++++++++++++++++++++++++++++++++++++----------------- 13090 1 file changed, 44 insertions(+), 17 deletions(-) 13091 13092commit 12b89bcc9915090eb42ae638e565af44b6832a23 13093Author: Lasse Collin <lasse.collin@tukaani.org> 13094Date: 2023-11-23 17:39:10 +0200 13095 13096 xz: Tweak a comment. 13097 13098 src/xz/util.c | 4 ++-- 13099 1 file changed, 2 insertions(+), 2 deletions(-) 13100 13101commit 2ab2e4b5a542eab93902985ce4e642719a8b7a4e 13102Author: Jia Tan <jiat0218@gmail.com> 13103Date: 2023-11-23 22:13:39 +0800 13104 13105 xz: Use is_tty() in message.c. 13106 13107 src/xz/message.c | 7 +------ 13108 1 file changed, 1 insertion(+), 6 deletions(-) 13109 13110commit 584e3a258f32d579b1d07f99b4dc6e856c10ac7e 13111Author: Jia Tan <jiat0218@gmail.com> 13112Date: 2023-11-23 22:04:35 +0800 13113 13114 xz: Create separate is_tty() function. 13115 13116 The new is_tty() will report if a file descriptor is a terminal or not. 13117 On POSIX systems, it is a wrapper around isatty(). However, the native 13118 Windows implementation of isatty() will return true for all character 13119 devices, not just terminals. So is_tty() has a special case for Windows 13120 so it can use alternative Windows API functions to determine if a file 13121 descriptor is a terminal. 13122 13123 This fixes a bug with MSVC and MinGW-w64 builds that refused to read from 13124 or write to non-terminal character devices because xz thought it was a 13125 terminal. For instance: 13126 13127 xz foo -c > /dev/null 13128 13129 would fail because /dev/null was assumed to be a terminal. 13130 13131 src/xz/util.c | 30 +++++++++++++++++++++++------- 13132 src/xz/util.h | 14 ++++++++++++++ 13133 2 files changed, 37 insertions(+), 7 deletions(-) 13134 13135commit 6b05f827f50e686537e9a23c49c5aa4c0aa6b23d 13136Author: Jia Tan <jiat0218@gmail.com> 13137Date: 2023-11-22 20:39:41 +0800 13138 13139 tuklib_integer: Fix typo discovered by codespell. 13140 13141 Based on internet dictionary searches, 'choise' is an outdated spelling 13142 of 'choice'. 13143 13144 src/common/tuklib_integer.h | 2 +- 13145 1 file changed, 1 insertion(+), 1 deletion(-) 13146 13147commit 659aca0d695807c0762d4101765189e4e33d1e2c 13148Author: Lasse Collin <lasse.collin@tukaani.org> 13149Date: 2023-11-17 19:35:19 +0200 13150 13151 xz: Move the check for --suffix with --format=raw a few lines earlier. 13152 13153 Now it reads from argv[] instead of args->arg_names. 13154 13155 src/xz/args.c | 44 ++++++++++++++++++++++---------------------- 13156 1 file changed, 22 insertions(+), 22 deletions(-) 13157 13158commit ca278eb2b7f5a4940f5ab18955297b398d423824 13159Author: Jia Tan <jiat0218@gmail.com> 13160Date: 2023-11-17 20:35:11 +0800 13161 13162 Tests: Create test_suffix.sh. 13163 13164 This tests some complicated interactions with the --suffix= option. 13165 The suffix option must be used with --format=raw, but can optionally 13166 be used to override the default .xz suffix. 13167 13168 This test also verifies some recent bugs have been correctly solved 13169 and to hopefully avoid further regressions in the future. 13170 13171 tests/Makefile.am | 2 + 13172 tests/test_suffix.sh | 189 +++++++++++++++++++++++++++++++++++++++++++++++++++ 13173 2 files changed, 191 insertions(+) 13174 13175commit 2a732aba22da1b0d4a1241cb32280ed010ba03ce 13176Author: Jia Tan <jiat0218@gmail.com> 13177Date: 2023-11-17 20:19:26 +0800 13178 13179 xz: Fix a bug with --files and --files0 in raw mode without a suffix. 13180 13181 The following command caused a segmentation fault: 13182 13183 xz -Fraw --lzma1 --files=foo 13184 13185 when foo was a valid file. The usage of --files or --files0 was not 13186 being checked when compressing or decompressing in raw mode without a 13187 suffix. The suffix checking code was meant to validate that all files 13188 to be processed are "-" (if not writing to standard out), meaning the 13189 data is only coming from standard in. In this case, there were no file 13190 names to check since --files and --files0 store their file name in a 13191 different place. 13192 13193 Later code assumed the suffix was set and caused a segmentation fault. 13194 Now, the above command results in an error. 13195 13196 src/xz/args.c | 5 +++++ 13197 1 file changed, 5 insertions(+) 13198 13199commit 299920bab9ae258a247366339264e8aefca9e3ce 13200Author: Jia Tan <jiat0218@gmail.com> 13201Date: 2023-11-17 20:04:58 +0800 13202 13203 Tests: Fix typo in a comment. 13204 13205 tests/test_files.sh | 2 +- 13206 1 file changed, 1 insertion(+), 1 deletion(-) 13207 13208commit f481523baac946fa3bc13d79186ffaf0c0b818a7 13209Author: Jia Tan <jiat0218@gmail.com> 13210Date: 2023-11-15 23:40:13 +0800 13211 13212 xz: Refactor suffix test with raw format. 13213 13214 The previous version set opt_stdout, but this caused an issue with 13215 copying an input file to standard out when decompressing an unknown file 13216 type. The following needs to result in an error: 13217 13218 echo foo | xz -df 13219 13220 since -c, --stdout is not used. This fixes the previous error by not 13221 setting opt_stdout. 13222 13223 src/xz/args.c | 38 +++++++++++++------------------------- 13224 1 file changed, 13 insertions(+), 25 deletions(-) 13225 13226commit 837ea40b1c9d4998cac4500b55171bf33e0c31a6 13227Author: Jia Tan <jiat0218@gmail.com> 13228Date: 2023-11-14 20:27:46 +0800 13229 13230 xz: Move suffix check after stdout mode is detected. 13231 13232 This fixes a bug introduced in cc5aa9ab138beeecaee5a1e81197591893ee9ca0 13233 when the suffix check was initially moved. This caused a situation that 13234 previously worked: 13235 13236 echo foo | xz -Fraw --lzma1 | wc -c 13237 13238 to fail because the old code knew that this would write to standard out 13239 so a suffix was not needed. 13240 13241 src/xz/args.c | 16 ++++++++-------- 13242 1 file changed, 8 insertions(+), 8 deletions(-) 13243 13244commit d4f4a4d040ef47a5e82dffd0f067e92716606ddf 13245Author: Jia Tan <jiat0218@gmail.com> 13246Date: 2023-11-14 20:27:04 +0800 13247 13248 xz: Detect when all data will be written to standard out earlier. 13249 13250 If the -c, --stdout argument is not used, then we can still detect when 13251 the data will be written to standard out if all of the provided 13252 filenames are "-" (denoting standard in) or if no filenames are 13253 provided. 13254 13255 src/xz/args.c | 21 +++++++++++++++++++++ 13256 1 file changed, 21 insertions(+) 13257 13258commit 2ade7246e7ba729a91460d2fab0f4c7b89d3998b 13259Author: Jia Tan <jiat0218@gmail.com> 13260Date: 2023-11-09 01:21:53 +0800 13261 13262 liblzma: Add missing comments to lz_encoder.h. 13263 13264 src/liblzma/lz/lz_encoder.h | 6 +++++- 13265 1 file changed, 5 insertions(+), 1 deletion(-) 13266 13267commit 5fe1450603dc625340b8b7866fb4a83ff748ad06 13268Author: Jia Tan <jiat0218@gmail.com> 13269Date: 2023-11-01 20:18:30 +0800 13270 13271 Add NEWS for 5.4.5. 13272 13273 NEWS | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 13274 1 file changed, 74 insertions(+) 13275 13276commit 46007049cd42e606543dbe650feb17bdf4469c29 13277Author: Lasse Collin <lasse.collin@tukaani.org> 13278Date: 2023-10-31 21:41:09 +0200 13279 13280 liblzma: Fix compilation of fastpos_tablegen.c. 13281 13282 The macro lzma_attr_visibility_hidden has to be defined to make 13283 fastpos.h usable. The visibility attribute is irrelevant to 13284 fastpos_tablegen.c so simply #define the macro to an empty value. 13285 13286 fastpos_tablegen.c is never built by the included build systems 13287 and so the problem wasn't noticed earlier. It's just a standalone 13288 program for generating fastpos_table.c. 13289 13290 Fixes: https://github.com/tukaani-project/xz/pull/69 13291 Thanks to GitHub user Jamaika1. 13292 13293 src/liblzma/lzma/fastpos_tablegen.c | 2 ++ 13294 1 file changed, 2 insertions(+) 13295 13296commit 148e20607e95781558bdfc823ecba07b7af4b590 13297Author: Jia Tan <jiat0218@gmail.com> 13298Date: 2023-10-31 21:51:40 +0800 13299 13300 Build: Fix text wrapping in an output message. 13301 13302 configure.ac | 9 +++++---- 13303 1 file changed, 5 insertions(+), 4 deletions(-) 13304 13305commit 8c36ab79cbf23104ce7a3d533d5ac98cd492e57c 13306Author: Lasse Collin <lasse.collin@tukaani.org> 13307Date: 2023-10-30 18:09:53 +0200 13308 13309 liblzma: Add a note why crc_always_inline exists for now. 13310 13311 Solaris Studio is a possible example (not tested) which 13312 supports the always_inline attribute but might not get 13313 detected by the common.h #ifdefs. 13314 13315 src/liblzma/check/crc_common.h | 5 +++++ 13316 1 file changed, 5 insertions(+) 13317 13318commit e7a86b94cd247435ac96bc79ba528b690b9ca388 13319Author: Lasse Collin <lasse.collin@tukaani.org> 13320Date: 2023-10-22 17:59:11 +0300 13321 13322 liblzma: Use lzma_always_inline in memcmplen.h. 13323 13324 src/liblzma/common/memcmplen.h | 3 +-- 13325 1 file changed, 1 insertion(+), 2 deletions(-) 13326 13327commit dcfe5632992fb7f06f921da13fcdd84f83d0d285 13328Author: Lasse Collin <lasse.collin@tukaani.org> 13329Date: 2023-10-30 17:43:03 +0200 13330 13331 liblzma: #define lzma_always_inline in common.h. 13332 13333 src/liblzma/common/common.h | 17 +++++++++++++++++ 13334 1 file changed, 17 insertions(+) 13335 13336commit 41113fe30a47f6fd3e30cb4494dd538e86212edf 13337Author: Lasse Collin <lasse.collin@tukaani.org> 13338Date: 2023-10-22 17:15:32 +0300 13339 13340 liblzma: Use lzma_attr_visibility_hidden on private extern declarations. 13341 13342 These variables are internal to liblzma and not exposed in the API. 13343 13344 src/liblzma/check/check.h | 7 +++++++ 13345 src/liblzma/common/stream_flags_common.h | 3 +++ 13346 src/liblzma/lz/lz_encoder_hash.h | 1 + 13347 src/liblzma/lzma/fastpos.h | 1 + 13348 src/liblzma/rangecoder/price.h | 1 + 13349 5 files changed, 13 insertions(+) 13350 13351commit a2f5ca706acc6f7715b8d260a8c6ed50d7717478 13352Author: Lasse Collin <lasse.collin@tukaani.org> 13353Date: 2023-10-22 17:08:39 +0300 13354 13355 liblzma: #define lzma_attr_visibility_hidden in common.h. 13356 13357 In ELF shared libs: 13358 13359 -fvisibility=hidden affects definitions of symbols but not 13360 declarations.[*] This doesn't affect direct calls to functions 13361 inside liblzma as a linker can replace a call to lzma_foo@plt 13362 with a call directly to lzma_foo when -fvisibility=hidden is used. 13363 13364 [*] It has to be like this because otherwise every installed 13365 header file would need to explictly set the symbol visibility 13366 to default. 13367 13368 When accessing extern variables that aren't defined in the 13369 same translation unit, compiler assumes that the variable has 13370 the default visibility and thus indirection is needed. Unlike 13371 function calls, linker cannot optimize this. 13372 13373 Using __attribute__((__visibility__("hidden"))) with the extern 13374 variable declarations tells the compiler that indirection isn't 13375 needed because the definition is in the same shared library. 13376 13377 About 15+ years ago, someone told me that it would be good if 13378 the CRC tables would be defined in the same translation unit 13379 as the C code of the CRC functions. While I understood that it 13380 could help a tiny amount, I didn't want to change the code because 13381 a separate translation unit for the CRC tables was needed for the 13382 x86 assembly code anyway. But when visibility attributes are 13383 supported, simply marking the extern declaration with the 13384 hidden attribute will get identical result. When there are only 13385 a few affected variables, this is trivial to do. I wish I had 13386 understood this back then already. 13387 13388 src/liblzma/common/common.h | 11 +++++++++++ 13389 1 file changed, 11 insertions(+) 13390 13391commit 2c7ee92e44e1e66f0a427555233eb22c78f6c4f8 13392Author: Lasse Collin <lasse.collin@tukaani.org> 13393Date: 2023-09-30 22:54:28 +0300 13394 13395 liblzma: Refer to MinGW-w64 instead of MinGW in the API headers. 13396 13397 MinGW (formely a MinGW.org Project, later the MinGW.OSDN Project 13398 at <https://osdn.net/projects/mingw/>) has GCC 9.2.0 as the 13399 most recent GCC package (released 2021-02-02). The project might 13400 still be alive but majority of people have switched to MinGW-w64. 13401 Thus it seems clearer to refer to MinGW-w64 in our API headers too. 13402 Building with MinGW is likely to still work but I haven't tested it 13403 in the recent years. 13404 13405 src/liblzma/api/lzma.h | 4 ++-- 13406 src/liblzma/api/lzma/version.h | 2 +- 13407 2 files changed, 3 insertions(+), 3 deletions(-) 13408 13409commit 597f49b61475438a43a417236989b2acc968a686 13410Author: Lasse Collin <lasse.collin@tukaani.org> 13411Date: 2023-09-27 00:58:17 +0300 13412 13413 CMake: Use -D_FILE_OFFSET_BITS=64 if (and only if) needed. 13414 13415 A CMake option LARGE_FILE_SUPPORT is created if and only if 13416 -D_FILE_OFFSET_BITS=64 affects sizeof(off_t). 13417 13418 This is needed on many 32-bit platforms and even with 64-bit builds 13419 with MinGW-w64 to get support for files larger than 2 GiB. 13420 13421 CMakeLists.txt | 7 ++++- 13422 cmake/tuklib_large_file_support.cmake | 52 +++++++++++++++++++++++++++++++++++ 13423 2 files changed, 58 insertions(+), 1 deletion(-) 13424 13425commit 1bc548b8210366e44ba35b0b11577a8e328c1228 13426Author: Lasse Collin <lasse.collin@tukaani.org> 13427Date: 2023-09-30 02:14:25 +0300 13428 13429 CMake: Generate and install liblzma.pc if not using MSVC. 13430 13431 Autotools based build uses -pthread and thus adds it to Libs.private 13432 in liblzma.pc. CMake doesn't use -pthread at all if pthread functions 13433 are available in libc so Libs.private doesn't get -pthread either. 13434 13435 CMakeLists.txt | 21 +++++++++++++++++++++ 13436 1 file changed, 21 insertions(+) 13437 13438commit 2add71966f891d315105d6245f724ed4f43a4eff 13439Author: Lasse Collin <lasse.collin@tukaani.org> 13440Date: 2023-09-30 01:13:13 +0300 13441 13442 CMake: Rearrange the PACKAGE_ variables. 13443 13444 The windres workaround now replaces spaces with \x20 so 13445 the package name isn't repeated. 13446 13447 These changes will help with creation of liblzma.pc. 13448 13449 CMakeLists.txt | 26 +++++++++++++++----------- 13450 1 file changed, 15 insertions(+), 11 deletions(-) 13451 13452commit a7d1b2825c49dc83f1910eeb8ba0f1dfbd886d91 13453Author: Lasse Collin <lasse.collin@tukaani.org> 13454Date: 2023-09-29 20:46:11 +0300 13455 13456 liblzma: Add Cflags.private to liblzma.pc.in for MSYS2. 13457 13458 It properly adds -DLZMA_API_STATIC when compiling code that 13459 will be linked against static liblzma. Having it there on 13460 systems other than Windows does no harm. 13461 13462 See: https://www.msys2.org/docs/pkgconfig/ 13463 13464 src/liblzma/liblzma.pc.in | 1 + 13465 1 file changed, 1 insertion(+) 13466 13467commit 80e0750e3996c1c659e972ce9cf789ca2e99f702 13468Author: Lasse Collin <lasse.collin@tukaani.org> 13469Date: 2023-09-27 22:46:20 +0300 13470 13471 CMake: Create liblzma.def when building liblzma.dll with MinGW-w64. 13472 13473 CMakeLists.txt | 20 ++++++++++++++++++++ 13474 cmake/remove-ordinals.cmake | 26 ++++++++++++++++++++++++++ 13475 2 files changed, 46 insertions(+) 13476 13477commit 08d12595f486890cf601b87f36ee0ddbce57728e 13478Author: Lasse Collin <lasse.collin@tukaani.org> 13479Date: 2023-10-26 21:44:42 +0300 13480 13481 CMake: Change one CMAKE_CURRENT_SOURCE_DIR to CMAKE_CURRENT_LIST_DIR. 13482 13483 In this case they have identical values. 13484 13485 CMakeLists.txt | 2 +- 13486 1 file changed, 1 insertion(+), 1 deletion(-) 13487 13488commit e67aaf698de75c73443a5ec786781cbf2034461d 13489Author: Lasse Collin <lasse.collin@tukaani.org> 13490Date: 2023-10-01 19:10:57 +0300 13491 13492 CMake/Windows: Fix the import library filename. 13493 13494 Both PREFIX and IMPORT_PERFIX have to be set to "" to get 13495 liblzma.dll and liblzma.dll.a. 13496 13497 CMakeLists.txt | 1 + 13498 1 file changed, 1 insertion(+) 13499 13500commit 88588b1246d8c26ffbc138b3e5c413c5f14c3179 13501Author: Lasse Collin <lasse.collin@tukaani.org> 13502Date: 2023-10-25 19:13:25 +0300 13503 13504 Build: Detect -fsanitize= in CFLAGS and incompatible build options. 13505 13506 Now configure will fail if -fsanitize= is found in CFLAGS 13507 and sanitizer-incompatible ifunc or Landlock sandboxing 13508 would be used. These are incompatible with one or more sanitizers. 13509 It's simpler to reject all -fsanitize= uses instead of trying to 13510 pass those that might not cause problems. 13511 13512 CMake-based build was updated similarly. It lets the configuration 13513 finish (SEND_ERROR instead of FATAL_ERROR) so that both error 13514 messages can be seen at once. 13515 13516 CMakeLists.txt | 29 +++++++++++++++++++++++++++++ 13517 configure.ac | 37 +++++++++++++++++++++++++++++++++---- 13518 2 files changed, 62 insertions(+), 4 deletions(-) 13519 13520commit 5e3d890f8862a7d4fbef5e38e11b6c9fbd98f468 13521Author: Jia Tan <jiat0218@gmail.com> 13522Date: 2023-10-24 00:50:08 +0800 13523 13524 CI: Disable sandboxing in fsanitize=address,undefined job. 13525 13526 The sandboxing on Linux now supports Landlock, which restricts all 13527 supported filesystem actions after xz opens the files it needs. The 13528 sandbox is only enabled when one file is input and we are writing to 13529 standard out. With fsanitize=address,undefined, the instrumentation 13530 needs to read additional files after the sandbox is in place. This 13531 forces all xz based test to fail, so the sandbox must instead be 13532 disabled. 13533 13534 .github/workflows/ci.yml | 8 ++++++-- 13535 1 file changed, 6 insertions(+), 2 deletions(-) 13536 13537commit b1408987ea832e2760e478ae960a636df17a1363 13538Author: Jia Tan <jiat0218@gmail.com> 13539Date: 2023-10-24 00:15:39 +0800 13540 13541 CI: Allow disabling the sandbox in ci_build.sh. 13542 13543 build-aux/ci_build.sh | 5 ++++- 13544 1 file changed, 4 insertions(+), 1 deletion(-) 13545 13546commit 91c435cf1c7a1e893706d4d716dfd361621ed824 13547Author: Lasse Collin <lasse.collin@tukaani.org> 13548Date: 2023-10-11 19:47:44 +0300 13549 13550 CMake: Don't shadow the cache entry ENABLE_THREADS with a normal variable. 13551 13552 Using set(ENABLE_THREADS "posix") is confusing because it sets 13553 a new normal variable and leaves the cache entry with the same 13554 name unchanged. The intent wasn't to change the cache entry so 13555 this switches to a different variable name. 13556 13557 CMakeLists.txt | 10 +++++++--- 13558 1 file changed, 7 insertions(+), 3 deletions(-) 13559 13560commit fa1609eb9393ecd30decfed4891c907829f06710 13561Author: Lasse Collin <lasse.collin@tukaani.org> 13562Date: 2023-10-09 22:28:49 +0300 13563 13564 Docs: Update INSTALL about sandboxing support. 13565 13566 INSTALL | 7 ++++++- 13567 1 file changed, 6 insertions(+), 1 deletion(-) 13568 13569commit 8276c7f41c671eee4aa3239490658b23dcfd3021 13570Author: Lasse Collin <lasse.collin@tukaani.org> 13571Date: 2023-10-09 22:07:52 +0300 13572 13573 xz: Support basic sandboxing with Linux Landlock (ABI versions 1-3). 13574 13575 It is enabled only when decompressing one file to stdout, 13576 similar to how Capsicum is used. 13577 13578 Landlock was added in Linux 5.13. 13579 13580 CMakeLists.txt | 12 +++++++++++- 13581 configure.ac | 11 ++++++++--- 13582 src/xz/file_io.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 13583 src/xz/main.c | 19 +++++++++++++++++++ 13584 src/xz/private.h | 3 ++- 13585 5 files changed, 98 insertions(+), 5 deletions(-) 13586 13587commit 3a1e9fd031b9320d769d63b503ef4e82e1b6ea8c 13588Author: Lasse Collin <lasse.collin@tukaani.org> 13589Date: 2023-10-09 21:12:31 +0300 13590 13591 CMake: Edit threading related messages. 13592 13593 It's mostly to change from "thread method" to "threading method". 13594 13595 CMakeLists.txt | 19 ++++++++++--------- 13596 1 file changed, 10 insertions(+), 9 deletions(-) 13597 13598commit bf011352528ae3539ea7b780b45b96736ee57a99 13599Author: Lasse Collin <lasse.collin@tukaani.org> 13600Date: 2023-10-09 20:59:24 +0300 13601 13602 CMake: Use FATAL_ERROR if user-supplied options aren't understood. 13603 13604 This way typos are caught quickly and compounding error messages 13605 are avoided (a single typo could cause more than one error). 13606 13607 This keeps using SEND_ERROR when the system is lacking a feature 13608 (like threading library or sandboxing method). This way the whole 13609 configuration log will be generated in case someone wishes to 13610 report a problem upstream. 13611 13612 CMakeLists.txt | 28 ++++++++++++++-------------- 13613 1 file changed, 14 insertions(+), 14 deletions(-) 13614 13615commit 3f53870c249945d657ca3d75e0993e6267d71f75 13616Author: Lasse Collin <lasse.collin@tukaani.org> 13617Date: 2023-10-09 18:37:32 +0300 13618 13619 CMake: Add sandboxing support. 13620 13621 CMakeLists.txt | 50 +++++++++++++++++++++++++++++++++++++++++++++++++- 13622 1 file changed, 49 insertions(+), 1 deletion(-) 13623 13624commit 2e2cd11535ad77364cf021297e0b3f162fa3a3d0 13625Author: Lasse Collin <lasse.collin@tukaani.org> 13626Date: 2023-10-09 18:13:08 +0300 13627 13628 Simplify detection of Capsicum support. 13629 13630 This removes support for FreeBSD 10.0 and 10.1 which used 13631 <sys/capability.h> instead of <sys/capsicum.h>. Support for 13632 FreeBSD 10.1 ended on 2016-12-31. So now FreeBSD >= 10.2 is 13633 required to enable Capsicum support. 13634 13635 This also removes support for Capsicum on Linux (libcaprights) 13636 which seems to have been unmaintained since 2017 and Linux 4.11: 13637 https://github.com/google/capsicum-linux 13638 13639 configure.ac | 4 +-- 13640 m4/ax_check_capsicum.m4 | 85 ------------------------------------------------- 13641 src/xz/Makefile.am | 2 +- 13642 src/xz/file_io.c | 14 +++----- 13643 src/xz/private.h | 2 +- 13644 5 files changed, 9 insertions(+), 98 deletions(-) 13645 13646commit c57858b60e186d020b2dbaf7aabd9b32c71da824 13647Author: Lasse Collin <lasse.collin@tukaani.org> 13648Date: 2023-09-25 01:46:36 +0300 13649 13650 xz/Windows: Allow clock_gettime with POSIX threads. 13651 13652 If winpthreads are used for threading, it's OK to use clock_gettime() 13653 from winpthreads too. 13654 13655 src/xz/mytime.c | 9 ++++++--- 13656 1 file changed, 6 insertions(+), 3 deletions(-) 13657 13658commit dd32f628bb5541ef4e8ce66966ef456a1934084c 13659Author: Lasse Collin <lasse.collin@tukaani.org> 13660Date: 2023-09-25 01:39:26 +0300 13661 13662 mythread.h: Make MYTHREAD_POSIX compatible with MinGW-w64's winpthreads. 13663 13664 This might be almost useless but it doesn't need much extra code either. 13665 13666 src/common/mythread.h | 23 ++++++++++++++++++++++- 13667 1 file changed, 22 insertions(+), 1 deletion(-) 13668 13669commit 680e52cdd086e92691d8a0bca2c98815565f60ca 13670Author: Lasse Collin <lasse.collin@tukaani.org> 13671Date: 2023-09-23 03:06:36 +0300 13672 13673 CMake: Check for clock_gettime() even on Windows. 13674 13675 This mirrors configure.ac although currently MinGW-w64 builds 13676 don't use clock_gettime() even if it is found. 13677 13678 CMakeLists.txt | 44 +++++++++++++++++++++----------------------- 13679 1 file changed, 21 insertions(+), 23 deletions(-) 13680 13681commit 1c1a8c3ee4dad0064dbe63b8dbc4ac4bc679f419 13682Author: Lasse Collin <lasse.collin@tukaani.org> 13683Date: 2023-09-23 03:23:32 +0300 13684 13685 Build: Check for clock_gettime() even if not using POSIX threads. 13686 13687 See the new comment in the code. 13688 13689 This also makes the check for clock_gettime() run with MinGW-w64 13690 with which we don't want to use clock_gettime(). The previous 13691 commit already took care of this situation. 13692 13693 configure.ac | 31 ++++++++++++++++++------------- 13694 1 file changed, 18 insertions(+), 13 deletions(-) 13695 13696commit 46fd991cd2808ef62554853864c946232e7547f0 13697Author: Lasse Collin <lasse.collin@tukaani.org> 13698Date: 2023-09-24 22:58:53 +0300 13699 13700 xz/Windows: Ensure that clock_gettime() isn't used with MinGW-w64. 13701 13702 This commit alone doesn't change anything in the real-world: 13703 13704 - configure.ac currently checks for clock_gettime() only 13705 when using pthreads. 13706 13707 - CMakeLists.txt doesn't check for clock_gettime() on Windows. 13708 13709 So clock_gettime() wasn't used with MinGW-w64 before either. 13710 13711 clock_gettime() provides monotonic time and it's better than 13712 gettimeofday() in this sense. But clock_gettime() is defined 13713 in winpthreads, and liblzma or xz needs nothing else from 13714 winpthreads. By avoiding clock_gettime(), we avoid the dependency on 13715 libwinpthread-1.dll or the need to link against the static version. 13716 13717 As a bonus, GetTickCount64() and MinGW-w64's gettimeofday() can be 13718 faster than clock_gettime(CLOCK_MONOTONIC, &tv). The resolution 13719 is more than good enough for the progress indicator in xz. 13720 13721 src/xz/mytime.c | 9 +++++++-- 13722 1 file changed, 7 insertions(+), 2 deletions(-) 13723 13724commit cdb4d91f2464b50c985ef7b9517314ea237ddda7 13725Author: Lasse Collin <lasse.collin@tukaani.org> 13726Date: 2023-09-24 00:21:22 +0300 13727 13728 xz/Windows: Use GetTickCount64() with MinGW-w64 if using Vista threads. 13729 13730 src/xz/mytime.c | 14 +++++++++++--- 13731 1 file changed, 11 insertions(+), 3 deletions(-) 13732 13733commit 988e09f27b9b04a43d45d10f92782e0092ee27a9 13734Author: Jia Tan <jiat0218@gmail.com> 13735Date: 2023-10-20 19:17:46 +0800 13736 13737 liblzma: Move is_clmul_supported() back to crc_common.h. 13738 13739 This partially reverts creating crc_clmul.c 13740 (8c0f9376f58c0696d5d6719705164d35542dd891) where is_clmul_supported() 13741 was moved, extern'ed, and renamed to lzma_is_clmul_supported(). This 13742 caused a problem when the function call to lzma_is_clmul_supported() 13743 results in a call through the PLT. ifunc resolvers run very early in 13744 the dynamic loading sequence, so the PLT may not be setup properly at 13745 this point. Whether the PLT is used or not for 13746 lzma_is_clmul_supported() depened upon the compiler-toolchain used and 13747 flags. 13748 13749 In liblzma compiled with GCC, for instance, GCC will go through the PLT 13750 for function calls internal to liblzma if the version scripts and 13751 symbol visibility hiding are not used. If lazy-binding is disabled, 13752 then it would have made any program linked with liblzma fail during 13753 dynamic loading in the ifunc resolver. 13754 13755 src/liblzma/check/crc32_fast.c | 2 +- 13756 src/liblzma/check/crc64_fast.c | 2 +- 13757 src/liblzma/check/crc_clmul.c | 45 ------------------------------------ 13758 src/liblzma/check/crc_common.h | 52 +++++++++++++++++++++++++++++++++++++++--- 13759 4 files changed, 51 insertions(+), 50 deletions(-) 13760 13761commit 105c7ca90d4152942e0798580a37f736d02faa22 13762Author: Jia Tan <jiat0218@gmail.com> 13763Date: 2023-10-19 16:23:32 +0800 13764 13765 Build: Remove check for COND_CHECK_CRC32 in check/Makefile.inc. 13766 13767 Currently crc32 is always enabled, so COND_CHECK_CRC32 must always be 13768 set. Because of this, it makes the recent change to conditionally 13769 compile check/crc_clmul.c appear wrong since that file has CLMUL 13770 implementations for both CRC32 and CRC64. 13771 13772 src/liblzma/check/Makefile.inc | 4 ++-- 13773 1 file changed, 2 insertions(+), 2 deletions(-) 13774 13775commit 139757170468f0f1fafdf0a8ffa74363d1ea1d0c 13776Author: Jia Tan <jiat0218@gmail.com> 13777Date: 2023-10-19 16:09:01 +0800 13778 13779 CMake: Add ALLOW_CLMUL_CRC option to enable/disable CLMUL. 13780 13781 The option is enabled by default, but will only be visible to a user 13782 listing cache variables or using a CMake GUI application if the 13783 immintrin.h header file is found. 13784 13785 This mirrors our Autotools build --disable-clmul-crc functionality. 13786 13787 CMakeLists.txt | 44 +++++++++++++++++++++++++------------------- 13788 1 file changed, 25 insertions(+), 19 deletions(-) 13789 13790commit c60b25569d414bb73b705977a4dd342f8f9f1965 13791Author: Jia Tan <jiat0218@gmail.com> 13792Date: 2023-10-19 00:22:50 +0800 13793 13794 liblzma: Fix -fsanitize=address failure with crc_clmul functions. 13795 13796 After forcing crc_simd_body() to always be inlined it caused 13797 -fsanitize=address to fail for lzma_crc32_clmul() and 13798 lzma_crc64_clmul(). The __no_sanitize_address__ attribute was added 13799 to lzma_crc32_clmul() and lzma_crc64_clmul(), but not removed from 13800 crc_simd_body(). ASAN and inline functions behavior has changed over 13801 the years for GCC specifically, so while strictly required we will 13802 keep __attribute__((__no_sanitize_address__)) on crc_simd_body() in 13803 case this becomes a requirement in the future. 13804 13805 Older GCC versions refuse to inline a function with ASAN if the 13806 caller and callee do not agree on sanitization flags 13807 (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89124#c3). If the 13808 function was forced to be inlined, it will not compile if the callee 13809 function has __no_sanitize_address__ but the caller doesn't. 13810 13811 src/liblzma/check/crc_clmul.c | 6 ++++++ 13812 1 file changed, 6 insertions(+) 13813 13814commit 9a78971261bc67622cbd7dae02f6966968ac1393 13815Author: Lasse Collin <lasse.collin@tukaani.org> 13816Date: 2023-10-14 20:16:13 +0300 13817 13818 tuklib_integer: Update the CMake test for fast unaligned access. 13819 13820 cmake/tuklib_integer.cmake | 69 ++++++++++++++++++++++++++++++++++++---------- 13821 1 file changed, 54 insertions(+), 15 deletions(-) 13822 13823commit 2f81ac852bc5aafc91c8e2adc66b5114761703c4 13824Author: Lasse Collin <lasse.collin@tukaani.org> 13825Date: 2023-09-23 23:28:48 +0300 13826 13827 Build: Enabled unaligned access by default on PowerPC64LE and some RISC-V. 13828 13829 PowerPC64LE wasn't tested but it seems like a safe change. 13830 POWER8 supports unaligned access in little endian mode. Testing 13831 on godbolt.org shows that GCC uses unaligned access by default. 13832 13833 The RISC-V macro __riscv_misaligned_fast is very new and not 13834 in any stable compiler release yet. 13835 13836 Documentation in INSTALL was updated to match. 13837 13838 Documentation about an autodetection bug when using ARM64 GCC 13839 with -mstrict-align was added to INSTALL. 13840 13841 CMake files weren't updated yet. 13842 13843 INSTALL | 39 +++++++++++++++++++++++++++++++++++++-- 13844 m4/tuklib_integer.m4 | 34 +++++++++++++++++++++++++++------- 13845 2 files changed, 64 insertions(+), 9 deletions(-) 13846 13847commit c8f715f1bca4c30db814fcf1fd2fe88b8992ede2 13848Author: Lasse Collin <lasse.collin@tukaani.org> 13849Date: 2023-10-14 17:56:59 +0300 13850 13851 tuklib_integer: Revise unaligned reads and writes on strict-align archs. 13852 13853 In XZ Utils context this doesn't matter much because 13854 unaligned reads and writes aren't used in hot code 13855 when TUKLIB_FAST_UNALIGNED_ACCESS isn't #defined. 13856 13857 src/common/tuklib_integer.h | 256 ++++++++++++++++++++++++++++++++------------ 13858 1 file changed, 189 insertions(+), 67 deletions(-) 13859 13860commit 6828242735cbf61b93d140383336e1e51a006f2d 13861Author: Lasse Collin <lasse.collin@tukaani.org> 13862Date: 2023-09-23 02:21:49 +0300 13863 13864 tuklib_integer: Add missing write64be and write64le fallback functions. 13865 13866 src/common/tuklib_integer.h | 34 ++++++++++++++++++++++++++++++++++ 13867 1 file changed, 34 insertions(+) 13868 13869commit 1c8884f0af28b3a4690bb573cdf3240a8ec73416 13870Author: Jia Tan <jiat0218@gmail.com> 13871Date: 2023-10-18 19:57:10 +0800 13872 13873 liblzma: Set the MSVC optimization fix to only cover lzma_crc64_clmul(). 13874 13875 After testing a 32-bit Release build on MSVC, only lzma_crc64_clmul() 13876 has the bug. crc_simd_body() and lzma_crc32_clmul() do not need the 13877 optimizations disabled. 13878 13879 src/liblzma/check/crc_clmul.c | 30 +++++++++++++++--------------- 13880 1 file changed, 15 insertions(+), 15 deletions(-) 13881 13882commit 5ce0f7a48bdf5c3b45430850a4487307afac6143 13883Author: Lasse Collin <lasse.collin@tukaani.org> 13884Date: 2023-10-18 14:30:00 +0300 13885 13886 liblzma: CRC_USE_GENERIC_FOR_SMALL_INPUTS cannot be used with ifunc. 13887 13888 src/liblzma/check/crc_common.h | 4 +++- 13889 1 file changed, 3 insertions(+), 1 deletion(-) 13890 13891commit 27735380491bb5ce0d0f41d5244d89c1d0825f6b 13892Author: Lasse Collin <lasse.collin@tukaani.org> 13893Date: 2023-10-17 21:53:11 +0300 13894 13895 liblzma: Include common.h in crc_common.h. 13896 13897 crc_common.h depends on common.h. The headers include common.h except 13898 when there is a reason to not do so. 13899 13900 src/liblzma/check/crc_clmul.c | 1 - 13901 src/liblzma/check/crc_common.h | 3 +++ 13902 2 files changed, 3 insertions(+), 1 deletion(-) 13903 13904commit e13b7947b92355c334edd594295d3a2c99c4bca1 13905Author: Jia Tan <jiat0218@gmail.com> 13906Date: 2023-10-18 01:23:26 +0800 13907 13908 liblzma: Add include guards to crc_common.h. 13909 13910 src/liblzma/check/crc_common.h | 5 +++++ 13911 1 file changed, 5 insertions(+) 13912 13913commit 40abd88afcc61a8157fcd12d78d491caeb8e12be 13914Author: Jia Tan <jiat0218@gmail.com> 13915Date: 2023-10-18 22:50:25 +0800 13916 13917 liblzma: Add the crc_always_inline macro to crc_simd_body(). 13918 13919 Forcing this to be inline has a significant speed improvement at the 13920 cost of a few repeated instructions. The compilers tested on did not 13921 inline this function since it is large and is used twice in the same 13922 translation unit. 13923 13924 src/liblzma/check/crc_clmul.c | 2 +- 13925 1 file changed, 1 insertion(+), 1 deletion(-) 13926 13927commit a5966c276bd6fa975f0389f8a8dc61393de750b0 13928Author: Jia Tan <jiat0218@gmail.com> 13929Date: 2023-10-18 22:48:19 +0800 13930 13931 liblzma: Create crc_always_inline macro. 13932 13933 This macro must be used instead of the inline keyword. On MSVC, it is 13934 a replacement for __forceinline which is an MSVC specific keyword that 13935 should not be used with inline (it will issue a warning if it is). 13936 13937 It does not use a build system check to determine if 13938 __attribute__((__always_inline__)) since all compilers that can use 13939 CLMUL extensions (except the special case for MSVC) should support this 13940 attribute. If this assumption is incorrect then it will result in a bug 13941 report instead of silently producing slow code. 13942 13943 src/liblzma/check/crc_common.h | 15 +++++++++++++++ 13944 1 file changed, 15 insertions(+) 13945 13946commit 96b663f67c0e738a99ba8f35d9f4ced9add74544 13947Author: Jia Tan <jiat0218@gmail.com> 13948Date: 2023-10-14 13:23:23 +0800 13949 13950 liblzma: Refactor CRC comments. 13951 13952 A detailed description of the three dispatch methods was added. Also, 13953 duplicated comments now only appear in crc32_fast.c or were removed from 13954 both crc32_fast.c and crc64_fast.c if they appeared in crc_clmul.c. 13955 13956 src/liblzma/check/crc32_fast.c | 64 +++++++++++++++++++++++++++++------------- 13957 src/liblzma/check/crc64_fast.c | 61 ++++++---------------------------------- 13958 2 files changed, 53 insertions(+), 72 deletions(-) 13959 13960commit 8c0f9376f58c0696d5d6719705164d35542dd891 13961Author: Jia Tan <jiat0218@gmail.com> 13962Date: 2023-10-14 12:17:57 +0800 13963 13964 liblzma: Create crc_clmul.c. 13965 13966 Both crc32_clmul() and crc64_clmul() are now exported from 13967 crc32_clmul.c as lzma_crc32_clmul() and lzma_crc64_clmul(). This 13968 ensures that is_clmul_supported() (now lzma_is_clmul_supported()) is 13969 not duplicated between crc32_fast.c and crc64_fast.c. 13970 13971 Also, it encapsulates the complexity of the CLMUL implementations into a 13972 single file and reduces the complexity of crc32_fast.c and crc64_fast.c. 13973 Before, CLMUL code was present in crc32_fast.c, crc64_fast.c, and 13974 crc_common.h. 13975 13976 During the conversion, various cleanups were applied to code (thanks to 13977 Lasse Collin) including: 13978 13979 - Require using semicolons with MASK_/L/H/LH macros. 13980 - Variable typing and const handling improvements. 13981 - Improvements to comments. 13982 - Fixes to the pragmas used. 13983 - Removed unneeded variables. 13984 - Whitespace improvements. 13985 - Fixed CRC_USE_GENERIC_FOR_SMALL_INPUTS handling. 13986 - Silenced warnings and removed the need for some #pragmas 13987 13988 CMakeLists.txt | 6 +- 13989 configure.ac | 6 +- 13990 src/liblzma/check/Makefile.inc | 3 + 13991 src/liblzma/check/crc32_fast.c | 120 +----------- 13992 src/liblzma/check/crc64_fast.c | 128 +------------ 13993 src/liblzma/check/crc_clmul.c | 414 +++++++++++++++++++++++++++++++++++++++++ 13994 src/liblzma/check/crc_common.h | 190 +------------------ 13995 7 files changed, 444 insertions(+), 423 deletions(-) 13996 13997commit a3ebc2c516b09616638060806c841bd4bcf7bce3 13998Author: Jia Tan <jiat0218@gmail.com> 13999Date: 2023-10-14 10:23:03 +0800 14000 14001 liblzma: Define CRC_USE_IFUNC in crc_common.h. 14002 14003 When ifunc is supported, we can define a simpler macro instead of 14004 repeating the more complex check in both crc32_fast.c and crc64_fast.c. 14005 14006 src/liblzma/check/crc32_fast.c | 3 +-- 14007 src/liblzma/check/crc64_fast.c | 3 +-- 14008 src/liblzma/check/crc_common.h | 5 +++++ 14009 3 files changed, 7 insertions(+), 4 deletions(-) 14010 14011commit f1cd9d7194f005cd66ec03c6635ceae75f90ef17 14012Author: Hans Jansen <hansjansen162@outlook.com> 14013Date: 2023-10-12 19:37:01 +0200 14014 14015 liblzma: Added crc32_clmul to crc32_fast.c. 14016 14017 src/liblzma/check/crc32_fast.c | 247 ++++++++++++++++++++++++++++++++++++++-- 14018 src/liblzma/check/crc32_table.c | 19 +++- 14019 2 files changed, 255 insertions(+), 11 deletions(-) 14020 14021commit 93e6fb08b22c7c13be2dd1e7274fe78413436254 14022Author: Hans Jansen <hansjansen162@outlook.com> 14023Date: 2023-10-12 19:23:40 +0200 14024 14025 liblzma: Moved CLMUL CRC logic to crc_common.h. 14026 14027 crc64_fast.c was updated to use the code from crc_common.h instead. 14028 14029 src/liblzma/check/crc64_fast.c | 257 ++--------------------------------------- 14030 src/liblzma/check/crc_common.h | 230 +++++++++++++++++++++++++++++++++++- 14031 2 files changed, 240 insertions(+), 247 deletions(-) 14032 14033commit 233885a437f8b55a5c8442984ebc0aaa579e92de 14034Author: Hans Jansen <hansjansen162@outlook.com> 14035Date: 2023-10-12 19:07:50 +0200 14036 14037 liblzma: Rename crc_macros.h to crc_common.h. 14038 14039 CMakeLists.txt | 2 +- 14040 src/liblzma/check/Makefile.inc | 2 +- 14041 src/liblzma/check/crc32_fast.c | 2 +- 14042 src/liblzma/check/crc64_fast.c | 2 +- 14043 src/liblzma/check/{crc_macros.h => crc_common.h} | 2 +- 14044 5 files changed, 5 insertions(+), 5 deletions(-) 14045 14046commit 37947d4a7565b87e4cec8b89229d35b0a3f8d2cd 14047Author: Gabriela Gutierrez <gabigutierrez@google.com> 14048Date: 2023-09-26 15:55:13 +0000 14049 14050 CI: Bump and ref actions by commit SHA in windows-ci.yml 14051 14052 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. 14053 14054 It's important to make sure the SHA's are from the original repositories and not forks. 14055 14056 For reference: 14057 14058 https://github.com/msys2/setup-msys2/releases/tag/v2.20.1 14059 https://github.com/msys2/setup-msys2/commit/27b3aa77f672cb6b3054121cfd80c3d22ceebb1d 14060 14061 https://github.com/actions/checkout/releases/tag/v4.1.0 14062 https://github.com/actions/checkout/commit/8ade135a41bc03ea155e62e844d188df1ea18608 14063 14064 https://github.com/actions/upload-artifact/releases/tag/v3.1.3 14065 https://github.com/actions/upload-artifact/commit/a8a3f3ad30e3422c9c7b888a15615d19a852ae32 14066 14067 Signed-off-by: Gabriela Gutierrez <gabigutierrez@google.com> 14068 14069 .github/workflows/windows-ci.yml | 6 +++--- 14070 1 file changed, 3 insertions(+), 3 deletions(-) 14071 14072commit f28cc9bd481ce493da11f98c18526d324211599a 14073Author: Gabriela Gutierrez <gabigutierrez@google.com> 14074Date: 2023-09-26 14:35:08 +0000 14075 14076 CI: Bump and ref actions by commit SHA in ci.yml 14077 14078 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. 14079 14080 It's important to make sure the SHA's are from the original repositories and not forks. 14081 14082 For reference: 14083 14084 https://github.com/actions/checkout/releases/tag/v4.1.0 14085 https://github.com/actions/checkout/commit/8ade135a41bc03ea155e62e844d188df1ea18608 14086 14087 https://github.com/actions/upload-artifact/releases/tag/v3.1.3 14088 https://github.com/actions/upload-artifact/commit/a8a3f3ad30e3422c9c7b888a15615d19a852ae32 14089 14090 Signed-off-by: Gabriela Gutierrez <gabigutierrez@google.com> 14091 14092 .github/workflows/ci.yml | 4 ++-- 14093 1 file changed, 2 insertions(+), 2 deletions(-) 14094 14095commit f74f1740067b75042497edbfa6ea457ff75484b9 14096Author: Jia Tan <jiat0218@gmail.com> 14097Date: 2023-10-12 20:12:18 +0800 14098 14099 Build: Update visibility.m4 from Gnulib. 14100 14101 Updating from version 6 -> 8 from upstream. Declarations for variables 14102 and function bodies were added to avoid unnecessary failures with 14103 -Werror. 14104 14105 m4/visibility.m4 | 9 +++++++-- 14106 1 file changed, 7 insertions(+), 2 deletions(-) 14107 14108commit 5c4bca521e6fb435898a0012b3276eee70a6dadf 14109Author: Lasse Collin <lasse.collin@tukaani.org> 14110Date: 2023-10-06 19:36:35 +0300 14111 14112 Update THANKS. 14113 14114 THANKS | 1 + 14115 1 file changed, 1 insertion(+) 14116 14117commit d91cb6e884c73d0b05d7e7d68ad4e6eb29f4b44b 14118Author: Lasse Collin <lasse.collin@tukaani.org> 14119Date: 2023-10-06 18:55:57 +0300 14120 14121 CMake/Windows: Fix when the windres workaround is applied. 14122 14123 CMake doesn't set WIN32 on CYGWIN but the workaround is 14124 probably needed on Cygwin too. Same for MSYS and MSYS2. 14125 14126 The workaround must not be used with Clang that is acting in 14127 MSVC mode. This fixes it by checking for the known environments 14128 that need the workaround instead of using "NOT MSVC". 14129 14130 Thanks to Martin Storsjö. 14131 https://github.com/tukaani-project/xz/commit/0570308ddd9c0e39e85597ebc0e31d4fc81d436f#commitcomment-129098431 14132 14133 CMakeLists.txt | 6 +++--- 14134 1 file changed, 3 insertions(+), 3 deletions(-) 14135 14136commit 01e34aa1171b04f8b28960b1cc6135a903e0c13d 14137Author: Jia Tan <jiat0218@gmail.com> 14138Date: 2023-09-29 22:11:54 +0800 14139 14140 CI: Disable CLANG64 MSYS2 environment until bug is resolved. 14141 14142 lld 17.0.1 searches for libraries to link first in the toolchain 14143 directories before the local directory when building. The is a problem 14144 for us because liblzma.a is installed in MSYS2 CLANG64 by default and 14145 xz.exe will thus use the installed library instead of the one being 14146 built. 14147 14148 This causes tests to fail when they are expecting features to be 14149 disabled. More importantly, it will compile xz.exe with an incorrect 14150 liblzma and could cause unexpected behavior by being unable to update 14151 liblzma code in static builds. The CLANG64 environment can be tested 14152 again once this is fixed. 14153 14154 Link to bug: https://github.com/llvm/llvm-project/issues/67779. 14155 14156 .github/workflows/windows-ci.yml | 8 +++++--- 14157 1 file changed, 5 insertions(+), 3 deletions(-) 14158 14159commit 30d0c35327f3639cb11224872aa58fdbf0b1526e 14160Author: Jia Tan <jiat0218@gmail.com> 14161Date: 2023-09-29 20:14:39 +0800 14162 14163 CMake: Rename xz and man page symlink custom targets. 14164 14165 The Ninja Generator for CMake cannot have a custom target and its 14166 BYPRODUCTS have the same name. This has prevented Ninja builds on 14167 Unix-like systems since the xz symlinks were introduced in 14168 80a1a8bb838842a2be343bd88ad1462c21c5e2c9. 14169 14170 CMakeLists.txt | 6 +++--- 14171 1 file changed, 3 insertions(+), 3 deletions(-) 14172 14173commit 506d03127a8565442b028ec991e1578124fd3025 14174Author: Jia Tan <jiat0218@gmail.com> 14175Date: 2023-09-29 19:58:44 +0800 14176 14177 CMake: Specify LINKER_LANGUAGE for libgnu target to fix Ninja Generator. 14178 14179 CMake is unable to guess the linker language for just a header file so 14180 it must be explicitly set. 14181 14182 CMakeLists.txt | 6 ++++++ 14183 1 file changed, 6 insertions(+) 14184 14185commit 0570308ddd9c0e39e85597ebc0e31d4fc81d436f 14186Author: Lasse Collin <lasse.collin@tukaani.org> 14187Date: 2023-09-27 19:54:35 +0300 14188 14189 CMake: Fix Windows build with Clang/LLVM 17. 14190 14191 llvm-windres 17.0.0 has more accurate emulation of GNU windres, so 14192 the hack for GNU windres must now be used with llvm-windres too. 14193 14194 LLVM 16.0.6 has the old behavior and there likely won't be more 14195 16.x releases. So we can simply check for >= 17.0.0. 14196 14197 See also: 14198 https://github.com/llvm/llvm-project/commit/2bcc0fdc58a220cb9921b47ec8a32c85f2511a47 14199 14200 CMakeLists.txt | 26 ++++++++++++++------------ 14201 1 file changed, 14 insertions(+), 12 deletions(-) 14202 14203commit 5a9af95f85a7e5d4f9c10cb8cf737651a921f1d1 14204Author: Lasse Collin <lasse.collin@tukaani.org> 14205Date: 2023-09-26 21:47:13 +0300 14206 14207 liblzma: Update a comment. 14208 14209 The C standards don't allow an empty translation unit which can be 14210 avoided by declaring something, without exporting any symbols. 14211 14212 When I committed f644473a211394447824ea00518d0a214ff3f7f2 I had 14213 a feeling that some specific toolchain somewhere didn't like 14214 empty object files (assembler or maybe "ar" complained) but 14215 I cannot find anything to confirm this now. Quite likely I 14216 remembered nonsense. I leave this here as a note to my future self. :-) 14217 14218 src/liblzma/check/crc64_table.c | 3 +-- 14219 1 file changed, 1 insertion(+), 2 deletions(-) 14220 14221commit 8ebaf3f665ddc7e4f19c613005050dde5ccbe499 14222Author: Jia Tan <jiat0218@gmail.com> 14223Date: 2023-09-27 00:02:11 +0800 14224 14225 liblzma: Avoid compiler warning without creating extra symbol. 14226 14227 When the generic fast crc64 method is used, then we omit 14228 lzma_crc64_table[][]. Similar to 14229 d9166b52cf3458a4da3eb92224837ca8fc208d79, we can avoid compiler warnings 14230 with -Wempty-translation-unit (Clang) or -pedantic (GCC) by creating a 14231 never used typedef instead of an extra symbol. 14232 14233 src/liblzma/check/crc64_table.c | 3 +-- 14234 1 file changed, 1 insertion(+), 2 deletions(-) 14235 14236commit 092d21db2e5eea19fe079264ce48c178989c7606 14237Author: Lasse Collin <lasse.collin@tukaani.org> 14238Date: 2023-09-26 17:24:15 +0300 14239 14240 Build: Update the comment about -Werror usage in checks. 14241 14242 configure.ac | 10 ++++++++-- 14243 1 file changed, 8 insertions(+), 2 deletions(-) 14244 14245commit a37a2763383e6c204fe878e1416dd35e7711d3a9 14246Author: Lasse Collin <lasse.collin@tukaani.org> 14247Date: 2023-09-26 15:00:43 +0300 14248 14249 Build: Fix __attribute__((ifunc(...))) detection with clang -Wall. 14250 14251 Now if user-supplied CFLAGS contains -Wall -Wextra -Wpedantic 14252 the two checks that need -Werror will still work. 14253 14254 At CMake side there is add_compile_options(-Wall -Wextra) 14255 but it didn't affect the -Werror tests. So with both Autotools 14256 and CMake only user-supplied CFLAGS could make the checks fail 14257 when they shouldn't. 14258 14259 This is not a full fix as things like -Wunused-macros in 14260 user-supplied CFLAGS will still cause problems with both 14261 GCC and Clang. 14262 14263 CMakeLists.txt | 8 ++++++++ 14264 configure.ac | 8 ++++++++ 14265 2 files changed, 16 insertions(+) 14266 14267commit 9c42f936939b813f25d0ff4e99c3eb9c2d17a0d2 14268Author: Lasse Collin <lasse.collin@tukaani.org> 14269Date: 2023-09-26 13:51:31 +0300 14270 14271 Build: Fix underquoted AC_LANG_SOURCE. 14272 14273 It made no practical difference in this case. 14274 14275 configure.ac | 2 +- 14276 1 file changed, 1 insertion(+), 1 deletion(-) 14277 14278commit 9f1444a8a5c0e724b2c7ef83424f642f07a95982 14279Author: Lasse Collin <lasse.collin@tukaani.org> 14280Date: 2023-09-26 13:14:37 +0300 14281 14282 Build: Silence two Autoconf warnings. 14283 14284 There were two uses of AC_COMPILE_IFELSE that didn't use 14285 AC_LANG_SOURCE and Autoconf warned about these. The omission 14286 had been intentional but it turned out that this didn't do 14287 what I thought it would. 14288 14289 Autoconf 2.71 manual gives an impression that AC_LANG_SOURCE 14290 inserts all #defines that have been made with AC_DEFINE so 14291 far (confdefs.h). The idea was that omitting AC_LANG_SOURCE 14292 would mean that only the exact code included in the 14293 AC_COMPILE_IFELSE call would be compiled. 14294 14295 With C programs this is not true: the #defines get added without 14296 AC_LANG_SOURCE too. There seems to be no neat way to avoid this. 14297 Thus, with the C language at least, adding AC_LANG_SOURCE makes 14298 no other difference than silencing a warning from Autoconf. The 14299 generated "configure" remains identical. (Docs of AC_LANG_CONFTEST 14300 say that the #defines have been inserted since Autoconf 2.63b and 14301 that AC_COMPILE_IFELSE uses AC_LANG_CONFTEST. So the behavior is 14302 documented if one also reads the docs of macros that one isn't 14303 calling directly.) 14304 14305 Any extra code, including #defines, can cause problems for 14306 these two tests because these tests must use -Werror. 14307 CC=clang CFLAGS=-Weverything is the most extreme example. 14308 It enables -Wreserved-macro-identifier which warns about 14309 #define __EXTENSIONS__ 1 because it begins with two underscores. 14310 It's possible to write a test file that passes -Weverything but 14311 it becomes impossible when Autoconf inserts confdefs.h. 14312 14313 So this commit adds AC_LANG_SOURCE to silence Autoconf warnings. 14314 A different solution is needed for -Werror tests. 14315 14316 configure.ac | 9 ++++----- 14317 1 file changed, 4 insertions(+), 5 deletions(-) 14318 14319commit 519e47c2818acde571fadc79551294527fe6cc22 14320Author: Jia Tan <jiat0218@gmail.com> 14321Date: 2023-09-26 01:17:11 +0800 14322 14323 CMake: Remove accidental extra newline. 14324 14325 CMakeLists.txt | 1 - 14326 1 file changed, 1 deletion(-) 14327 14328commit bbb42412da6a02705ba3e668e90840c2683e4e67 14329Author: Jia Tan <jiat0218@gmail.com> 14330Date: 2023-09-26 00:47:26 +0800 14331 14332 Build: Remove Gnulib dependency from tests. 14333 14334 The tests do not use any Gnulib replacements so they do not need to link 14335 libgnu.a or have /lib in the include path. 14336 14337 tests/Makefile.am | 7 +------ 14338 1 file changed, 1 insertion(+), 6 deletions(-) 14339 14340commit d265f6b75691c6c8fa876eb5320c3ff5aed17dfa 14341Author: Jia Tan <jiat0218@gmail.com> 14342Date: 2023-09-26 00:43:43 +0800 14343 14344 CMake: Remove /lib from tests include path. 14345 14346 The tests never included anything from /lib, so this was not needed. 14347 14348 CMakeLists.txt | 1 - 14349 1 file changed, 1 deletion(-) 14350 14351commit 9fb5de41f2fb654ca952d4bda15cf3777c2b720f 14352Author: Jia Tan <jiat0218@gmail.com> 14353Date: 2023-09-24 22:10:41 +0800 14354 14355 Scripts: Change quoting style from `...' to '...'. 14356 14357 src/scripts/xzdiff.in | 2 +- 14358 src/scripts/xzgrep.in | 2 +- 14359 2 files changed, 2 insertions(+), 2 deletions(-) 14360 14361commit eaebdef4d4de3c088b0905f42626b74e0d23abf3 14362Author: Jia Tan <jiat0218@gmail.com> 14363Date: 2023-09-24 22:10:18 +0800 14364 14365 xz: Change quoting style from `...' to '...'. 14366 14367 src/xz/args.c | 6 +++--- 14368 src/xz/file_io.c | 2 +- 14369 src/xz/main.c | 4 ++-- 14370 src/xz/message.c | 14 +++++++------- 14371 src/xz/options.c | 2 +- 14372 src/xz/suffix.c | 2 +- 14373 src/xz/util.c | 6 +++--- 14374 7 files changed, 18 insertions(+), 18 deletions(-) 14375 14376commit f6667702bf075a05fbe336dbf3576ad1a82ec645 14377Author: Jia Tan <jiat0218@gmail.com> 14378Date: 2023-09-24 22:09:47 +0800 14379 14380 liblzma: Change quoting style from `...' to '...'. 14381 14382 This was done for both internal and API headers. 14383 14384 src/liblzma/api/lzma/base.h | 18 +++++++++--------- 14385 src/liblzma/api/lzma/container.h | 10 +++++----- 14386 src/liblzma/api/lzma/filter.h | 6 +++--- 14387 src/liblzma/api/lzma/index.h | 8 ++++---- 14388 src/liblzma/api/lzma/lzma12.h | 2 +- 14389 src/liblzma/lz/lz_encoder.h | 2 +- 14390 src/liblzma/rangecoder/range_decoder.h | 2 +- 14391 7 files changed, 24 insertions(+), 24 deletions(-) 14392 14393commit be012b8097a4eaee335b51357d6befa745f753ce 14394Author: Jia Tan <jiat0218@gmail.com> 14395Date: 2023-09-24 22:09:16 +0800 14396 14397 Build: Change quoting style from `...' to '...'. 14398 14399 configure.ac | 18 +++++++++--------- 14400 dos/config.h | 6 +++--- 14401 m4/getopt.m4 | 2 +- 14402 m4/tuklib_progname.m4 | 2 +- 14403 windows/build.bash | 2 +- 14404 5 files changed, 15 insertions(+), 15 deletions(-) 14405 14406commit ce162db07f03495bd333696e66883c8f36abdc1e 14407Author: Jia Tan <jiat0218@gmail.com> 14408Date: 2023-09-24 22:05:02 +0800 14409 14410 Docs: Change quoting style from `...' to '...'. 14411 14412 These days the ` and ' do not look symmetric. This quoting style has 14413 been changed in various apps over the years including the GNU tools. 14414 14415 INSTALL | 6 +++--- 14416 doc/examples/01_compress_easy.c | 2 +- 14417 doc/examples/11_file_info.c | 16 ++++++++-------- 14418 3 files changed, 12 insertions(+), 12 deletions(-) 14419 14420commit db17656721e43939bfa4ec13506e7c76f4b86da6 14421Author: Jia Tan <jiat0218@gmail.com> 14422Date: 2023-09-24 21:25:01 +0800 14423 14424 lib: Silence -Wsign-conversion in getopt.c. 14425 14426 lib/getopt.c | 6 +++--- 14427 1 file changed, 3 insertions(+), 3 deletions(-) 14428 14429commit a6234f677d66888f435010bc0b67de6a32fefcf6 14430Author: Jia Tan <jiat0218@gmail.com> 14431Date: 2023-09-24 20:48:52 +0800 14432 14433 Build: Update getopt.m4 from Gnulib. 14434 14435 This file was modified from upstream since we do not need to replace 14436 getopt() and can avoid complexity and feature tests. 14437 14438 m4/getopt.m4 | 79 ++++++++++++++++++++++++++++++------------------------------ 14439 1 file changed, 39 insertions(+), 40 deletions(-) 14440 14441commit 84808b68f1075e8603a8ef95d361a61fdc6a5b10 14442Author: Jia Tan <jiat0218@gmail.com> 14443Date: 2023-09-26 00:09:53 +0800 14444 14445 CMake: Add /lib to include path. 14446 14447 CMakeLists.txt | 5 +++++ 14448 1 file changed, 5 insertions(+) 14449 14450commit 01804a0b4b64e0f33568e947e0579263808c59d3 14451Author: Jia Tan <jiat0218@gmail.com> 14452Date: 2023-09-24 20:36:34 +0800 14453 14454 CMake: Update libgnu target with new header files. 14455 14456 CMakeLists.txt | 5 +++++ 14457 1 file changed, 5 insertions(+) 14458 14459commit d34558388fe1d8929f6478d61dc322eb4f2900af 14460Author: Jia Tan <jiat0218@gmail.com> 14461Date: 2023-09-23 00:47:52 +0800 14462 14463 lib: Update Makefile.am for new header files. 14464 14465 lib/Makefile.am | 12 +++++++++++- 14466 1 file changed, 11 insertions(+), 1 deletion(-) 14467 14468commit 52bf644bdf536e20fcc743b712cede135e05eec5 14469Author: Jia Tan <jiat0218@gmail.com> 14470Date: 2023-09-24 20:34:03 +0800 14471 14472 lib: Update getopt1.c from Gnulib. 14473 14474 The only difference was maintaining the conditional inclusion for 14475 config.h. 14476 14477 lib/getopt1.c | 56 ++++++++++++++++++++++---------------------------------- 14478 1 file changed, 22 insertions(+), 34 deletions(-) 14479 14480commit 7e884c00d0093c38339f17fb1d280eec493f42ca 14481Author: Jia Tan <jiat0218@gmail.com> 14482Date: 2023-09-23 03:27:00 +0800 14483 14484 lib: Update getopt.in.h from Gnulib with modifications. 14485 14486 We can still avoid modifying the contents of this file during 14487 configuration to simplify the build systems. Gnulib added replacements 14488 for inclusions guards for Cygwin. Cygwin should not need getopt_long 14489 replacement so this feature can be omitted. 14490 14491 <unistd.h> is conditionally included to avoid MSVC since it is not 14492 available. 14493 14494 The definition for _GL_ARG_NONNULL was also copied into this file from 14495 Gnulib since this stage is usually done during gnulib-tool. 14496 14497 lib/getopt.in.h | 228 +++++++------------------------------------------------- 14498 1 file changed, 29 insertions(+), 199 deletions(-) 14499 14500commit cff05f82066ca3ce9425dafdb086325a8eef8de3 14501Author: Jia Tan <jiat0218@gmail.com> 14502Date: 2023-09-23 00:31:55 +0800 14503 14504 lib: Update getopt_int.h from Gnulib. 14505 14506 lib/getopt_int.h | 109 ++++++++++++++++++++++++------------------------------- 14507 1 file changed, 48 insertions(+), 61 deletions(-) 14508 14509commit 04bd86a4b010d43c6a016a3857ecb38dc1d5b024 14510Author: Jia Tan <jiat0218@gmail.com> 14511Date: 2023-09-23 00:27:23 +0800 14512 14513 lib: Update getopt.c from Gnulib with modifications. 14514 14515 The code maintains the prior modifications of conditionally including 14516 config.h and disabling NLS support. 14517 14518 _GL_UNUSED is repalced with the simple cast to void trick. _GL_UNUSED 14519 is only used for these two parameters so its simpler than having to 14520 define it. 14521 14522 lib/getopt.c | 1134 +++++++++++++++++++--------------------------------------- 14523 1 file changed, 377 insertions(+), 757 deletions(-) 14524 14525commit 56b42be7287844db20b3a3bc1372c6ae8c040d63 14526Author: Jia Tan <jiat0218@gmail.com> 14527Date: 2023-09-23 00:18:56 +0800 14528 14529 lib: Add getopt-cdefs.h for getopt_long update. 14530 14531 This was modified slightly from Gnulib. In Gnulib, it expects the 14532 @HAVE_SYS_CDEFS_H@ to be replaced. Instead, we can set HAVE_SYS_CDEFS_H 14533 on systems that have it and avoid copying another file into the build 14534 directory. Since we are not using gnulib-tool, copying extra files 14535 requires extra build system updates (and special handling with CMake) so 14536 we should avoid when possible. 14537 14538 lib/getopt-cdefs.h | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 14539 1 file changed, 70 insertions(+) 14540 14541commit 9834e591a4cf9dc2f49e42e26bf28d1d247bc196 14542Author: Jia Tan <jiat0218@gmail.com> 14543Date: 2023-09-23 00:15:25 +0800 14544 14545 lib: Copy new header files from Gnulib without modification. 14546 14547 The getopt related files have changed from Gnulib by splitting up 14548 getopt.in.h into more modular header files. We could have kept 14549 everything in just getopt.in.h, but this will help us continue to update 14550 in the future. 14551 14552 lib/getopt-core.h | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++ 14553 lib/getopt-ext.h | 77 +++++++++++++++++++++++++++++++++++++++++ 14554 lib/getopt-pfx-core.h | 66 +++++++++++++++++++++++++++++++++++ 14555 lib/getopt-pfx-ext.h | 70 +++++++++++++++++++++++++++++++++++++ 14556 4 files changed, 309 insertions(+) 14557 14558commit 5b7a6f06e93d99d6635a740fd2e12fab66096c93 14559Author: Lasse Collin <lasse.collin@tukaani.org> 14560Date: 2023-09-22 21:16:52 +0300 14561 14562 Windows: Update the version requirement comments from Win95 to W2k. 14563 14564 windows/README-Windows.txt | 10 ++++------ 14565 windows/build.bash | 6 +++--- 14566 2 files changed, 7 insertions(+), 9 deletions(-) 14567 14568commit e582f8e0fee46e7cd967f42f465d6bb608b73bc1 14569Author: Lasse Collin <lasse.collin@tukaani.org> 14570Date: 2023-09-22 21:12:54 +0300 14571 14572 tuklib_physmem: Comment out support for Windows versions older than 2000. 14573 14574 src/common/tuklib_physmem.c | 20 +++++++++----------- 14575 1 file changed, 9 insertions(+), 11 deletions(-) 14576 14577commit 7d73d1f0e08f96c4ab7aac91b958e37a3dadf07a 14578Author: Lasse Collin <lasse.collin@tukaani.org> 14579Date: 2023-09-24 16:32:32 +0300 14580 14581 sysdefs.h: Update the comment about __USE_MINGW_ANSI_STDIO. 14582 14583 src/common/sysdefs.h | 10 +++++++++- 14584 1 file changed, 9 insertions(+), 1 deletion(-) 14585 14586commit 2a9929af0ab7e6c0ab725565034afe3293e51d71 14587Author: Lasse Collin <lasse.collin@tukaani.org> 14588Date: 2023-09-22 02:33:29 +0300 14589 14590 xz: Windows: Don't (de)compress to special files like "con" or "nul". 14591 14592 Before this commit, the following writes "foo" to the 14593 console and deletes the input file: 14594 14595 echo foo | xz > con_xz 14596 xz --suffix=_xz --decompress con_xz 14597 14598 It cannot happen without --suffix because names like con.xz 14599 are also special and so attempting to decompress con.xz 14600 (or compress con to con.xz) will already fail when opening 14601 the input file. 14602 14603 Similar thing is possible when compressing. The following 14604 writes to "nul" and the input file "n" is deleted. 14605 14606 echo foo | xz > n 14607 xz --suffix=ul n 14608 14609 Now xz checks if the destination is a special file before 14610 continuing. DOS/DJGPP version had a check for this but 14611 Windows (and OS/2) didn't. 14612 14613 src/xz/file_io.c | 35 ++++++++++++++++++++++++++++------- 14614 1 file changed, 28 insertions(+), 7 deletions(-) 14615 14616commit 01311b81f03cce1c0ce847a3d556f84dbd439343 14617Author: Lasse Collin <lasse.collin@tukaani.org> 14618Date: 2023-09-21 20:42:52 +0300 14619 14620 CMake: Wrap two overlong lines that are possible to wrap. 14621 14622 CMakeLists.txt | 6 ++++-- 14623 1 file changed, 4 insertions(+), 2 deletions(-) 14624 14625commit 152d0771ddd0cffcac9042ad1a66f110d228eee2 14626Author: Lasse Collin <lasse.collin@tukaani.org> 14627Date: 2023-09-21 20:36:31 +0300 14628 14629 CMake: Add a comment about threads on Cygwin. 14630 14631 CMakeLists.txt | 1 + 14632 1 file changed, 1 insertion(+) 14633 14634commit 6df988cceffaa3100b428ed816fad334935b27bf 14635Author: Lasse Collin <lasse.collin@tukaani.org> 14636Date: 2023-09-12 23:53:25 +0300 14637 14638 MSVC: Remove Visual Studio project files and update INSTALL-MSVC.txt. 14639 14640 CMake is now the preferred build file generator when building 14641 with MSVC. 14642 14643 windows/INSTALL-MSVC.txt | 37 ++-- 14644 windows/vs2013/config.h | 157 --------------- 14645 windows/vs2013/liblzma.vcxproj | 363 --------------------------------- 14646 windows/vs2013/liblzma_dll.vcxproj | 398 ------------------------------------ 14647 windows/vs2013/xz_win.sln | 48 ----- 14648 windows/vs2017/config.h | 157 --------------- 14649 windows/vs2017/liblzma.vcxproj | 363 --------------------------------- 14650 windows/vs2017/liblzma_dll.vcxproj | 398 ------------------------------------ 14651 windows/vs2017/xz_win.sln | 48 ----- 14652 windows/vs2019/config.h | 157 --------------- 14653 windows/vs2019/liblzma.vcxproj | 364 --------------------------------- 14654 windows/vs2019/liblzma_dll.vcxproj | 399 ------------------------------------- 14655 windows/vs2019/xz_win.sln | 51 ----- 14656 13 files changed, 12 insertions(+), 2928 deletions(-) 14657 14658commit edd563daf0da1d00018684614803c77ab62efcd6 14659Author: Lasse Collin <lasse.collin@tukaani.org> 14660Date: 2023-09-21 19:17:40 +0300 14661 14662 CMake: Require VS2015 or later for building xzdec. 14663 14664 xzdec might build with VS2013 but it hasn't been tested. 14665 It was never supported before and VS2013 is old anyway 14666 so for simplicity only liblzma is supported with VS2013. 14667 14668 CMakeLists.txt | 2 +- 14669 1 file changed, 1 insertion(+), 1 deletion(-) 14670 14671commit daea64d158a7151ca6c255a0e4554c6d521cd589 14672Author: Lasse Collin <lasse.collin@tukaani.org> 14673Date: 2023-09-12 23:43:49 +0300 14674 14675 CMake: Allow building xz with Visual Studio 2015 and later. 14676 14677 Building the command line tools xz and xzdec with the combination 14678 of CMake + Visual Studio 2015/2017/2019/2022 works now. 14679 14680 VS2013 update 2 should still be able to build liblzma. 14681 VS2013 cannot build the xz command line tool because xz 14682 needs snprintf() that roughly conforms to C99. 14683 VS2013 is old and no extra code will be added to support it. 14684 14685 Thanks to Kelvin Lee and Jia Tan for testing. 14686 14687 CMakeLists.txt | 2 +- 14688 1 file changed, 1 insertion(+), 1 deletion(-) 14689 14690commit 8c2d197c940d246849b2ec48109bb22e54036927 14691Author: Lasse Collin <lasse.collin@tukaani.org> 14692Date: 2023-09-12 23:34:31 +0300 14693 14694 MSVC: #define inline and restrict only when needed. 14695 14696 This also drops the check for _WIN32 as that shouldn't be needed. 14697 14698 src/common/sysdefs.h | 13 ++++++++----- 14699 1 file changed, 8 insertions(+), 5 deletions(-) 14700 14701commit af66cd585902045e5689a0418103ec81f19f1d0a 14702Author: Lasse Collin <lasse.collin@tukaani.org> 14703Date: 2023-09-12 22:16:56 +0300 14704 14705 CMake: Add support for replacement getopt_long (lib/getopt*). 14706 14707 Thanks to Jia Tan for the initial work. I added the libgnu target 14708 and made a few related minor edits. 14709 14710 CMakeLists.txt | 54 +++++++++++++++++++++++++++++++++++++++++++++++------- 14711 1 file changed, 47 insertions(+), 7 deletions(-) 14712 14713commit e3288fdb45c580cb849f6799cf419c4922004ae5 14714Author: Lasse Collin <lasse.collin@tukaani.org> 14715Date: 2023-09-12 21:12:34 +0300 14716 14717 CMake: Bump maximum policy version to 3.27. 14718 14719 There are several new policies. CMP0149 may affect the Windows SDK 14720 version that CMake will choose by default. The new behavior is more 14721 predictable, always choosing the latest SDK version by default. 14722 14723 The other new policies shouldn't affect this package. 14724 14725 CMakeLists.txt | 2 +- 14726 1 file changed, 1 insertion(+), 1 deletion(-) 14727 14728commit aff1b479c7b168652bd20305ceed4317d5db6661 14729Author: Lasse Collin <lasse.collin@tukaani.org> 14730Date: 2023-09-12 20:55:10 +0300 14731 14732 lib/getopt*.c: Include <config.h> only HAVE_CONFIG_H is defined. 14733 14734 The CMake-based build doesn't use config.h. 14735 14736 Up-to-date getopt_long in Gnulib is LGPLv2 so at some 14737 point it could be included in XZ Utils too but for now 14738 this commit is enough to make CMake-based build possible. 14739 14740 lib/getopt.c | 4 +++- 14741 lib/getopt1.c | 4 +++- 14742 2 files changed, 6 insertions(+), 2 deletions(-) 14743 14744commit aa0cd585d2ed1455d35732798e0d90e3520e8ba5 14745Author: Lasse Collin <lasse.collin@tukaani.org> 14746Date: 2023-09-08 19:08:57 +0300 14747 14748 Doxygen: Add more C macro names to PREDEFINED. 14749 14750 doxygen/Doxyfile | 7 +++++-- 14751 1 file changed, 5 insertions(+), 2 deletions(-) 14752 14753commit ee7709bae53637e1765ce142ef102914f1423cb5 14754Author: Lasse Collin <lasse.collin@tukaani.org> 14755Date: 2023-09-11 18:47:26 +0300 14756 14757 liblzma: Move a few __attribute__ uses in function declarations. 14758 14759 The API headers have many attributes but these were left 14760 as is for now. 14761 14762 src/liblzma/common/common.c | 6 ++++-- 14763 src/liblzma/common/common.h | 8 ++++---- 14764 src/liblzma/common/memcmplen.h | 3 ++- 14765 3 files changed, 10 insertions(+), 7 deletions(-) 14766 14767commit 217958d88713b5dc73d366d24dd64b2b311b86fe 14768Author: Lasse Collin <lasse.collin@tukaani.org> 14769Date: 2023-09-11 19:03:35 +0300 14770 14771 xz, xzdec, lzmainfo: Use tuklib_attr_noreturn. 14772 14773 For compatibility with C23's [[noreturn]], tuklib_attr_noreturn 14774 must be at the beginning of declaration (before "extern" or 14775 "static", and even before any GNU C's __attribute__). 14776 14777 This commit also moves all other function attributes to 14778 the beginning of function declarations. "extern" is kept 14779 at the beginning of a line so the attributes are listed on 14780 separate lines before "extern" or "static". 14781 14782 src/lzmainfo/lzmainfo.c | 6 ++++-- 14783 src/xz/coder.c | 3 ++- 14784 src/xz/hardware.h | 3 ++- 14785 src/xz/message.h | 30 +++++++++++++++++------------- 14786 src/xz/options.c | 3 ++- 14787 src/xz/util.h | 8 ++++---- 14788 src/xzdec/xzdec.c | 9 ++++++--- 14789 7 files changed, 37 insertions(+), 25 deletions(-) 14790 14791commit 18a66fbac031c98f9c2077fc88846e4d07849197 14792Author: Lasse Collin <lasse.collin@tukaani.org> 14793Date: 2023-09-11 18:53:31 +0300 14794 14795 Remove incorrect uses of __attribute__((__malloc__)). 14796 14797 xrealloc() is obviously incorrect, modern GCC docs even 14798 mention realloc() as an example where this attribute 14799 cannot be used. 14800 14801 liblzma's lzma_alloc() and lzma_alloc_zero() would be 14802 correct uses most of the time but custom allocators 14803 may use a memory pool or otherwise hold the pointer 14804 so aliasing issues could happen in theory. 14805 14806 The xstrdup() case likely was correct but I removed it anyway. 14807 Now there are no __malloc__ attributes left in the code. 14808 The allocations aren't in hot paths so this should make 14809 no practical difference. 14810 14811 src/liblzma/common/common.c | 4 ++-- 14812 src/liblzma/common/common.h | 4 ++-- 14813 src/xz/util.h | 4 ++-- 14814 3 files changed, 6 insertions(+), 6 deletions(-) 14815 14816commit 74b0e900c92d5b222b36f474f1efa431f8e262f7 14817Author: Lasse Collin <lasse.collin@tukaani.org> 14818Date: 2023-09-08 18:41:25 +0300 14819 14820 Build: Omit -Wc99-c11-compat since it warns about _Noreturn. 14821 14822 configure.ac | 1 - 14823 1 file changed, 1 deletion(-) 14824 14825commit 90c94dddfd57b7d744bfad64c54e10d15778144b 14826Author: Lasse Collin <lasse.collin@tukaani.org> 14827Date: 2023-09-08 18:19:26 +0300 14828 14829 tuklib: Update tuklib_attr_noreturn for C11/C17 and C23. 14830 14831 This makes no difference for GCC or Clang as they support 14832 GNU C's __attribute__((__noreturn__)) but this helps with MSVC: 14833 14834 - VS 2019 version 16.7 and later support _Noreturn if the 14835 options /std:c11 or /std:c17 are used. This gets handled 14836 with the check for __STDC_VERSION__ >= 201112. 14837 14838 - When MSVC isn't in C11/C17 mode, __declspec(noreturn) is used. 14839 14840 C23 will deprecate _Noreturn (and <stdnoreturn.h>) 14841 for [[noreturn]]. This commit anticipates that but 14842 the final __STDC_VERSION__ value isn't known yet. 14843 14844 src/common/tuklib_common.h | 22 +++++++++++++++++++++- 14845 src/common/tuklib_exit.h | 4 ++-- 14846 2 files changed, 23 insertions(+), 3 deletions(-) 14847 14848commit 189f72581329ab281ad6af37f60135910cb1b146 14849Author: Lasse Collin <lasse.collin@tukaani.org> 14850Date: 2023-09-11 17:22:44 +0300 14851 14852 Update THANKS. 14853 14854 THANKS | 1 + 14855 1 file changed, 1 insertion(+) 14856 14857commit 79334e7f20f2bf9e0de095835b48868f1238f584 14858Author: Lasse Collin <lasse.collin@tukaani.org> 14859Date: 2023-09-05 22:42:10 +0300 14860 14861 MSVC: xz: Make file_io.c and file_io.h compatible with MSVC. 14862 14863 Thanks to Kelvin Lee for the original patches 14864 and testing the modifications I made. 14865 14866 src/xz/file_io.c | 26 ++++++++++++++++++++++++++ 14867 src/xz/file_io.h | 10 ++++++++++ 14868 2 files changed, 36 insertions(+) 14869 14870commit c660b8d78b7bda43b12b285550d8c70e8ccec698 14871Author: Lasse Collin <lasse.collin@tukaani.org> 14872Date: 2023-09-05 21:33:35 +0300 14873 14874 MSVC: xz: Use GetTickCount64() to implement mytime_now(). 14875 14876 It's available since Windows Vista. 14877 14878 src/xz/mytime.c | 11 +++++++++-- 14879 1 file changed, 9 insertions(+), 2 deletions(-) 14880 14881commit 5c6f892d411670e3060f4bc309402617a209e57c 14882Author: Kelvin Lee <kiyolee@gmail.com> 14883Date: 2023-09-05 15:05:09 +0300 14884 14885 MSVC: xz: Use _stricmp() instead of strcasecmp() in suffix.c. 14886 14887 src/xz/suffix.c | 10 ++++++++-- 14888 1 file changed, 8 insertions(+), 2 deletions(-) 14889 14890commit e241051f50044259d174e8b4633dd9a1c4478408 14891Author: Kelvin Lee <kiyolee@gmail.com> 14892Date: 2023-09-05 15:01:10 +0300 14893 14894 MSVC: xz: Use _isatty() from <io.h> to implement isatty(). 14895 14896 src/xz/message.c | 5 +++++ 14897 src/xz/util.c | 5 +++++ 14898 2 files changed, 10 insertions(+) 14899 14900commit d14bba8fc2be02a9fed8c9bcaaf61103451755f8 14901Author: Kelvin Lee <kiyolee@gmail.com> 14902Date: 2023-09-05 15:10:31 +0300 14903 14904 MSVC: xz: Use _fileno() instead of fileno(). 14905 14906 src/xz/private.h | 4 ++++ 14907 1 file changed, 4 insertions(+) 14908 14909commit c4edd367678e6a38c42b149856159bf417da7fe1 14910Author: Kelvin Lee <kiyolee@gmail.com> 14911Date: 2023-09-05 15:00:07 +0300 14912 14913 MSVC: xzdec: Use _fileno and _setmode. 14914 14915 src/xzdec/xzdec.c | 4 ++++ 14916 1 file changed, 4 insertions(+) 14917 14918commit cfd1054b9b539ee92524901e95d7bb5a1fe670a0 14919Author: Kelvin Lee <kiyolee@gmail.com> 14920Date: 2023-09-05 14:37:50 +0300 14921 14922 MSVC: Don't #include <unistd.h>. 14923 14924 lib/getopt.c | 4 +++- 14925 lib/getopt.in.h | 4 +++- 14926 src/xz/private.h | 5 ++++- 14927 src/xzdec/xzdec.c | 5 ++++- 14928 4 files changed, 14 insertions(+), 4 deletions(-) 14929 14930commit adef92f23563a2cc088b31ddee9040ecc96bc996 14931Author: Lasse Collin <lasse.collin@tukaani.org> 14932Date: 2023-09-19 14:03:45 +0300 14933 14934 Update THANKS. 14935 14936 THANKS | 1 + 14937 1 file changed, 1 insertion(+) 14938 14939commit 953e775941a25bfcfa353f802b13e66acb1edf2c 14940Author: Jia Tan <jiat0218@gmail.com> 14941Date: 2023-09-14 21:13:23 +0800 14942 14943 CI: Enable CLMUL in address sanitization test. 14944 14945 The crc64_clmul() function should be ignored by the address sanitizer 14946 now so these builds should still pass. 14947 14948 .github/workflows/ci.yml | 12 ++++-------- 14949 1 file changed, 4 insertions(+), 8 deletions(-) 14950 14951commit f167e79bc98f3f56af2e767b83aa81c2d2b9ed77 14952Author: Lasse Collin <lasse.collin@tukaani.org> 14953Date: 2023-09-14 16:35:46 +0300 14954 14955 Update THANKS. 14956 14957 THANKS | 1 + 14958 1 file changed, 1 insertion(+) 14959 14960commit 4f44ef86758a41a8ec814096f4cb6ee6de04c82e 14961Author: Lasse Collin <lasse.collin@tukaani.org> 14962Date: 2023-09-14 16:34:07 +0300 14963 14964 liblzma: Mark crc64_clmul() with __attribute__((__no_sanitize_address__)). 14965 14966 Thanks to Agostino Sarubbo. 14967 Fixes: https://github.com/tukaani-project/xz/issues/62 14968 14969 src/liblzma/check/crc64_fast.c | 8 ++++++++ 14970 1 file changed, 8 insertions(+) 14971 14972commit 7379bb3eed428c0ae734d0cc4a1fd04359d53f08 14973Author: Jia Tan <jiat0218@gmail.com> 14974Date: 2023-09-12 22:36:12 +0800 14975 14976 CMake: Fix time.h checks not running on second CMake run. 14977 14978 If CMake was configured more than once, HAVE_CLOCK_GETTIME and 14979 HAVE_CLOCK_MONOTONIC would not be set as compile definitions. The check 14980 for librt being needed to provide HAVE_CLOCK_GETTIME was also 14981 simplified. 14982 14983 CMakeLists.txt | 18 ++++++++++-------- 14984 1 file changed, 10 insertions(+), 8 deletions(-) 14985 14986commit 5d691fe58286b92d704c0dc5cd0c4df22881c6c6 14987Author: Jia Tan <jiat0218@gmail.com> 14988Date: 2023-09-12 22:34:06 +0800 14989 14990 CMake: Fix unconditionally defining HAVE_CLOCK_MONOTONIC. 14991 14992 If HAVE_CLOCK_GETTIME was defined, then HAVE_CLOCK_MONOTONIC was always 14993 added as a compile definition even if the check for it failed. 14994 14995 CMakeLists.txt | 8 +++----- 14996 1 file changed, 3 insertions(+), 5 deletions(-) 14997 14998commit eccf12866527b8d24c7d7f92f755142be8ef9b11 14999Author: Lasse Collin <lasse.collin@tukaani.org> 15000Date: 2023-08-31 19:50:05 +0300 15001 15002 xz: Refactor thousand separator detection and disable it on MSVC. 15003 15004 Now the two variations of the format strings are created with 15005 a macro, and the whole detection code can be easily disabled 15006 on platforms where thousand separator formatting is known to 15007 not work (MSVC has no support, and on DJGPP 2.05 it can have 15008 problems in some cases). 15009 15010 src/xz/util.c | 89 ++++++++++++++++++++++++++++++----------------------------- 15011 1 file changed, 45 insertions(+), 44 deletions(-) 15012 15013commit f7093cd9d130477c234b40aeda613964171f8f21 15014Author: Lasse Collin <lasse.collin@tukaani.org> 15015Date: 2023-08-31 18:14:43 +0300 15016 15017 xz: Fix a too relaxed assertion and remove uses of SSIZE_MAX. 15018 15019 SSIZE_MAX isn't readily available on MSVC. Removing it means 15020 that there is one thing less to worry when porting to MSVC. 15021 15022 src/xz/file_io.c | 5 ++--- 15023 src/xz/file_io.h | 4 ++-- 15024 2 files changed, 4 insertions(+), 5 deletions(-) 15025 15026commit 74c3449d8b816a724b12ebce7417e00fb597309a 15027Author: Jia Tan <jiat0218@gmail.com> 15028Date: 2023-08-28 23:14:45 +0800 15029 15030 Tests: Improve invalid unpadded size check in test_lzma_index_append(). 15031 15032 This check was extended to test the code added to fix a failing assert 15033 in ae5c07b22a6b3766b84f409f1b6b5c100469068a. 15034 15035 tests/test_index.c | 26 +++++++++++++++++++++++--- 15036 1 file changed, 23 insertions(+), 3 deletions(-) 15037 15038commit 2544274a8b8a27f4ea6c457d2c4c32eb1e4cd336 15039Author: Jia Tan <jiat0218@gmail.com> 15040Date: 2023-08-28 21:54:41 +0800 15041 15042 Tests: Improve comments in test_index.c. 15043 15044 tests/test_index.c | 6 +++--- 15045 1 file changed, 3 insertions(+), 3 deletions(-) 15046 15047commit 49be29d6380b94e6fb26e511dd2cdbd9afce0f8b 15048Author: Jia Tan <jiat0218@gmail.com> 15049Date: 2023-08-28 21:52:54 +0800 15050 15051 Update THANKS. 15052 15053 THANKS | 1 + 15054 1 file changed, 1 insertion(+) 15055 15056commit 721e3d9f7a82f59f32795d5fb97e0210d1aa839a 15057Author: Jia Tan <jiat0218@gmail.com> 15058Date: 2023-08-28 21:50:16 +0800 15059 15060 liblzma: Update assert in vli_ceil4(). 15061 15062 The argument to vli_ceil4() should always guarantee the return value 15063 is also a valid lzma_vli. Thus the highest three valid lzma_vli values 15064 are invalid arguments. All uses of the function ensure this so the 15065 assert is updated to match this. 15066 15067 src/liblzma/common/index.h | 2 +- 15068 1 file changed, 1 insertion(+), 1 deletion(-) 15069 15070commit ae5c07b22a6b3766b84f409f1b6b5c100469068a 15071Author: Jia Tan <jiat0218@gmail.com> 15072Date: 2023-08-28 21:31:25 +0800 15073 15074 liblzma: Add overflow check for Unpadded size in lzma_index_append(). 15075 15076 This was not a security bug since there was no path to overflow 15077 UINT64_MAX in lzma_index_append() or when it calls index_file_size(). 15078 The bug was discovered by a failing assert() in vli_ceil4() when called 15079 from index_file_size() when unpadded_sum (the sum of the compressed size 15080 of current Stream and the unpadded_size parameter) exceeds LZMA_VLI_MAX. 15081 15082 Previously, the unpadded_size parameter was checked to be not greater 15083 than UNPADDED_SIZE_MAX, but no check was done once compressed_base was 15084 added. 15085 15086 This could not have caused an integer overflow in index_file_size() when 15087 called by lzma_index_append(). The calculation for file_size breaks down 15088 into the sum of: 15089 15090 - Compressed base from all previous Streams 15091 - 2 * LZMA_STREAM_HEADER_SIZE (size of the current Streams header and 15092 footer) 15093 - stream_padding (can be set by lzma_index_stream_padding()) 15094 - Compressed base from the current Stream 15095 - Unpadded size (parameter to lzma_index_append()) 15096 15097 The sum of everything except for Unpadded size must be less than 15098 LZMA_VLI_MAX. This is guarenteed by overflow checks in the functions 15099 that can set these values including lzma_index_stream_padding(), 15100 lzma_index_append(), and lzma_index_cat(). The maximum value for 15101 Unpadded size is enforced by lzma_index_append() to be less than or 15102 equal UNPADDED_SIZE_MAX. Thus, the sum cannot exceed UINT64_MAX since 15103 LZMA_VLI_MAX is half of UINT64_MAX. 15104 15105 Thanks to Joona Kannisto for reporting this. 15106 15107 src/liblzma/common/index.c | 6 ++++++ 15108 1 file changed, 6 insertions(+) 15109 15110commit 1057765aaabfe0f1397b8094531846655376ae38 15111Author: Jia Tan <jiat0218@gmail.com> 15112Date: 2023-08-28 22:18:29 +0800 15113 15114 Translations: Update the Esperanto translation. 15115 15116 po/eo.po | 4 ++-- 15117 1 file changed, 2 insertions(+), 2 deletions(-) 15118 15119commit f2e94d064f305bb8ad77ca70f91d93e55f5cf856 15120Author: Jia Tan <jiat0218@gmail.com> 15121Date: 2023-08-26 20:10:23 +0800 15122 15123 Translations: Update the Esperanto translation. 15124 15125 po/eo.po | 47 +++++++++++++++++++++++++++++------------------ 15126 1 file changed, 29 insertions(+), 18 deletions(-) 15127 15128commit 2b871f4dbffe3801d0da3f89806b5935f758d5f3 15129Author: Jia Tan <jiat0218@gmail.com> 15130Date: 2023-08-09 20:55:36 +0800 15131 15132 Docs: Update INSTALL for --enable-threads method win95. 15133 15134 The Autotools build allows win95 threads and --enable-small together now 15135 if the compiler supports __attribute__((__constructor__)). 15136 15137 INSTALL | 6 ++++-- 15138 1 file changed, 4 insertions(+), 2 deletions(-) 15139 15140commit 356ad5b26b4196f085ce3afa1869154ca81faad8 15141Author: Jia Tan <jiat0218@gmail.com> 15142Date: 2023-08-09 20:54:15 +0800 15143 15144 CMake: Conditionally allow win95 threads and --enable-small. 15145 15146 CMakeLists.txt | 28 ++++++++++++++++++++-------- 15147 1 file changed, 20 insertions(+), 8 deletions(-) 15148 15149commit de574404c4c2f87aca049f232c38526e3ce092aa 15150Author: Jia Tan <jiat0218@gmail.com> 15151Date: 2023-08-09 20:35:16 +0800 15152 15153 Build: Conditionally allow win95 threads and --enable-small. 15154 15155 When the compiler supports __attribute__((__constructor__)) 15156 mythread_once() is never used, even with --enable-small. A configuration 15157 with win95 threads and --enable-small will compile and be thread safe so 15158 it can be allowed. 15159 15160 This isn't a very common configuration since MSVC does not support 15161 __attribute__((__constructor__)), but MINGW32 and CLANG32 environments 15162 for MSYS2 can use win95 threads and have 15163 __attribute__((__constructor__)) support. 15164 15165 configure.ac | 21 +++++++++++++-------- 15166 1 file changed, 13 insertions(+), 8 deletions(-) 15167 15168commit 6bf33b704cd31dccf25e68480464aa22d3fcad5a 15169Author: Jamaika1 <lukaszcz18@wp.pl> 15170Date: 2023-08-08 14:07:59 +0200 15171 15172 mythread.h: Fix typo error in Vista threads mythread_once(). 15173 15174 The "once_" variable was accidentally referred to as just "once". This 15175 prevented building with Vista threads when 15176 HAVE_FUNC_ATTRIBUTE_CONSTRUCTOR was not defined. 15177 15178 src/common/mythread.h | 2 +- 15179 1 file changed, 1 insertion(+), 1 deletion(-) 15180 15181commit 80cb961e5380a3878246d41341ff91378ca59e05 15182Author: Jia Tan <jiat0218@gmail.com> 15183Date: 2023-08-04 22:17:11 +0800 15184 15185 codespell: Add .codespellrc to set default options. 15186 15187 The .codespellrc allows setting default options to avoid false positive 15188 matches, set additional dictionaries, etc. For now, codespell can be 15189 used locally before committing doc and comment changes. 15190 15191 It should help prevent silly errors and fix up commits in the future. 15192 15193 .codespellrc | 24 ++++++++++++++++++++++++ 15194 1 file changed, 24 insertions(+) 15195 15196commit cd678a6077358935249b64a4a16fe8d17434f9c9 15197Author: Jia Tan <jiat0218@gmail.com> 15198Date: 2023-08-03 20:10:21 +0800 15199 15200 Tests: Style fixes to test_lzip_decoder.c. 15201 15202 tests/test_lzip_decoder.c | 36 ++++++++++++++++++++++++------------ 15203 1 file changed, 24 insertions(+), 12 deletions(-) 15204 15205commit 1cac5ed4fa45c9861d745b02d80575cb2ff01d81 15206Author: Jia Tan <jiat0218@gmail.com> 15207Date: 2023-08-03 15:56:20 +0800 15208 15209 Translations: Update the Chinese (simplified) translation. 15210 15211 po/zh_CN.po | 2 +- 15212 1 file changed, 1 insertion(+), 1 deletion(-) 15213 15214commit 16068f6c30b888cdb873f6285af941d00f95741d 15215Author: Lasse Collin <lasse.collin@tukaani.org> 15216Date: 2023-08-02 17:15:12 +0300 15217 15218 xz: Omit an empty paragraph on the man page. 15219 15220 src/xz/xz.1 | 1 - 15221 1 file changed, 1 deletion(-) 15222 15223commit 9ae4371b5106189486e850ce777e40f7b6021c0b 15224Author: Jia Tan <jiat0218@gmail.com> 15225Date: 2023-08-02 20:30:07 +0800 15226 15227 Add NEWS for 5.4.4. 15228 15229 NEWS | 43 +++++++++++++++++++++++++++++++++++++++++++ 15230 1 file changed, 43 insertions(+) 15231 15232commit e8c2203b2c76466d8d3387c5212b46151de8e605 15233Author: Lasse Collin <lasse.collin@tukaani.org> 15234Date: 2023-08-02 15:19:43 +0300 15235 15236 build-aux/manconv.sh: Fix US-ASCII and UTF-8 output. 15237 15238 groff defaults to SGR escapes. Using -P-c passes -c to grotty 15239 which restores the old behavior. Perhaps there is a better way to 15240 get pure plain text output but this works for now. 15241 15242 build-aux/manconv.sh | 4 ++-- 15243 1 file changed, 2 insertions(+), 2 deletions(-) 15244 15245commit 9a706167b0d903d92fd134895acb4bc6a5e3e688 15246Author: Lasse Collin <lasse.collin@tukaani.org> 15247Date: 2023-08-01 19:10:43 +0300 15248 15249 Update THANKS. 15250 15251 THANKS | 1 + 15252 1 file changed, 1 insertion(+) 15253 15254commit 33e25a0f5650754c38bed640deedefe3b4fec5ef 15255Author: Lasse Collin <lasse.collin@tukaani.org> 15256Date: 2023-08-01 18:22:24 +0300 15257 15258 Update THANKS. 15259 15260 THANKS | 1 + 15261 1 file changed, 1 insertion(+) 15262 15263commit 81db3b889830132334d1f2129bdc93177ac2ca7d 15264Author: ChanTsune <41658782+ChanTsune@users.noreply.github.com> 15265Date: 2023-08-01 18:17:17 +0300 15266 15267 mythread.h: Disable signal functions in builds targeting Wasm + WASI. 15268 15269 signal.h in WASI SDK doesn't currently provide sigprocmask() 15270 or sigset_t. liblzma doesn't need them so this change makes 15271 liblzma and xzdec build against WASI SDK. xz doesn't build yet 15272 and the tests don't either as tuktest needs setjmp() which 15273 isn't (yet?) implemented in WASI SDK. 15274 15275 Closes: https://github.com/tukaani-project/xz/pull/57 15276 See also: https://github.com/tukaani-project/xz/pull/56 15277 15278 (The original commit was edited a little by Lasse Collin.) 15279 15280 src/common/mythread.h | 2 +- 15281 1 file changed, 1 insertion(+), 1 deletion(-) 15282 15283commit 71c638c611324e606d324c8189fef8fe79db6991 15284Author: Jia Tan <jiat0218@gmail.com> 15285Date: 2023-08-01 21:58:51 +0800 15286 15287 Add newline to end of .gitignore. 15288 15289 Newline was accidentally removed in commit 15290 01cbb7f023ee7fda8ddde04bd17cf7d3c2418706. 15291 15292 .gitignore | 2 +- 15293 1 file changed, 1 insertion(+), 1 deletion(-) 15294 15295commit 42df7c7aa1cca385e509eb33c65136e61890f0bf 15296Author: Dimitri Papadopoulos Orfanos <3234522+DimitriPapadopoulos@users.noreply.github.com> 15297Date: 2023-07-31 14:02:21 +0200 15298 15299 Docs: Fix typos found by codespell 15300 15301 CMakeLists.txt | 4 ++-- 15302 NEWS | 2 +- 15303 configure.ac | 2 +- 15304 src/liblzma/api/lzma/container.h | 4 ++-- 15305 src/liblzma/api/lzma/filter.h | 2 +- 15306 src/liblzma/api/lzma/lzma12.h | 4 ++-- 15307 src/liblzma/common/block_buffer_encoder.c | 2 +- 15308 src/liblzma/common/common.h | 2 +- 15309 src/liblzma/common/file_info.c | 2 +- 15310 src/liblzma/common/lzip_decoder.c | 2 +- 15311 src/liblzma/common/stream_decoder_mt.c | 8 ++++---- 15312 src/liblzma/common/string_conversion.c | 6 +++--- 15313 src/liblzma/lz/lz_encoder.h | 2 +- 15314 src/liblzma/lzma/lzma_encoder.c | 4 ++-- 15315 src/xz/hardware.c | 4 ++-- 15316 tests/test_filter_flags.c | 4 ++-- 15317 tests/test_index.c | 2 +- 15318 tests/test_vli.c | 2 +- 15319 18 files changed, 29 insertions(+), 29 deletions(-) 15320 15321commit 01cbb7f023ee7fda8ddde04bd17cf7d3c2418706 15322Author: Jia Tan <jiat0218@gmail.com> 15323Date: 2023-07-26 20:26:23 +0800 15324 15325 Update .gitignore. 15326 15327 .gitignore | 4 ++++ 15328 1 file changed, 4 insertions(+) 15329 15330commit f97a1afd564c48ad9cb94682e10972a72e11fa08 15331Author: Jia Tan <jiat0218@gmail.com> 15332Date: 2023-07-28 22:03:08 +0800 15333 15334 CMake: Conditionally allow the creation of broken symlinks. 15335 15336 The CMake build will try to create broken symlinks on Unix and Unix-like 15337 platforms. Cygwin and MSYS2 are Unix-like, but may not be able to create 15338 broken symlinks. The value of the CYGWIN or MSYS environment variables 15339 determine if broken symlinks are valid. 15340 15341 The default for MSYS2 does not allow for broken symlinks, so the CMake 15342 build has been broken for MSYS2 since commit 15343 80a1a8bb838842a2be343bd88ad1462c21c5e2c9. 15344 15345 CMakeLists.txt | 82 +++++++++++++++++++++++++++++++++++++++++++++++++++++----- 15346 1 file changed, 75 insertions(+), 7 deletions(-) 15347 15348commit 7190f4cc7c9ade5b9b3675d0cbfa3b6d6ec9cb4f 15349Author: Jia Tan <jiat0218@gmail.com> 15350Date: 2023-07-28 21:56:48 +0800 15351 15352 CI: Fix windows-ci dependency installation. 15353 15354 All of the MSYS2 environments need make, and it does not come with the 15355 toolchain package. The toolchain package will install the needed 15356 compiler toolchains since without this package CMake cannot properly 15357 generate the Makefiles. 15358 15359 .github/workflows/windows-ci.yml | 6 +++--- 15360 1 file changed, 3 insertions(+), 3 deletions(-) 15361 15362commit a048f472cd9a2245265cb292853cbbcdd4f02001 15363Author: Jia Tan <jiat0218@gmail.com> 15364Date: 2023-07-28 21:54:22 +0800 15365 15366 CI: Update ci_build.sh CMake to always make Unix Makefiles. 15367 15368 The default for many of the MSYS2 environments is for CMake to create 15369 Ninja build files. This would complicate the build script since we would 15370 need a different command to run the tests. Its simpler to always use 15371 Unix Makefiles so that "make test" is always a usable target for 15372 testing. 15373 15374 build-aux/ci_build.sh | 4 ++-- 15375 1 file changed, 2 insertions(+), 2 deletions(-) 15376 15377commit 7870396a0ca945473aa0d1d790f4cbef456610bd 15378Author: Jia Tan <jiat0218@gmail.com> 15379Date: 2023-07-25 20:17:23 +0800 15380 15381 CI: Test CMake builds and test framework with MSYS2. 15382 15383 .github/workflows/windows-ci.yml | 32 ++++++++++++++++++++------------ 15384 1 file changed, 20 insertions(+), 12 deletions(-) 15385 15386commit 6497d1f8875cb7e3007f714336cc09c06fed235b 15387Author: Jia Tan <jiat0218@gmail.com> 15388Date: 2023-07-25 20:14:53 +0800 15389 15390 CI: Windows CI rename system matrix variable -> msys2_env. 15391 15392 Calling the MSYS2 environment "system" was a bit vague and should be 15393 more specific. 15394 15395 .github/workflows/windows-ci.yml | 15 +++++---------- 15396 1 file changed, 5 insertions(+), 10 deletions(-) 15397 15398commit 785e4121d9b2921ad36bd3af1cf61fa20a9265bd 15399Author: Jia Tan <jiat0218@gmail.com> 15400Date: 2023-07-24 23:11:45 +0800 15401 15402 CI: Add Clang64 MSYS2 environment to Windows CI. 15403 15404 .github/workflows/windows-ci.yml | 1 + 15405 1 file changed, 1 insertion(+) 15406 15407commit d9166b52cf3458a4da3eb92224837ca8fc208d79 15408Author: Jia Tan <jiat0218@gmail.com> 15409Date: 2023-07-24 21:43:44 +0800 15410 15411 liblzma: Prevent an empty translation unit in Windows builds. 15412 15413 To workaround Automake lacking Windows resource compiler support, an 15414 empty source file is compiled to overwrite the resource files for static 15415 library builds. Translation units without an external declaration are 15416 not allowed by the C standard and result in a warning when used with 15417 -Wempty-translation-unit (Clang) or -pedantic (GCC). 15418 15419 src/liblzma/Makefile.am | 6 +++++- 15420 1 file changed, 5 insertions(+), 1 deletion(-) 15421 15422commit db5019d691f980d622fb56fdcf383af2c3519c98 15423Author: Jia Tan <jiat0218@gmail.com> 15424Date: 2023-07-22 18:37:56 +0800 15425 15426 Translations: Update the Vietnamese translation. 15427 15428 po/vi.po | 45 ++++++++++++++++++++++++++++----------------- 15429 1 file changed, 28 insertions(+), 17 deletions(-) 15430 15431commit f3a055f762ba5b71b746fc2d44a6ababde2c61b5 15432Author: Jia Tan <jiat0218@gmail.com> 15433Date: 2023-07-22 14:55:42 +0800 15434 15435 CI: Add Windows runner for Autotools builds with MSYS2. 15436 15437 Only a subset of the tests run by the Linux and MacOS Autotools builds 15438 are run. The most interesting tests are the ones that disable threads, 15439 encoders, and decoders. 15440 15441 The Windows runner will only be run manually since these tests will 15442 likely take much longer than the Linux and MacOS runners. This runner 15443 should be used before merging any large features and before releases. 15444 15445 Currently the clang64 environment fails to due to a warning and 15446 -Werror is enabled for the CI tests. This is still an early version 15447 since the CMake build can be done for MSVC and optionally each of the 15448 MSYS2 environments. GitHub does not allow manually running the CI tests 15449 unless the workflow is checked on the default branch so checking in a 15450 minimum version is a good idea. 15451 15452 Thanks to Arthur S for the original proposing the original patch. 15453 15454 Closes: https://github.com/tukaani-project/xz/pull/34 15455 15456 .github/workflows/windows-ci.yml | 119 +++++++++++++++++++++++++++++++++++++++ 15457 1 file changed, 119 insertions(+) 15458 15459commit 556536a3525df9e5ed78b8c7057991cfa9edfac8 15460Author: Jia Tan <jiat0218@gmail.com> 15461Date: 2023-07-21 22:11:01 +0800 15462 15463 CI: Add argument to ci_build.sh to pass flags to autogen.sh. 15464 15465 build-aux/ci_build.sh | 9 +++++++-- 15466 1 file changed, 7 insertions(+), 2 deletions(-) 15467 15468commit 39a32d36fc465c4e70f13192eea380e518ba6e8a 15469Author: Jia Tan <jiat0218@gmail.com> 15470Date: 2023-07-21 18:05:44 +0800 15471 15472 Tests: Skip .lz files in test_files.sh if not configured. 15473 15474 Previously if the lzip decoder was not configured then test_files.sh 15475 would pass the lzip tests instead of skipping them. 15476 15477 tests/test_files.sh | 2 +- 15478 1 file changed, 1 insertion(+), 1 deletion(-) 15479 15480commit 194d12724b30fe42789d12a0184f9d412c449347 15481Author: Jia Tan <jiat0218@gmail.com> 15482Date: 2023-07-20 22:11:13 +0800 15483 15484 Tests: Add ARM64 filter test to test_compress.sh. 15485 15486 tests/test_compress.sh | 1 + 15487 1 file changed, 1 insertion(+) 15488 15489commit d850365c444368102c69beaddf849ed463c33467 15490Author: Jia Tan <jiat0218@gmail.com> 15491Date: 2023-07-20 20:30:05 +0800 15492 15493 Translations: Update the Croatian translation. 15494 15495 po/hr.po | 49 ++++++++++++++++++++++++++++++------------------- 15496 1 file changed, 30 insertions(+), 19 deletions(-) 15497 15498commit 24049eb7acf6d42a60f00efe4e7289fe8e1797fe 15499Author: Jia Tan <jiat0218@gmail.com> 15500Date: 2023-07-20 20:28:32 +0800 15501 15502 Translations: Update the Korean man page translations. 15503 15504 po4a/ko.po | 1255 ++++++++++++++++++++++++++++++------------------------------ 15505 1 file changed, 629 insertions(+), 626 deletions(-) 15506 15507commit 4d4a4fa07de6cb9d913fb2f97712fddda2527b49 15508Author: Jia Tan <jiat0218@gmail.com> 15509Date: 2023-07-20 20:25:24 +0800 15510 15511 Translations: Update the Korean translation. 15512 15513 po/ko.po | 45 ++++++++++++++++++++++++++++----------------- 15514 1 file changed, 28 insertions(+), 17 deletions(-) 15515 15516commit 237f06d9c55cf438a7538a598354bcf103f23711 15517Author: Jia Tan <jiat0218@gmail.com> 15518Date: 2023-07-20 20:24:05 +0800 15519 15520 Translations: Update the Polish translation. 15521 15522 po/pl.po | 47 +++++++++++++++++++++++++++++------------------ 15523 1 file changed, 29 insertions(+), 18 deletions(-) 15524 15525commit 80c2c832136656d5ac7a1bca8bc42d95e13d281a 15526Author: Jia Tan <jiat0218@gmail.com> 15527Date: 2023-07-20 20:22:23 +0800 15528 15529 Translations: Update the German man page translations. 15530 15531 po4a/de.po | 1255 ++++++++++++++++++++++++++++++------------------------------ 15532 1 file changed, 629 insertions(+), 626 deletions(-) 15533 15534commit fdbde14503ca03069d3649aa51926f5f796b89d8 15535Author: Jia Tan <jiat0218@gmail.com> 15536Date: 2023-07-20 20:18:44 +0800 15537 15538 Translations: Update the German translation. 15539 15540 po/de.po | 47 +++++++++++++++++++++++++++++------------------ 15541 1 file changed, 29 insertions(+), 18 deletions(-) 15542 15543commit 9f3bf5ff5b2b5cf0b252a2bf381238ca49dc4101 15544Author: Jia Tan <jiat0218@gmail.com> 15545Date: 2023-07-20 20:17:10 +0800 15546 15547 Translations: Update the Chinese (simplified) translation. 15548 15549 po/zh_CN.po | 47 +++++++++++++++++++++++++++++------------------ 15550 1 file changed, 29 insertions(+), 18 deletions(-) 15551 15552commit 376938c588011567c74f1d5a160c0ccce6336d46 15553Author: Jia Tan <jiat0218@gmail.com> 15554Date: 2023-07-20 20:15:47 +0800 15555 15556 Translations: Update the Swedish translation. 15557 15558 po/sv.po | 47 +++++++++++++++++++++++++++++------------------ 15559 1 file changed, 29 insertions(+), 18 deletions(-) 15560 15561commit 26b0bc6eb82c84559936a7c7080de5c71c8276f8 15562Author: Jia Tan <jiat0218@gmail.com> 15563Date: 2023-07-20 20:14:00 +0800 15564 15565 Translations: Update the Ukrainian man page translations. 15566 15567 po4a/uk.po | 1253 ++++++++++++++++++++++++++++++------------------------------ 15568 1 file changed, 628 insertions(+), 625 deletions(-) 15569 15570commit 2d02c8b7640b54f3c5aa1c8b5990ba56f322393b 15571Author: Jia Tan <jiat0218@gmail.com> 15572Date: 2023-07-20 20:09:15 +0800 15573 15574 Translations: Update the Ukrainian translation. 15575 15576 po/uk.po | 45 ++++++++++++++++++++++++++++----------------- 15577 1 file changed, 28 insertions(+), 17 deletions(-) 15578 15579commit f881018b503fd334331c24a09075429558abbce1 15580Author: Jia Tan <jiat0218@gmail.com> 15581Date: 2023-07-20 20:06:57 +0800 15582 15583 Translations: Update the Spanish translation. 15584 15585 po/es.po | 47 +++++++++++++++++++++++++++++------------------ 15586 1 file changed, 29 insertions(+), 18 deletions(-) 15587 15588commit 791fe6d3ffd6877fa5f852be69d9251397dfaa31 15589Author: Jia Tan <jiat0218@gmail.com> 15590Date: 2023-07-20 20:05:19 +0800 15591 15592 Translations: Update the Romanian translation. 15593 15594 po/ro.po | 48 ++++++++++++++++++++++++++++++------------------ 15595 1 file changed, 30 insertions(+), 18 deletions(-) 15596 15597commit 8827e90704f699fe08bb5bed56b1717a2bc0eb77 15598Author: Jia Tan <jiat0218@gmail.com> 15599Date: 2023-07-20 20:02:56 +0800 15600 15601 Translations: Update the Romanian man page translations. 15602 15603 po4a/ro.po | 1254 ++++++++++++++++++++++++++++++------------------------------ 15604 1 file changed, 629 insertions(+), 625 deletions(-) 15605 15606commit 0184d344fa4f215cd345bb131db9068e077c69b8 15607Author: Jia Tan <jiat0218@gmail.com> 15608Date: 2023-07-19 23:36:00 +0800 15609 15610 liblzma: Suppress -Wunused-function warning. 15611 15612 Clang 16.0.0 and earlier have a bug that the ifunc resolver function 15613 triggers the -Wunused-function warning. The resolver function is static 15614 and only "used" by the __attribute__((__ifunc()__)). 15615 15616 At this time, the bug is still unresolved, but has been reported: 15617 https://github.com/llvm/llvm-project/issues/63957 15618 15619 This is not a problem in GCC. 15620 15621 src/liblzma/check/crc64_fast.c | 10 ++++++++++ 15622 1 file changed, 10 insertions(+) 15623 15624commit 43845fa70fc751736c44c18f4cee42d49bfd1392 15625Author: Jia Tan <jiat0218@gmail.com> 15626Date: 2023-07-18 22:52:25 +0800 15627 15628 liblzma: Reword lzma_str_list_filters() documentation. 15629 15630 This further improves the documentation from commit 15631 f36ca7982f6bd5e9827219ed4f3c5a1fbf5d7bdf. The previous wording of 15632 "supported options" was slightly misleading since the options that are 15633 printed are the ones that are relevant for encoding/decoding. It is not 15634 about which options can or must be specified. 15635 15636 src/liblzma/api/lzma/filter.h | 2 +- 15637 1 file changed, 1 insertion(+), 1 deletion(-) 15638 15639commit 818701ba1c9dff780b7fbf28f9ab8eb11a25dd67 15640Author: Jia Tan <jiat0218@gmail.com> 15641Date: 2023-07-18 22:49:57 +0800 15642 15643 liblzma: Improve comment in string_conversion.c. 15644 15645 The comment used "flag" when referring to decoder options. Just 15646 referring to them as options is more clear and consistent. 15647 15648 src/liblzma/common/string_conversion.c | 4 ++-- 15649 1 file changed, 2 insertions(+), 2 deletions(-) 15650 15651commit b6b7d065853cd4c3f5b8d9be8aea0b6dcb0fe090 15652Author: Lasse Collin <lasse.collin@tukaani.org> 15653Date: 2023-07-18 17:37:33 +0300 15654 15655 xz: Translate the second "%s: " in message.c since French needs "%s : ". 15656 15657 This string is used to print a filename when using "xz -v" and 15658 stderr isn't a terminal. 15659 15660 src/xz/message.c | 2 +- 15661 1 file changed, 1 insertion(+), 1 deletion(-) 15662 15663commit be644042c3066d8e7a2834f989671ba74d27f749 15664Author: Lasse Collin <lasse.collin@tukaani.org> 15665Date: 2023-07-18 14:35:33 +0300 15666 15667 xz: Make "%s: %s" translatable because French needs "%s : %s". 15668 15669 src/xz/args.c | 5 ++++- 15670 src/xz/coder.c | 8 ++++---- 15671 src/xz/file_io.c | 8 ++++---- 15672 src/xz/list.c | 11 ++++++----- 15673 4 files changed, 18 insertions(+), 14 deletions(-) 15674 15675commit 97fd5cb669ee0afc48d2087675ab166aff89eaa2 15676Author: Lasse Collin <lasse.collin@tukaani.org> 15677Date: 2023-07-18 13:57:54 +0300 15678 15679 liblzma: Tweak #if condition in memcmplen.h. 15680 15681 Maybe ICC always #defines _MSC_VER on Windows but now 15682 it's very clear which code will get used. 15683 15684 src/liblzma/common/memcmplen.h | 4 ++-- 15685 1 file changed, 2 insertions(+), 2 deletions(-) 15686 15687commit 40392c19f71985852d75997f109dea97177d6f3f 15688Author: Lasse Collin <lasse.collin@tukaani.org> 15689Date: 2023-07-18 13:49:43 +0300 15690 15691 liblzma: Omit unnecessary parenthesis in a preprocessor directive. 15692 15693 src/liblzma/common/memcmplen.h | 4 ++-- 15694 1 file changed, 2 insertions(+), 2 deletions(-) 15695 15696commit abc1d5601b7e419ebc28a1ab4b268613b52e6f98 15697Author: Jia Tan <jiat0218@gmail.com> 15698Date: 2023-07-18 00:51:48 +0800 15699 15700 xz: Update Authors list in a few files. 15701 15702 src/xz/args.c | 3 ++- 15703 src/xz/args.h | 3 ++- 15704 src/xz/coder.c | 3 ++- 15705 src/xz/coder.h | 3 ++- 15706 src/xz/message.c | 3 ++- 15707 5 files changed, 10 insertions(+), 5 deletions(-) 15708 15709commit 289034a168878baa9df6ff6e159110aade69cba5 15710Author: Jia Tan <jiat0218@gmail.com> 15711Date: 2023-07-14 23:20:33 +0800 15712 15713 Docs: Add a new section to INSTALL for Tests. 15714 15715 The new Tests section describes basic information about the tests, how 15716 to run them, and important details when cross compiling. We have had a 15717 few questions about how to compile the tests without running them, so 15718 hopefully this information will help others with the same question in the 15719 future. 15720 15721 Fixes: https://github.com/tukaani-project/xz/issues/54 15722 15723 INSTALL | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++-------------- 15724 1 file changed, 64 insertions(+), 17 deletions(-) 15725 15726commit 1119e5f5a519b0ab71c81fc4dc84c0cc72abe513 15727Author: Jia Tan <jiat0218@gmail.com> 15728Date: 2023-07-14 21:10:27 +0800 15729 15730 Docs: Update README. 15731 15732 This adds an entry to "Other implementations of the .xz format" for 15733 XZ for Java. 15734 15735 README | 4 ++++ 15736 1 file changed, 4 insertions(+) 15737 15738commit f99e2e4e53b7ea89e4eef32ddd4882e0416357c9 15739Author: Jia Tan <jiat0218@gmail.com> 15740Date: 2023-07-13 23:32:10 +0800 15741 15742 xz: Fix typo in man page. 15743 15744 The Memory limit information section described three output 15745 columns when it actually has six. This was reworded to 15746 "multiple" to make it more future proof. 15747 15748 src/xz/xz.1 | 2 +- 15749 1 file changed, 1 insertion(+), 1 deletion(-) 15750 15751commit f907705eb1f6c5edaafc9668a34c51a989932f1d 15752Author: Jia Tan <jiat0218@gmail.com> 15753Date: 2023-07-13 21:46:12 +0800 15754 15755 xz: Minor clean up for coder.c 15756 15757 * Moved max_block_list_size from a global to local variable. 15758 * Reworded error message in validate_block_list_filter(). 15759 * Removed helper function filter_chain_error(). 15760 * Changed 1 << X to 1U << X in many places 15761 15762 src/xz/coder.c | 53 +++++++++++++++++++++-------------------------------- 15763 1 file changed, 21 insertions(+), 32 deletions(-) 15764 15765commit 9adc9e56157ecbf2948e5036df8567809b9ae177 15766Author: Jia Tan <jiat0218@gmail.com> 15767Date: 2023-07-13 21:26:47 +0800 15768 15769 xz: Update man page Authors and date. 15770 15771 src/xz/xz.1 | 5 +++-- 15772 1 file changed, 3 insertions(+), 2 deletions(-) 15773 15774commit c12e429f2635da8d8f5749e5f733f451baca6945 15775Author: Jia Tan <jiat0218@gmail.com> 15776Date: 2023-06-20 20:32:59 +0800 15777 15778 xz: Add a section to man page for robot mode --filters-help. 15779 15780 src/xz/xz.1 | 32 ++++++++++++++++++++++++++++++-- 15781 1 file changed, 30 insertions(+), 2 deletions(-) 15782 15783commit e10f2db5d10300c16fa482a136ed31c1aa6e8e8d 15784Author: Jia Tan <jiat0218@gmail.com> 15785Date: 2023-06-19 23:11:41 +0800 15786 15787 xz: Slight reword in xz man page for consistency. 15788 15789 Changed will print => prints in xz --robot --version description to 15790 match --robot --info-memory description. 15791 15792 src/xz/xz.1 | 2 +- 15793 1 file changed, 1 insertion(+), 1 deletion(-) 15794 15795commit f5dc172a402fa946f3c45a16929d7fe14c9f5e81 15796Author: Jia Tan <jiat0218@gmail.com> 15797Date: 2023-06-19 23:07:10 +0800 15798 15799 xz: Reorder robot mode subsections in the man page. 15800 15801 The order is now consistent with the order the command line arguments 15802 are documented earlier in the man page. The new order is: 15803 1. --list 15804 2. --info-memory 15805 3. --version 15806 15807 Instead of the previous order: 15808 1. --version 15809 2. --info-memory 15810 3. --list 15811 15812 src/xz/xz.1 | 192 ++++++++++++++++++++++++++++++------------------------------ 15813 1 file changed, 96 insertions(+), 96 deletions(-) 15814 15815commit 9628be23aef2784249fd9f3199799d785d2ec5cc 15816Author: Jia Tan <jiat0218@gmail.com> 15817Date: 2023-05-13 00:46:50 +0800 15818 15819 xz: Update man page for new --filters-help option. 15820 15821 src/xz/xz.1 | 10 ++++++++++ 15822 1 file changed, 10 insertions(+) 15823 15824commit a165d7df1964121eb9df715e6f836a31c865beef 15825Author: Jia Tan <jiat0218@gmail.com> 15826Date: 2023-05-13 00:44:41 +0800 15827 15828 xz: Add a new --filters-help option. 15829 15830 The --filters-help can be used to help create filter chains with the 15831 --filters and --filtersX options. The message in --long-help is too 15832 short to fully explain the syntax to construct complex filter chains. 15833 15834 In --robot mode, xz will only print the output from liblzma function 15835 lzma_str_list_filters. 15836 15837 src/xz/args.c | 8 ++++++++ 15838 src/xz/message.c | 30 ++++++++++++++++++++++++++++++ 15839 src/xz/message.h | 5 +++++ 15840 3 files changed, 43 insertions(+) 15841 15842commit 95f1a414b156ee35d3e71862a14915fdd138f913 15843Author: Jia Tan <jiat0218@gmail.com> 15844Date: 2023-04-21 20:28:11 +0800 15845 15846 xz: Update the man page for --block-list and --filtersX 15847 15848 The --block-list option description needed updating since the new 15849 --filtersX option changes how it can be used. The new entry for 15850 --filters1=FILTERS ... --filter9=FILTERS was created right after 15851 the --filters option. 15852 15853 src/xz/xz.1 | 106 +++++++++++++++++++++++++++++++++++++++++++++--------------- 15854 1 file changed, 80 insertions(+), 26 deletions(-) 15855 15856commit 47a63cad2aa778280e0c1926b7159427ea028cb1 15857Author: Jia Tan <jiat0218@gmail.com> 15858Date: 2023-04-21 19:50:14 +0800 15859 15860 xz: Update --long-help for the new --filtersX option. 15861 15862 src/xz/message.c | 12 ++++++++++-- 15863 1 file changed, 10 insertions(+), 2 deletions(-) 15864 15865commit 8b9913a13daca2550d02dfdcdc9be15f55ca4d13 15866Author: Jia Tan <jiat0218@gmail.com> 15867Date: 2023-06-17 20:46:21 +0800 15868 15869 xz: Ignore filter chains that are set but never used in --block-list. 15870 15871 If a filter chain is set but not used in --block-list, it introduced 15872 unexpected behavior such as requiring an unneeded amount of memory to 15873 compress, reducing the number of threads in multi-threaded encoding, and 15874 printing an incorrect amount of memory needed to decompress. 15875 15876 This also renames filters_init_mask => filters_used_mask. A filter is 15877 assumed to be used if it is specified in --filtersX until 15878 coder_set_compression_settings() determines which filters are referenced 15879 in --block-list. 15880 15881 src/xz/coder.c | 66 ++++++++++++++++++++++++++++++++++++++++++---------------- 15882 1 file changed, 48 insertions(+), 18 deletions(-) 15883 15884commit 183819bfd9efac8c184d9bf123325719b7eee30f 15885Author: Jia Tan <jiat0218@gmail.com> 15886Date: 2023-05-13 20:11:13 +0800 15887 15888 xz: Set the Block size for mt encoding correctly. 15889 15890 When opt_block_size is not used, the Block size for mt encoder is 15891 derived from the minimum of the largest Block specified by 15892 --block-list and the recommended Block size on all filter chains 15893 calculated by lzma_mt_block_size(). This avoids using unnecessary 15894 memory and ensures that all Blocks are large enough for the most memory 15895 needy filter chain. 15896 15897 src/xz/coder.c | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 15898 1 file changed, 67 insertions(+), 1 deletion(-) 15899 15900commit afb2dbec3d857b026486b75e42a4728e12d234cb 15901Author: Jia Tan <jiat0218@gmail.com> 15902Date: 2023-05-11 00:09:41 +0800 15903 15904 xz: Validate --flush-timeout for all specified filter chains. 15905 15906 src/xz/coder.c | 24 ++++++++++++++++-------- 15907 1 file changed, 16 insertions(+), 8 deletions(-) 15908 15909commit 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a 15910Author: Jia Tan <jiat0218@gmail.com> 15911Date: 2023-05-13 19:54:33 +0800 15912 15913 xz: Allows --block-list filters to scale down memory usage. 15914 15915 Previously, only the default filter chain could have its memory usage 15916 adjusted. The filter chains specified with --filtersX were not checked 15917 for memory usage. Now, all used filter chains will be adjusted if 15918 necessary. 15919 15920 src/xz/coder.c | 269 +++++++++++++++++++++++++++++++++++++++++++++------------ 15921 1 file changed, 214 insertions(+), 55 deletions(-) 15922 15923commit 479fd58d60622331fcbe48fddf756927b9f80d9a 15924Author: Jia Tan <jiat0218@gmail.com> 15925Date: 2023-05-10 21:50:33 +0800 15926 15927 xz: Do not include block splitting if encoders are disabled. 15928 15929 The block splitting logic and split_block() function are not needed if 15930 encoders are disabled. This will help slightly reduce the binary size 15931 when built without encoders and allow split_block() to use functions 15932 that require encoders being enabled. 15933 15934 src/xz/coder.c | 29 ++++++++++++++++++++--------- 15935 1 file changed, 20 insertions(+), 9 deletions(-) 15936 15937commit f86ede22500f7ae024ec3ec3f3489ab5a857a3b3 15938Author: Jia Tan <jiat0218@gmail.com> 15939Date: 2023-05-10 22:38:59 +0800 15940 15941 xz: Free filters[] in debug mode. 15942 15943 This will only free filter chains created with --filters1-9 since the 15944 default filter chain may be set from a static function variable. The 15945 complexity to free the default filter chain is not worth the burden on 15946 code maintenance. 15947 15948 src/xz/coder.c | 10 ++++++++++ 15949 1 file changed, 10 insertions(+) 15950 15951commit f281cd0d692ac0c70fc7669b80dddb863ea947e1 15952Author: Jia Tan <jiat0218@gmail.com> 15953Date: 2023-05-13 19:28:23 +0800 15954 15955 xz: Add a message if --block-list is used outside of xz compresssion. 15956 15957 --block-list is only supported with compression in xz format. This avoids 15958 silently ignoring when --block-list is unused. 15959 15960 src/xz/args.c | 11 +++++++++++ 15961 1 file changed, 11 insertions(+) 15962 15963commit d6af7f347077b22403133239592e478931307759 15964Author: Jia Tan <jiat0218@gmail.com> 15965Date: 2023-04-18 20:29:09 +0800 15966 15967 xz: Create command line options for filters[1-9]. 15968 15969 The new command line options are meant to be combined with --block-list. 15970 They work as an optional extension to --block-list to specify a custom 15971 filter chain for each block listed. The new options allow the creation 15972 of up to 9 reusable filter chains. For instance: 15973 15974 xz --block-list=1:10MiB,3:5MiB,,2:5MiB,1:0 --filters1=delta--lzma2 \ 15975 --filters2=x86--lzma2 --filters3=arm64--lzma2 15976 15977 Will create the following blocks: 15978 1. A block of size 10 MiB with filter chain delta, lzma2. 15979 2. A block of size 5 MiB with filter chain arm64, lzma2. 15980 3. A block of size 5 MiB with filter chain arm64, lzma2. 15981 4. A block of size 5 MiB with filter chain x86, lzma2. 15982 5. A block containing the rest of the file contents with filter chain 15983 delta, lzma2. 15984 15985 src/xz/args.c | 82 ++++++++++++++++++++++--- 15986 src/xz/coder.c | 188 ++++++++++++++++++++++++++++++++++++++++++--------------- 15987 src/xz/coder.h | 20 +++++- 15988 3 files changed, 230 insertions(+), 60 deletions(-) 15989 15990commit 072d29250113268536719ad0e040ab8a66fb6435 15991Author: Jia Tan <jiat0218@gmail.com> 15992Date: 2023-05-13 19:36:09 +0800 15993 15994 xz: Use lzma_filters_free() in forget_filter_chain(). 15995 15996 This is a little cleaner than the previous implementation of 15997 forget_filter_chain(). It is also more consistent since 15998 lzma_str_to_filters() will always terminate the filter chain so there 15999 is no need to terminate it later in coder_set_compression_settings(). 16000 16001 src/xz/coder.c | 18 ++++++++++-------- 16002 1 file changed, 10 insertions(+), 8 deletions(-) 16003 16004commit 3d21da5cff4b511633cb6e0d8a1090485c0c1059 16005Author: Jia Tan <jiat0218@gmail.com> 16006Date: 2023-04-17 22:22:45 +0800 16007 16008 xz: Separate string to filter conversion into a helper function. 16009 16010 Converting from string to filter will also need to be done for block 16011 specific filter chains. 16012 16013 src/xz/coder.c | 33 ++++++++++++++++++++------------- 16014 1 file changed, 20 insertions(+), 13 deletions(-) 16015 16016commit a6583726e5f950278f96abcf79c04f1056810be6 16017Author: Jia Tan <jiat0218@gmail.com> 16018Date: 2023-01-06 00:03:35 +0800 16019 16020 Tests: Use new --filters option in test_compress.sh 16021 16022 tests/test_compress.sh | 20 ++++++++++---------- 16023 1 file changed, 10 insertions(+), 10 deletions(-) 16024 16025commit 5f3b898d07cc9b7160c7c88b3120b7edabb8a5b0 16026Author: Jia Tan <jiat0218@gmail.com> 16027Date: 2023-01-06 00:03:06 +0800 16028 16029 xz: Update --long-help and man page for new --filters option. 16030 16031 src/xz/message.c | 6 ++++++ 16032 src/xz/xz.1 | 41 ++++++++++++++++++++++++++++++++++++----- 16033 2 files changed, 42 insertions(+), 5 deletions(-) 16034 16035commit 9ded880a0221f4d1256845fc4ab957ffd377c760 16036Author: Jia Tan <jiat0218@gmail.com> 16037Date: 2023-01-06 00:02:29 +0800 16038 16039 xz: Add --filters option to CLI. 16040 16041 The --filters option uses the new lzma_str_to_filters() function 16042 to convert a string into a full filter chain. Using this option 16043 will reset all previous filters set by --preset, --[filter], or 16044 --filters. 16045 16046 src/xz/args.c | 9 +++++++-- 16047 src/xz/coder.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++-- 16048 src/xz/coder.h | 3 +++ 16049 3 files changed, 58 insertions(+), 4 deletions(-) 16050 16051commit 2c189bb00af73dc7ba1a67a9d274d5be03ee3a88 16052Author: Jia Tan <jiat0218@gmail.com> 16053Date: 2023-07-14 21:30:25 +0800 16054 16055 Tests: Improve feature testing for skipping. 16056 16057 Fixed a bug where test_compress_* would all fail if arm64 or armthumb 16058 filters were enabled for compression but arm was disabled. Since the 16059 grep tests only checked for "define HAVE_ENCODER_ARM", this would match 16060 on HAVE_ENCODER_ARM64 or HAVE_ENCODER_ARMTHUMB. 16061 16062 Now the config.h feature test requires " 1" at the end to prevent the 16063 prefix problem. have_feature() was also updated for this even though 16064 there were known current bugs affecting it. This is just in case future 16065 features have a similar prefix problem. 16066 16067 tests/test_compress.sh | 4 ++-- 16068 tests/test_files.sh | 2 +- 16069 2 files changed, 3 insertions(+), 3 deletions(-) 16070 16071commit 80a6b9bcad016c99c9ba3f3eeb4a619fcadfd357 16072Author: Jia Tan <jiat0218@gmail.com> 16073Date: 2023-07-10 20:56:28 +0800 16074 16075 Translations: Update the Chinese (traditional) translation. 16076 16077 po/zh_TW.po | 659 ++++++++++++++++++++++++++++++++++-------------------------- 16078 1 file changed, 377 insertions(+), 282 deletions(-) 16079 16080commit 17f8844e6fc355abf997d77637a7447c4f7bbcbd 16081Author: Jia Tan <jiat0218@gmail.com> 16082Date: 2023-07-08 21:24:19 +0800 16083 16084 liblzma: Remove non-portable empty initializer. 16085 16086 Commit 78704f36e74205857c898a351c757719a6c8b666 added an empty 16087 initializer {} to prevent a warning. The empty initializer is a GNU 16088 extension and results in a build failure on MSVC. The -wpedantic flag 16089 warns about empty initializers. 16090 16091 src/liblzma/common/stream_encoder_mt.c | 2 +- 16092 1 file changed, 1 insertion(+), 1 deletion(-) 16093 16094commit 3aca4f629cd577f0c54f594d5d88722edf0b0413 16095Author: Jia Tan <jiat0218@gmail.com> 16096Date: 2023-07-08 20:03:59 +0800 16097 16098 Translations: Update the Vietnamese translation. 16099 16100 po/vi.po | 620 +++++++++++++++++++++++++++++++++++---------------------------- 16101 1 file changed, 349 insertions(+), 271 deletions(-) 16102 16103commit 66bdcfa85fef2911cc80f5f30fed3f9610faccb4 16104Author: Jia Tan <jiat0218@gmail.com> 16105Date: 2023-06-28 20:46:31 +0800 16106 16107 Tests: Fix memory leaks in test_index. 16108 16109 Several tests were missing calls to lzma_index_end() to clean up the 16110 lzma_index structs. The memory leaks were discovered by using 16111 -fsanitize=address with GCC. 16112 16113 tests/test_index.c | 11 +++++++++++ 16114 1 file changed, 11 insertions(+) 16115 16116commit fe3bd438fb119f9bad3f08dc29d331e4956196e1 16117Author: Jia Tan <jiat0218@gmail.com> 16118Date: 2023-06-28 20:43:29 +0800 16119 16120 Tests: Fix memory leaks in test_block_header. 16121 16122 test_block_header was not properly freeing the filter options between 16123 calls to lzma_block_header_decode(). The memory leaks were discovered by 16124 using -fsanitize=address with GCC. 16125 16126 tests/test_block_header.c | 38 ++++++++++++++++++++++---------------- 16127 1 file changed, 22 insertions(+), 16 deletions(-) 16128 16129commit 78704f36e74205857c898a351c757719a6c8b666 16130Author: Jia Tan <jiat0218@gmail.com> 16131Date: 2023-06-28 20:31:11 +0800 16132 16133 liblzma: Prevent uninitialzed warning in mt stream encoder. 16134 16135 This change only impacts the compiler warning since it was impossible 16136 for the wait_abs struct in stream_encode_mt() to be used before it was 16137 initialized since mythread_condtime_set() will always be called before 16138 mythread_cond_timedwait(). 16139 16140 Since the mythread.h code is different between the POSIX and 16141 Windows versions, this warning was only present on Windows builds. 16142 16143 Thanks to Arthur S for reporting the warning and providing an initial 16144 patch. 16145 16146 src/liblzma/common/stream_encoder_mt.c | 2 +- 16147 1 file changed, 1 insertion(+), 1 deletion(-) 16148 16149commit e3356a204c5ae02db3ec4552b6c1be354e9b6142 16150Author: Jia Tan <jiat0218@gmail.com> 16151Date: 2023-06-28 20:22:38 +0800 16152 16153 liblzma: Prevent warning for MSYS2 Windows build. 16154 16155 In lzma_memcmplen(), the <intrin.h> header file is only included if 16156 _MSC_VER and _M_X64 are both defined but _BitScanForward64() was 16157 previously used if _M_X64 was defined. GCC for MSYS2 defines _M_X64 but 16158 not _MSC_VER so _BitScanForward64() was used without including 16159 <intrin.h>. 16160 16161 Now, lzma_memcmplen() will use __builtin_ctzll() for MSYS2 GCC builds as 16162 expected. 16163 16164 src/liblzma/common/memcmplen.h | 6 ++++-- 16165 1 file changed, 4 insertions(+), 2 deletions(-) 16166 16167commit 45e250a9e9f3c3e8e8af2983366b170bf54f890e 16168Author: Jia Tan <jiat0218@gmail.com> 16169Date: 2023-06-28 21:01:22 +0800 16170 16171 CI: Add test with -fsanitize=address,undefined. 16172 16173 ci_build.sh was updated to accept disabling of __attribute__ ifunc 16174 and CLMUL. This will allow -fsanitize=address to pass because ifunc 16175 is incompatible with -fsanitize=address. The CLMUL implementation has 16176 optimizations that potentially read past the buffer and mask out the 16177 unwanted bytes. 16178 16179 This test will only run on Autotools Linux. 16180 16181 .github/workflows/ci.yml | 23 +++++++++++++++++++---- 16182 build-aux/ci_build.sh | 8 +++++++- 16183 2 files changed, 26 insertions(+), 5 deletions(-) 16184 16185commit 596ee722cd7ddf0afae584fc06365adc0e735977 16186Author: Jia Tan <jiat0218@gmail.com> 16187Date: 2023-06-28 20:16:04 +0800 16188 16189 CI: Upgrade checkout action from v2 to v3. 16190 16191 .github/workflows/ci.yml | 2 +- 16192 1 file changed, 1 insertion(+), 1 deletion(-) 16193 16194commit 86118ea320f867e09e98a8682cc08cbbdfd640e2 16195Author: Jia Tan <jiat0218@gmail.com> 16196Date: 2023-06-27 23:38:32 +0800 16197 16198 Update THANKS. 16199 16200 THANKS | 1 + 16201 1 file changed, 1 insertion(+) 16202 16203commit 3d1fdddf92321b516d55651888b9c669e254634e 16204Author: Jia Tan <jiat0218@gmail.com> 16205Date: 2023-06-27 17:27:09 +0300 16206 16207 Docs: Document the configure option --disable-ifunc in INSTALL. 16208 16209 INSTALL | 8 ++++++++ 16210 1 file changed, 8 insertions(+) 16211 16212commit b4cf7a2822e8d30eb2b12a1a07fd04383b10ade3 16213Author: Lasse Collin <lasse.collin@tukaani.org> 16214Date: 2023-06-27 17:24:49 +0300 16215 16216 Minor tweaks to style and comments. 16217 16218 CMakeLists.txt | 8 ++++---- 16219 configure.ac | 9 +++++---- 16220 2 files changed, 9 insertions(+), 8 deletions(-) 16221 16222commit 23fb9e3a329117c2968c1e7388b6ef07c782dba1 16223Author: Lasse Collin <lasse.collin@tukaani.org> 16224Date: 2023-06-27 17:19:49 +0300 16225 16226 CMake: Rename CHECK_ATTR_IFUNC to ALLOW_ATTR_IFUNC. 16227 16228 It's so that there's a clear difference in wording compared 16229 to liblzma's integrity check types. 16230 16231 CMakeLists.txt | 6 +++--- 16232 1 file changed, 3 insertions(+), 3 deletions(-) 16233 16234commit ee44863ae88e377a5df10db007ba9bfadde3d314 16235Author: Lasse Collin <lasse.collin@tukaani.org> 16236Date: 2023-06-27 17:05:23 +0300 16237 16238 liblzma: Add ifunc implementation to crc64_fast.c. 16239 16240 The ifunc method avoids indirection via the function pointer 16241 crc64_func. This works on GNU/Linux and probably on FreeBSD too. 16242 The previous __attribute((__constructor__)) method is kept for 16243 compatibility with ELF platforms which do support ifunc. 16244 16245 The ifunc method has some limitations, for example, building 16246 liblzma with -fsanitize=address will result in segfaults. 16247 The configure option --disable-ifunc must be used for such builds. 16248 16249 Thanks to Hans Jansen for the original patch. 16250 Closes: https://github.com/tukaani-project/xz/pull/53 16251 16252 src/liblzma/check/crc64_fast.c | 35 ++++++++++++++++++++++++++--------- 16253 1 file changed, 26 insertions(+), 9 deletions(-) 16254 16255commit b72d21202402a603db6d512fb9271cfa83249639 16256Author: Hans Jansen <hansjansen162@outlook.com> 16257Date: 2023-06-22 19:49:30 +0200 16258 16259 Add ifunc check to CMakeLists.txt 16260 16261 CMake build system will now verify if __attribute__((__ifunc__())) can be 16262 used in the build system. If so, HAVE_FUNC_ATTRIBUTE_IFUNC will be 16263 defined to 1. 16264 16265 CMakeLists.txt | 19 +++++++++++++++++++ 16266 1 file changed, 19 insertions(+) 16267 16268commit 23b5c36fb71904bfbe16bb20f976da38dadf6c3b 16269Author: Hans Jansen <hansjansen162@outlook.com> 16270Date: 2023-06-22 19:46:55 +0200 16271 16272 Add ifunc check to configure.ac 16273 16274 configure.ac will now verify if __attribute__((__ifunc__())) can be used in 16275 the build system. If so, HAVE_FUNC_ATTRIBUTE_IFUNC will be defined to 1. 16276 16277 configure.ac | 28 ++++++++++++++++++++++++++++ 16278 1 file changed, 28 insertions(+) 16279 16280commit dbb3a536ed9873ffa0870321f6873e564c6a9da8 16281Author: Jia Tan <jiat0218@gmail.com> 16282Date: 2023-06-07 00:18:30 +0800 16283 16284 CI: Add apt update command before installing dependencies. 16285 16286 Without the extra command, all of the CI tests were automatically 16287 failing because the Ubuntu servers could not be reached properly. 16288 16289 .github/workflows/ci.yml | 8 ++++++-- 16290 1 file changed, 6 insertions(+), 2 deletions(-) 16291 16292commit 6bcd516812331de42b347922913230895bebad34 16293Author: Jia Tan <jiat0218@gmail.com> 16294Date: 2023-06-07 00:10:38 +0800 16295 16296 Update THANKS. 16297 16298 THANKS | 1 + 16299 1 file changed, 1 insertion(+) 16300 16301commit 0d94ba69220d894d2a86081821d2d7a89df5a10b 16302Author: Benjamin Buch <bebuch@users.noreply.github.com> 16303Date: 2023-06-06 15:32:45 +0200 16304 16305 CMake: Protects against double find_package 16306 16307 Boost iostream uses `find_package` in quiet mode and then again uses 16308 `find_package` with required. This second call triggers a 16309 `add_library cannot create imported target "ZLIB::ZLIB" because another 16310 target with the same name already exists.` 16311 16312 This can simply be fixed by skipping the alias part on secondary 16313 `find_package` runs. 16314 16315 CMakeLists.txt | 16 +++++++++------- 16316 1 file changed, 9 insertions(+), 7 deletions(-) 16317 16318commit 045d7aae286ecd2ce163be9e0d9041343a03f89a 16319Author: Jia Tan <jiat0218@gmail.com> 16320Date: 2023-05-31 20:26:42 +0800 16321 16322 Translations: Update the Esperanto translation. 16323 16324 po/eo.po | 185 +++++++++++++++++++++++++++++++-------------------------------- 16325 1 file changed, 92 insertions(+), 93 deletions(-) 16326 16327commit b0cc7c2dcefe4cbc4e1e697598c14fb687ed0b78 16328Author: Jia Tan <jiat0218@gmail.com> 16329Date: 2023-05-31 20:25:00 +0800 16330 16331 Translations: Update the Croatian translation. 16332 16333 po/hr.po | 2 +- 16334 1 file changed, 1 insertion(+), 1 deletion(-) 16335 16336commit af045ef6f848f02cd14c9ad195a5f87bb0c02dce 16337Author: Jia Tan <jiat0218@gmail.com> 16338Date: 2023-05-31 20:15:53 +0800 16339 16340 Translations: Update the Chinese (simplified) translation. 16341 16342 po/zh_CN.po | 317 ++++++++++++++++++++++++++++++------------------------------ 16343 1 file changed, 157 insertions(+), 160 deletions(-) 16344 16345commit e6b92d5817fe91ad27a0f7f57bd0f2144311e383 16346Author: Jia Tan <jiat0218@gmail.com> 16347Date: 2023-05-17 23:12:13 +0800 16348 16349 Translations: Update German translation of man pages. 16350 16351 po4a/de.po | 52 ++++++++++++---------------------------------------- 16352 1 file changed, 12 insertions(+), 40 deletions(-) 16353 16354commit 592961ccdbba39c7d60fe37e36764232feb57c60 16355Author: Jia Tan <jiat0218@gmail.com> 16356Date: 2023-05-17 23:09:18 +0800 16357 16358 Translations: Update the German translation. 16359 16360 po/de.po | 189 +++++++++++++++++++++++++++++++-------------------------------- 16361 1 file changed, 94 insertions(+), 95 deletions(-) 16362 16363commit 13572cb2c391f5b7503e333c6e05b20bd5bbb524 16364Author: Jia Tan <jiat0218@gmail.com> 16365Date: 2023-05-17 20:30:01 +0800 16366 16367 Translations: Update the Croatian translation. 16368 16369 po/hr.po | 187 +++++++++++++++++++++++++++++++-------------------------------- 16370 1 file changed, 93 insertions(+), 94 deletions(-) 16371 16372commit 4e6e425ea8f097c6fb43e69cc9540294dca3680d 16373Author: Jia Tan <jiat0218@gmail.com> 16374Date: 2023-05-17 20:26:54 +0800 16375 16376 Translations: Update Korean translation of man pages. 16377 16378 po4a/ko.po | 3015 ++++++++++++------------------------------------------------ 16379 1 file changed, 568 insertions(+), 2447 deletions(-) 16380 16381commit d5ef1f6faf7c270f60093629257150085ecf19ca 16382Author: Jia Tan <jiat0218@gmail.com> 16383Date: 2023-05-17 20:13:01 +0800 16384 16385 Translations: Update the Korean translation. 16386 16387 po/ko.po | 319 +++++++++++++++++++++++++++++++-------------------------------- 16388 1 file changed, 158 insertions(+), 161 deletions(-) 16389 16390commit e22d0b0f2e301e7906d0106689d967ed84362028 16391Author: Jia Tan <jiat0218@gmail.com> 16392Date: 2023-05-16 23:49:09 +0800 16393 16394 Translations: Update the Spanish translation. 16395 16396 po/es.po | 319 +++++++++++++++++++++++++++++++-------------------------------- 16397 1 file changed, 158 insertions(+), 161 deletions(-) 16398 16399commit f50da74d52d01f6cfd826a921249e289cf671678 16400Author: Jia Tan <jiat0218@gmail.com> 16401Date: 2023-05-16 23:47:23 +0800 16402 16403 Translations: Update the Romanian translation. 16404 16405 po/ro.po | 195 ++++++++++++++++++++++++++++++++------------------------------- 16406 1 file changed, 98 insertions(+), 97 deletions(-) 16407 16408commit 4b9ad60a7305e9841b7cb4ea611bdf5fa7271696 16409Author: Jia Tan <jiat0218@gmail.com> 16410Date: 2023-05-16 23:45:43 +0800 16411 16412 Translations: Update Romanian translation of man pages. 16413 16414 po4a/ro.po | 19 ++++++++++--------- 16415 1 file changed, 10 insertions(+), 9 deletions(-) 16416 16417commit cb6fd57f889c5d9fab36ae8c9e10083a5fe32dea 16418Author: Jia Tan <jiat0218@gmail.com> 16419Date: 2023-05-16 23:43:51 +0800 16420 16421 Translations: Update Ukrainian translation of man pages. 16422 16423 po4a/uk.po | 12 ++++++------ 16424 1 file changed, 6 insertions(+), 6 deletions(-) 16425 16426commit c3e8fcbc2db4861f92ad15606c995bd255803c52 16427Author: Jia Tan <jiat0218@gmail.com> 16428Date: 2023-05-16 23:37:54 +0800 16429 16430 Translations: Update the Ukrainian translation. 16431 16432 po/uk.po | 321 +++++++++++++++++++++++++++++++-------------------------------- 16433 1 file changed, 159 insertions(+), 162 deletions(-) 16434 16435commit 27b81b84fcedbc55aa6e6b21004c44070b15b038 16436Author: Jia Tan <jiat0218@gmail.com> 16437Date: 2023-05-16 23:07:35 +0800 16438 16439 Translations: Update the Polish translation. 16440 16441 po/pl.po | 316 +++++++++++++++++++++++++++++++-------------------------------- 16442 1 file changed, 155 insertions(+), 161 deletions(-) 16443 16444commit 8024ad636a65ed6ea95c94d57255be4c6724d6ed 16445Author: Jia Tan <jiat0218@gmail.com> 16446Date: 2023-05-16 22:52:14 +0800 16447 16448 Translations: Update the Swedish translation. 16449 16450 po/sv.po | 319 +++++++++++++++++++++++++++++++-------------------------------- 16451 1 file changed, 158 insertions(+), 161 deletions(-) 16452 16453commit 6699a29673f227c4664826db485ed9f7596320d2 16454Author: Jia Tan <jiat0218@gmail.com> 16455Date: 2023-05-16 21:21:38 +0800 16456 16457 Translations: Update the Esperanto translation. 16458 16459 po/eo.po | 34 +++++++++++++++++----------------- 16460 1 file changed, 17 insertions(+), 17 deletions(-) 16461 16462commit f36ca7982f6bd5e9827219ed4f3c5a1fbf5d7bdf 16463Author: Jia Tan <jiat0218@gmail.com> 16464Date: 2023-05-13 21:21:54 +0800 16465 16466 liblzma: Slightly rewords lzma_str_list_filters() documentation. 16467 16468 Reword "options required" to "supported options". The previous may have 16469 suggested that the options listed were all required anytime a filter is 16470 used for encoding or decoding. The reword makes this more clear that 16471 adjusting the options is optional. 16472 16473 src/liblzma/api/lzma/filter.h | 2 +- 16474 1 file changed, 1 insertion(+), 1 deletion(-) 16475 16476commit 3374a5359e52f1671d8f831d65827d5020fe2595 16477Author: Jia Tan <jiat0218@gmail.com> 16478Date: 2023-05-11 23:49:23 +0800 16479 16480 liblzma: Adds lzma_nothrow to MicroLZMA API functions. 16481 16482 None of the liblzma functions may throw an exception, so this 16483 attribute should be applied to all liblzma API functions. 16484 16485 src/liblzma/api/lzma/container.h | 5 +++-- 16486 1 file changed, 3 insertions(+), 2 deletions(-) 16487 16488commit 8f236574986e7c414c0ea059f441982d1387e6a4 16489Author: Jia Tan <jiat0218@gmail.com> 16490Date: 2023-05-09 20:20:06 +0800 16491 16492 liblzma: Exports lzma_mt_block_size() as an API function. 16493 16494 The lzma_mt_block_size() was previously just an internal function for 16495 the multithreaded .xz encoder. It is used to provide a recommended Block 16496 size for a given filter chain. 16497 16498 This function is helpful to determine the maximum Block size for the 16499 multithreaded .xz encoder when one wants to change the filters between 16500 blocks. Then, this determined Block size can be provided to 16501 lzma_stream_encoder_mt() in the lzma_mt options parameter when 16502 intializing the coder. This requires one to know all the filter chains 16503 they are using before starting to encode (or at least the filter chain 16504 that will need the largest Block size), but that isn't a bad limitation. 16505 16506 src/liblzma/api/lzma/container.h | 28 ++++++++++++++++++++++++++++ 16507 src/liblzma/common/filter_encoder.c | 16 ++++++++++------ 16508 src/liblzma/common/filter_encoder.h | 6 +----- 16509 src/liblzma/common/stream_encoder_mt.c | 20 +++++++++----------- 16510 src/liblzma/liblzma_generic.map | 5 +++++ 16511 src/liblzma/liblzma_linux.map | 5 +++++ 16512 src/liblzma/lzma/lzma2_encoder.c | 3 +++ 16513 7 files changed, 61 insertions(+), 22 deletions(-) 16514 16515commit d0f33d672a4da7985ebb5ba8d829f885de49c171 16516Author: Jia Tan <jiat0218@gmail.com> 16517Date: 2023-05-08 22:58:09 +0800 16518 16519 liblzma: Creates IS_ENC_DICT_SIZE_VALID() macro. 16520 16521 This creates an internal liblzma macro to test if the dictionary size 16522 is valid for encoding. 16523 16524 src/liblzma/lz/lz_encoder.c | 4 +--- 16525 src/liblzma/lz/lz_encoder.h | 8 ++++++++ 16526 2 files changed, 9 insertions(+), 3 deletions(-) 16527 16528commit c247d06e1f6cada9a76f4f6225cbd97ea760f52f 16529Author: Jia Tan <jiat0218@gmail.com> 16530Date: 2023-05-02 20:39:56 +0800 16531 16532 Add NEWS for 5.4.3. 16533 16534 NEWS | 10 ++++++++++ 16535 1 file changed, 10 insertions(+) 16536 16537commit 77050b78364ffb6b0f129e742b7c31602d725c08 16538Author: Jia Tan <jiat0218@gmail.com> 16539Date: 2023-05-02 20:39:37 +0800 16540 16541 Add NEWS for 5.2.12. 16542 16543 NEWS | 14 ++++++++++++++ 16544 1 file changed, 14 insertions(+) 16545 16546commit 713e15e43eb6279a7ab4bbad3d1325ebfdcf09a0 16547Author: Jia Tan <jiat0218@gmail.com> 16548Date: 2023-05-04 20:38:52 +0800 16549 16550 Translations: Update the Croatian translation. 16551 16552 po/hr.po | 6 +++--- 16553 1 file changed, 3 insertions(+), 3 deletions(-) 16554 16555commit 9ad64bdf309844b6ca6c3e8a4dfb6dbaedda0ca9 16556Author: Jia Tan <jiat0218@gmail.com> 16557Date: 2023-05-04 20:30:25 +0800 16558 16559 tuklib_integer.h: Reverts previous commit. 16560 16561 Previous commit 6be460dde07113fe3f08f814b61ddc3264125a96 would cause an 16562 error if the integer size was 32 bit. 16563 16564 src/common/tuklib_integer.h | 4 ++-- 16565 1 file changed, 2 insertions(+), 2 deletions(-) 16566 16567commit 6be460dde07113fe3f08f814b61ddc3264125a96 16568Author: Jia Tan <jiat0218@gmail.com> 16569Date: 2023-05-04 19:25:20 +0800 16570 16571 tuklib_integer.h: Changes two other UINT_MAX == UINT32_MAX to >=. 16572 16573 src/common/tuklib_integer.h | 4 ++-- 16574 1 file changed, 2 insertions(+), 2 deletions(-) 16575 16576commit 44c0c5eae990a22ef04e9b88c1a15838a0d00878 16577Author: Lasse Collin <lasse.collin@tukaani.org> 16578Date: 2023-05-03 22:46:42 +0300 16579 16580 tuklib_integer.h: Fix a recent copypaste error in Clang detection. 16581 16582 Wrong line was changed in 7062348bf35c1e4cbfee00ad9fffb4a21aa6eff7. 16583 Also, this has >= instead of == since ints larger than 32 bits would 16584 work too even if not relevant in practice. 16585 16586 src/common/tuklib_integer.h | 4 ++-- 16587 1 file changed, 2 insertions(+), 2 deletions(-) 16588 16589commit 2cf5ae5b5b279b0b2e69ca4724e7bd705865fe68 16590Author: Jia Tan <jiat0218@gmail.com> 16591Date: 2023-04-25 20:06:15 +0800 16592 16593 CI: Adds a build and test for small configuration. 16594 16595 .github/workflows/ci.yml | 5 +++++ 16596 1 file changed, 5 insertions(+) 16597 16598commit 16b81a057a87c2f18e6ed6447f003af0cbdcfe43 16599Author: Jia Tan <jiat0218@gmail.com> 16600Date: 2023-04-25 20:05:26 +0800 16601 16602 CI: ci_build.sh allows configuring small build. 16603 16604 build-aux/ci_build.sh | 7 ++++++- 16605 1 file changed, 6 insertions(+), 1 deletion(-) 16606 16607commit 78ccd93951f9e988d447bcdd70b24f6df5448d1d 16608Author: Jia Tan <jiat0218@gmail.com> 16609Date: 2023-04-20 20:15:00 +0800 16610 16611 Update THANKS. 16612 16613 THANKS | 1 + 16614 1 file changed, 1 insertion(+) 16615 16616commit f41df2ac2fed347d3f107f3533e76e000d29c6cb 16617Author: Jia Tan <jiat0218@gmail.com> 16618Date: 2023-04-19 22:22:16 +0800 16619 16620 Windows: Include <intrin.h> when needed. 16621 16622 Legacy Windows did not need to #include <intrin.h> to use the MSVC 16623 intrinsics. Newer versions likely just issue a warning, but the MSVC 16624 documentation says to include the header file for the intrinsics we use. 16625 16626 GCC and Clang can "pretend" to be MSVC on Windows, so extra checks are 16627 needed in tuklib_integer.h to only include <intrin.h> when it will is 16628 actually needed. 16629 16630 src/common/tuklib_integer.h | 6 ++++++ 16631 src/liblzma/common/memcmplen.h | 10 ++++++++++ 16632 2 files changed, 16 insertions(+) 16633 16634commit 7062348bf35c1e4cbfee00ad9fffb4a21aa6eff7 16635Author: Jia Tan <jiat0218@gmail.com> 16636Date: 2023-04-19 21:59:03 +0800 16637 16638 tuklib_integer: Use __builtin_clz() with Clang. 16639 16640 Clang has support for __builtin_clz(), but previously Clang would 16641 fallback to either the MSVC intrinsic or the regular C code. This was 16642 discovered due to a bug where a new version of Clang required the 16643 <intrin.h> header file in order to use the MSVC intrinsics. 16644 16645 Thanks to Anton Kochkov for notifying us about the bug. 16646 16647 src/common/tuklib_integer.h | 6 +++--- 16648 1 file changed, 3 insertions(+), 3 deletions(-) 16649 16650commit 3938718ce3773c90755785c0df8777f133b7ae29 16651Author: Lasse Collin <lasse.collin@tukaani.org> 16652Date: 2023-04-14 18:42:33 +0300 16653 16654 liblzma: Update project maintainers in lzma.h. 16655 16656 AUTHORS was updated earlier, lzma.h was simply forgotten. 16657 16658 src/liblzma/api/lzma.h | 2 +- 16659 1 file changed, 1 insertion(+), 1 deletion(-) 16660 16661commit 2a89670ab295e377f8b44f5bda6d198deb8ea285 16662Author: Jia Tan <jiat0218@gmail.com> 16663Date: 2023-04-13 20:45:19 +0800 16664 16665 liblzma: Cleans up old commented out code. 16666 16667 src/liblzma/common/alone_encoder.c | 11 ----------- 16668 1 file changed, 11 deletions(-) 16669 16670commit 0fbb2b87a7b5a1dd9d0f4a5e84ac7919557dbe81 16671Author: Jia Tan <jiat0218@gmail.com> 16672Date: 2023-04-07 20:46:41 +0800 16673 16674 Docs: Add missing word to SECURITY.md. 16675 16676 .github/SECURITY.md | 2 +- 16677 1 file changed, 1 insertion(+), 1 deletion(-) 16678 16679commit fb9c50f38a17bf37581de4034b36c8df8ec90a87 16680Author: Jia Tan <jiat0218@gmail.com> 16681Date: 2023-04-07 20:43:22 +0800 16682 16683 Update THANKS. 16684 16685 THANKS | 1 + 16686 1 file changed, 1 insertion(+) 16687 16688commit 537c6cd8a9db0dd6b13683e64ddac2943190d715 16689Author: Jia Tan <jiat0218@gmail.com> 16690Date: 2023-04-07 20:42:12 +0800 16691 16692 Docs: Minor edits to SECURITY.md. 16693 16694 .github/SECURITY.md | 25 ++++++++++++++++++++----- 16695 1 file changed, 20 insertions(+), 5 deletions(-) 16696 16697commit 6549df8dd53f358345957e232648fdb699930074 16698Author: Gabriela Gutierrez <gabigutierrez@google.com> 16699Date: 2023-04-07 12:08:30 +0000 16700 16701 Docs: Create SECURITY.md 16702 16703 Signed-off-by: Gabriela Gutierrez <gabigutierrez@google.com> 16704 16705 .github/SECURITY.md | 14 ++++++++++++++ 16706 1 file changed, 14 insertions(+) 16707 16708commit d0faa85df5a5d253a4625d45313cf5e9277e6cd2 16709Author: Jia Tan <jiat0218@gmail.com> 16710Date: 2023-03-28 22:48:24 +0800 16711 16712 CI: Tests for disabling threading on CMake builds. 16713 16714 .github/workflows/ci.yml | 3 --- 16715 build-aux/ci_build.sh | 4 ++-- 16716 2 files changed, 2 insertions(+), 5 deletions(-) 16717 16718commit 8be5cc3b1359d88b4b30a39067466c0ae0bfbc4d 16719Author: Jia Tan <jiat0218@gmail.com> 16720Date: 2023-03-28 22:45:42 +0800 16721 16722 CI: Removes CMakeCache.txt between builds. 16723 16724 If the cache file is not removed, CMake will not reset configurations 16725 back to their default values. In order to make the tests independent, it 16726 is simplest to purge the cache. Unfortunatly, this will slow down the 16727 tests a little and repeat some checks. 16728 16729 build-aux/ci_build.sh | 2 ++ 16730 1 file changed, 2 insertions(+) 16731 16732commit 2cb6028fc31de082b7f927632363bb1426b61aaa 16733Author: Jia Tan <jiat0218@gmail.com> 16734Date: 2023-03-28 22:32:40 +0800 16735 16736 CMake: Update liblzma-config.cmake generation. 16737 16738 Now that the threading is configurable, the liblzma CMake package only 16739 needs the threading library when using POSIX threads. 16740 16741 CMakeLists.txt | 33 ++++++++++++++++++++++----------- 16742 1 file changed, 22 insertions(+), 11 deletions(-) 16743 16744commit 4d7fac0b07cc722825ba8d7838c558827e635611 16745Author: Jia Tan <jiat0218@gmail.com> 16746Date: 2023-03-28 22:25:33 +0800 16747 16748 CMake: Allows setting thread method. 16749 16750 The thread method is now configurable for the CMake build. It matches 16751 the Autotools build by allowing ON (pick the best threading method), 16752 OFF (no threading), posix, win95, and vista. If both Windows and 16753 posix threading are both available, then ON will choose Windows 16754 threading. Windows threading will also not use: 16755 16756 target_link_libraries(liblzma Threads::Threads) 16757 16758 since on systems like MinGW-w64 it would link the posix threads 16759 without purpose. 16760 16761 CMakeLists.txt | 144 +++++++++++++++++++++++++++++++++++++++++---------------- 16762 1 file changed, 104 insertions(+), 40 deletions(-) 16763 16764commit 20cd905d898c1494dee42b78530769bb9c9f8076 16765Author: Jia Tan <jiat0218@gmail.com> 16766Date: 2023-03-24 23:05:48 +0800 16767 16768 CI: Runs CMake feature tests. 16769 16770 Now, CMake will run similar feature disable tests that the Autotools 16771 version did before. In order to do this without repeating lines in 16772 ci.yml, it now makes sense to use the GitHub Workflow matrix to create 16773 a loop. 16774 16775 .github/workflows/ci.yml | 169 +++++++++++++++-------------------------------- 16776 1 file changed, 55 insertions(+), 114 deletions(-) 16777 16778commit 4fabdb269f1fc5624b3b94a170c4efb329d1d229 16779Author: Jia Tan <jiat0218@gmail.com> 16780Date: 2023-03-24 20:35:11 +0800 16781 16782 CI: ci_build.sh allows CMake features to be configured. 16783 16784 Also included various clean ups for style and helper functions for 16785 repeated work. 16786 16787 build-aux/ci_build.sh | 233 +++++++++++++++++++++++++++++++------------------- 16788 1 file changed, 143 insertions(+), 90 deletions(-) 16789 16790commit cf3d1f130e50cf63da4bb1031771605f6f443b6a 16791Author: Jia Tan <jiat0218@gmail.com> 16792Date: 2023-03-24 20:06:33 +0800 16793 16794 CI: Change ci_build.sh to use bash instead of sh. 16795 16796 This script is only meant to be run as part of the CI build/test process 16797 on machines that are known to have bash (Ubuntu and MacOS). If this 16798 assumption changes in the future, then the bash specific commands will 16799 need to be replaced with a more portable option. For now, it is 16800 convenient to use bash commands. 16801 16802 build-aux/ci_build.sh | 2 +- 16803 1 file changed, 1 insertion(+), 1 deletion(-) 16804 16805commit ddfe164368e779c40d061aa4ccc376129e92f8e1 16806Author: Jia Tan <jiat0218@gmail.com> 16807Date: 2023-03-24 20:05:59 +0800 16808 16809 CMake: Only build xzdec if decoders are enabled. 16810 16811 CMakeLists.txt | 2 +- 16812 1 file changed, 1 insertion(+), 1 deletion(-) 16813 16814commit 116e81f002c503d3c3cd12726db8f9116e58ef25 16815Author: Jia Tan <jiat0218@gmail.com> 16816Date: 2023-03-22 15:42:04 +0800 16817 16818 Build: Removes redundant check for LZMA1 filter support. 16819 16820 src/liblzma/lzma/Makefile.inc | 5 +---- 16821 1 file changed, 1 insertion(+), 4 deletions(-) 16822 16823commit 0ba234f692772595329d225462d391fe2c199d0a 16824Author: Lasse Collin <lasse.collin@tukaani.org> 16825Date: 2023-03-23 15:14:29 +0200 16826 16827 CMake: Bump maximum policy version to 3.26. 16828 16829 It adds only one new policy related to FOLDERS which we don't use. 16830 This makes it clear that the code is compatible with the policies 16831 up to 3.26. 16832 16833 CMakeLists.txt | 2 +- 16834 1 file changed, 1 insertion(+), 1 deletion(-) 16835 16836commit b0891684b4436aed31510fddcbb218d513bd5489 16837Author: Jia Tan <jiat0218@gmail.com> 16838Date: 2023-03-21 23:36:00 +0800 16839 16840 CMake: Conditionally build xz list.* files if decoders are enabled. 16841 16842 CMakeLists.txt | 9 +++++++-- 16843 1 file changed, 7 insertions(+), 2 deletions(-) 16844 16845commit 2c1a830efb61d9d65906a09c9ee3ce27c2c49227 16846Author: Jia Tan <jiat0218@gmail.com> 16847Date: 2023-02-25 11:46:50 +0800 16848 16849 CMake: Allow configuring features as cache variables. 16850 16851 This allows users to change the features they build either in 16852 CMakeCache.txt or by using a CMake GUI. The sources built for 16853 liblzma are affected by this too, so only the necessary files 16854 will be compiled. 16855 16856 CMakeLists.txt | 528 ++++++++++++++++++++++++++++++++++++++++++--------------- 16857 1 file changed, 391 insertions(+), 137 deletions(-) 16858 16859commit 8be136f667aaeb8f9e16fbd57a83cb282f0c27ff 16860Author: Lasse Collin <lasse.collin@tukaani.org> 16861Date: 2023-03-21 14:07:51 +0200 16862 16863 Build: Add a comment that AC_PROG_CC_C99 is needed for Autoconf 2.69. 16864 16865 It's obsolete in Autoconf >= 2.70 and just an alias for AC_PROG_CC 16866 but Autoconf 2.69 requires AC_PROG_CC_C99 to get a C99 compiler. 16867 16868 configure.ac | 3 +++ 16869 1 file changed, 3 insertions(+) 16870 16871commit 53cc475f2652d9e390ca002018dfd0af0626ef80 16872Author: Lasse Collin <lasse.collin@tukaani.org> 16873Date: 2023-03-21 14:04:37 +0200 16874 16875 Build: configure.ac: Use AS_IF and AS_CASE where required. 16876 16877 This makes no functional difference in the generated configure 16878 (at least with the Autotools versions I have installed) but this 16879 change might prevent future bugs like the one that was just 16880 fixed in the commit 5a5bd7f871818029d5ccbe189f087f591258c294. 16881 16882 configure.ac | 30 +++++++++++++++--------------- 16883 1 file changed, 15 insertions(+), 15 deletions(-) 16884 16885commit 3b8890a40233b6c783bb101ec14405e786871775 16886Author: Lasse Collin <lasse.collin@tukaani.org> 16887Date: 2023-03-21 13:12:03 +0200 16888 16889 Update THANKS. 16890 16891 THANKS | 1 + 16892 1 file changed, 1 insertion(+) 16893 16894commit 5a5bd7f871818029d5ccbe189f087f591258c294 16895Author: Lasse Collin <lasse.collin@tukaani.org> 16896Date: 2023-03-21 13:11:49 +0200 16897 16898 Build: Fix --disable-threads breaking the building of shared libs. 16899 16900 This is broken in the releases 5.2.6 to 5.4.2. A workaround 16901 for these releases is to pass EGREP='grep -E' as an argument 16902 to configure in addition to --disable-threads. 16903 16904 The problem appeared when m4/ax_pthread.m4 was updated in 16905 the commit 6629ed929cc7d45a11e385f357ab58ec15e7e4ad which 16906 introduced the use of AC_EGREP_CPP. AC_EGREP_CPP calls 16907 AC_REQUIRE([AC_PROG_EGREP]) to set the shell variable EGREP 16908 but this was only executed if POSIX threads were enabled. 16909 Libtool code also has AC_REQUIRE([AC_PROG_EGREP]) but Autoconf 16910 omits it as AC_PROG_EGREP has already been required earlier. 16911 Thus, if not using POSIX threads, the shell variable EGREP 16912 would be undefined in the Libtool code in configure. 16913 16914 ax_pthread.m4 is fine. The bug was in configure.ac which called 16915 AX_PTHREAD conditionally in an incorrect way. Using AS_CASE 16916 ensures that all AC_REQUIREs get always run. 16917 16918 Thanks to Frank Busse for reporting the bug. 16919 Fixes: https://github.com/tukaani-project/xz/issues/45 16920 16921 configure.ac | 16 ++++++++-------- 16922 1 file changed, 8 insertions(+), 8 deletions(-) 16923 16924commit dfe1710784c0a3c3a90c17b80c9e1fe19b5fce06 16925Author: Lasse Collin <lasse.collin@tukaani.org> 16926Date: 2023-03-19 22:45:59 +0200 16927 16928 liblzma: Silence -Wsign-conversion in SSE2 code in memcmplen.h. 16929 16930 Thanks to Christian Hesse for reporting the issue. 16931 Fixes: https://github.com/tukaani-project/xz/issues/44 16932 16933 src/liblzma/common/memcmplen.h | 3 ++- 16934 1 file changed, 2 insertions(+), 1 deletion(-) 16935 16936commit f0c580c5fc38bf49a184b48d76c1d8c057d499ce 16937Author: Jia Tan <jiat0218@gmail.com> 16938Date: 2023-03-18 22:10:57 +0800 16939 16940 Add NEWS for 5.4.2. 16941 16942 NEWS | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 16943 1 file changed, 48 insertions(+) 16944 16945commit af4925e6043113ec9b5f9c0cf13abf2a18ccb1f6 16946Author: Jia Tan <jiat0218@gmail.com> 16947Date: 2023-03-18 22:10:12 +0800 16948 16949 Add NEWS for 5.2.11. 16950 16951 NEWS | 27 +++++++++++++++++++++++++++ 16952 1 file changed, 27 insertions(+) 16953 16954commit 5a7b930efa7f9849d8da8397e8e5d8638f92be40 16955Author: Lasse Collin <lasse.collin@tukaani.org> 16956Date: 2023-03-18 16:00:54 +0200 16957 16958 Update the copy of GNU GPLv3 from gnu.org to COPYING.GPLv3. 16959 16960 COPYING.GPLv3 | 8 ++++---- 16961 1 file changed, 4 insertions(+), 4 deletions(-) 16962 16963commit b473a92891f7e991398a3b5eff305f6f2b6d7293 16964Author: Lasse Collin <lasse.collin@tukaani.org> 16965Date: 2023-03-18 15:51:57 +0200 16966 16967 Change a few HTTP URLs to HTTPS. 16968 16969 The xz man page timestamp was intentionally left unchanged. 16970 16971 INSTALL | 2 +- 16972 README | 8 ++++---- 16973 configure.ac | 2 +- 16974 dos/INSTALL.txt | 4 ++-- 16975 src/liblzma/api/lzma.h | 8 ++++---- 16976 src/liblzma/check/sha256.c | 2 +- 16977 src/xz/xz.1 | 2 +- 16978 windows/INSTALL-MinGW.txt | 10 +++++----- 16979 8 files changed, 19 insertions(+), 19 deletions(-) 16980 16981commit 8b2f6001b4f412c259a7883427f2f2c8cea98ea8 16982Author: Jia Tan <jiat0218@gmail.com> 16983Date: 2023-03-18 00:40:28 +0800 16984 16985 CMake: Fix typo in a comment. 16986 16987 CMakeLists.txt | 2 +- 16988 1 file changed, 1 insertion(+), 1 deletion(-) 16989 16990commit 76e2315e14c399c15cc90e7930fd4d3d086b0227 16991Author: Lasse Collin <lasse.collin@tukaani.org> 16992Date: 2023-03-17 18:36:22 +0200 16993 16994 Windows: build.bash: Copy liblzma API docs to the output package. 16995 16996 windows/build.bash | 3 ++- 16997 1 file changed, 2 insertions(+), 1 deletion(-) 16998 16999commit 133cf55edc5ce92952d2709abd992e48ef1f45ee 17000Author: Lasse Collin <lasse.collin@tukaani.org> 17001Date: 2023-03-17 08:53:38 +0200 17002 17003 Windows: Add microlzma_*.c to the VS project files. 17004 17005 These should have been included in 5.3.2alpha already. 17006 17007 windows/vs2013/liblzma.vcxproj | 2 ++ 17008 windows/vs2013/liblzma_dll.vcxproj | 2 ++ 17009 windows/vs2017/liblzma.vcxproj | 2 ++ 17010 windows/vs2017/liblzma_dll.vcxproj | 2 ++ 17011 windows/vs2019/liblzma.vcxproj | 2 ++ 17012 windows/vs2019/liblzma_dll.vcxproj | 2 ++ 17013 6 files changed, 12 insertions(+) 17014 17015commit 75c9ca450fab6982fda9286b168081c9d54126cd 17016Author: Lasse Collin <lasse.collin@tukaani.org> 17017Date: 2023-03-17 08:43:51 +0200 17018 17019 CMake: Add microlzma_*.c to the build. 17020 17021 These should have been included in 5.3.2alpha already. 17022 17023 CMakeLists.txt | 2 ++ 17024 1 file changed, 2 insertions(+) 17025 17026commit 0cc3313bd4e569c51e686e5aab8c40c35241d34b 17027Author: Lasse Collin <lasse.collin@tukaani.org> 17028Date: 2023-03-17 08:41:36 +0200 17029 17030 Build: Update comments about unaligned access to mention 64-bit. 17031 17032 cmake/tuklib_integer.cmake | 7 +++---- 17033 m4/tuklib_integer.m4 | 4 ++-- 17034 2 files changed, 5 insertions(+), 6 deletions(-) 17035 17036commit 5e57e3301319f20c35f8111dea73fa58403b96b1 17037Author: Lasse Collin <lasse.collin@tukaani.org> 17038Date: 2023-03-17 00:02:30 +0200 17039 17040 Tests: Update .gitignore. 17041 17042 .gitignore | 3 ++- 17043 1 file changed, 2 insertions(+), 1 deletion(-) 17044 17045commit 0007394d54e21bf30abb9a5e09cbc1e8d44a73ac 17046Author: Lasse Collin <lasse.collin@tukaani.org> 17047Date: 2023-03-14 20:04:03 +0200 17048 17049 po4a/update-po: Display the script name consistently in error messages. 17050 17051 po4a/update-po | 2 +- 17052 1 file changed, 1 insertion(+), 1 deletion(-) 17053 17054commit 509157c80c500426ec853bd992d684ebafc8500c 17055Author: Jia Tan <jiat0218@gmail.com> 17056Date: 2023-03-17 01:30:36 +0800 17057 17058 Doc: Rename Doxygen HTML doc directory name liblzma => api. 17059 17060 When the docs are installed, calling the directory "liblzma" is 17061 confusing since multiple other files in the doc directory are for 17062 liblzma. This should also make it more natural for distros when they 17063 package the documentation. 17064 17065 .gitignore | 2 +- 17066 Makefile.am | 18 +++++++++--------- 17067 PACKAGERS | 4 ++-- 17068 doxygen/Doxyfile | 2 +- 17069 doxygen/update-doxygen | 18 +++++++++--------- 17070 5 files changed, 22 insertions(+), 22 deletions(-) 17071 17072commit fd90e2f4c29180b44e33c7ef726f94e4eae54ed3 17073Author: Jia Tan <jiat0218@gmail.com> 17074Date: 2023-03-16 22:07:15 +0800 17075 17076 liblzma: Remove note from lzma_options_bcj about the ARM64 exception. 17077 17078 This was left in by mistake since an early version of the ARM64 filter 17079 used a different struct for its options. 17080 17081 src/liblzma/api/lzma/bcj.h | 2 +- 17082 1 file changed, 1 insertion(+), 1 deletion(-) 17083 17084commit 4f50763b981f9056c5f1763dfb26cfa4a26a181d 17085Author: Jia Tan <jiat0218@gmail.com> 17086Date: 2023-03-16 21:44:02 +0800 17087 17088 CI: Add doxygen as a dependency. 17089 17090 Autogen now requires --no-doxygen or having doxygen installed to run 17091 without errors. 17092 17093 .github/workflows/ci.yml | 5 ++--- 17094 1 file changed, 2 insertions(+), 3 deletions(-) 17095 17096commit f68f4b27f62f53fdac570885a1f4f23367ce6599 17097Author: Lasse Collin <lasse.collin@tukaani.org> 17098Date: 2023-03-15 19:19:13 +0200 17099 17100 COPYING: Add a note about the included Doxygen-generated HTML. 17101 17102 COPYING | 11 +++++++++++ 17103 1 file changed, 11 insertions(+) 17104 17105commit 8979308528c1f45cb9ee52d511f05232b4ad90a1 17106Author: Jia Tan <jiat0218@gmail.com> 17107Date: 2023-03-16 21:41:09 +0800 17108 17109 Doc: Update PACKAGERS with details about liblzma API docs install. 17110 17111 PACKAGERS | 22 ++++++++++++++++------ 17112 1 file changed, 16 insertions(+), 6 deletions(-) 17113 17114commit 55ba6e93004842ae0a0792214a23504267ad8f43 17115Author: Jia Tan <jiat0218@gmail.com> 17116Date: 2023-03-16 21:38:32 +0800 17117 17118 liblzma: Add set lzma.h as the main page for Doxygen documentation. 17119 17120 The \mainpage command is used in the first block of comments in lzma.h. 17121 This changes the previously nearly empty index.html to use the first 17122 comment block in lzma.h for its contents. 17123 17124 lzma.h is no longer documented separately, but this is for the better 17125 since lzma.h only defined a few macros that users do not need to use. 17126 The individual API header files all have a disclaimer that they should 17127 not be #included directly, so there should be no confusion on the fact 17128 that lzma.h should be the only header used by applications. 17129 17130 Additionally, the note "See ../lzma.h for information about liblzma as 17131 a whole." was removed since lzma.h is now the main page of the 17132 generated HTML and does not have its own page anymore. So it would be 17133 confusing in the HTML version and was only a "nice to have" when 17134 browsing the source files. 17135 17136 src/liblzma/api/lzma.h | 1 + 17137 src/liblzma/api/lzma/base.h | 2 -- 17138 src/liblzma/api/lzma/bcj.h | 2 -- 17139 src/liblzma/api/lzma/block.h | 2 -- 17140 src/liblzma/api/lzma/check.h | 2 -- 17141 src/liblzma/api/lzma/container.h | 2 -- 17142 src/liblzma/api/lzma/delta.h | 2 -- 17143 src/liblzma/api/lzma/filter.h | 2 -- 17144 src/liblzma/api/lzma/hardware.h | 2 -- 17145 src/liblzma/api/lzma/index.h | 2 -- 17146 src/liblzma/api/lzma/index_hash.h | 4 +--- 17147 src/liblzma/api/lzma/lzma12.h | 2 -- 17148 src/liblzma/api/lzma/stream_flags.h | 2 -- 17149 src/liblzma/api/lzma/version.h | 2 -- 17150 src/liblzma/api/lzma/vli.h | 2 -- 17151 15 files changed, 2 insertions(+), 29 deletions(-) 17152 17153commit 16f21255597f6a57e5692780f962cdc090f62b8c 17154Author: Jia Tan <jiat0218@gmail.com> 17155Date: 2023-03-16 21:37:32 +0800 17156 17157 Build: Generate doxygen documentation in autogen.sh. 17158 17159 Another command line option (--no-doxygen) was added to disable 17160 creating the doxygen documenation in cases where it not wanted or 17161 if the doxygen tool is not installed. 17162 17163 autogen.sh | 35 +++++++++++++++++++++++++++++------ 17164 1 file changed, 29 insertions(+), 6 deletions(-) 17165 17166commit 1321852a3be7196bd7fcfd146221a5669e46407c 17167Author: Jia Tan <jiat0218@gmail.com> 17168Date: 2023-03-16 21:35:55 +0800 17169 17170 Build: Create doxygen/update-doxygen script. 17171 17172 This is a helper script to generate the Doxygen documentation. It can be 17173 run in 'liblzma' or 'internal' mode by setting the first argument. It 17174 will default to 'liblzma' mode and only generate documentation for the 17175 liblzma API header files. 17176 17177 The helper script will be run during the custom mydist hook when we 17178 create releases. This hook already alters the source directory, so its 17179 fine to do it here too. This way, we can include the Doxygen generated 17180 files in the distrubtion and when installing. 17181 17182 In 'liblzma' mode, the JavaScript is stripped from the .html files and 17183 the .js files are removed. This avoids license hassle from jQuery and 17184 other libraries that Doxygen 1.9.6 puts into jquery.js in minified form. 17185 17186 Makefile.am | 1 + 17187 doxygen/update-doxygen | 111 +++++++++++++++++++++++++++++++++++++++++++++++++ 17188 2 files changed, 112 insertions(+) 17189 17190commit b1216a7772952d2fe7fe9c6acfcbd98d30abbc7b 17191Author: Jia Tan <jiat0218@gmail.com> 17192Date: 2023-03-16 21:34:36 +0800 17193 17194 Build: Install Doxygen docs and include in distribution if generated. 17195 17196 Added a install-data-local target to install the Doxygen documentation 17197 only when it has been generated. In order to correctly remove the docs, 17198 a corresponding uninstall-local target was added. 17199 17200 If the doxygen docs exist in the source tree, they will also be included 17201 in the distribution now too. 17202 17203 Makefile.am | 18 ++++++++++++++++++ 17204 1 file changed, 18 insertions(+) 17205 17206commit c97d12f300b2a94c9f54a44c8931c8bc08cf0a73 17207Author: Lasse Collin <lasse.collin@tukaani.org> 17208Date: 2023-03-16 21:23:48 +0800 17209 17210 Doxygen: Refactor Doxyfile.in to doxygen/Doxyfile. 17211 17212 Instead of having Doxyfile.in configured by Autoconf, the Doxyfile 17213 can have the tags that need to be configured piped into the doxygen 17214 command through stdin with the overrides after Doxyfile's contents. 17215 17216 Going forward, the documentation should be generated in two different 17217 modes: liblzma or internal. 17218 17219 liblzma is useful for most users. It is the documentation for just 17220 the liblzma API header files. This is the default. 17221 17222 internal is for people who want to understand how xz and liblzma work. 17223 It might be useful for people who want to contribute to the project. 17224 17225 .gitignore | 3 +- 17226 Makefile.am | 1 - 17227 configure.ac | 40 --- 17228 Doxyfile.in => doxygen/Doxyfile | 721 +++++++++++++++++++++++++--------------- 17229 4 files changed, 456 insertions(+), 309 deletions(-) 17230 17231commit 1b7661faa4bbf4a54c6b75900b5059835c382a0f 17232Author: Jia Tan <jiat0218@gmail.com> 17233Date: 2023-02-28 23:22:36 +0800 17234 17235 Tests: Remove unused macros and functions. 17236 17237 tests/tests.h | 75 ----------------------------------------------------------- 17238 1 file changed, 75 deletions(-) 17239 17240commit af55191102f01e76de658c881299f0909ca0feda 17241Author: Jia Tan <jiat0218@gmail.com> 17242Date: 2022-12-29 21:52:15 +0800 17243 17244 liblzma: Defines masks for return values from lzma_index_checks(). 17245 17246 src/liblzma/api/lzma/index.h | 23 +++++++++++++++++++++++ 17247 tests/test_index.c | 22 +++++++++++----------- 17248 2 files changed, 34 insertions(+), 11 deletions(-) 17249 17250commit 8f38cdd9ab71e2a9d5a9787550222b7578243b73 17251Author: Jia Tan <jiat0218@gmail.com> 17252Date: 2023-01-12 22:29:07 +0800 17253 17254 Tests: Refactors existing lzma_index tests. 17255 17256 Converts the existing lzma_index tests into tuktests and covers every 17257 API function from index.h except for lzma_file_info_decoder, which can 17258 be tested in the future. 17259 17260 tests/test_index.c | 2036 ++++++++++++++++++++++++++++++++++++++-------------- 17261 1 file changed, 1492 insertions(+), 544 deletions(-) 17262 17263commit 717aa3651ce582807f379d8654c2516e1594df77 17264Author: Lasse Collin <lasse.collin@tukaani.org> 17265Date: 2023-03-11 18:42:08 +0200 17266 17267 xz: Simplify the error-label in Capsicum sandbox code. 17268 17269 Also remove unneeded "sandbox_allowed = false;" as this code 17270 will never be run more than once (making it work with multiple 17271 input files isn't trivial). 17272 17273 src/xz/file_io.c | 27 ++++++++++++--------------- 17274 1 file changed, 12 insertions(+), 15 deletions(-) 17275 17276commit a0eecc235d3ba8ad3453da98b46c7bc3e644de75 17277Author: Lasse Collin <lasse.collin@tukaani.org> 17278Date: 2023-03-07 19:59:23 +0200 17279 17280 xz: Make Capsicum sandbox more strict with stdin and stdout. 17281 17282 src/xz/file_io.c | 8 ++++++++ 17283 1 file changed, 8 insertions(+) 17284 17285commit 916448d624aaf55cef0fc3e53754affb8c4f309d 17286Author: Jia Tan <jiat0218@gmail.com> 17287Date: 2023-03-08 23:08:46 +0800 17288 17289 Revert: "Add warning if Capsicum sandbox system calls are unsupported." 17290 17291 The warning causes the exit status to be 2, so this will cause problems 17292 for many scripted use cases for xz. The sandbox usage is already very 17293 limited already, so silently disabling this allows it to be more usable. 17294 17295 src/xz/file_io.c | 10 ++++------ 17296 1 file changed, 4 insertions(+), 6 deletions(-) 17297 17298commit 01587dda2a8f13fef7e12fd624e6d05da5f9624f 17299Author: Jia Tan <jiat0218@gmail.com> 17300Date: 2023-03-07 20:02:22 +0800 17301 17302 xz: Fix -Wunused-label in io_sandbox_enter(). 17303 17304 Thanks to Xin Li for recommending the fix. 17305 17306 src/xz/file_io.c | 4 ++-- 17307 1 file changed, 2 insertions(+), 2 deletions(-) 17308 17309commit 5fb936786601a1cd013a5d436adde65982b1e13c 17310Author: Jia Tan <jiat0218@gmail.com> 17311Date: 2023-03-06 21:37:45 +0800 17312 17313 xz: Add warning if Capsicum sandbox system calls are unsupported. 17314 17315 The warning is only used when errno == ENOSYS. Otherwise, xz still 17316 issues a fatal error. 17317 17318 src/xz/file_io.c | 2 ++ 17319 1 file changed, 2 insertions(+) 17320 17321commit 61ee82cb1232a402c82282bbae42821f2b952b0d 17322Author: Jia Tan <jiat0218@gmail.com> 17323Date: 2023-03-06 21:27:53 +0800 17324 17325 xz: Skip Capsicum sandbox system calls when they are unsupported. 17326 17327 If a system has the Capsicum header files but does not actually 17328 implement the system calls, then this would render xz unusable. Instead, 17329 we can check if errno == ENOSYS and not issue a fatal error. 17330 17331 src/xz/file_io.c | 22 +++++++++++++++++----- 17332 1 file changed, 17 insertions(+), 5 deletions(-) 17333 17334commit f070722b57ba975a0dff36492d766f03026b1d21 17335Author: Jia Tan <jiat0218@gmail.com> 17336Date: 2023-03-06 21:08:26 +0800 17337 17338 xz: Reorder cap_enter() to beginning of capsicum sandbox code. 17339 17340 cap_enter() puts the process into the sandbox. If later calls to 17341 cap_rights_limit() fail, then the process can still have some extra 17342 protections. 17343 17344 src/xz/file_io.c | 6 +++--- 17345 1 file changed, 3 insertions(+), 3 deletions(-) 17346 17347commit f1ab1f6b339d16a53ac53efeb97779ecd2bae70f 17348Author: Jia Tan <jiat0218@gmail.com> 17349Date: 2023-02-24 23:46:23 +0800 17350 17351 liblzma: Clarify lzma_lzma_preset() documentation in lzma12.h. 17352 17353 lzma_lzma_preset() does not guarentee that the lzma_options_lzma are 17354 usable in an encoder even if it returns false (success). If liblzma 17355 is built with default configurations, then the options will always be 17356 usable. However if the match finders hc3, hc4, or bt4 are disabled, then 17357 the options may not be usable depending on the preset level requested. 17358 17359 The documentation was updated to reflect this complexity, since this 17360 behavior was unclear before. 17361 17362 src/liblzma/api/lzma/lzma12.h | 5 +++++ 17363 1 file changed, 5 insertions(+) 17364 17365commit 4b7fb3bf41a0ca4c97fad3799949a2aa61b13b99 17366Author: Lasse Collin <lasse.collin@tukaani.org> 17367Date: 2023-02-27 18:38:35 +0200 17368 17369 CMake: Require that the C compiler supports C99 or a newer standard. 17370 17371 Thanks to autoantwort for reporting the issue and suggesting 17372 a different patch: 17373 https://github.com/tukaani-project/xz/pull/42 17374 17375 CMakeLists.txt | 8 ++++++++ 17376 1 file changed, 8 insertions(+) 17377 17378commit 9aa7fdeb04c486d2700967090956af88fdccab7e 17379Author: Jia Tan <jiat0218@gmail.com> 17380Date: 2023-02-24 18:10:37 +0800 17381 17382 Tests: Small tweak to test-vli.c. 17383 17384 The static global variables can be disabled if encoders and decoders 17385 are not built. If they are not disabled and -Werror is used, it will 17386 cause an usused warning as an error. 17387 17388 tests/test_vli.c | 2 ++ 17389 1 file changed, 2 insertions(+) 17390 17391commit 3cf72c4bcba5370f07477c9b9b62ae33069ef9a9 17392Author: Jia Tan <jiat0218@gmail.com> 17393Date: 2023-02-06 21:46:43 +0800 17394 17395 liblzma: Replace '\n' -> newline in filter.h documentation. 17396 17397 The '\n' renders as a newline when the comments are converted to html 17398 by Doxygen. 17399 17400 src/liblzma/api/lzma/filter.h | 2 +- 17401 1 file changed, 1 insertion(+), 1 deletion(-) 17402 17403commit 002006be62d77c706565fa6ec828bea64be302da 17404Author: Jia Tan <jiat0218@gmail.com> 17405Date: 2023-02-06 21:45:37 +0800 17406 17407 liblzma: Shorten return description for two functions in filter.h. 17408 17409 Shorten the description for lzma_raw_encoder_memusage() and 17410 lzma_raw_decoder_memusage(). 17411 17412 src/liblzma/api/lzma/filter.h | 8 ++------ 17413 1 file changed, 2 insertions(+), 6 deletions(-) 17414 17415commit 463d9359b8595f01d44ada1739d75aeb87f36524 17416Author: Jia Tan <jiat0218@gmail.com> 17417Date: 2023-02-06 21:44:45 +0800 17418 17419 liblzma: Reword a few lines in filter.h 17420 17421 src/liblzma/api/lzma/filter.h | 10 +++++----- 17422 1 file changed, 5 insertions(+), 5 deletions(-) 17423 17424commit 01441df92c0fd6a6c02fe5ac27982a54ce887cc0 17425Author: Jia Tan <jiat0218@gmail.com> 17426Date: 2023-02-06 21:35:06 +0800 17427 17428 liblzma: Improve documentation in filter.h. 17429 17430 All functions now explicitly specify parameter and return values. 17431 The notes and code annotations were moved before the parameter and 17432 return value descriptions for consistency. 17433 17434 Also, the description above lzma_filter_encoder_is_supported() about 17435 not being able to list available filters was removed since 17436 lzma_str_list_filters() will do this. 17437 17438 src/liblzma/api/lzma/filter.h | 226 ++++++++++++++++++++++++++---------------- 17439 1 file changed, 143 insertions(+), 83 deletions(-) 17440 17441commit 805b45cd60bfd5da3d3d89077de3789df179b324 17442Author: Lasse Collin <lasse.collin@tukaani.org> 17443Date: 2023-02-23 20:46:16 +0200 17444 17445 Update THANKS. 17446 17447 THANKS | 1 + 17448 1 file changed, 1 insertion(+) 17449 17450commit 30e95bb44c36ae26b2ab12a94343b215fec285e7 17451Author: Lasse Collin <lasse.collin@tukaani.org> 17452Date: 2023-02-21 22:57:10 +0200 17453 17454 liblzma: Avoid null pointer + 0 (undefined behavior in C). 17455 17456 In the C99 and C17 standards, section 6.5.6 paragraph 8 means that 17457 adding 0 to a null pointer is undefined behavior. As of writing, 17458 "clang -fsanitize=undefined" (Clang 15) diagnoses this. However, 17459 I'm not aware of any compiler that would take advantage of this 17460 when optimizing (Clang 15 included). It's good to avoid this anyway 17461 since compilers might some day infer that pointer arithmetic implies 17462 that the pointer is not NULL. That is, the following foo() would then 17463 unconditionally return 0, even for foo(NULL, 0): 17464 17465 void bar(char *a, char *b); 17466 17467 int foo(char *a, size_t n) 17468 { 17469 bar(a, a + n); 17470 return a == NULL; 17471 } 17472 17473 In contrast to C, C++ explicitly allows null pointer + 0. So if 17474 the above is compiled as C++ then there is no undefined behavior 17475 in the foo(NULL, 0) call. 17476 17477 To me it seems that changing the C standard would be the sane 17478 thing to do (just add one sentence) as it would ensure that a huge 17479 amount of old code won't break in the future. Based on web searches 17480 it seems that a large number of codebases (where null pointer + 0 17481 occurs) are being fixed instead to be future-proof in case compilers 17482 will some day optimize based on it (like making the above foo(NULL, 0) 17483 return 0) which in the worst case will cause security bugs. 17484 17485 Some projects don't plan to change it. For example, gnulib and thus 17486 many GNU tools currently require that null pointer + 0 is defined: 17487 17488 https://lists.gnu.org/archive/html/bug-gnulib/2021-11/msg00000.html 17489 17490 https://www.gnu.org/software/gnulib/manual/html_node/Other-portability-assumptions.html 17491 17492 In XZ Utils null pointer + 0 issue should be fixed after this 17493 commit. This adds a few if-statements and thus branches to avoid 17494 null pointer + 0. These check for size > 0 instead of ptr != NULL 17495 because this way bugs where size > 0 && ptr == NULL will likely 17496 get caught quickly. None of them are in hot spots so it shouldn't 17497 matter for performance. 17498 17499 A little less readable version would be replacing 17500 17501 ptr + offset 17502 17503 with 17504 17505 offset != 0 ? ptr + offset : ptr 17506 17507 or creating a macro for it: 17508 17509 #define my_ptr_add(ptr, offset) \ 17510 ((offset) != 0 ? ((ptr) + (offset)) : (ptr)) 17511 17512 Checking for offset != 0 instead of ptr != NULL allows GCC >= 8.1, 17513 Clang >= 7, and Clang-based ICX to optimize it to the very same code 17514 as ptr + offset. That is, it won't create a branch. So for hot code 17515 this could be a good solution to avoid null pointer + 0. Unfortunately 17516 other compilers like ICC 2021 or MSVC 19.33 (VS2022) will create a 17517 branch from my_ptr_add(). 17518 17519 Thanks to Marcin Kowalczyk for reporting the problem: 17520 https://github.com/tukaani-project/xz/issues/36 17521 17522 src/liblzma/common/block_decoder.c | 5 ++++- 17523 src/liblzma/common/block_encoder.c | 7 +++++-- 17524 src/liblzma/common/common.c | 20 ++++++++++++++------ 17525 src/liblzma/common/index_decoder.c | 13 ++++++++++--- 17526 src/liblzma/common/index_encoder.c | 11 +++++++++-- 17527 src/liblzma/common/index_hash.c | 13 ++++++++++--- 17528 src/liblzma/common/lzip_decoder.c | 6 +++++- 17529 src/liblzma/delta/delta_decoder.c | 7 ++++++- 17530 src/liblzma/delta/delta_encoder.c | 12 ++++++++++-- 17531 src/liblzma/simple/simple_coder.c | 6 ++++-- 17532 10 files changed, 77 insertions(+), 23 deletions(-) 17533 17534commit fa9065fac54194fe0407fc7f0cc9633fdce13c21 17535Author: Jia Tan <jiat0218@gmail.com> 17536Date: 2023-02-07 00:00:44 +0800 17537 17538 liblzma: Adjust container.h for consistency with filter.h. 17539 17540 src/liblzma/api/lzma/container.h | 20 +++++++++----------- 17541 1 file changed, 9 insertions(+), 11 deletions(-) 17542 17543commit 00a721b63d82dfb658dca8d8cb599d8a245c663f 17544Author: Jia Tan <jiat0218@gmail.com> 17545Date: 2023-02-07 00:00:09 +0800 17546 17547 liblzma: Fix small typos and reword a few things in filter.h. 17548 17549 src/liblzma/api/lzma/container.h | 13 ++++++------- 17550 1 file changed, 6 insertions(+), 7 deletions(-) 17551 17552commit 5b1c171d4ffe89ef18fa31509bb0185d6fd11d39 17553Author: Jia Tan <jiat0218@gmail.com> 17554Date: 2023-02-06 23:42:08 +0800 17555 17556 liblzma: Convert list of flags in lzma_mt to bulleted list. 17557 17558 src/liblzma/api/lzma/container.h | 9 ++++++--- 17559 1 file changed, 6 insertions(+), 3 deletions(-) 17560 17561commit dbd47622eb99fefb3538a22baec3def002aa56f5 17562Author: Jia Tan <jiat0218@gmail.com> 17563Date: 2023-01-26 23:17:41 +0800 17564 17565 liblzma: Fix typo in documentation in container.h 17566 17567 lzma_microlzma_decoder -> lzma_microlzma_encoder 17568 17569 src/liblzma/api/lzma/container.h | 2 +- 17570 1 file changed, 1 insertion(+), 1 deletion(-) 17571 17572commit 14cd30806d69e55906073745bcce3ee50e0ec942 17573Author: Jia Tan <jiat0218@gmail.com> 17574Date: 2023-01-26 23:16:34 +0800 17575 17576 liblzma: Improve documentation for container.h 17577 17578 Standardizing each function to always specify parameters and return 17579 values. Also moved the parameters and return values to the end of each 17580 function description. 17581 17582 src/liblzma/api/lzma/container.h | 146 +++++++++++++++++++++++++-------------- 17583 1 file changed, 93 insertions(+), 53 deletions(-) 17584 17585commit c9c8bfae3502842dcead85eeb2b951b437c2cd88 17586Author: Jia Tan <jiat0218@gmail.com> 17587Date: 2023-02-22 20:59:41 +0800 17588 17589 CMake: Add LZIP decoder test to list of tests. 17590 17591 CMakeLists.txt | 1 + 17592 1 file changed, 1 insertion(+) 17593 17594commit b9f171dd00a3cc32b6d41ea8e082cf545640ec2a 17595Author: Lasse Collin <lasse.collin@tukaani.org> 17596Date: 2023-02-17 20:56:49 +0200 17597 17598 Update THANKS. 17599 17600 THANKS | 1 + 17601 1 file changed, 1 insertion(+) 17602 17603commit 2ee86d20e49985b903b78ebcfa3fa672e73e93aa 17604Author: Lasse Collin <lasse.collin@tukaani.org> 17605Date: 2023-02-17 20:48:28 +0200 17606 17607 Build: Use only the generic symbol versioning on MicroBlaze. 17608 17609 On MicroBlaze, GCC 12 is broken in sense that 17610 __has_attribute(__symver__) returns true but it still doesn't 17611 support the __symver__ attribute even though the platform is ELF 17612 and symbol versioning is supported if using the traditional 17613 __asm__(".symver ...") method. Avoiding the traditional method is 17614 good because it breaks LTO (-flto) builds with GCC. 17615 17616 See also: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101766 17617 17618 For now the only extra symbols in liblzma_linux.map are the 17619 compatibility symbols with the patch that spread from RHEL/CentOS 7. 17620 These require the use of __symver__ attribute or __asm__(".symver ...") 17621 in the C code. Compatibility with the patch from CentOS 7 doesn't 17622 seem valuable on MicroBlaze so use liblzma_generic.map on MicroBlaze 17623 instead. It doesn't require anything special in the C code and thus 17624 no LTO issues either. 17625 17626 An alternative would be to detect support for __symver__ 17627 attribute in configure.ac and CMakeLists.txt and fall back 17628 to __asm__(".symver ...") but then LTO would be silently broken 17629 on MicroBlaze. It sounds likely that MicroBlaze is a special 17630 case so let's treat it as a such because that is simpler. If 17631 a similar issue exists on some other platform too then hopefully 17632 someone will report it and this can be reconsidered. 17633 17634 (This doesn't do the same fix in CMakeLists.txt. Perhaps it should 17635 but perhaps CMake build of liblzma doesn't matter much on MicroBlaze. 17636 The problem breaks the build so it's easy to notice and can be fixed 17637 later.) 17638 17639 Thanks to Vincent Fazio for reporting the problem and proposing 17640 a patch (in the end that solution wasn't used): 17641 https://github.com/tukaani-project/xz/pull/32 17642 17643 configure.ac | 12 ++++++++++-- 17644 1 file changed, 10 insertions(+), 2 deletions(-) 17645 17646commit d831072cceca458d94d2d5da201862f6d43a417b 17647Author: Lasse Collin <lasse.collin@tukaani.org> 17648Date: 2023-02-16 21:09:00 +0200 17649 17650 liblzma: Very minor API doc tweaks. 17651 17652 Use "member" to refer to struct members as that's the term used 17653 by the C standard. 17654 17655 Use lzma_options_delta.dist and such in docs so that in Doxygen's 17656 HTML output they will link to the doc of the struct member. 17657 17658 Clean up a few trailing white spaces too. 17659 17660 src/liblzma/api/lzma/block.h | 6 +++--- 17661 src/liblzma/api/lzma/delta.h | 6 +++--- 17662 src/liblzma/api/lzma/index.h | 10 +++++----- 17663 src/liblzma/api/lzma/stream_flags.h | 6 +++--- 17664 4 files changed, 14 insertions(+), 14 deletions(-) 17665 17666commit f029daea39c215fd7d5cb6b6798818b055cf5b22 17667Author: Jia Tan <jiat0218@gmail.com> 17668Date: 2023-02-17 00:54:33 +0800 17669 17670 liblzma: Adjust spacing in doc headers in bcj.h. 17671 17672 src/liblzma/api/lzma/bcj.h | 14 +++++++------- 17673 1 file changed, 7 insertions(+), 7 deletions(-) 17674 17675commit a5de68bac2bb7e1b9119e6cea7d761a22ea73e9c 17676Author: Jia Tan <jiat0218@gmail.com> 17677Date: 2023-02-17 00:44:44 +0800 17678 17679 liblzma: Adjust documentation in bcj.h for consistent style. 17680 17681 src/liblzma/api/lzma/bcj.h | 43 ++++++++++++++++++++++--------------------- 17682 1 file changed, 22 insertions(+), 21 deletions(-) 17683 17684commit efa498c13b883810497e0ea8a169efd6f48f5026 17685Author: Jia Tan <jiat0218@gmail.com> 17686Date: 2023-02-17 00:36:05 +0800 17687 17688 liblzma: Rename field => member in documentation. 17689 17690 Also adjusted preset value => preset level. 17691 17692 src/liblzma/api/lzma/base.h | 18 +++++++-------- 17693 src/liblzma/api/lzma/block.h | 44 ++++++++++++++++++------------------- 17694 src/liblzma/api/lzma/container.h | 26 +++++++++++----------- 17695 src/liblzma/api/lzma/delta.h | 12 +++++----- 17696 src/liblzma/api/lzma/index.h | 30 ++++++++++++------------- 17697 src/liblzma/api/lzma/lzma12.h | 28 +++++++++++------------ 17698 src/liblzma/api/lzma/stream_flags.h | 32 +++++++++++++-------------- 17699 7 files changed, 95 insertions(+), 95 deletions(-) 17700 17701commit 718b22a6c5e3ee5de123323ea798872381f9320e 17702Author: Lasse Collin <lasse.collin@tukaani.org> 17703Date: 2023-02-16 17:59:50 +0200 17704 17705 liblzma: Silence a warning from MSVC. 17706 17707 It gives C4146 here since unary minus with unsigned integer 17708 is still unsigned (which is the intention here). Doing it 17709 with substraction makes it clearer and avoids the warning. 17710 17711 Thanks to Nathan Moinvaziri for reporting this. 17712 17713 src/liblzma/check/crc64_fast.c | 2 +- 17714 1 file changed, 1 insertion(+), 1 deletion(-) 17715 17716commit 87c53553fa7d50f777b4edfa99f2083628f590fe 17717Author: Jia Tan <jiat0218@gmail.com> 17718Date: 2023-02-16 21:04:54 +0800 17719 17720 liblzma: Improve documentation for stream_flags.h 17721 17722 Standardizing each function to always specify parameters and return 17723 values. Also moved the parameters and return values to the end of each 17724 function description. 17725 17726 A few small things were reworded and long sentences broken up. 17727 17728 src/liblzma/api/lzma/stream_flags.h | 76 ++++++++++++++++++++++--------------- 17729 1 file changed, 46 insertions(+), 30 deletions(-) 17730 17731commit 13d99e75a543e9e5f8633cc241eae55b91a3b242 17732Author: Jia Tan <jiat0218@gmail.com> 17733Date: 2023-02-14 21:50:16 +0800 17734 17735 liblzma: Improve documentation in lzma12.h. 17736 17737 All functions now explicitly specify parameter and return values. 17738 17739 src/liblzma/api/lzma/lzma12.h | 32 +++++++++++++++++++++++--------- 17740 1 file changed, 23 insertions(+), 9 deletions(-) 17741 17742commit 43ec344c868f930e96879eb9e49212cce92a9884 17743Author: Jia Tan <jiat0218@gmail.com> 17744Date: 2023-01-27 22:44:06 +0800 17745 17746 liblzma: Improve documentation in check.h. 17747 17748 All functions now explicitly specify parameter and return values. 17749 Also moved the note about SHA-256 functions not being exported to the 17750 top of the file. 17751 17752 src/liblzma/api/lzma/check.h | 41 ++++++++++++++++++++++++++++------------- 17753 1 file changed, 28 insertions(+), 13 deletions(-) 17754 17755commit 9c71db4e884fd49aea3d1e711036bff45ca66487 17756Author: Jia Tan <jiat0218@gmail.com> 17757Date: 2023-02-08 21:33:52 +0800 17758 17759 liblzma: Improve documentation in index.h 17760 17761 All functions now explicitly specify parameter and return values. 17762 17763 src/liblzma/api/lzma/index.h | 177 ++++++++++++++++++++++++++++++------------- 17764 1 file changed, 126 insertions(+), 51 deletions(-) 17765 17766commit 421f2f2e160720f6009e3b6a125cafe2feaa9419 17767Author: Jia Tan <jiat0218@gmail.com> 17768Date: 2023-02-08 20:35:32 +0800 17769 17770 liblzma: Reword a comment in index.h. 17771 17772 src/liblzma/api/lzma/index.h | 4 ++-- 17773 1 file changed, 2 insertions(+), 2 deletions(-) 17774 17775commit b67539484981351d501b68de5e925425e50c59b1 17776Author: Jia Tan <jiat0218@gmail.com> 17777Date: 2023-02-08 20:30:23 +0800 17778 17779 liblzma: Omit lzma_index_iter's internal field from Doxygen docs. 17780 17781 Add \private above this field and its sub-fields since it is not meant 17782 to be modified by users. 17783 17784 src/liblzma/api/lzma/index.h | 9 ++++++++- 17785 1 file changed, 8 insertions(+), 1 deletion(-) 17786 17787commit 0c9e4fc2ad6d88d54f299240fcc5a2ce7d695d96 17788Author: Jia Tan <jiat0218@gmail.com> 17789Date: 2023-01-21 21:32:03 +0800 17790 17791 liblzma: Fix documentation for LZMA_MEMLIMIT_ERROR. 17792 17793 LZMA_MEMLIMIT_ERROR was missing the "<" character needed to put 17794 documentation after a member. 17795 17796 src/liblzma/api/lzma/base.h | 2 +- 17797 1 file changed, 1 insertion(+), 1 deletion(-) 17798 17799commit 816fec125aa74bcef46512c73acc6d9e5a700d15 17800Author: Jia Tan <jiat0218@gmail.com> 17801Date: 2023-01-21 00:29:38 +0800 17802 17803 liblzma: Improve documentation for base.h. 17804 17805 Standardizing each function to always specify params and return values. 17806 Also fixed a small grammar mistake. 17807 17808 src/liblzma/api/lzma/base.h | 30 +++++++++++++++++++++++++----- 17809 1 file changed, 25 insertions(+), 5 deletions(-) 17810 17811commit 862dacef1a4e7e1b28d465956fa4244ed01df154 17812Author: Jia Tan <jiat0218@gmail.com> 17813Date: 2023-02-14 00:12:34 +0800 17814 17815 liblzma: Add one more missing [out] annotation in vli.h 17816 17817 src/liblzma/api/lzma/vli.h | 2 +- 17818 1 file changed, 1 insertion(+), 1 deletion(-) 17819 17820commit 867b08ae4254bf55dd1f7fd502cc618231b92f75 17821Author: Jia Tan <jiat0218@gmail.com> 17822Date: 2023-02-14 00:08:33 +0800 17823 17824 liblzma: Minor improvements to vli.h. 17825 17826 Added [out] annotations to parameters that are pointers and can have 17827 their value changed. Also added a clarification to lzma_vli_is_valid. 17828 17829 src/liblzma/api/lzma/vli.h | 13 +++++++------ 17830 1 file changed, 7 insertions(+), 6 deletions(-) 17831 17832commit 90d0e628ff11e5030bcc4fc000bca056adda6603 17833Author: Jia Tan <jiat0218@gmail.com> 17834Date: 2023-02-10 21:38:02 +0800 17835 17836 liblzma: Add comments for macros in delta.h. 17837 17838 Document LZMA_DELTA_DIST_MIN and LZMA_DELTA_DIST_MAX for completeness 17839 and to avoid Doxygen warnings. 17840 17841 src/liblzma/api/lzma/delta.h | 8 ++++++++ 17842 1 file changed, 8 insertions(+) 17843 17844commit 9255fffdb13e59874bf7f95c370c410ad3a7e114 17845Author: Jia Tan <jiat0218@gmail.com> 17846Date: 2023-02-10 21:35:23 +0800 17847 17848 liblzma: Improve documentation in index_hash.h. 17849 17850 All functions now explicitly specify parameter and return values. 17851 Also reworded the description of lzma_index_hash_init() for readability. 17852 17853 src/liblzma/api/lzma/index_hash.h | 36 +++++++++++++++++++++++++++--------- 17854 1 file changed, 27 insertions(+), 9 deletions(-) 17855 17856commit 1dbe12b90cff79bb51923733ac0840747b4b4131 17857Author: Lasse Collin <lasse.collin@tukaani.org> 17858Date: 2023-02-07 19:07:45 +0200 17859 17860 xz: Improve the comment about start_time in mytime.c. 17861 17862 start_time is relative to an arbitary point in time, it's not 17863 time of day, so using it for anything else than time differences 17864 wouldn't make sense. 17865 17866 src/xz/mytime.c | 15 ++++++++++----- 17867 1 file changed, 10 insertions(+), 5 deletions(-) 17868 17869commit 7673ef5aa80c1af7fb693360dd82f527b46c2c56 17870Author: Jia Tan <jiat0218@gmail.com> 17871Date: 2023-02-04 21:06:35 +0800 17872 17873 Build: Adjust CMake version search regex. 17874 17875 Now, the LZMA_VERSION_MAJOR, LZMA_VERSION_MINOR, and LZMA_VERSION_PATCH 17876 macros do not need to be on consecutive lines in version.h. They can be 17877 separated by more whitespace, comments, or even other content, as long 17878 as they appear in the proper order (major, minor, patch). 17879 17880 CMakeLists.txt | 2 ++ 17881 1 file changed, 2 insertions(+) 17882 17883commit b8bce89be7fb5bffe5fef4a2782ca9b2b107eaac 17884Author: Jia Tan <jiat0218@gmail.com> 17885Date: 2023-02-04 12:01:23 +0800 17886 17887 xz: Add a comment clarifying the use of start_time in mytime.c. 17888 17889 src/xz/mytime.c | 5 +++++ 17890 1 file changed, 5 insertions(+) 17891 17892commit 912af91b10a18fb9bb3167247ecaaefca8248ee9 17893Author: Jia Tan <jiat0218@gmail.com> 17894Date: 2023-01-26 09:50:21 +0800 17895 17896 liblzma: Improve documentation for version.h. 17897 17898 Specified parameter and return values for API functions and documented 17899 a few more of the macros. 17900 17901 src/liblzma/api/lzma/version.h | 29 ++++++++++++++++++++++------- 17902 1 file changed, 22 insertions(+), 7 deletions(-) 17903 17904commit 850adec171203cd22b57d016084d713f72ae5307 17905Author: Jia Tan <jiat0218@gmail.com> 17906Date: 2023-02-03 22:52:55 +0800 17907 17908 Docs: Omit SIGTSTP not handled from TODO. 17909 17910 TODO | 4 ---- 17911 1 file changed, 4 deletions(-) 17912 17913commit 2c78a83c6faec70154d9eb78022a618ed62cdcb3 17914Author: Jia Tan <jiat0218@gmail.com> 17915Date: 2023-02-03 00:33:32 +0800 17916 17917 liblzma: Fix bug in lzma_str_from_filters() not checking filters[] length. 17918 17919 The bug is only a problem in applications that do not properly terminate 17920 the filters[] array with LZMA_VLI_UNKNOWN or have more than 17921 LZMA_FILTERS_MAX filters. This bug does not affect xz. 17922 17923 src/liblzma/common/string_conversion.c | 7 +++++++ 17924 1 file changed, 7 insertions(+) 17925 17926commit e01f01b9af1c074463b92694a16ecc16a31907c0 17927Author: Jia Tan <jiat0218@gmail.com> 17928Date: 2023-02-03 00:32:47 +0800 17929 17930 Tests: Create test_filter_str.c. 17931 17932 Tests lzma_str_to_filters(), lzma_str_from_filters(), and 17933 lzma_str_list_filters() API functions. 17934 17935 CMakeLists.txt | 1 + 17936 tests/Makefile.am | 2 + 17937 tests/test_filter_str.c | 593 ++++++++++++++++++++++++++++++++++++++++++++++++ 17938 3 files changed, 596 insertions(+) 17939 17940commit 8dfc029e7a4ce45809c30313dc0e502f0d22be26 17941Author: Jia Tan <jiat0218@gmail.com> 17942Date: 2023-01-22 08:49:00 +0800 17943 17944 liblzma: Fix typos in comments in string_conversion.c. 17945 17946 src/liblzma/common/string_conversion.c | 4 ++-- 17947 1 file changed, 2 insertions(+), 2 deletions(-) 17948 17949commit 54ad83c1ae2180dcc0cb2445b181dc1e9732a5d6 17950Author: Jia Tan <jiat0218@gmail.com> 17951Date: 2023-02-03 00:20:20 +0800 17952 17953 liblzma: Clarify block encoder and decoder documentation. 17954 17955 Added a few sentences to the description for lzma_block_encoder() and 17956 lzma_block_decoder() to highlight that the Block Header must be coded 17957 before calling these functions. 17958 17959 src/liblzma/api/lzma/block.h | 15 +++++++++++---- 17960 1 file changed, 11 insertions(+), 4 deletions(-) 17961 17962commit f680e771b3eb2a46310fe85b3e000ac3a1a0640f 17963Author: Jia Tan <jiat0218@gmail.com> 17964Date: 2023-02-03 00:12:24 +0800 17965 17966 Update lzma_block documentation for lzma_block_uncomp_encode(). 17967 17968 src/liblzma/api/lzma/block.h | 3 +++ 17969 1 file changed, 3 insertions(+) 17970 17971commit 504cf4af895fd45aad0c56eb3b49d90acd54465b 17972Author: Jia Tan <jiat0218@gmail.com> 17973Date: 2023-02-03 00:11:37 +0800 17974 17975 liblzma: Minor edits to lzma_block header_size documentation. 17976 17977 src/liblzma/api/lzma/block.h | 3 ++- 17978 1 file changed, 2 insertions(+), 1 deletion(-) 17979 17980commit 115b720fb521f99aa832d06b2c12b7f8c6c50680 17981Author: Jia Tan <jiat0218@gmail.com> 17982Date: 2023-02-03 00:11:07 +0800 17983 17984 liblzma: Enumerate functions that read version in lzma_block. 17985 17986 src/liblzma/api/lzma/block.h | 13 +++++++++++-- 17987 1 file changed, 11 insertions(+), 2 deletions(-) 17988 17989commit 85ea0979adcf808a3830aefbe7a4ec884e542ea1 17990Author: Jia Tan <jiat0218@gmail.com> 17991Date: 2023-02-03 00:10:34 +0800 17992 17993 liblzma: Clarify comment in block.h. 17994 17995 src/liblzma/api/lzma/block.h | 3 ++- 17996 1 file changed, 2 insertions(+), 1 deletion(-) 17997 17998commit 1f7ab90d9ce224230a04de6b921ad6e2029023a8 17999Author: Jia Tan <jiat0218@gmail.com> 18000Date: 2023-02-03 00:07:23 +0800 18001 18002 liblzma: Improve documentation for block.h. 18003 18004 Standardizing each function to always specify params and return values. 18005 Output pointer parameters are also marked with doxygen style [out] to 18006 make it clear. Any note sections were also moved above the parameter and 18007 return sections for consistency. 18008 18009 src/liblzma/api/lzma/block.h | 96 ++++++++++++++++++++++++++++++++++---------- 18010 1 file changed, 75 insertions(+), 21 deletions(-) 18011 18012commit c563a4bc554a96bd0b6aab3c139715b7ec8f6ca3 18013Author: Jia Tan <jiat0218@gmail.com> 18014Date: 2023-02-01 23:38:30 +0800 18015 18016 liblzma: Clarify a comment about LZMA_STR_NO_VALIDATION. 18017 18018 The flag description for LZMA_STR_NO_VALIDATION was previously confusing 18019 about the treatment for filters than cannot be used with .xz format 18020 (lzma1) without using LZMA_STR_ALL_FILTERS. Now, it is clear that 18021 LZMA_STR_NO_VALIDATION is not a super set of LZMA_STR_ALL_FILTERS. 18022 18023 src/liblzma/api/lzma/filter.h | 5 +++-- 18024 1 file changed, 3 insertions(+), 2 deletions(-) 18025 18026commit 315c64c7e18acc59a745b68148188a73e998252b 18027Author: Jia Tan <jiat0218@gmail.com> 18028Date: 2023-02-01 21:43:33 +0800 18029 18030 CI: Update .gitignore for artifacts directory in build-aux. 18031 18032 The workflow action for our CI pipeline can only reference artifacts in 18033 the source directory, so we should ignore these files if the ci_build.sh 18034 is run locally. 18035 18036 .gitignore | 1 + 18037 1 file changed, 1 insertion(+) 18038 18039commit 2c1341f4fa06e7f487d61142aa354c433e17ec7f 18040Author: Jia Tan <jiat0218@gmail.com> 18041Date: 2023-02-01 21:36:46 +0800 18042 18043 CI: Add quotes around variables in a few places. 18044 18045 build-aux/ci_build.sh | 6 +++--- 18046 1 file changed, 3 insertions(+), 3 deletions(-) 18047 18048commit 3a401b0e0c7a2658af7801dd0690256ef24149e0 18049Author: Jia Tan <jiat0218@gmail.com> 18050Date: 2023-02-01 21:36:22 +0800 18051 18052 CI: Upload test logs as artifacts if a test fails. 18053 18054 .github/workflows/ci.yml | 60 ++++++++++++++++++++++++++++++++++-------------- 18055 build-aux/ci_build.sh | 31 ++++++++++++++++++++----- 18056 2 files changed, 68 insertions(+), 23 deletions(-) 18057 18058commit 610dde15a88f12cc540424eb3eb3ed61f3876f74 18059Author: Lasse Collin <lasse.collin@tukaani.org> 18060Date: 2023-01-27 20:02:49 +0200 18061 18062 xz: Use clock_gettime() even if CLOCK_MONOTONIC isn't available. 18063 18064 mythread.h and thus liblzma already does it. 18065 18066 src/xz/mytime.c | 11 ++++++++--- 18067 src/xz/private.h | 3 +-- 18068 2 files changed, 9 insertions(+), 5 deletions(-) 18069 18070commit 2e02877288f6576cd4595e9ac7684f867cd47d68 18071Author: Lasse Collin <lasse.collin@tukaani.org> 18072Date: 2023-01-27 19:41:19 +0200 18073 18074 po4a/po4a.conf: Sort the language identifiers in alphabetical order. 18075 18076 po4a/po4a.conf | 2 +- 18077 1 file changed, 1 insertion(+), 1 deletion(-) 18078 18079commit ff592c616eda274215b485cf1b8d34f060c9f3be 18080Author: Lasse Collin <lasse.collin@tukaani.org> 18081Date: 2023-01-26 18:29:17 +0200 18082 18083 xz: Add SIGTSTP handler for progress indicator time keeping. 18084 18085 This way, if xz is stopped the elapsed time and estimated time 18086 remaining won't get confused by the amount of time spent in 18087 the stopped state. 18088 18089 This raises SIGSTOP. It's not clear to me if this is the correct way. 18090 POSIX and glibc docs say that SIGTSTP shouldn't stop the process if 18091 it is orphaned but this commit doesn't attempt to handle that. 18092 18093 Search for SIGTSTP in section 2.4.3: 18094 18095 https://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html 18096 18097 src/xz/mytime.c | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- 18098 src/xz/mytime.h | 6 ++++++ 18099 src/xz/private.h | 12 ++++++++++++ 18100 src/xz/signals.c | 17 ++++++++++++++++- 18101 4 files changed, 89 insertions(+), 2 deletions(-) 18102 18103commit 3b1c8ac8d1d553cbb1fb22b545d2b1424c752b76 18104Author: Jia Tan <jiat0218@gmail.com> 18105Date: 2023-01-27 20:14:51 +0800 18106 18107 Translations: Add Brazilian Portuguese translation of man pages. 18108 18109 Thanks to Rafael Fontenelle. 18110 18111 po4a/po4a.conf | 2 +- 18112 po4a/pt_BR.po | 3677 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 18113 2 files changed, 3678 insertions(+), 1 deletion(-) 18114 18115commit a15a7552f9f67c4e402f5d2967324e0ccfd6fccc 18116Author: Lasse Collin <lasse.collin@tukaani.org> 18117Date: 2023-01-26 17:51:06 +0200 18118 18119 Build: Avoid different quoting style in --enable-doxygen doc. 18120 18121 configure.ac | 10 +++++----- 18122 1 file changed, 5 insertions(+), 5 deletions(-) 18123 18124commit af5a4bd5afc089d9697756dded38feafaa987ae4 18125Author: Lasse Collin <lasse.collin@tukaani.org> 18126Date: 2023-01-26 17:39:46 +0200 18127 18128 tuklib_physmem: Check for __has_warning before GCC version. 18129 18130 Clang can be configured to fake a too high GCC version so 18131 this way it's more robust. 18132 18133 src/common/tuklib_physmem.c | 6 +++--- 18134 1 file changed, 3 insertions(+), 3 deletions(-) 18135 18136commit f35d98e20609e0be6a04ae2604bfb7cb9d5bd5e4 18137Author: Jia Tan <jiat0218@gmail.com> 18138Date: 2023-01-24 20:48:50 +0800 18139 18140 liblzma: Fix documentation in filter.h for lzma_str_to_filters() 18141 18142 The previous documentation for lzma_str_to_filters() was technically 18143 correct, but misleading. lzma_str_to_filters() returns NULL on success, 18144 which is in practice always defined to 0. This is the same value as 18145 LZMA_OK, but lzma_str_to_filters() does not return lzma_ret so we should 18146 be more clear. 18147 18148 src/liblzma/api/lzma/filter.h | 2 +- 18149 1 file changed, 1 insertion(+), 1 deletion(-) 18150 18151commit 2f78ecc5939b3d97ddfc2a6bd31b50108a28d0a2 18152Author: Lasse Collin <lasse.collin@tukaani.org> 18153Date: 2023-01-23 23:44:58 +0200 18154 18155 Revert "tuklib_common: Define __has_warning if it is not defined." 18156 18157 This reverts commit 82e3c968bfa10e3ff13333bd9cbbadb5988d6766. 18158 18159 Macros in the reserved namespace (_foo or __foo) shouldn't be #defined 18160 without a very good reason. Here the alternative would have been 18161 to #define tuklib_has_warning(str) to an approriate value. 18162 18163 Also the tuklib_* files should stay namespace clean if possible. 18164 18165 src/common/tuklib_common.h | 7 ------- 18166 1 file changed, 7 deletions(-) 18167 18168commit 8366cf8738e8b7bb74c967d07bf0fd2a1878e575 18169Author: Lasse Collin <lasse.collin@tukaani.org> 18170Date: 2023-01-23 23:38:34 +0200 18171 18172 tuklib_physmem: Clean up the way -Wcast-function-type is silenced on Windows. 18173 18174 __has_warning and other __has_foo macros are meant to become 18175 compiler-agnostic so it's not good to check for __clang__ with it. 18176 18177 This also relied on tuklib_common.h for #defining __has_warning 18178 which was confusing as #defining reserved macros is generally 18179 not a good idea. 18180 18181 src/common/tuklib_physmem.c | 17 +++++++++++++---- 18182 1 file changed, 13 insertions(+), 4 deletions(-) 18183 18184commit 683a3c7e2fcd922200c31078e5c9dd1348e90941 18185Author: Lasse Collin <lasse.collin@tukaani.org> 18186Date: 2023-01-24 00:05:38 +0200 18187 18188 xz: Flip the return value of suffix_is_set to match the documentation. 18189 18190 Also edit style to match the existing coding style in the project. 18191 18192 src/xz/args.c | 6 +++--- 18193 src/xz/suffix.c | 2 +- 18194 src/xz/suffix.h | 1 + 18195 3 files changed, 5 insertions(+), 4 deletions(-) 18196 18197commit cc5aa9ab138beeecaee5a1e81197591893ee9ca0 18198Author: Jia Tan <jiat0218@gmail.com> 18199Date: 2023-01-07 21:55:06 +0800 18200 18201 xz: Refactor duplicated check for custom suffix when using --format=raw 18202 18203 src/xz/args.c | 8 ++++++++ 18204 src/xz/suffix.c | 26 ++++++++------------------ 18205 src/xz/suffix.h | 7 +++++++ 18206 3 files changed, 23 insertions(+), 18 deletions(-) 18207 18208commit 9663141274e01592a281a7f2df5d7a31a1dac8bf 18209Author: Jia Tan <jiat0218@gmail.com> 18210Date: 2023-01-20 21:53:14 +0800 18211 18212 liblzma: Set documentation on all reserved fields to private. 18213 18214 This prevents the reserved fields from being part of the generated 18215 Doxygen documentation. 18216 18217 src/liblzma/api/lzma/base.h | 17 +++++++++++++++ 18218 src/liblzma/api/lzma/block.h | 43 +++++++++++++++++++++++++++++++++++++ 18219 src/liblzma/api/lzma/container.h | 24 +++++++++++++++++++++ 18220 src/liblzma/api/lzma/delta.h | 12 +++++++++++ 18221 src/liblzma/api/lzma/index.h | 27 +++++++++++++++++++++++ 18222 src/liblzma/api/lzma/lzma12.h | 22 +++++++++++++++++++ 18223 src/liblzma/api/lzma/stream_flags.h | 28 ++++++++++++++++++++++++ 18224 7 files changed, 173 insertions(+) 18225 18226commit 6327a045f34d48fc5afc58ba0d32a82c94403049 18227Author: Jia Tan <jiat0218@gmail.com> 18228Date: 2022-12-20 21:39:59 +0800 18229 18230 Doxygen: Update Doxyfile.in from 1.4.7 to 1.8.17. 18231 18232 A few Doxygen tags were obsolete from 1.4.7. Version 1.8.17 released 18233 in 2019, so this should be compatible with resonable modern distros. 18234 The purpose of Doxygen these days is for docs on the website, so it 18235 doesn't necessarily have to work for everyone. Just when the maintainers 18236 want to update the docs. 18237 18238 Doxyfile.in | 2523 ++++++++++++++++++++++++++++++++++++++++++++--------------- 18239 1 file changed, 1893 insertions(+), 630 deletions(-) 18240 18241commit bbf71b69ebf9d0d62a0af150a5c37d193b8159ad 18242Author: Jia Tan <jiat0218@gmail.com> 18243Date: 2023-01-03 20:37:30 +0800 18244 18245 Doxygen: Make Doxygen only produce liblzma API documentation by default. 18246 18247 Doxygen is now configurable in autotools only with 18248 --enable-doxygen=[api|all]. The default is "api", which will only 18249 generate HTML output for liblzma API functions. The LaTex documentation 18250 output was also disabled. 18251 18252 Doxyfile.in | 18 +++++++++--------- 18253 configure.ac | 39 +++++++++++++++++++++++++++++++++++++++ 18254 2 files changed, 48 insertions(+), 9 deletions(-) 18255 18256commit 6fcf4671b6047113c583a0919fc850987a4ec5f4 18257Author: Jia Tan <jiat0218@gmail.com> 18258Date: 2022-12-21 23:59:43 +0800 18259 18260 liblzma: Highlight liblzma API headers should not be included directly. 18261 18262 This improves the generated Doxygen HTML files to better highlight 18263 how to properly use the liblzma API header files. 18264 18265 src/liblzma/api/lzma/base.h | 5 +++-- 18266 src/liblzma/api/lzma/bcj.h | 5 +++-- 18267 src/liblzma/api/lzma/block.h | 5 +++-- 18268 src/liblzma/api/lzma/check.h | 5 +++-- 18269 src/liblzma/api/lzma/container.h | 5 +++-- 18270 src/liblzma/api/lzma/delta.h | 5 +++-- 18271 src/liblzma/api/lzma/filter.h | 5 +++-- 18272 src/liblzma/api/lzma/hardware.h | 5 +++-- 18273 src/liblzma/api/lzma/index.h | 5 +++-- 18274 src/liblzma/api/lzma/index_hash.h | 5 +++-- 18275 src/liblzma/api/lzma/lzma12.h | 5 +++-- 18276 src/liblzma/api/lzma/stream_flags.h | 5 +++-- 18277 src/liblzma/api/lzma/version.h | 5 +++-- 18278 src/liblzma/api/lzma/vli.h | 5 +++-- 18279 14 files changed, 42 insertions(+), 28 deletions(-) 18280 18281commit b43ff180fb2e372adce876bfa155fc9bcf0c3db4 18282Author: Jia Tan <jiat0218@gmail.com> 18283Date: 2023-01-19 20:35:09 +0800 18284 18285 tuklib_physmem: Silence warning from -Wcast-function-type on MinGW-w64. 18286 18287 tuklib_physmem depends on GetProcAddress() for both MSVC and MinGW-w64 18288 to retrieve a function address. The proper way to do this is to cast the 18289 return value to the type of function pointer retrieved. Unfortunately, 18290 this causes a cast-function-type warning, so the best solution is to 18291 simply ignore the warning. 18292 18293 src/common/tuklib_physmem.c | 9 +++++++++ 18294 1 file changed, 9 insertions(+) 18295 18296commit 82e3c968bfa10e3ff13333bd9cbbadb5988d6766 18297Author: Jia Tan <jiat0218@gmail.com> 18298Date: 2023-01-19 20:32:40 +0800 18299 18300 tuklib_common: Define __has_warning if it is not defined. 18301 18302 clang supports the __has_warning macro to determine if the version of 18303 clang compiling the code supports a given warning. If we do not define 18304 it for other compilers, it may cause a preprocessor error. 18305 18306 src/common/tuklib_common.h | 7 +++++++ 18307 1 file changed, 7 insertions(+) 18308 18309commit b2ba1a489df451cdcd93b2334e319dd06778de19 18310Author: Jia Tan <jiat0218@gmail.com> 18311Date: 2023-01-18 22:11:05 +0800 18312 18313 CI: Reorder 32-bit build first for Linux autotool builds. 18314 18315 The 32-bit build needs to be first so the configure cache only needs to 18316 be reset one time. The 32-bit build sets the CFLAGS env variable, so any 18317 build using that flag after will fail unless the cache is reset. 18318 18319 .github/workflows/ci.yml | 17 ++++++++++++----- 18320 1 file changed, 12 insertions(+), 5 deletions(-) 18321 18322commit dd1c1135741057c91e8d018be9ec4d43968b0e64 18323Author: Jia Tan <jiat0218@gmail.com> 18324Date: 2023-01-18 21:51:43 +0800 18325 18326 CI: Enable --config-cache in autotool builds. 18327 18328 If CFLAGS are set in a build, the cache must be cleared with 18329 "make distclean", or by deleting the cache file. 18330 18331 build-aux/ci_build.sh | 2 +- 18332 1 file changed, 1 insertion(+), 1 deletion(-) 18333 18334commit d3e11477053764c003eec2daa5198c747d70ff69 18335Author: Jia Tan <jiat0218@gmail.com> 18336Date: 2023-01-16 21:35:45 +0800 18337 18338 xz: Add missing comment for coder_set_compression_settings() 18339 18340 src/xz/coder.h | 3 ++- 18341 1 file changed, 2 insertions(+), 1 deletion(-) 18342 18343commit 123255b6ed15f4428b2aa92e4962015a5362f6bf 18344Author: Jia Tan <jiat0218@gmail.com> 18345Date: 2023-01-16 20:55:10 +0800 18346 18347 xz: Do not set compression settings with raw format in list mode. 18348 18349 Calling coder_set_compression_settings() in list mode with verbose mode 18350 on caused the filter chain and memory requirements to print. This was 18351 unnecessary since the command results in an error and not consistent 18352 with other formats like lzma and alone. 18353 18354 src/xz/args.c | 3 ++- 18355 1 file changed, 2 insertions(+), 1 deletion(-) 18356 18357commit 571919c47b9ff5171ede84378620ed0a9aeb98c0 18358Author: Jia Tan <jiat0218@gmail.com> 18359Date: 2023-01-13 20:37:06 +0800 18360 18361 Translations: Update the Brazilian Portuguese translation. 18362 18363 po/pt_BR.po | 603 ++++++++++++++++++++++++++++++++++-------------------------- 18364 1 file changed, 344 insertions(+), 259 deletions(-) 18365 18366commit 81cb02e2c22bbc036cdfaa2d2c4176f6bd60d3cf 18367Author: Jia Tan <jiat0218@gmail.com> 18368Date: 2023-01-12 23:43:06 +0800 18369 18370 CI: Disable shared and nls from various jobs in autotool runners. 18371 18372 Disabling shared library generation and linking should help speed up the 18373 runners. The shared library is still being tested in the 32 bit build 18374 and the full feature. 18375 18376 Disabling nls is to check for any unexpected warnings or errors. 18377 18378 .github/workflows/ci.yml | 56 ++++++++++++++++++++++++------------------------ 18379 1 file changed, 28 insertions(+), 28 deletions(-) 18380 18381commit 58a052198a7bcaf6e958f87fad72e69e19a2579b 18382Author: Jia Tan <jiat0218@gmail.com> 18383Date: 2023-01-12 23:39:19 +0800 18384 18385 CI: Reorder the 32-bit job in the Ubuntu runner. 18386 18387 Run the 32 bit job sooner since this is a more interesting test than 18388 some of the later jobs. 18389 18390 .github/workflows/ci.yml | 10 +++++----- 18391 1 file changed, 5 insertions(+), 5 deletions(-) 18392 18393commit 4110a998b83459fe2bc9bc1bec30ad68afa8f797 18394Author: Jia Tan <jiat0218@gmail.com> 18395Date: 2023-01-12 23:09:03 +0800 18396 18397 CI: Allow disabling Native Language Support. 18398 18399 build-aux/ci_build.sh | 9 ++++++++- 18400 1 file changed, 8 insertions(+), 1 deletion(-) 18401 18402commit 0dec634e705b5bf89a37c5d62d71e8511d480058 18403Author: Jia Tan <jiat0218@gmail.com> 18404Date: 2023-01-12 23:02:20 +0800 18405 18406 CI: Only run autogen.sh if it has not already run. 18407 18408 build-aux/ci_build.sh | 11 ++++++++--- 18409 1 file changed, 8 insertions(+), 3 deletions(-) 18410 18411commit 32287dc8def94df4546e903495d14c132bd54cc4 18412Author: Jia Tan <jiat0218@gmail.com> 18413Date: 2023-01-12 22:58:36 +0800 18414 18415 CI: Allow disabling shared library in autotools builds. 18416 18417 build-aux/ci_build.sh | 9 ++++++++- 18418 1 file changed, 8 insertions(+), 1 deletion(-) 18419 18420commit 77d1ebcc99ddd82a300d1838f608150221931dcd 18421Author: Jia Tan <jiat0218@gmail.com> 18422Date: 2023-01-12 22:44:18 +0800 18423 18424 CI: Improve Usage readability and add -h option. 18425 18426 build-aux/ci_build.sh | 15 +++++++++++++-- 18427 1 file changed, 13 insertions(+), 2 deletions(-) 18428 18429commit a8bb8358d10b059274f3cf993d9b8f490bafb268 18430Author: Lasse Collin <lasse.collin@tukaani.org> 18431Date: 2023-01-12 13:04:05 +0200 18432 18433 Build: Omit -Wmissing-noreturn from the default warnings. 18434 18435 It's not that important. It can be annoying in builds that 18436 disable many features since in those cases the tests programs 18437 will correctly trigger this warning with Clang. 18438 18439 configure.ac | 1 - 18440 1 file changed, 1 deletion(-) 18441 18442commit 52dc033d0bde0d19e3912303c6c74bae559d6498 18443Author: Lasse Collin <lasse.collin@tukaani.org> 18444Date: 2023-01-12 06:05:58 +0200 18445 18446 xz: Use ssize_t for the to-be-ignored return value from write(fd, ptr, 1). 18447 18448 It makes no difference here as the return value fits into an int 18449 too and it then gets ignored but this looks better. 18450 18451 src/xz/file_io.c | 2 +- 18452 1 file changed, 1 insertion(+), 1 deletion(-) 18453 18454commit b1a6d180a363d57b2b1c89526ff3f0782bf863d3 18455Author: Lasse Collin <lasse.collin@tukaani.org> 18456Date: 2023-01-12 06:01:12 +0200 18457 18458 xz: Silence warnings from -Wsign-conversion in a 32-bit build. 18459 18460 src/common/tuklib_mbstr_fw.c | 2 +- 18461 src/xz/list.c | 4 ++-- 18462 2 files changed, 3 insertions(+), 3 deletions(-) 18463 18464commit 31c21c734b7c7d7428a3da7402a2cb7bc2587339 18465Author: Lasse Collin <lasse.collin@tukaani.org> 18466Date: 2023-01-12 05:38:48 +0200 18467 18468 liblzma: Silence another warning from -Wsign-conversion in a 32-bit build. 18469 18470 It doesn't warn on a 64-bit system because truncating 18471 a ptrdiff_t (signed long) to uint32_t is diagnosed under 18472 -Wconversion by GCC and -Wshorten-64-to-32 by Clang. 18473 18474 src/liblzma/lz/lz_encoder_mf.c | 7 ++++--- 18475 1 file changed, 4 insertions(+), 3 deletions(-) 18476 18477commit 37fbdfb7263522c11c7ad2685413d6295532581d 18478Author: Lasse Collin <lasse.collin@tukaani.org> 18479Date: 2023-01-12 04:46:45 +0200 18480 18481 liblzma: Silence a warning from -Wsign-conversion in a 32-bit build. 18482 18483 src/common/mythread.h | 4 ++-- 18484 1 file changed, 2 insertions(+), 2 deletions(-) 18485 18486commit 5ce6ddc221d0bfb57d810d845bb65fb0aac0b008 18487Author: Lasse Collin <lasse.collin@tukaani.org> 18488Date: 2023-01-12 04:17:24 +0200 18489 18490 Build: Make configure add more warning flags for GCC and Clang. 18491 18492 -Wstrict-aliasing was removed from the list since it is enabled 18493 by -Wall already. 18494 18495 A normal build is clean with these on GNU/Linux x86-64 with 18496 GCC 12.2.0 and Clang 14.0.6. 18497 18498 configure.ac | 36 +++++++++++++++++++++++++++++++----- 18499 1 file changed, 31 insertions(+), 5 deletions(-) 18500 18501commit bfc3a0a8ac16de90049c1b1ba1445a7626d0230c 18502Author: Lasse Collin <lasse.collin@tukaani.org> 18503Date: 2023-01-12 04:14:18 +0200 18504 18505 Tests: Fix warnings from clang --Wassign-enum. 18506 18507 Explicitly casting the integer to lzma_check silences the warning. 18508 Since such an invalid value is needed in multiple tests, a constant 18509 INVALID_LZMA_CHECK_ID was added to tests.h. 18510 18511 The use of 0x1000 for lzma_block.check wasn't optimal as if 18512 the underlying type is a char then 0x1000 will be truncated to 0. 18513 However, in these test cases the value is ignored, thus even with 18514 such truncation the test would have passed. 18515 18516 tests/test_block_header.c | 6 +++--- 18517 tests/test_check.c | 2 +- 18518 tests/test_stream_flags.c | 8 ++++---- 18519 tests/tests.h | 9 +++++++++ 18520 4 files changed, 17 insertions(+), 8 deletions(-) 18521 18522commit 49245bb31e215ad455a1ab85e4ed6783152dc522 18523Author: Lasse Collin <lasse.collin@tukaani.org> 18524Date: 2023-01-12 03:51:07 +0200 18525 18526 Tests: Silence warnings from -Wsign-conversion. 18527 18528 Note that assigning an unsigned int to lzma_check doesn't warn 18529 on GNU/Linux x86-64 since the enum type is unsigned on that 18530 platform. The enum can be signed on some other platform though 18531 so it's best to use enumeration type lzma_check in these situations. 18532 18533 tests/test_check.c | 6 +++--- 18534 tests/test_stream_flags.c | 10 +++++----- 18535 2 files changed, 8 insertions(+), 8 deletions(-) 18536 18537commit 3f13bf6b9e8624cbe6d6e3e82d6c98a3ed1ad571 18538Author: Lasse Collin <lasse.collin@tukaani.org> 18539Date: 2023-01-12 03:19:59 +0200 18540 18541 liblzma: Silence warnings from clang -Wconditional-uninitialized. 18542 18543 This is similar to 2ce4f36f179a81d0c6e182a409f363df759d1ad0. 18544 The actual initialization of the variables is done inside 18545 mythread_sync() macro. Clang doesn't seem to see that 18546 the initialization code inside the macro is always executed. 18547 18548 src/liblzma/common/stream_decoder_mt.c | 8 +++++--- 18549 src/liblzma/common/stream_encoder_mt.c | 2 +- 18550 2 files changed, 6 insertions(+), 4 deletions(-) 18551 18552commit 6c886cc5b3c90c6a75e6be8b1278ec2261e452a6 18553Author: Lasse Collin <lasse.collin@tukaani.org> 18554Date: 2023-01-12 03:11:40 +0200 18555 18556 Fix warnings from clang -Wdocumentation. 18557 18558 src/liblzma/check/check.h | 4 ---- 18559 src/liblzma/lz/lz_encoder_mf.c | 4 ++-- 18560 src/xz/options.c | 4 ++-- 18561 3 files changed, 4 insertions(+), 8 deletions(-) 18562 18563commit a0e7fb1c1ea658b67f30517f5d1975efd0226dba 18564Author: Lasse Collin <lasse.collin@tukaani.org> 18565Date: 2023-01-12 03:04:28 +0200 18566 18567 Tests: test_lzip_decoder: Remove trailing white-space. 18568 18569 tests/test_lzip_decoder.c | 4 ++-- 18570 1 file changed, 2 insertions(+), 2 deletions(-) 18571 18572commit c0f8d6782f29e219fd496dd23f6a033270509d5c 18573Author: Lasse Collin <lasse.collin@tukaani.org> 18574Date: 2023-01-12 03:03:55 +0200 18575 18576 Tests: test_lzip_decoder: Silence warnings from -Wsign-conversion. 18577 18578 tests/test_lzip_decoder.c | 13 +++++++------ 18579 1 file changed, 7 insertions(+), 6 deletions(-) 18580 18581commit 62efd48a825e8f439e84c85e165d8774ddc68fd2 18582Author: Jia Tan <jiat0218@gmail.com> 18583Date: 2023-01-11 23:58:16 +0800 18584 18585 Add NEWS for 5.4.1. 18586 18587 NEWS | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 18588 1 file changed, 70 insertions(+) 18589 18590commit d1561c47ec8cd3844a785d3741dc932f9b9c5790 18591Author: Jia Tan <jiat0218@gmail.com> 18592Date: 2023-01-11 22:46:48 +0800 18593 18594 xz: Fix warning -Wformat-nonliteral on clang in message.c. 18595 18596 clang and gcc differ in how they handle -Wformat-nonliteral. gcc will 18597 allow a non-literal format string as long as the function takes its 18598 format arguments as a va_list. 18599 18600 src/xz/message.c | 9 +++++++++ 18601 1 file changed, 9 insertions(+) 18602 18603commit 8c0f115cc489331c48df77beca92fe378039d919 18604Author: Jia Tan <jiat0218@gmail.com> 18605Date: 2023-01-11 20:58:31 +0800 18606 18607 Tests: Fix test_filter_flags copy/paste error. 18608 18609 tests/test_filter_flags.c | 4 ++-- 18610 1 file changed, 2 insertions(+), 2 deletions(-) 18611 18612commit 25035813d1d596fde692addc33e7f715f1fe55eb 18613Author: Jia Tan <jiat0218@gmail.com> 18614Date: 2023-01-11 20:42:29 +0800 18615 18616 Tests: Fix type-limits warning in test_filter_flags. 18617 18618 This only occurs in test_filter_flags when the BCJ filters are not 18619 configured and built. In this case, ARRAY_SIZE() returns 0 and causes a 18620 type-limits warning with the loop variable since an unsigned number will 18621 always be >= 0. 18622 18623 tests/test_filter_flags.c | 13 ++++++++++--- 18624 1 file changed, 10 insertions(+), 3 deletions(-) 18625 18626commit 0b8fa310cf56fec55663f62340e49e8e1441594f 18627Author: Lasse Collin <lasse.collin@tukaani.org> 18628Date: 2023-01-10 22:14:03 +0200 18629 18630 liblzma: CLMUL CRC64: Work around a bug in MSVC, second attempt. 18631 18632 This affects only 32-bit x86 builds. x86-64 is OK as is. 18633 18634 I still cannot easily test this myself. The reporter has tested 18635 this and it passes the tests included in the CMake build and 18636 performance is good: raw CRC64 is 2-3 times faster than the 18637 C version of the slice-by-four method. (Note that liblzma doesn't 18638 include a MSVC-compatible version of the 32-bit x86 assembly code 18639 for the slice-by-four method.) 18640 18641 Thanks to Iouri Kharon for figuring out a fix, testing, and 18642 benchmarking. 18643 18644 src/liblzma/check/crc64_fast.c | 18 ++++++++++++++++++ 18645 1 file changed, 18 insertions(+) 18646 18647commit 765354b50c2886fc0d294d6be3b207f7ae2ada70 18648Author: Jia Tan <jiat0218@gmail.com> 18649Date: 2023-01-11 01:18:50 +0800 18650 18651 Tests: Fix unused function warning in test_block_header. 18652 18653 One of the global arrays of filters was only used in a test that 18654 required both encoders and decoders to be configured in the build. 18655 18656 tests/test_block_header.c | 4 ++++ 18657 1 file changed, 4 insertions(+) 18658 18659commit 7c23c05befdcc73231c0d6632a7d943dbeaea1aa 18660Author: Jia Tan <jiat0218@gmail.com> 18661Date: 2023-01-11 01:08:03 +0800 18662 18663 Tests: Fix unused function warning in test_index_hash. 18664 18665 test_index_hash does not use fill_index_hash() unless both encoders 18666 and decoders are configured in the build. 18667 18668 tests/test_index_hash.c | 4 +--- 18669 1 file changed, 1 insertion(+), 3 deletions(-) 18670 18671commit 57464bb4ebd6c00dc8b19803f05ea55ddd0826f6 18672Author: Jia Tan <jiat0218@gmail.com> 18673Date: 2023-01-11 00:54:45 +0800 18674 18675 CI/CD: Add 32-bit build and test steps to Ubuntu autotools runner. 18676 18677 If all goes well, Mac autotools and Linux and Mac CMake will be added 18678 later for 32-bit builds. 18679 18680 .github/workflows/ci.yml | 7 ++++++- 18681 1 file changed, 6 insertions(+), 1 deletion(-) 18682 18683commit 923eb689a4b863b6cca8df6360d4962aae994edf 18684Author: Jia Tan <jiat0218@gmail.com> 18685Date: 2023-01-11 00:51:01 +0800 18686 18687 CI/CD: Enables warnings as errors in autotool build. 18688 18689 This will help us catch warnings and potential bugs in builds that are 18690 not often tested by us. 18691 18692 build-aux/ci_build.sh | 2 +- 18693 1 file changed, 1 insertion(+), 1 deletion(-) 18694 18695commit feae5528a30c006b6e2f96a95116e20b983703fc 18696Author: Jia Tan <jiat0218@gmail.com> 18697Date: 2023-01-11 00:48:35 +0800 18698 18699 CI/CD: Add -f argument to set CFLAGS in ci_build.sh. 18700 18701 For now, the suggested option is for -m32 only, but this can be updated 18702 later if other flags are deemed useful. 18703 18704 build-aux/ci_build.sh | 8 ++++++-- 18705 1 file changed, 6 insertions(+), 2 deletions(-) 18706 18707commit cfabb62a4874c146e7d6f30445637602545bc054 18708Author: Lasse Collin <lasse.collin@tukaani.org> 18709Date: 2023-01-10 12:47:16 +0200 18710 18711 Revert "liblzma: CLMUL CRC64: Workaround a bug in MSVC (VS2015-2022)." 18712 18713 This reverts commit 36edc65ab4cf10a131f239acbd423b4510ba52d5. 18714 18715 It was reported that it wasn't a good enough fix and MSVC 18716 still produced (different kind of) bad code when building 18717 for 32-bit x86 if optimizations are enabled. 18718 18719 Thanks to Iouri Kharon. 18720 18721 src/liblzma/check/crc64_fast.c | 6 ------ 18722 1 file changed, 6 deletions(-) 18723 18724commit 0b64215170dd3562f207ef26f794755bcd600526 18725Author: Lasse Collin <lasse.collin@tukaani.org> 18726Date: 2023-01-10 11:56:11 +0200 18727 18728 sysdefs.h: Don't include strings.h anymore. 18729 18730 On some platforms src/xz/suffix.c may need <strings.h> for 18731 strcasecmp() but suffix.c includes the header when it needs it. 18732 18733 Unless there is an old system that otherwise supports enough C99 18734 to build XZ Utils but doesn't have C89/C90-compatible <string.h>, 18735 there should be no need to include <strings.h> in sysdefs.h. 18736 18737 src/common/sysdefs.h | 6 ------ 18738 1 file changed, 6 deletions(-) 18739 18740commit ec2fc39fe4f4e6e242b3a669585049763968cdeb 18741Author: Lasse Collin <lasse.collin@tukaani.org> 18742Date: 2023-01-10 11:23:41 +0200 18743 18744 xz: Include <strings.h> in suffix.c if needed for strcasecmp(). 18745 18746 SUSv2 and POSIX.1‐2017 declare only a few functions in <strings.h>. 18747 Of these, strcasecmp() is used on some platforms in suffix.c. 18748 Nothing else in the project needs <strings.h> (at least if 18749 building on a modern system). 18750 18751 sysdefs.h currently includes <strings.h> if HAVE_STRINGS_H is 18752 defined and suffix.c relied on this. 18753 18754 Note that dos/config.h doesn't #define HAVE_STRINGS_H even though 18755 DJGPP does have strings.h. It isn't needed with DJGPP as strcasecmp() 18756 is also in <string.h> in DJGPP. 18757 18758 src/xz/suffix.c | 3 +++ 18759 1 file changed, 3 insertions(+) 18760 18761commit 7049c4a76c805ad27d6cf4ee119a2ef2a7add59f 18762Author: Lasse Collin <lasse.collin@tukaani.org> 18763Date: 2023-01-10 10:05:13 +0200 18764 18765 sysdefs.h: Fix a comment. 18766 18767 src/common/sysdefs.h | 2 +- 18768 1 file changed, 1 insertion(+), 1 deletion(-) 18769 18770commit 194a5fab69277d9e804a6113b5f676b8666b3a61 18771Author: Lasse Collin <lasse.collin@tukaani.org> 18772Date: 2023-01-10 10:04:06 +0200 18773 18774 sysdefs.h: Don't include memory.h anymore even if it were available. 18775 18776 It quite probably was never needed, that is, any system where memory.h 18777 was required likely couldn't compile XZ Utils for other reasons anyway. 18778 18779 XZ Utils 5.2.6 and later source packages were generated using 18780 Autoconf 2.71 which no longer defines HAVE_MEMORY_H. So the code 18781 being removed is no longer used anyway. 18782 18783 src/common/sysdefs.h | 8 ++------ 18784 1 file changed, 2 insertions(+), 6 deletions(-) 18785 18786commit 5e34774c31d1b7509b5cb77a3be9973adec59ea0 18787Author: Lasse Collin <lasse.collin@tukaani.org> 18788Date: 2023-01-10 08:29:32 +0200 18789 18790 CMake: Fix appending to CMAKE_RC_FLAGS. 18791 18792 It's a string, not a list. It only worked when the variable was empty. 18793 18794 Thanks to Iouri Kharon. 18795 18796 CMakeLists.txt | 2 +- 18797 1 file changed, 1 insertion(+), 1 deletion(-) 18798 18799commit 6e652ceb18c615c578c869db300fa0756788b4e0 18800Author: Lasse Collin <lasse.collin@tukaani.org> 18801Date: 2023-01-10 00:33:14 +0200 18802 18803 Windows: Update INSTALL-MSVC.txt to recommend CMake over project files. 18804 18805 windows/INSTALL-MSVC.txt | 19 ++++++++++++------- 18806 1 file changed, 12 insertions(+), 7 deletions(-) 18807 18808commit 6b117d3b1fe91eb26d533ab16a2e552f84148d47 18809Author: Lasse Collin <lasse.collin@tukaani.org> 18810Date: 2023-01-09 23:41:25 +0200 18811 18812 CMake: Fix windres issues again. 18813 18814 At least on some systems, GNU windres needs --use-temp-file 18815 in addition to the \x20 hack to avoid spaces in the command line 18816 argument. Hovever, that \x20 syntax is broken with llvm-windres 18817 version 15.0.0 (results in "XZx20Utils") but luckily it works 18818 with a regular space. Thus it is best to limit the workarounds 18819 to GNU toolchain on Windows. 18820 18821 CMakeLists.txt | 35 +++++++++++++++++++++++------------ 18822 1 file changed, 23 insertions(+), 12 deletions(-) 18823 18824commit 0c210ca7f489e971e94e1ddc72b0b0806e3c7935 18825Author: Lasse Collin <lasse.collin@tukaani.org> 18826Date: 2023-01-06 22:53:38 +0200 18827 18828 Tests: test_filter_flags: Clean up minor issues. 18829 18830 Here are the list of the most significant issues addressed: 18831 - Avoid using internal common.h header. It's not good to copy the 18832 constants like this but common.h cannot be included for use outside 18833 of liblzma. This is the quickest thing to do that could be fixed later. 18834 18835 - Omit the INIT_FILTER macro. Initialization should be done with just 18836 regular designated initializers. 18837 18838 - Use start_offset = 257 for BCJ tests. It demonstrates that Filter 18839 Flags encoder and decoder don't validate the options thoroughly. 18840 257 is valid only for the x86 filter. This is a bit silly but 18841 not a significant problem in practice because the encoder and 18842 decoder initialization functions will catch bad alignment still. 18843 Perhaps this should be fixed but it's not urgent and doesn't need 18844 to be in 5.4.x. 18845 18846 - Various tweaks to comments such as filter id -> Filter ID 18847 18848 tests/test_filter_flags.c | 153 +++++++++++++++++++++++----------------------- 18849 1 file changed, 78 insertions(+), 75 deletions(-) 18850 18851commit 5c9fdd3bf53a9655f5eb2807d662b3af0d5e1865 18852Author: Jia Tan <jiat0218@gmail.com> 18853Date: 2022-12-29 23:33:33 +0800 18854 18855 Tests: Refactors existing filter flags tests. 18856 18857 Converts the existing filter flags tests into tuktests. 18858 18859 tests/test_filter_flags.c | 655 ++++++++++++++++++++++++++++++++-------------- 18860 1 file changed, 457 insertions(+), 198 deletions(-) 18861 18862commit 36edc65ab4cf10a131f239acbd423b4510ba52d5 18863Author: Lasse Collin <lasse.collin@tukaani.org> 18864Date: 2023-01-09 12:22:05 +0200 18865 18866 liblzma: CLMUL CRC64: Workaround a bug in MSVC (VS2015-2022). 18867 18868 I haven't tested with MSVC myself and there doesn't seem to be 18869 information about the problem online, so I'm relying on the bug report. 18870 18871 Thanks to Iouri Kharon for the bug report and the patch. 18872 18873 src/liblzma/check/crc64_fast.c | 6 ++++++ 18874 1 file changed, 6 insertions(+) 18875 18876commit 790a12a95a78ff82d8c6d4efe3b789851ca9470d 18877Author: Lasse Collin <lasse.collin@tukaani.org> 18878Date: 2023-01-09 11:27:24 +0200 18879 18880 CMake: Fix a copypaste error in xzdec Windows resource file handling. 18881 18882 It was my mistake. Thanks to Iouri Kharon for the bug report. 18883 18884 CMakeLists.txt | 4 ++-- 18885 1 file changed, 2 insertions(+), 2 deletions(-) 18886 18887commit 0e1545fea39c0514c7b7032a0a3592a9a33d2848 18888Author: Lasse Collin <lasse.collin@tukaani.org> 18889Date: 2023-01-08 00:32:29 +0200 18890 18891 Tests: tuktest.h: Support tuktest_malloc(0). 18892 18893 It's not needed in XZ Utils at least for now. It's good to support 18894 it still because if such use is needed later, it wouldn't be 18895 caught on GNU/Linux since malloc(0) from glibc returns non-NULL. 18896 18897 tests/tuktest.h | 4 ++-- 18898 1 file changed, 2 insertions(+), 2 deletions(-) 18899 18900commit 69d5d78c6904668eb09a131da86276beec3281f8 18901Author: Lasse Collin <lasse.collin@tukaani.org> 18902Date: 2023-01-08 00:24:23 +0200 18903 18904 Update THANKS. 18905 18906 THANKS | 1 + 18907 1 file changed, 1 insertion(+) 18908 18909commit dd38655f80c113c9db73b9ed370dc900e1c4dc41 18910Author: Lasse Collin <lasse.collin@tukaani.org> 18911Date: 2023-01-07 21:57:11 +0200 18912 18913 CMake: Update cmake_minimum_required from 3.13...3.16 to 3.13...3.25. 18914 18915 The changes listed on cmake-policies(7) for versions 3.17 to 3.25 18916 shouldn't affect this project. 18917 18918 CMakeLists.txt | 2 +- 18919 1 file changed, 1 insertion(+), 1 deletion(-) 18920 18921commit a890a637bee9193d5b690aefa9a59eba5b8532ae 18922Author: Lasse Collin <lasse.collin@tukaani.org> 18923Date: 2023-01-07 19:50:35 +0200 18924 18925 Update THANKS. 18926 18927 THANKS | 1 + 18928 1 file changed, 1 insertion(+) 18929 18930commit 6e38e595dd56ac1800478cef1f6f754d0eba0d2e 18931Author: Lasse Collin <lasse.collin@tukaani.org> 18932Date: 2023-01-07 19:50:03 +0200 18933 18934 CMake/Windows: Add resource files to xz.exe and xzdec.exe. 18935 18936 The command line tools cannot be built with MSVC for now but 18937 they can be built with MinGW-w64. 18938 18939 Thanks to Iouri Kharon for the bug report and the original patch. 18940 18941 CMakeLists.txt | 16 ++++++++++++++++ 18942 1 file changed, 16 insertions(+) 18943 18944commit 443dfebced041adc88f10d824188eeef5b5821a9 18945Author: Lasse Collin <lasse.collin@tukaani.org> 18946Date: 2023-01-07 19:48:52 +0200 18947 18948 CMake/Windows: Add a workaround for windres from GNU binutils. 18949 18950 Thanks to Iouri Kharon for the bug report and the original patch. 18951 18952 CMakeLists.txt | 21 ++++++++++++++++++++- 18953 1 file changed, 20 insertions(+), 1 deletion(-) 18954 18955commit ceb805011747d04a915f3f39e4bed9eed151c634 18956Author: Lasse Collin <lasse.collin@tukaani.org> 18957Date: 2023-01-07 19:31:15 +0200 18958 18959 Build: Require that _mm_set_epi64x() is usable to enable CLMUL support. 18960 18961 VS2013 doesn't have _mm_set_epi64x() so this way CLMUL gets 18962 disabled with VS2013. 18963 18964 Thanks to Iouri Kharon for the bug report. 18965 18966 CMakeLists.txt | 3 ++- 18967 configure.ac | 8 ++++++-- 18968 2 files changed, 8 insertions(+), 3 deletions(-) 18969 18970commit 8d372bd94066b1a5b0570b2550f83c2868486adf 18971Author: Jia Tan <jiat0218@gmail.com> 18972Date: 2023-01-07 21:05:15 +0800 18973 18974 CI/CD: Split CMake Linux and MacOS build phase to build and test. 18975 18976 The phase split was only done for Autotools before, so should also 18977 apply to CMake. 18978 18979 .github/workflows/ci.yml | 8 ++++++-- 18980 1 file changed, 6 insertions(+), 2 deletions(-) 18981 18982commit 747c7f2b34bd498f6702c6875500a26b06201772 18983Author: Jia Tan <jiat0218@gmail.com> 18984Date: 2023-01-07 11:16:55 +0800 18985 18986 CI/CD: Reduce job runners to 4 instead of using matrix strategy. 18987 18988 The old version used too many runners that resulted in unnecessary 18989 dependency downloads. Now, the runners are reused for the different 18990 configurations for each OS and build system. 18991 18992 .github/workflows/ci.yml | 95 ++++++++++++++++++++++++++++++++++++++++++------ 18993 1 file changed, 83 insertions(+), 12 deletions(-) 18994 18995commit 4de35fd6b58d46fc887c78faf163f6a37b790c45 18996Author: Jia Tan <jiat0218@gmail.com> 18997Date: 2023-01-07 10:07:20 +0800 18998 18999 CI/CD: Add new -p (PHASE) argument to ci_build.sh 19000 19001 The new PHASE argument can be build, test, or all. all is the default. 19002 This way, the CI/CD script can differentiate between the build and test 19003 phases to make it easier to track down errors when they happen. 19004 19005 build-aux/ci_build.sh | 140 +++++++++++++++++++++++++++----------------------- 19006 1 file changed, 76 insertions(+), 64 deletions(-) 19007 19008commit 6fd39664de47801e670a16617863196bfbde4755 19009Merge: 78e0561d fc0c7884 19010Author: Jia Tan <jiat0218@gmail.com> 19011Date: 2023-01-07 00:10:50 +0800 19012 19013 Merge pull request #7 from tukaani-project/tuktest_index_hash 19014 19015 Tuktest index hash 19016 19017commit fc0c788469159f634f09ff23c8cef6925c91da57 19018Author: Lasse Collin <lasse.collin@tukaani.org> 19019Date: 2023-01-06 17:58:48 +0200 19020 19021 Tests: test_index_hash: Add an assert_uint_eq(). 19022 19023 tests/test_index_hash.c | 3 +++ 19024 1 file changed, 3 insertions(+) 19025 19026commit d550304f5343b3a082da265107cd820e0d81dc71 19027Author: Lasse Collin <lasse.collin@tukaani.org> 19028Date: 2023-01-06 17:55:06 +0200 19029 19030 Tests: test_index_hash: Fix a memory leak. 19031 19032 tests/test_index_hash.c | 2 ++ 19033 1 file changed, 2 insertions(+) 19034 19035commit 02608f74ea1f2d2d56585711ff241c34b4ad0937 19036Author: Lasse Collin <lasse.collin@tukaani.org> 19037Date: 2023-01-06 17:53:03 +0200 19038 19039 Tests: test_index_hash: Don't treat pointers as booleans. 19040 19041 tests/test_index_hash.c | 6 +++--- 19042 1 file changed, 3 insertions(+), 3 deletions(-) 19043 19044commit 056766c8601a3808bea1761f6cc833197a35a3e0 19045Author: Lasse Collin <lasse.collin@tukaani.org> 19046Date: 2023-01-06 17:51:41 +0200 19047 19048 Tests: test_index_hash: Fix a typo in a comment. 19049 19050 tests/test_index_hash.c | 2 +- 19051 1 file changed, 1 insertion(+), 1 deletion(-) 19052 19053commit 873e684028ba9738f071c5236db7d452ed797b4c 19054Author: Lasse Collin <lasse.collin@tukaani.org> 19055Date: 2023-01-06 17:44:29 +0200 19056 19057 Tests: test_index_hash: Avoid the variable name "index". 19058 19059 It can trigger warnings from -Wshadow on some systems. 19060 19061 tests/test_index_hash.c | 16 ++++++++-------- 19062 1 file changed, 8 insertions(+), 8 deletions(-) 19063 19064commit d1f24c35874eeba8432d75aa77b06c50375ed937 19065Author: Lasse Collin <lasse.collin@tukaani.org> 19066Date: 2023-01-06 17:35:50 +0200 19067 19068 Tests: test_index_hash: Use the word "Record" instead of "entry". 19069 19070 tests/test_index_hash.c | 102 ++++++++++++++++++++++++------------------------ 19071 1 file changed, 51 insertions(+), 51 deletions(-) 19072 19073commit b93f7c5cbb02b42024ac866fc0af541de3d816e2 19074Author: Lasse Collin <lasse.collin@tukaani.org> 19075Date: 2023-01-06 17:35:05 +0200 19076 19077 Tests: test_index_hash: Tweak comments and style. 19078 19079 The words defined in the .xz file format specification 19080 begin with capital letter to emphasize that they have 19081 a specific meaning. 19082 19083 tests/test_index_hash.c | 62 ++++++++++++++++++++++++++----------------------- 19084 1 file changed, 33 insertions(+), 29 deletions(-) 19085 19086commit c48b24fc06d98569adb72f13c2e8e5ff30bb8036 19087Author: Lasse Collin <lasse.collin@tukaani.org> 19088Date: 2023-01-06 17:17:37 +0200 19089 19090 Tests: test_index_hash: Use INDEX_INDICATOR constant instead of 0. 19091 19092 tests/test_index_hash.c | 2 +- 19093 1 file changed, 1 insertion(+), 1 deletion(-) 19094 19095commit 78e0561dfebaa9d5e34558de537efcda890e0629 19096Author: Jia Tan <jiat0218@gmail.com> 19097Date: 2023-01-06 20:43:31 +0800 19098 19099 Style: Change #if !defined() to #ifndef in mythread.h. 19100 19101 src/common/mythread.h | 2 +- 19102 1 file changed, 1 insertion(+), 1 deletion(-) 19103 19104commit e834e1e934ed0af673598d8c0c34afb2af56bee0 19105Author: Jia Tan <jiat0218@gmail.com> 19106Date: 2023-01-06 20:35:55 +0800 19107 19108 Build: Add missing stream_decoder_mt.c to .vcxproj files. 19109 19110 The line in the .vcxproj files for building with was missing in 5.4.0. 19111 Thank to Hajin Jang for reporting the issue. 19112 19113 windows/vs2013/liblzma.vcxproj | 1 + 19114 windows/vs2013/liblzma_dll.vcxproj | 1 + 19115 windows/vs2017/liblzma.vcxproj | 1 + 19116 windows/vs2017/liblzma_dll.vcxproj | 1 + 19117 windows/vs2019/liblzma.vcxproj | 1 + 19118 windows/vs2019/liblzma_dll.vcxproj | 1 + 19119 6 files changed, 6 insertions(+) 19120 19121commit 84f9687cbae972c2c342e10bf69f8ec8f70ae111 19122Author: Jia Tan <jiat0218@gmail.com> 19123Date: 2023-01-05 20:57:25 +0800 19124 19125 liblzma: Remove common.h include from common/index.h. 19126 19127 common/index.h is needed by liblzma internally and tests. common.h will 19128 include and define many things that are not needed by the tests. Also, 19129 this prevents include order problems because common.h will redefine 19130 LZMA_API resulting in a warning. 19131 19132 src/liblzma/common/index.c | 1 + 19133 src/liblzma/common/index.h | 9 +++++++-- 19134 src/liblzma/common/index_decoder.h | 1 + 19135 src/liblzma/common/stream_buffer_encoder.c | 1 + 19136 4 files changed, 10 insertions(+), 2 deletions(-) 19137 19138commit 7657ce1c3c4abff7560336a7b687d98e0e2bd14f 19139Author: Lasse Collin <lasse.collin@tukaani.org> 19140Date: 2023-01-04 22:40:54 +0200 19141 19142 Update THANKS. 19143 19144 THANKS | 1 + 19145 1 file changed, 1 insertion(+) 19146 19147commit aafd67fba045ab99683971263a5a26fb2a6e8ce2 19148Author: Lasse Collin <lasse.collin@tukaani.org> 19149Date: 2023-01-04 18:40:28 +0200 19150 19151 Tests: Adjust style in test_compress.sh. 19152 19153 tests/test_compress.sh | 12 +++++++----- 19154 1 file changed, 7 insertions(+), 5 deletions(-) 19155 19156commit 52380678f42364daa4510f92f6d3b18ec98c3638 19157Author: Jia Tan <jiat0218@gmail.com> 19158Date: 2023-01-04 23:58:58 +0800 19159 19160 Tests: Replace non portable shell parameter expansion 19161 19162 The shell parameter expansion using # and ## is not supported in 19163 Solaris 10 Bourne shell (/bin/sh). Even though this is POSIX, it is not fully 19164 portable, so we should avoid it. 19165 19166 tests/create_compress_files.c | 2 +- 19167 tests/test_compress.sh | 20 +++++++++++++------- 19168 tests/test_compress_prepared_bcj_sparc | 2 +- 19169 tests/test_compress_prepared_bcj_x86 | 2 +- 19170 4 files changed, 16 insertions(+), 10 deletions(-) 19171 19172commit d0eb345bb7d148a62883ee299adec2b74a0f6f3b 19173Author: Jia Tan <jiat0218@gmail.com> 19174Date: 2023-01-03 21:02:38 +0800 19175 19176 Translations: Add Korean translation of man pages. 19177 19178 Thanks to Seong-ho Cho 19179 19180 po4a/ko.po | 5552 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 19181 po4a/po4a.conf | 2 +- 19182 2 files changed, 5553 insertions(+), 1 deletion(-) 19183 19184commit c4145978d95ebf1690c778d354e15f7c2823d7a8 19185Author: Jia Tan <jiat0218@gmail.com> 19186Date: 2023-01-03 20:47:27 +0800 19187 19188 Translations: Update the Esperanto translation. 19189 19190 po/eo.po | 620 ++++++++++++++++++++++++++++++++++----------------------------- 19191 1 file changed, 332 insertions(+), 288 deletions(-) 19192 19193commit 4103a2e78ac60b00c888485cd967a5fe5d1b917c 19194Author: Lasse Collin <lasse.collin@tukaani.org> 19195Date: 2023-01-02 17:20:47 +0200 19196 19197 Bump version and soname for 5.5.0alpha. 19198 19199 5.5.0alpha won't be released, it's just to mark that 19200 the branch is not for stable 5.4.x. 19201 19202 Once again there is no API/ABI stability for new features 19203 in devel versions. The major soname won't be bumped even 19204 if API/ABI of new features breaks between devel releases. 19205 19206 src/liblzma/Makefile.am | 2 +- 19207 src/liblzma/api/lzma/version.h | 4 ++-- 19208 2 files changed, 3 insertions(+), 3 deletions(-) 19209 19210commit 73c9e6d6b970ccc3d5ad61dcaa21cba050e5df0a 19211Author: Lasse Collin <lasse.collin@tukaani.org> 19212Date: 2023-01-02 17:05:07 +0200 19213 19214 Build: Fix config.h comments. 19215 19216 configure.ac | 2 +- 19217 m4/tuklib_progname.m4 | 2 +- 19218 2 files changed, 2 insertions(+), 2 deletions(-) 19219 19220commit bb740e3b117f1a3c65152d01e5755523a908ecb1 19221Author: Jia Tan <jiat0218@gmail.com> 19222Date: 2023-01-02 22:33:48 +0800 19223 19224 Build: Only define HAVE_PROGRAM_INVOCATION_NAME if it is set to 1. 19225 19226 HAVE_DECL_PROGRAM_INVOCATION_NAME is renamed to 19227 HAVE_PROGRAM_INVOCATION_NAME. Previously, 19228 HAVE_DECL_PROGRAM_INVOCATION_NAME was always set when 19229 building with autotools. CMake would only set this when it was 1, and the 19230 dos/config.h did not define it. The new macro definition is consistent 19231 across build systems. 19232 19233 cmake/tuklib_progname.cmake | 5 ++--- 19234 m4/tuklib_progname.m4 | 5 ++++- 19235 src/common/tuklib_progname.c | 2 +- 19236 src/common/tuklib_progname.h | 2 +- 19237 4 files changed, 8 insertions(+), 6 deletions(-) 19238 19239commit 064cd385a716abc78d93a3612411a82d69ceb221 19240Author: Jia Tan <jiat0218@gmail.com> 19241Date: 2022-12-29 00:30:52 +0800 19242 19243 Adds test_index_hash to .gitignore. 19244 19245 .gitignore | 1 + 19246 1 file changed, 1 insertion(+) 19247 19248commit 3959162baec074511d83ba0fec1284c3ed724799 19249Author: Jia Tan <jiat0218@gmail.com> 19250Date: 2022-12-29 00:25:18 +0800 19251 19252 Tests: Creates test_index_hash.c 19253 19254 Tests all API functions exported from index_hash.h. Does not have a 19255 dedicated test for lzma_index_hash_end. 19256 19257 CMakeLists.txt | 2 + 19258 tests/Makefile.am | 3 + 19259 tests/test_index_hash.c | 379 ++++++++++++++++++++++++++++++++++++++++++++++++ 19260 3 files changed, 384 insertions(+) 19261 19262commit f16e12d5e755d371247202fcccbcccd1ec16b2cf 19263Author: Jia Tan <jiat0218@gmail.com> 19264Date: 2022-08-17 20:20:16 +0800 19265 19266 liblzma: Add NULL check to lzma_index_hash_append. 19267 19268 This is for consistency with lzma_index_append. 19269 19270 src/liblzma/common/index_hash.c | 2 +- 19271 1 file changed, 1 insertion(+), 1 deletion(-) 19272 19273commit 203b008eb220208981902e0db541c02d1c1c9f5e 19274Author: Jia Tan <jiat0218@gmail.com> 19275Date: 2022-08-17 17:59:51 +0800 19276 19277 liblzma: Replaced hardcoded 0x0 index indicator byte with macro 19278 19279 src/liblzma/common/index.h | 3 +++ 19280 src/liblzma/common/index_decoder.c | 2 +- 19281 src/liblzma/common/index_encoder.c | 2 +- 19282 src/liblzma/common/index_hash.c | 2 +- 19283 src/liblzma/common/stream_decoder.c | 3 ++- 19284 src/liblzma/common/stream_decoder_mt.c | 2 +- 19285 6 files changed, 9 insertions(+), 5 deletions(-) 19286 19287commit dfecda875211f737d0db92dc1d3c58a3a2afb0c0 19288Author: Lasse Collin <lasse.collin@tukaani.org> 19289Date: 2022-12-30 20:10:08 +0200 19290 19291 Tests: test_check: Test corner cases of CLMUL CRC64. 19292 19293 tests/test_check.c | 27 +++++++++++++++++++++++++++ 19294 1 file changed, 27 insertions(+) 19295 19296commit ce96bb20435212fe797d6d84738fb9fd4ea13cc7 19297Author: Lasse Collin <lasse.collin@tukaani.org> 19298Date: 2022-12-30 19:36:49 +0200 19299 19300 Tests: Clarify a comment in test_lzip_decoder.c. 19301 19302 tests/test_lzip_decoder.c | 8 ++++++-- 19303 1 file changed, 6 insertions(+), 2 deletions(-) 19304 19305commit 2fcba17fc4d7eda8fc60567169cf2a0e6fcfb2f8 19306Author: Jia Tan <jiat0218@gmail.com> 19307Date: 2022-12-29 01:55:19 +0800 19308 19309 xz: Includes <time.h> and <sys/time.h> conditionally in mytime.c. 19310 19311 Previously, mytime.c depended on mythread.h for <time.h> to be included. 19312 19313 src/xz/mytime.c | 4 +++- 19314 1 file changed, 3 insertions(+), 1 deletion(-) 19315 19316commit f82294c8318a7a0990583d51ac5c7de682ad36ef 19317Author: Jia Tan <jiat0218@gmail.com> 19318Date: 2022-12-29 01:15:27 +0800 19319 19320 liblzma: Includes sys/time.h conditionally in mythread 19321 19322 Previously, <sys/time.h> was always included, even if mythread only used 19323 clock_gettime. <time.h> is still needed even if clock_gettime is not used 19324 though because struct timespec is needed for mythread_condtime. 19325 19326 src/common/mythread.h | 8 +++++++- 19327 1 file changed, 7 insertions(+), 1 deletion(-) 19328 19329commit 74dae7d30091e906d6a92a57952dea4354473f9b 19330Author: Jia Tan <jiat0218@gmail.com> 19331Date: 2022-12-29 01:10:53 +0800 19332 19333 Build: No longer require HAVE_DECL_CLOCK_MONOTONIC to always be set. 19334 19335 Previously, if threading was enabled HAVE_DECL_CLOCK_MONOTONIC would always 19336 be set to 0 or 1. However, this macro was needed in xz so if xz was not 19337 built with threading and HAVE_DECL_CLOCK_MONOTONIC was not defined but 19338 HAVE_CLOCK_GETTIME was, it caused a warning during build. Now, 19339 HAVE_DECL_CLOCK_MONOTONIC has been renamed to HAVE_CLOCK_MONOTONIC and 19340 will only be set if it is 1. 19341 19342 CMakeLists.txt | 8 +++----- 19343 configure.ac | 5 ++++- 19344 src/common/mythread.h | 4 ++-- 19345 src/xz/mytime.c | 5 ++--- 19346 4 files changed, 11 insertions(+), 11 deletions(-) 19347 19348commit 7339e39dc060df6eda74a2c5b69961befc3d5d24 19349Author: Jia Tan <jiat0218@gmail.com> 19350Date: 2022-12-28 01:14:07 +0800 19351 19352 Translations: Add Ukrainian translations of man pages. 19353 19354 Thanks to Yuri Chornoivan 19355 19356 po4a/po4a.conf | 2 +- 19357 po4a/uk.po | 3676 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 19358 2 files changed, 3677 insertions(+), 1 deletion(-) 19359 19360commit 9f05c27a58ce8cd7803079aa295e41c24665ce6e 19361Author: Jia Tan <jiat0218@gmail.com> 19362Date: 2022-12-23 00:34:48 +0800 19363 19364 CI/CD: Create initial version of CI/CD workflow. 19365 19366 The CI/CD workflow will only execute on Ubuntu and MacOS latest version. 19367 The workflow will attempt to build with autotools and CMake and execute 19368 the tests. The workflow will run for all pull requests and pushes done 19369 to the master branch. 19370 19371 .github/workflows/ci.yml | 72 ++++++++++++++++++++++++ 19372 build-aux/ci_build.sh | 141 +++++++++++++++++++++++++++++++++++++++++++++++ 19373 2 files changed, 213 insertions(+) 19374 19375commit 1275ebfba74230dbd028049141423c79c8b83b8f 19376Author: Jia Tan <jiat0218@gmail.com> 19377Date: 2022-12-22 23:14:53 +0800 19378 19379 liblzma: Update documentation for lzma_filter_encoder. 19380 19381 src/liblzma/common/filter_encoder.c | 7 +++++-- 19382 1 file changed, 5 insertions(+), 2 deletions(-) 19383 19384commit 7c9ff5f1667a16733163b75dfd4b509662c387f4 19385Author: Jia Tan <jiat0218@gmail.com> 19386Date: 2022-12-21 21:12:03 +0800 19387 19388 Tests: Adds lzip decoder tests 19389 19390 .gitignore | 1 + 19391 tests/Makefile.am | 2 + 19392 tests/test_lzip_decoder.c | 471 ++++++++++++++++++++++++++++++++++++++++++++++ 19393 3 files changed, 474 insertions(+) 19394 19395commit 799ead162de63b8400733603d3abcd2e1977bdca 19396Author: Jia Cheong Tan <jiat0218@gmail.com> 19397Date: 2022-12-20 22:05:21 +0800 19398 19399 Doxygen: Update .gitignore for generating docs for in source build. 19400 19401 In source builds are not recommended, but we should still ignore 19402 the generated artifacts. 19403 19404 .gitignore | 2 ++ 19405 1 file changed, 2 insertions(+) 19406 19407commit 5f7ce42a16b1e86ca8408b5c670c25e2a12acc4e 19408Author: Jia Tan <jiat0218@gmail.com> 19409Date: 2022-12-20 20:46:44 +0800 19410 19411 liblzma: Fix lzma_microlzma_encoder() return value. 19412 19413 Using return_if_error on lzma_lzma_lclppb_encode was improper because 19414 return_if_error is expecting an lzma_ret value, but 19415 lzma_lzma_lclppb_encode returns a boolean. This could result in 19416 lzma_microlzma_encoder, which would be misleading for applications. 19417 19418 src/liblzma/common/microlzma_encoder.c | 3 ++- 19419 1 file changed, 2 insertions(+), 1 deletion(-) 19420 19421commit 8ace358d65059152d9a1f43f4770170d29d35754 19422Author: Jia Tan <jiat0218@gmail.com> 19423Date: 2022-12-16 20:58:55 +0800 19424 19425 CMake: Update .gitignore for CMake artifacts from in source build. 19426 19427 In source builds are not recommended, but we can make it easier 19428 by ignoring the generated artifacts from CMake. 19429 19430 .gitignore | 23 +++++++++++++++++++++++ 19431 1 file changed, 23 insertions(+) 19432 19433commit 8fd225a2c149f30aeac377e68eb5abf6b28300ad 19434Author: Lasse Collin <lasse.collin@tukaani.org> 19435Date: 2022-12-16 18:30:02 +0200 19436 19437 liblzma: Update authors list in arm64.c. 19438 19439 src/liblzma/simple/arm64.c | 1 + 19440 1 file changed, 1 insertion(+) 19441 19442commit b69da6d4bb6bb11fc0cf066920791990d2b22a06 19443Author: Lasse Collin <lasse.collin@tukaani.org> 19444Date: 2022-12-13 20:37:17 +0200 19445 19446 Bump version to 5.4.0 and soname to 5.4.0. 19447 19448 src/liblzma/Makefile.am | 2 +- 19449 src/liblzma/api/lzma/version.h | 6 +++--- 19450 src/liblzma/liblzma_generic.map | 2 +- 19451 src/liblzma/liblzma_linux.map | 2 +- 19452 4 files changed, 6 insertions(+), 6 deletions(-) 19453