1commit 238b4e5458b4bd2cadefb768b8ea7c6b70a191ac 2Author: Jia Tan <jiat0218@gmail.com> 3Date: 2023-05-04 20:38:52 +0800 4 5 Translations: Update the Croatian translation. 6 7 po/hr.po | 6 +++--- 8 1 file changed, 3 insertions(+), 3 deletions(-) 9 10commit 0cee63c3c6c4f9084a5e7fa7c15a1863ac8e5ffc 11Author: Jia Tan <jiat0218@gmail.com> 12Date: 2023-05-04 19:50:42 +0800 13 14 Bump version and soname for 5.4.3. 15 16 src/liblzma/Makefile.am | 2 +- 17 src/liblzma/api/lzma/version.h | 2 +- 18 2 files changed, 2 insertions(+), 2 deletions(-) 19 20commit 01f937ea9a49005c5091c0165fa0c1e572dd1749 21Author: Jia Tan <jiat0218@gmail.com> 22Date: 2023-05-02 20:39:56 +0800 23 24 Add NEWS for 5.4.3. 25 26 NEWS | 10 ++++++++++ 27 1 file changed, 10 insertions(+) 28 29commit e9b9ea953179502d5245b4e6ca4f5ffe9d5797b1 30Author: Lasse Collin <lasse.collin@tukaani.org> 31Date: 2023-05-03 22:46:42 +0300 32 33 tuklib_integer.h: Fix a recent copypaste error in Clang detection. 34 35 Wrong line was changed in 7062348bf35c1e4cbfee00ad9fffb4a21aa6eff7. 36 Also, this has >= instead of == since ints larger than 32 bits would 37 work too even if not relevant in practice. 38 39 src/common/tuklib_integer.h | 4 ++-- 40 1 file changed, 2 insertions(+), 2 deletions(-) 41 42commit be6e39a8622f0d905072874ec25b1ffd155b12e1 43Author: Jia Tan <jiat0218@gmail.com> 44Date: 2023-04-20 20:15:00 +0800 45 46 Update THANKS. 47 48 THANKS | 1 + 49 1 file changed, 1 insertion(+) 50 51commit 9e343a46cf87a345799222c0b0b3a6f3358dde0c 52Author: Jia Tan <jiat0218@gmail.com> 53Date: 2023-04-19 22:22:16 +0800 54 55 Windows: Include <intrin.h> when needed. 56 57 Legacy Windows did not need to #include <intrin.h> to use the MSVC 58 intrinsics. Newer versions likely just issue a warning, but the MSVC 59 documentation says to include the header file for the intrinsics we use. 60 61 GCC and Clang can "pretend" to be MSVC on Windows, so extra checks are 62 needed in tuklib_integer.h to only include <intrin.h> when it will is 63 actually needed. 64 65 src/common/tuklib_integer.h | 6 ++++++ 66 src/liblzma/common/memcmplen.h | 10 ++++++++++ 67 2 files changed, 16 insertions(+) 68 69commit 12321a9390acc076b414035a46df9d7545ac379f 70Author: Jia Tan <jiat0218@gmail.com> 71Date: 2023-04-19 21:59:03 +0800 72 73 tuklib_integer: Use __builtin_clz() with Clang. 74 75 Clang has support for __builtin_clz(), but previously Clang would 76 fallback to either the MSVC intrinsic or the regular C code. This was 77 discovered due to a bug where a new version of Clang required the 78 <intrin.h> header file in order to use the MSVC intrinsics. 79 80 Thanks to Anton Kochkov for notifying us about the bug. 81 82 src/common/tuklib_integer.h | 6 +++--- 83 1 file changed, 3 insertions(+), 3 deletions(-) 84 85commit d1f0e01c395960efd6c29ff144eda4f4c8c1c6d3 86Author: Lasse Collin <lasse.collin@tukaani.org> 87Date: 2023-04-14 18:42:33 +0300 88 89 liblzma: Update project maintainers in lzma.h. 90 91 AUTHORS was updated earlier, lzma.h was simply forgotten. 92 93 src/liblzma/api/lzma.h | 2 +- 94 1 file changed, 1 insertion(+), 1 deletion(-) 95 96commit 8204c5d1304e1e3b7487801b4acaf8e3179a6c52 97Author: Jia Tan <jiat0218@gmail.com> 98Date: 2023-04-13 20:45:19 +0800 99 100 liblzma: Cleans up old commented out code. 101 102 src/liblzma/common/alone_encoder.c | 11 ----------- 103 1 file changed, 11 deletions(-) 104 105commit 32980d1562bc031013306be1c787761fa63da87d 106Author: Jia Tan <jiat0218@gmail.com> 107Date: 2023-03-28 22:32:40 +0800 108 109 CMake: Update liblzma-config.cmake generation. 110 111 Now that the threading is configurable, the liblzma CMake package only 112 needs the threading library when using POSIX threads. 113 114 CMakeLists.txt | 33 ++++++++++++++++++++++----------- 115 1 file changed, 22 insertions(+), 11 deletions(-) 116 117commit 023907faa965476fb921a6344253c50e0ba795f9 118Author: Jia Tan <jiat0218@gmail.com> 119Date: 2023-03-28 22:25:33 +0800 120 121 CMake: Allows setting thread method. 122 123 The thread method is now configurable for the CMake build. It matches 124 the Autotools build by allowing ON (pick the best threading method), 125 OFF (no threading), posix, win95, and vista. If both Windows and 126 posix threading are both available, then ON will choose Windows 127 threading. Windows threading will also not use: 128 129 target_link_libraries(liblzma Threads::Threads) 130 131 since on systems like MinGW-w64 it would link the posix threads 132 without purpose. 133 134 CMakeLists.txt | 144 +++++++++++++++++++++++++++++++++++++++++---------------- 135 1 file changed, 104 insertions(+), 40 deletions(-) 136 137commit ba176d77cbb164b13006516660fc1ff6c59dedb5 138Author: Jia Tan <jiat0218@gmail.com> 139Date: 2023-03-24 20:05:59 +0800 140 141 CMake: Only build xzdec if decoders are enabled. 142 143 CMakeLists.txt | 2 +- 144 1 file changed, 1 insertion(+), 1 deletion(-) 145 146commit c99d697df800e9bc47e09facf88bcfdb9e0264a5 147Author: Jia Tan <jiat0218@gmail.com> 148Date: 2023-03-22 15:42:04 +0800 149 150 Build: Removes redundant check for LZMA1 filter support. 151 152 src/liblzma/lzma/Makefile.inc | 5 +---- 153 1 file changed, 1 insertion(+), 4 deletions(-) 154 155commit 54a2fd8c850e626343b79c4cc8fcac2f638ec890 156Author: Lasse Collin <lasse.collin@tukaani.org> 157Date: 2023-03-23 15:14:29 +0200 158 159 CMake: Bump maximum policy version to 3.26. 160 161 It adds only one new policy related to FOLDERS which we don't use. 162 This makes it clear that the code is compatible with the policies 163 up to 3.26. 164 165 CMakeLists.txt | 2 +- 166 1 file changed, 1 insertion(+), 1 deletion(-) 167 168commit 622d0fdc02d5f565c2872d79bc70c669c95c8284 169Author: Jia Tan <jiat0218@gmail.com> 170Date: 2023-03-21 23:36:00 +0800 171 172 CMake: Conditionally build xz list.* files if decoders are enabled. 173 174 CMakeLists.txt | 9 +++++++-- 175 1 file changed, 7 insertions(+), 2 deletions(-) 176 177commit 3e2dc523c596cd770a6a7c58cacc0d0d8761e853 178Author: Jia Tan <jiat0218@gmail.com> 179Date: 2023-02-25 11:46:50 +0800 180 181 CMake: Allow configuring features as cache variables. 182 183 This allows users to change the features they build either in 184 CMakeCache.txt or by using a CMake GUI. The sources built for 185 liblzma are affected by this too, so only the necessary files 186 will be compiled. 187 188 CMakeLists.txt | 528 ++++++++++++++++++++++++++++++++++++++++++--------------- 189 1 file changed, 391 insertions(+), 137 deletions(-) 190 191commit 0c053f97337fa4ead77acefb577e8e86f8ef388d 192Author: Lasse Collin <lasse.collin@tukaani.org> 193Date: 2023-03-21 14:07:51 +0200 194 195 Build: Add a comment that AC_PROG_CC_C99 is needed for Autoconf 2.69. 196 197 It's obsolete in Autoconf >= 2.70 and just an alias for AC_PROG_CC 198 but Autoconf 2.69 requires AC_PROG_CC_C99 to get a C99 compiler. 199 200 configure.ac | 3 +++ 201 1 file changed, 3 insertions(+) 202 203commit 915d4f6058d52f84d2b58b0a5f3c8272eaa6c1bd 204Author: Lasse Collin <lasse.collin@tukaani.org> 205Date: 2023-03-21 14:04:37 +0200 206 207 Build: configure.ac: Use AS_IF and AS_CASE where required. 208 209 This makes no functional difference in the generated configure 210 (at least with the Autotools versions I have installed) but this 211 change might prevent future bugs like the one that was just 212 fixed in the commit 5a5bd7f871818029d5ccbe189f087f591258c294. 213 214 configure.ac | 30 +++++++++++++++--------------- 215 1 file changed, 15 insertions(+), 15 deletions(-) 216 217commit b848c039586ed2cddb6fb033680dac107cc5143f 218Author: Lasse Collin <lasse.collin@tukaani.org> 219Date: 2023-03-21 13:12:03 +0200 220 221 Update THANKS. 222 223 THANKS | 1 + 224 1 file changed, 1 insertion(+) 225 226commit c775ba1602a74f29dbc2088bbe4d02c23fc32ba1 227Author: Lasse Collin <lasse.collin@tukaani.org> 228Date: 2023-03-21 13:11:49 +0200 229 230 Build: Fix --disable-threads breaking the building of shared libs. 231 232 This is broken in the releases 5.2.6 to 5.4.2. A workaround 233 for these releases is to pass EGREP='grep -E' as an argument 234 to configure in addition to --disable-threads. 235 236 The problem appeared when m4/ax_pthread.m4 was updated in 237 the commit 6629ed929cc7d45a11e385f357ab58ec15e7e4ad which 238 introduced the use of AC_EGREP_CPP. AC_EGREP_CPP calls 239 AC_REQUIRE([AC_PROG_EGREP]) to set the shell variable EGREP 240 but this was only executed if POSIX threads were enabled. 241 Libtool code also has AC_REQUIRE([AC_PROG_EGREP]) but Autoconf 242 omits it as AC_PROG_EGREP has already been required earlier. 243 Thus, if not using POSIX threads, the shell variable EGREP 244 would be undefined in the Libtool code in configure. 245 246 ax_pthread.m4 is fine. The bug was in configure.ac which called 247 AX_PTHREAD conditionally in an incorrect way. Using AS_CASE 248 ensures that all AC_REQUIREs get always run. 249 250 Thanks to Frank Busse for reporting the bug. 251 Fixes: https://github.com/tukaani-project/xz/issues/45 252 253 configure.ac | 16 ++++++++-------- 254 1 file changed, 8 insertions(+), 8 deletions(-) 255 256commit 0673c9ec98b6bae12b33dc295564514aaa26e2fc 257Author: Lasse Collin <lasse.collin@tukaani.org> 258Date: 2023-03-19 22:45:59 +0200 259 260 liblzma: Silence -Wsign-conversion in SSE2 code in memcmplen.h. 261 262 Thanks to Christian Hesse for reporting the issue. 263 Fixes: https://github.com/tukaani-project/xz/issues/44 264 265 src/liblzma/common/memcmplen.h | 3 ++- 266 1 file changed, 2 insertions(+), 1 deletion(-) 267 268commit 6ca8046ecbc7a1c81ee08f544bfd1414819fb2e8 269Author: Jia Tan <jiat0218@gmail.com> 270Date: 2023-03-18 23:22:06 +0800 271 272 Bump version and soname for 5.4.2. 273 274 src/liblzma/Makefile.am | 2 +- 275 src/liblzma/api/lzma/version.h | 2 +- 276 2 files changed, 2 insertions(+), 2 deletions(-) 277 278commit ce4f246600db10e77fc93d492ea045b4c9830bc6 279Author: Jia Tan <jiat0218@gmail.com> 280Date: 2023-03-18 22:10:57 +0800 281 282 Add NEWS for 5.4.2. 283 284 NEWS | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 285 1 file changed, 48 insertions(+) 286 287commit 3634fe330788fc0df217acdb6581031a851600a3 288Author: Lasse Collin <lasse.collin@tukaani.org> 289Date: 2023-03-18 16:00:54 +0200 290 291 Update the copy of GNU GPLv3 from gnu.org to COPYING.GPLv3. 292 293 COPYING.GPLv3 | 8 ++++---- 294 1 file changed, 4 insertions(+), 4 deletions(-) 295 296commit 97679d25ce7cb014328f1455bb338903c003d54f 297Author: Lasse Collin <lasse.collin@tukaani.org> 298Date: 2023-03-18 15:51:57 +0200 299 300 Change a few HTTP URLs to HTTPS. 301 302 The xz man page timestamp was intentionally left unchanged. 303 304 INSTALL | 2 +- 305 README | 8 ++++---- 306 configure.ac | 2 +- 307 dos/INSTALL.txt | 4 ++-- 308 src/liblzma/api/lzma.h | 8 ++++---- 309 src/liblzma/check/sha256.c | 2 +- 310 src/xz/xz.1 | 2 +- 311 windows/INSTALL-MinGW.txt | 10 +++++----- 312 8 files changed, 19 insertions(+), 19 deletions(-) 313 314commit 01a67e89a56c3ebf5f6681bd06f0edc22a1ae594 315Author: Jia Tan <jiat0218@gmail.com> 316Date: 2023-03-18 00:40:28 +0800 317 318 CMake: Fix typo in a comment. 319 320 CMakeLists.txt | 2 +- 321 1 file changed, 1 insertion(+), 1 deletion(-) 322 323commit 5dca3f5cbab31105196c89cd6df0a9bbc3307c05 324Author: Lasse Collin <lasse.collin@tukaani.org> 325Date: 2023-03-17 18:36:22 +0200 326 327 Windows: build.bash: Copy liblzma API docs to the output package. 328 329 windows/build.bash | 3 ++- 330 1 file changed, 2 insertions(+), 1 deletion(-) 331 332commit ae252862b30b509ab88b2bbcaa08e8d51b57e928 333Author: Lasse Collin <lasse.collin@tukaani.org> 334Date: 2023-03-17 08:53:38 +0200 335 336 Windows: Add microlzma_*.c to the VS project files. 337 338 These should have been included in 5.3.2alpha already. 339 340 windows/vs2013/liblzma.vcxproj | 2 ++ 341 windows/vs2013/liblzma_dll.vcxproj | 2 ++ 342 windows/vs2017/liblzma.vcxproj | 2 ++ 343 windows/vs2017/liblzma_dll.vcxproj | 2 ++ 344 windows/vs2019/liblzma.vcxproj | 2 ++ 345 windows/vs2019/liblzma_dll.vcxproj | 2 ++ 346 6 files changed, 12 insertions(+) 347 348commit 147d282cc3733e2723df82622b6540ddfb52635e 349Author: Lasse Collin <lasse.collin@tukaani.org> 350Date: 2023-03-17 08:43:51 +0200 351 352 CMake: Add microlzma_*.c to the build. 353 354 These should have been included in 5.3.2alpha already. 355 356 CMakeLists.txt | 2 ++ 357 1 file changed, 2 insertions(+) 358 359commit 4523a5ee29f45c0256af67a15771bc8bbd25ba53 360Author: Lasse Collin <lasse.collin@tukaani.org> 361Date: 2023-03-17 08:41:36 +0200 362 363 Build: Update comments about unaligned access to mention 64-bit. 364 365 cmake/tuklib_integer.cmake | 7 +++---- 366 m4/tuklib_integer.m4 | 4 ++-- 367 2 files changed, 5 insertions(+), 6 deletions(-) 368 369commit 82aacb40367dc580b09c5a7b270f6c98b63e49b9 370Author: Lasse Collin <lasse.collin@tukaani.org> 371Date: 2023-03-17 00:02:30 +0200 372 373 Tests: Update .gitignore. 374 375 .gitignore | 3 ++- 376 1 file changed, 2 insertions(+), 1 deletion(-) 377 378commit 5d022c24921eec938604a8cb10d70aa08dbd8575 379Author: Lasse Collin <lasse.collin@tukaani.org> 380Date: 2023-03-14 20:04:03 +0200 381 382 po4a/update-po: Display the script name consistently in error messages. 383 384 po4a/update-po | 2 +- 385 1 file changed, 1 insertion(+), 1 deletion(-) 386 387commit 896295117324f323c0b8db6a31ad6ebfaa88793d 388Author: Jia Tan <jiat0218@gmail.com> 389Date: 2023-03-17 01:30:36 +0800 390 391 Doc: Rename Doxygen HTML doc directory name liblzma => api. 392 393 When the docs are installed, calling the directory "liblzma" is 394 confusing since multiple other files in the doc directory are for 395 liblzma. This should also make it more natural for distros when they 396 package the documentation. 397 398 .gitignore | 2 +- 399 Makefile.am | 18 +++++++++--------- 400 PACKAGERS | 4 ++-- 401 doxygen/Doxyfile | 2 +- 402 doxygen/update-doxygen | 18 +++++++++--------- 403 5 files changed, 22 insertions(+), 22 deletions(-) 404 405commit 94097157fae308b2c1a5edb4e8597c68b45eeaea 406Author: Jia Tan <jiat0218@gmail.com> 407Date: 2023-03-16 22:07:15 +0800 408 409 liblzma: Remove note from lzma_options_bcj about the ARM64 exception. 410 411 This was left in by mistake since an early version of the ARM64 filter 412 used a different struct for its options. 413 414 src/liblzma/api/lzma/bcj.h | 2 +- 415 1 file changed, 1 insertion(+), 1 deletion(-) 416 417commit da16d0b73b79d7785ece6f78a577fadd1fb59d0e 418Author: Lasse Collin <lasse.collin@tukaani.org> 419Date: 2023-03-15 19:19:13 +0200 420 421 COPYING: Add a note about the included Doxygen-generated HTML. 422 423 COPYING | 11 +++++++++++ 424 1 file changed, 11 insertions(+) 425 426commit e57c74f9ef19201f72c106f2c347596f40229936 427Author: Jia Tan <jiat0218@gmail.com> 428Date: 2023-03-16 21:41:09 +0800 429 430 Doc: Update PACKAGERS with details about liblzma API docs install. 431 432 PACKAGERS | 22 ++++++++++++++++------ 433 1 file changed, 16 insertions(+), 6 deletions(-) 434 435commit 7e2fa48bb73edb25457232e2e62a4f81c6b95281 436Author: Jia Tan <jiat0218@gmail.com> 437Date: 2023-03-16 21:38:32 +0800 438 439 liblzma: Add set lzma.h as the main page for Doxygen documentation. 440 441 The \mainpage command is used in the first block of comments in lzma.h. 442 This changes the previously nearly empty index.html to use the first 443 comment block in lzma.h for its contents. 444 445 lzma.h is no longer documented separately, but this is for the better 446 since lzma.h only defined a few macros that users do not need to use. 447 The individual API header files all have a disclaimer that they should 448 not be #included directly, so there should be no confusion on the fact 449 that lzma.h should be the only header used by applications. 450 451 Additionally, the note "See ../lzma.h for information about liblzma as 452 a whole." was removed since lzma.h is now the main page of the 453 generated HTML and does not have its own page anymore. So it would be 454 confusing in the HTML version and was only a "nice to have" when 455 browsing the source files. 456 457 src/liblzma/api/lzma.h | 1 + 458 src/liblzma/api/lzma/base.h | 2 -- 459 src/liblzma/api/lzma/bcj.h | 2 -- 460 src/liblzma/api/lzma/block.h | 2 -- 461 src/liblzma/api/lzma/check.h | 2 -- 462 src/liblzma/api/lzma/container.h | 2 -- 463 src/liblzma/api/lzma/delta.h | 2 -- 464 src/liblzma/api/lzma/filter.h | 2 -- 465 src/liblzma/api/lzma/hardware.h | 2 -- 466 src/liblzma/api/lzma/index.h | 2 -- 467 src/liblzma/api/lzma/index_hash.h | 4 +--- 468 src/liblzma/api/lzma/lzma12.h | 2 -- 469 src/liblzma/api/lzma/stream_flags.h | 2 -- 470 src/liblzma/api/lzma/version.h | 2 -- 471 src/liblzma/api/lzma/vli.h | 2 -- 472 15 files changed, 2 insertions(+), 29 deletions(-) 473 474commit d42977c7acfdf7fd9acc8803cf411eca7dc10478 475Author: Jia Tan <jiat0218@gmail.com> 476Date: 2023-03-16 21:37:32 +0800 477 478 Build: Generate doxygen documentation in autogen.sh. 479 480 Another command line option (--no-doxygen) was added to disable 481 creating the doxygen documenation in cases where it not wanted or 482 if the doxygen tool is not installed. 483 484 autogen.sh | 35 +++++++++++++++++++++++++++++------ 485 1 file changed, 29 insertions(+), 6 deletions(-) 486 487commit 8fc712fcf41d821069c670f22b8bf628e7a4a877 488Author: Jia Tan <jiat0218@gmail.com> 489Date: 2023-03-16 21:35:55 +0800 490 491 Build: Create doxygen/update-doxygen script. 492 493 This is a helper script to generate the Doxygen documentation. It can be 494 run in 'liblzma' or 'internal' mode by setting the first argument. It 495 will default to 'liblzma' mode and only generate documentation for the 496 liblzma API header files. 497 498 The helper script will be run during the custom mydist hook when we 499 create releases. This hook already alters the source directory, so its 500 fine to do it here too. This way, we can include the Doxygen generated 501 files in the distrubtion and when installing. 502 503 In 'liblzma' mode, the JavaScript is stripped from the .html files and 504 the .js files are removed. This avoids license hassle from jQuery and 505 other libraries that Doxygen 1.9.6 puts into jquery.js in minified form. 506 507 Makefile.am | 1 + 508 doxygen/update-doxygen | 111 +++++++++++++++++++++++++++++++++++++++++++++++++ 509 2 files changed, 112 insertions(+) 510 511commit 77d2c025d19fbac7277c63239cfb1338f02c66c0 512Author: Jia Tan <jiat0218@gmail.com> 513Date: 2023-03-16 21:34:36 +0800 514 515 Build: Install Doxygen docs and include in distribution if generated. 516 517 Added a install-data-local target to install the Doxygen documentation 518 only when it has been generated. In order to correctly remove the docs, 519 a corresponding uninstall-local target was added. 520 521 If the doxygen docs exist in the source tree, they will also be included 522 in the distribution now too. 523 524 Makefile.am | 18 ++++++++++++++++++ 525 1 file changed, 18 insertions(+) 526 527commit 9af8f6f947a43974a4ff025f4c896f2fb4c91b4f 528Author: Jia Tan <jiat0218@gmail.com> 529Date: 2023-01-03 20:37:30 +0800 530 531 Doxygen: Refactor Doxyfile.in to doxygen/Doxyfile. 532 533 Instead of having Doxyfile.in configured by Autoconf, the Doxyfile 534 can have the tags that need to be configured piped into the doxygen 535 command through stdin with the overrides after Doxyfile's contents. 536 537 Going forward, the documentation should be generated in two different 538 modes: liblzma or internal. 539 540 liblzma is useful for most users. It is the documentation for just 541 the liblzma API header files. This is the default. 542 543 internal is for people who want to understand how xz and liblzma work. 544 It might be useful for people who want to contribute to the project. 545 546 .gitignore | 3 +- 547 Doxyfile.in | 1234 ------------------------- 548 Makefile.am | 1 - 549 configure.ac | 1 - 550 doxygen/Doxyfile | 2684 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 551 5 files changed, 2686 insertions(+), 1237 deletions(-) 552 553commit 1c558a26928b753fcf1c0d4bce9c0643285edd86 554Author: Jia Tan <jiat0218@gmail.com> 555Date: 2023-02-28 23:22:36 +0800 556 557 Tests: Remove unused macros and functions. 558 559 tests/tests.h | 75 ----------------------------------------------------------- 560 1 file changed, 75 deletions(-) 561 562commit 7479a69a45a1b8fdb9a209e11f247dce11ac1ba0 563Author: Jia Tan <jiat0218@gmail.com> 564Date: 2023-01-12 22:29:07 +0800 565 566 Tests: Refactors existing lzma_index tests. 567 568 Converts the existing lzma_index tests into tuktests and covers every 569 API function from index.h except for lzma_file_info_decoder, which can 570 be tested in the future. 571 572 tests/test_index.c | 2036 ++++++++++++++++++++++++++++++++++++++-------------- 573 1 file changed, 1492 insertions(+), 544 deletions(-) 574 575commit fd56d5353360279c10e8e5e05f5bc6ea03f64584 576Author: Lasse Collin <lasse.collin@tukaani.org> 577Date: 2023-03-07 19:59:23 +0200 578 579 xz: Make Capsicum sandbox more strict with stdin and stdout. 580 581 src/xz/file_io.c | 8 ++++++++ 582 1 file changed, 8 insertions(+) 583 584commit d1bdaaebc68cae7f0ba457fa990b520df2186fd1 585Author: Lasse Collin <lasse.collin@tukaani.org> 586Date: 2023-03-11 19:31:40 +0200 587 588 xz: Don't fail if Capsicum is enabled but kernel doesn't support it. 589 590 (This commit combines related commits from the master branch.) 591 592 If Capsicum support is missing from the kernel or xz is being run 593 in an emulator that lacks Capsicum suport, the syscalls will fail 594 and set errno to ENOSYS. Previously xz would display and error and 595 exit, making xz unusable. Now it will check for ENOSYS and run 596 without sandbox support. Other tools like ssh behave similarly. 597 598 Displaying a warning for missing Capsicum support was considered 599 but such extra output would quickly become annoying. It would also 600 break test_scripts.sh in "make check". 601 602 Also move cap_enter() to be the first step instead of the last one. 603 This matches the example in the cap_rights_limit(2) man page. With 604 the current code it shouldn't make any practical difference though. 605 606 Thanks to Xin Li for the bug report, suggesting a fix, and testing: 607 https://github.com/tukaani-project/xz/pull/43 608 609 Thanks to Jia Tan for most of the original commits. 610 611 src/xz/file_io.c | 15 ++++++++++++--- 612 1 file changed, 12 insertions(+), 3 deletions(-) 613 614commit 5d351c69c19d212ddd2cf1f3bdb24900820c6776 615Author: Jia Tan <jiat0218@gmail.com> 616Date: 2023-02-04 21:06:35 +0800 617 618 Build: Adjust CMake version search regex. 619 620 Now, the LZMA_VERSION_MAJOR, LZMA_VERSION_MINOR, and LZMA_VERSION_PATCH 621 macros do not need to be on consecutive lines in version.h. They can be 622 separated by more whitespace, comments, or even other content, as long 623 as they appear in the proper order (major, minor, patch). 624 625 CMakeLists.txt | 2 ++ 626 1 file changed, 2 insertions(+) 627 628commit b82d4831e3f2339c4cdbc47776c99462088c11b7 629Author: Jia Tan <jiat0218@gmail.com> 630Date: 2023-01-26 09:50:21 +0800 631 632 liblzma: Improve documentation for version.h. 633 634 Specified parameter and return values for API functions and documented 635 a few more of the macros. 636 637 src/liblzma/api/lzma/version.h | 29 ++++++++++++++++++++++------- 638 1 file changed, 22 insertions(+), 7 deletions(-) 639 640commit 2caba3efe3e0c2d7c6dca00e22c56812326a34e6 641Author: Jia Tan <jiat0218@gmail.com> 642Date: 2023-02-24 23:46:23 +0800 643 644 liblzma: Clarify lzma_lzma_preset() documentation in lzma12.h. 645 646 lzma_lzma_preset() does not guarentee that the lzma_options_lzma are 647 usable in an encoder even if it returns false (success). If liblzma 648 is built with default configurations, then the options will always be 649 usable. However if the match finders hc3, hc4, or bt4 are disabled, then 650 the options may not be usable depending on the preset level requested. 651 652 The documentation was updated to reflect this complexity, since this 653 behavior was unclear before. 654 655 src/liblzma/api/lzma/lzma12.h | 5 +++++ 656 1 file changed, 5 insertions(+) 657 658commit 594f904673ba55a833adfa60bbab6b60d4902d08 659Author: Lasse Collin <lasse.collin@tukaani.org> 660Date: 2023-02-27 18:38:35 +0200 661 662 CMake: Require that the C compiler supports C99 or a newer standard. 663 664 Thanks to autoantwort for reporting the issue and suggesting 665 a different patch: 666 https://github.com/tukaani-project/xz/pull/42 667 668 CMakeLists.txt | 8 ++++++++ 669 1 file changed, 8 insertions(+) 670 671commit 88101143cb774bca6b7006c8335b09dc3f334140 672Author: Jia Tan <jiat0218@gmail.com> 673Date: 2023-02-24 18:10:37 +0800 674 675 Tests: Small tweak to test-vli.c. 676 677 The static global variables can be disabled if encoders and decoders 678 are not built. If they are not disabled and -Werror is used, it will 679 cause an usused warning as an error. 680 681 tests/test_vli.c | 2 ++ 682 1 file changed, 2 insertions(+) 683 684commit 4042dbf03a06e019ccdd1e9d1b94cf613d62d5a9 685Author: Jia Tan <jiat0218@gmail.com> 686Date: 2023-02-06 21:46:43 +0800 687 688 liblzma: Replace '\n' -> newline in filter.h documentation. 689 690 The '\n' renders as a newline when the comments are converted to html 691 by Doxygen. 692 693 src/liblzma/api/lzma/filter.h | 2 +- 694 1 file changed, 1 insertion(+), 1 deletion(-) 695 696commit 3971f5c5024750ce8286891c6f79ae1661047483 697Author: Jia Tan <jiat0218@gmail.com> 698Date: 2023-02-06 21:45:37 +0800 699 700 liblzma: Shorten return description for two functions in filter.h. 701 702 Shorten the description for lzma_raw_encoder_memusage() and 703 lzma_raw_decoder_memusage(). 704 705 src/liblzma/api/lzma/filter.h | 8 ++------ 706 1 file changed, 2 insertions(+), 6 deletions(-) 707 708commit 5e61b39432752b6cd1a7b518f0f9e4f0c3f0f242 709Author: Jia Tan <jiat0218@gmail.com> 710Date: 2023-02-06 21:44:45 +0800 711 712 liblzma: Reword a few lines in filter.h 713 714 src/liblzma/api/lzma/filter.h | 10 +++++----- 715 1 file changed, 5 insertions(+), 5 deletions(-) 716 717commit 8a53533869defa1191b41f176a0312cb53a139e2 718Author: Jia Tan <jiat0218@gmail.com> 719Date: 2023-02-06 21:35:06 +0800 720 721 liblzma: Improve documentation in filter.h. 722 723 All functions now explicitly specify parameter and return values. 724 The notes and code annotations were moved before the parameter and 725 return value descriptions for consistency. 726 727 Also, the description above lzma_filter_encoder_is_supported() about 728 not being able to list available filters was removed since 729 lzma_str_list_filters() will do this. 730 731 src/liblzma/api/lzma/filter.h | 226 ++++++++++++++++++++++++++---------------- 732 1 file changed, 143 insertions(+), 83 deletions(-) 733 734commit 6d05b08b17ac8cb93165ee8f310fdd925b0b258f 735Author: Lasse Collin <lasse.collin@tukaani.org> 736Date: 2023-02-23 20:46:16 +0200 737 738 Update THANKS. 739 740 THANKS | 1 + 741 1 file changed, 1 insertion(+) 742 743commit dfc9a54082e0fc7b3b796ea15336b5075acc79d5 744Author: Lasse Collin <lasse.collin@tukaani.org> 745Date: 2023-02-21 22:57:10 +0200 746 747 liblzma: Avoid null pointer + 0 (undefined behavior in C). 748 749 In the C99 and C17 standards, section 6.5.6 paragraph 8 means that 750 adding 0 to a null pointer is undefined behavior. As of writing, 751 "clang -fsanitize=undefined" (Clang 15) diagnoses this. However, 752 I'm not aware of any compiler that would take advantage of this 753 when optimizing (Clang 15 included). It's good to avoid this anyway 754 since compilers might some day infer that pointer arithmetic implies 755 that the pointer is not NULL. That is, the following foo() would then 756 unconditionally return 0, even for foo(NULL, 0): 757 758 void bar(char *a, char *b); 759 760 int foo(char *a, size_t n) 761 { 762 bar(a, a + n); 763 return a == NULL; 764 } 765 766 In contrast to C, C++ explicitly allows null pointer + 0. So if 767 the above is compiled as C++ then there is no undefined behavior 768 in the foo(NULL, 0) call. 769 770 To me it seems that changing the C standard would be the sane 771 thing to do (just add one sentence) as it would ensure that a huge 772 amount of old code won't break in the future. Based on web searches 773 it seems that a large number of codebases (where null pointer + 0 774 occurs) are being fixed instead to be future-proof in case compilers 775 will some day optimize based on it (like making the above foo(NULL, 0) 776 return 0) which in the worst case will cause security bugs. 777 778 Some projects don't plan to change it. For example, gnulib and thus 779 many GNU tools currently require that null pointer + 0 is defined: 780 781 https://lists.gnu.org/archive/html/bug-gnulib/2021-11/msg00000.html 782 783 https://www.gnu.org/software/gnulib/manual/html_node/Other-portability-assumptions.html 784 785 In XZ Utils null pointer + 0 issue should be fixed after this 786 commit. This adds a few if-statements and thus branches to avoid 787 null pointer + 0. These check for size > 0 instead of ptr != NULL 788 because this way bugs where size > 0 && ptr == NULL will likely 789 get caught quickly. None of them are in hot spots so it shouldn't 790 matter for performance. 791 792 A little less readable version would be replacing 793 794 ptr + offset 795 796 with 797 798 offset != 0 ? ptr + offset : ptr 799 800 or creating a macro for it: 801 802 #define my_ptr_add(ptr, offset) \ 803 ((offset) != 0 ? ((ptr) + (offset)) : (ptr)) 804 805 Checking for offset != 0 instead of ptr != NULL allows GCC >= 8.1, 806 Clang >= 7, and Clang-based ICX to optimize it to the very same code 807 as ptr + offset. That is, it won't create a branch. So for hot code 808 this could be a good solution to avoid null pointer + 0. Unfortunately 809 other compilers like ICC 2021 or MSVC 19.33 (VS2022) will create a 810 branch from my_ptr_add(). 811 812 Thanks to Marcin Kowalczyk for reporting the problem: 813 https://github.com/tukaani-project/xz/issues/36 814 815 src/liblzma/common/block_decoder.c | 5 ++++- 816 src/liblzma/common/block_encoder.c | 7 +++++-- 817 src/liblzma/common/common.c | 20 ++++++++++++++------ 818 src/liblzma/common/index_decoder.c | 13 ++++++++++--- 819 src/liblzma/common/index_encoder.c | 11 +++++++++-- 820 src/liblzma/common/index_hash.c | 13 ++++++++++--- 821 src/liblzma/common/lzip_decoder.c | 6 +++++- 822 src/liblzma/delta/delta_decoder.c | 7 ++++++- 823 src/liblzma/delta/delta_encoder.c | 12 ++++++++++-- 824 src/liblzma/simple/simple_coder.c | 6 ++++-- 825 10 files changed, 77 insertions(+), 23 deletions(-) 826 827commit f6dce49cb656b358e2fb2a3032e35e20af34dc84 828Author: Jia Tan <jiat0218@gmail.com> 829Date: 2023-02-07 00:00:44 +0800 830 831 liblzma: Adjust container.h for consistency with filter.h. 832 833 src/liblzma/api/lzma/container.h | 20 +++++++++----------- 834 1 file changed, 9 insertions(+), 11 deletions(-) 835 836commit 173d240bb4763aedc8c01df4d9c83e311d954c33 837Author: Jia Tan <jiat0218@gmail.com> 838Date: 2023-02-07 00:00:09 +0800 839 840 liblzma: Fix small typos and reword a few things in filter.h. 841 842 src/liblzma/api/lzma/container.h | 13 ++++++------- 843 1 file changed, 6 insertions(+), 7 deletions(-) 844 845commit 17797bacde3f7264048ef0976c137a600148d6cf 846Author: Jia Tan <jiat0218@gmail.com> 847Date: 2023-02-06 23:42:08 +0800 848 849 liblzma: Convert list of flags in lzma_mt to bulleted list. 850 851 src/liblzma/api/lzma/container.h | 9 ++++++--- 852 1 file changed, 6 insertions(+), 3 deletions(-) 853 854commit 37da0e727161b401b8bfd8dccf163a4b2fc0460b 855Author: Jia Tan <jiat0218@gmail.com> 856Date: 2023-01-26 23:17:41 +0800 857 858 liblzma: Fix typo in documentation in container.h 859 860 lzma_microlzma_decoder -> lzma_microlzma_encoder 861 862 src/liblzma/api/lzma/container.h | 2 +- 863 1 file changed, 1 insertion(+), 1 deletion(-) 864 865commit b8331077c626e6bf14f4671d09b561146eaf816a 866Author: Jia Tan <jiat0218@gmail.com> 867Date: 2023-01-26 23:16:34 +0800 868 869 liblzma: Improve documentation for container.h 870 871 Standardizing each function to always specify parameters and return 872 values. Also moved the parameters and return values to the end of each 873 function description. 874 875 src/liblzma/api/lzma/container.h | 146 +++++++++++++++++++++++++-------------- 876 1 file changed, 93 insertions(+), 53 deletions(-) 877 878commit b9a3511bb61d3b6ce49abd33dce6155a573f5272 879Author: Jia Tan <jiat0218@gmail.com> 880Date: 2023-02-22 20:59:41 +0800 881 882 CMake: Add LZIP decoder test to list of tests. 883 884 CMakeLists.txt | 1 + 885 1 file changed, 1 insertion(+) 886 887commit cd82ef2fb48b174c57cd03b84a9a0f978772cb89 888Author: Lasse Collin <lasse.collin@tukaani.org> 889Date: 2023-02-17 20:56:49 +0200 890 891 Update THANKS. 892 893 THANKS | 1 + 894 1 file changed, 1 insertion(+) 895 896commit 076e911ba25cadf2cbdfbd0f65991a002e210c0b 897Author: Lasse Collin <lasse.collin@tukaani.org> 898Date: 2023-02-17 20:48:28 +0200 899 900 Build: Use only the generic symbol versioning on MicroBlaze. 901 902 On MicroBlaze, GCC 12 is broken in sense that 903 __has_attribute(__symver__) returns true but it still doesn't 904 support the __symver__ attribute even though the platform is ELF 905 and symbol versioning is supported if using the traditional 906 __asm__(".symver ...") method. Avoiding the traditional method is 907 good because it breaks LTO (-flto) builds with GCC. 908 909 See also: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101766 910 911 For now the only extra symbols in liblzma_linux.map are the 912 compatibility symbols with the patch that spread from RHEL/CentOS 7. 913 These require the use of __symver__ attribute or __asm__(".symver ...") 914 in the C code. Compatibility with the patch from CentOS 7 doesn't 915 seem valuable on MicroBlaze so use liblzma_generic.map on MicroBlaze 916 instead. It doesn't require anything special in the C code and thus 917 no LTO issues either. 918 919 An alternative would be to detect support for __symver__ 920 attribute in configure.ac and CMakeLists.txt and fall back 921 to __asm__(".symver ...") but then LTO would be silently broken 922 on MicroBlaze. It sounds likely that MicroBlaze is a special 923 case so let's treat it as a such because that is simpler. If 924 a similar issue exists on some other platform too then hopefully 925 someone will report it and this can be reconsidered. 926 927 (This doesn't do the same fix in CMakeLists.txt. Perhaps it should 928 but perhaps CMake build of liblzma doesn't matter much on MicroBlaze. 929 The problem breaks the build so it's easy to notice and can be fixed 930 later.) 931 932 Thanks to Vincent Fazio for reporting the problem and proposing 933 a patch (in the end that solution wasn't used): 934 https://github.com/tukaani-project/xz/pull/32 935 936 configure.ac | 12 ++++++++++-- 937 1 file changed, 10 insertions(+), 2 deletions(-) 938 939commit bc34e5ac9996667d2c1ec9a7895ec5931ac4caea 940Author: Lasse Collin <lasse.collin@tukaani.org> 941Date: 2023-02-16 21:09:00 +0200 942 943 liblzma: Very minor API doc tweaks. 944 945 Use "member" to refer to struct members as that's the term used 946 by the C standard. 947 948 Use lzma_options_delta.dist and such in docs so that in Doxygen's 949 HTML output they will link to the doc of the struct member. 950 951 Clean up a few trailing white spaces too. 952 953 src/liblzma/api/lzma/block.h | 6 +++--- 954 src/liblzma/api/lzma/delta.h | 6 +++--- 955 src/liblzma/api/lzma/index.h | 10 +++++----- 956 src/liblzma/api/lzma/stream_flags.h | 6 +++--- 957 4 files changed, 14 insertions(+), 14 deletions(-) 958 959commit d31fbd28be5b79eb682db50004b0fb7aad5299ec 960Author: Jia Tan <jiat0218@gmail.com> 961Date: 2023-02-17 00:54:33 +0800 962 963 liblzma: Adjust spacing in doc headers in bcj.h. 964 965 src/liblzma/api/lzma/bcj.h | 14 +++++++------- 966 1 file changed, 7 insertions(+), 7 deletions(-) 967 968commit 701e9be6bede19771895f756082db0c017f86f07 969Author: Jia Tan <jiat0218@gmail.com> 970Date: 2023-02-17 00:44:44 +0800 971 972 liblzma: Adjust documentation in bcj.h for consistent style. 973 974 src/liblzma/api/lzma/bcj.h | 43 ++++++++++++++++++++++--------------------- 975 1 file changed, 22 insertions(+), 21 deletions(-) 976 977commit 762c4d0b62d2694cf3a01e030fdfe68e09e7b503 978Author: Jia Tan <jiat0218@gmail.com> 979Date: 2023-02-17 00:36:05 +0800 980 981 liblzma: Rename field => member in documentation. 982 983 Also adjusted preset value => preset level. 984 985 src/liblzma/api/lzma/base.h | 18 +++++++-------- 986 src/liblzma/api/lzma/block.h | 44 ++++++++++++++++++------------------- 987 src/liblzma/api/lzma/container.h | 26 +++++++++++----------- 988 src/liblzma/api/lzma/delta.h | 12 +++++----- 989 src/liblzma/api/lzma/index.h | 30 ++++++++++++------------- 990 src/liblzma/api/lzma/lzma12.h | 28 +++++++++++------------ 991 src/liblzma/api/lzma/stream_flags.h | 32 +++++++++++++-------------- 992 7 files changed, 95 insertions(+), 95 deletions(-) 993 994commit 0ce1db0223854d94b4a0d17737ac0486a75d9e6a 995Author: Lasse Collin <lasse.collin@tukaani.org> 996Date: 2023-02-16 17:59:50 +0200 997 998 liblzma: Silence a warning from MSVC. 999 1000 It gives C4146 here since unary minus with unsigned integer 1001 is still unsigned (which is the intention here). Doing it 1002 with substraction makes it clearer and avoids the warning. 1003 1004 Thanks to Nathan Moinvaziri for reporting this. 1005 1006 src/liblzma/check/crc64_fast.c | 2 +- 1007 1 file changed, 1 insertion(+), 1 deletion(-) 1008 1009commit d83da006b3e8dbad9112e6cde6b27049d193c9ec 1010Author: Jia Tan <jiat0218@gmail.com> 1011Date: 2023-02-16 21:04:54 +0800 1012 1013 liblzma: Improve documentation for stream_flags.h 1014 1015 Standardizing each function to always specify parameters and return 1016 values. Also moved the parameters and return values to the end of each 1017 function description. 1018 1019 A few small things were reworded and long sentences broken up. 1020 1021 src/liblzma/api/lzma/stream_flags.h | 76 ++++++++++++++++++++++--------------- 1022 1 file changed, 46 insertions(+), 30 deletions(-) 1023 1024commit 2796bb4736f645d34939b5d62d5958f534e41e69 1025Author: Jia Tan <jiat0218@gmail.com> 1026Date: 2023-02-14 21:50:16 +0800 1027 1028 liblzma: Improve documentation in lzma12.h. 1029 1030 All functions now explicitly specify parameter and return values. 1031 1032 src/liblzma/api/lzma/lzma12.h | 32 +++++++++++++++++++++++--------- 1033 1 file changed, 23 insertions(+), 9 deletions(-) 1034 1035commit ebebaa8d9381afea440eb1b01917117551adf68f 1036Author: Jia Tan <jiat0218@gmail.com> 1037Date: 2023-01-27 22:44:06 +0800 1038 1039 liblzma: Improve documentation in check.h. 1040 1041 All functions now explicitly specify parameter and return values. 1042 Also moved the note about SHA-256 functions not being exported to the 1043 top of the file. 1044 1045 src/liblzma/api/lzma/check.h | 41 ++++++++++++++++++++++++++++------------- 1046 1 file changed, 28 insertions(+), 13 deletions(-) 1047 1048commit 765fa2865aab97ea713c1715922e322b3cf599a7 1049Author: Jia Tan <jiat0218@gmail.com> 1050Date: 2023-02-08 21:33:52 +0800 1051 1052 liblzma: Improve documentation in index.h 1053 1054 All functions now explicitly specify parameter and return values. 1055 1056 src/liblzma/api/lzma/index.h | 177 ++++++++++++++++++++++++++++++------------- 1057 1 file changed, 126 insertions(+), 51 deletions(-) 1058 1059commit 918e208af5960728b6def01e692b395f7d8e3701 1060Author: Jia Tan <jiat0218@gmail.com> 1061Date: 2023-02-08 20:35:32 +0800 1062 1063 liblzma: Reword a comment in index.h. 1064 1065 src/liblzma/api/lzma/index.h | 4 ++-- 1066 1 file changed, 2 insertions(+), 2 deletions(-) 1067 1068commit 1f157d214bc09338876d2467b549935679abc0bf 1069Author: Jia Tan <jiat0218@gmail.com> 1070Date: 2023-02-08 20:30:23 +0800 1071 1072 liblzma: Omit lzma_index_iter's internal field from Doxygen docs. 1073 1074 Add \private above this field and its sub-fields since it is not meant 1075 to be modified by users. 1076 1077 src/liblzma/api/lzma/index.h | 9 ++++++++- 1078 1 file changed, 8 insertions(+), 1 deletion(-) 1079 1080commit 28757fa46d8e0f0a9c17628b2b6af9bcb3cd96fc 1081Author: Jia Tan <jiat0218@gmail.com> 1082Date: 2023-01-21 21:32:03 +0800 1083 1084 liblzma: Fix documentation for LZMA_MEMLIMIT_ERROR. 1085 1086 LZMA_MEMLIMIT_ERROR was missing the "<" character needed to put 1087 documentation after a member. 1088 1089 src/liblzma/api/lzma/base.h | 2 +- 1090 1 file changed, 1 insertion(+), 1 deletion(-) 1091 1092commit 135d5a1a65a9e199b9a5550c1f788cf43cd81018 1093Author: Jia Tan <jiat0218@gmail.com> 1094Date: 2023-01-21 00:29:38 +0800 1095 1096 liblzma: Improve documentation for base.h. 1097 1098 Standardizing each function to always specify params and return values. 1099 Also fixed a small grammar mistake. 1100 1101 src/liblzma/api/lzma/base.h | 30 +++++++++++++++++++++++++----- 1102 1 file changed, 25 insertions(+), 5 deletions(-) 1103 1104commit 2287d5668384e289d51e72724997dc920483768e 1105Author: Jia Tan <jiat0218@gmail.com> 1106Date: 2023-02-14 00:08:33 +0800 1107 1108 liblzma: Minor improvements to vli.h. 1109 1110 Added [out] annotations to parameters that are pointers and can have 1111 their value changed. Also added a clarification to lzma_vli_is_valid. 1112 1113 src/liblzma/api/lzma/vli.h | 15 ++++++++------- 1114 1 file changed, 8 insertions(+), 7 deletions(-) 1115 1116commit 7124b8a16ae60cb2e93218ff531868eebd673bde 1117Author: Jia Tan <jiat0218@gmail.com> 1118Date: 2023-02-10 21:38:02 +0800 1119 1120 liblzma: Add comments for macros in delta.h. 1121 1122 Document LZMA_DELTA_DIST_MIN and LZMA_DELTA_DIST_MAX for completeness 1123 and to avoid Doxygen warnings. 1124 1125 src/liblzma/api/lzma/delta.h | 8 ++++++++ 1126 1 file changed, 8 insertions(+) 1127 1128commit 59c7bb8931159fdb1a31bbbeaed0e6984e2d3c81 1129Author: Jia Tan <jiat0218@gmail.com> 1130Date: 2023-02-10 21:35:23 +0800 1131 1132 liblzma: Improve documentation in index_hash.h. 1133 1134 All functions now explicitly specify parameter and return values. 1135 Also reworded the description of lzma_index_hash_init() for readability. 1136 1137 src/liblzma/api/lzma/index_hash.h | 36 +++++++++++++++++++++++++++--------- 1138 1 file changed, 27 insertions(+), 9 deletions(-) 1139 1140commit e970c28ac3cb2e8051925f81db2fe953664c2645 1141Author: Jia Tan <jiat0218@gmail.com> 1142Date: 2023-02-03 00:33:32 +0800 1143 1144 liblzma: Fix bug in lzma_str_from_filters() not checking filters[] length. 1145 1146 The bug is only a problem in applications that do not properly terminate 1147 the filters[] array with LZMA_VLI_UNKNOWN or have more than 1148 LZMA_FILTERS_MAX filters. This bug does not affect xz. 1149 1150 src/liblzma/common/string_conversion.c | 7 +++++++ 1151 1 file changed, 7 insertions(+) 1152 1153commit 85e01266a96689448abb249da6c6abc3afcd4a4e 1154Author: Jia Tan <jiat0218@gmail.com> 1155Date: 2023-02-03 00:32:47 +0800 1156 1157 Tests: Create test_filter_str.c. 1158 1159 Tests lzma_str_to_filters(), lzma_str_from_filters(), and 1160 lzma_str_list_filters() API functions. 1161 1162 CMakeLists.txt | 1 + 1163 tests/Makefile.am | 2 + 1164 tests/test_filter_str.c | 593 ++++++++++++++++++++++++++++++++++++++++++++++++ 1165 3 files changed, 596 insertions(+) 1166 1167commit 3fa0f3ba12dd3383f62dbfa18a864f9b4217fa0a 1168Author: Jia Tan <jiat0218@gmail.com> 1169Date: 2023-01-22 08:49:00 +0800 1170 1171 liblzma: Fix typos in comments in string_conversion.c. 1172 1173 src/liblzma/common/string_conversion.c | 4 ++-- 1174 1 file changed, 2 insertions(+), 2 deletions(-) 1175 1176commit 32dbe045d74e94f75c53236fa2a6c0454d7b6d9e 1177Author: Jia Tan <jiat0218@gmail.com> 1178Date: 2023-02-03 00:20:20 +0800 1179 1180 liblzma: Clarify block encoder and decoder documentation. 1181 1182 Added a few sentences to the description for lzma_block_encoder() and 1183 lzma_block_decoder() to highlight that the Block Header must be coded 1184 before calling these functions. 1185 1186 src/liblzma/api/lzma/block.h | 15 +++++++++++---- 1187 1 file changed, 11 insertions(+), 4 deletions(-) 1188 1189commit ccf12acbfa7331b1bbb99ec55879186eb35f879f 1190Author: Jia Tan <jiat0218@gmail.com> 1191Date: 2023-02-03 00:12:24 +0800 1192 1193 Update lzma_block documentation for lzma_block_uncomp_encode(). 1194 1195 src/liblzma/api/lzma/block.h | 3 +++ 1196 1 file changed, 3 insertions(+) 1197 1198commit 6a0b168dd9dc1ef437255c4bfdc6eff8b96fdb24 1199Author: Jia Tan <jiat0218@gmail.com> 1200Date: 2023-02-03 00:11:37 +0800 1201 1202 liblzma: Minor edits to lzma_block header_size documentation. 1203 1204 src/liblzma/api/lzma/block.h | 3 ++- 1205 1 file changed, 2 insertions(+), 1 deletion(-) 1206 1207commit 84ce36f90e68471fec1f0e61cd93ac7ed9ab4883 1208Author: Jia Tan <jiat0218@gmail.com> 1209Date: 2023-02-03 00:11:07 +0800 1210 1211 liblzma: Enumerate functions that read version in lzma_block. 1212 1213 src/liblzma/api/lzma/block.h | 13 +++++++++++-- 1214 1 file changed, 11 insertions(+), 2 deletions(-) 1215 1216commit d6620774682830d606f57109861b6763805b3492 1217Author: Jia Tan <jiat0218@gmail.com> 1218Date: 2023-02-03 00:10:34 +0800 1219 1220 liblzma: Clarify comment in block.h. 1221 1222 src/liblzma/api/lzma/block.h | 3 ++- 1223 1 file changed, 2 insertions(+), 1 deletion(-) 1224 1225commit 880adb5aa25f66a53d81c2f3acc716f7a4d373d1 1226Author: Jia Tan <jiat0218@gmail.com> 1227Date: 2023-02-03 00:07:23 +0800 1228 1229 liblzma: Improve documentation for block.h. 1230 1231 Standardizing each function to always specify params and return values. 1232 Output pointer parameters are also marked with doxygen style [out] to 1233 make it clear. Any note sections were also moved above the parameter and 1234 return sections for consistency. 1235 1236 src/liblzma/api/lzma/block.h | 96 ++++++++++++++++++++++++++++++++++---------- 1237 1 file changed, 75 insertions(+), 21 deletions(-) 1238 1239commit b5b1b1f061c342271e4977ce5cba604a19c0ca52 1240Author: Jia Tan <jiat0218@gmail.com> 1241Date: 2023-02-01 23:38:30 +0800 1242 1243 liblzma: Clarify a comment about LZMA_STR_NO_VALIDATION. 1244 1245 The flag description for LZMA_STR_NO_VALIDATION was previously confusing 1246 about the treatment for filters than cannot be used with .xz format 1247 (lzma1) without using LZMA_STR_ALL_FILTERS. Now, it is clear that 1248 LZMA_STR_NO_VALIDATION is not a super set of LZMA_STR_ALL_FILTERS. 1249 1250 src/liblzma/api/lzma/filter.h | 5 +++-- 1251 1 file changed, 3 insertions(+), 2 deletions(-) 1252 1253commit e904e778b82b14f2779aab80d6c8f3c01a3fc54b 1254Author: Jia Tan <jiat0218@gmail.com> 1255Date: 2023-01-27 20:14:51 +0800 1256 1257 Translations: Add Brazilian Portuguese translation of man pages. 1258 1259 Thanks to Rafael Fontenelle. 1260 1261 po4a/po4a.conf | 2 +- 1262 po4a/pt_BR.po | 3677 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1263 2 files changed, 3678 insertions(+), 1 deletion(-) 1264 1265commit e9c47e79c9584ba1126f5fa0dbe6c96e67411aa6 1266Author: Jia Tan <jiat0218@gmail.com> 1267Date: 2023-01-24 20:48:50 +0800 1268 1269 liblzma: Fix documentation in filter.h for lzma_str_to_filters() 1270 1271 The previous documentation for lzma_str_to_filters() was technically 1272 correct, but misleading. lzma_str_to_filters() returns NULL on success, 1273 which is in practice always defined to 0. This is the same value as 1274 LZMA_OK, but lzma_str_to_filters() does not return lzma_ret so we should 1275 be more clear. 1276 1277 src/liblzma/api/lzma/filter.h | 2 +- 1278 1 file changed, 1 insertion(+), 1 deletion(-) 1279 1280commit 99575947a58a60416c570eb78038d18a1ea4cef4 1281Author: Jia Tan <jiat0218@gmail.com> 1282Date: 2023-01-07 21:55:06 +0800 1283 1284 xz: Refactor duplicated check for custom suffix when using --format=raw 1285 1286 src/xz/args.c | 8 ++++++++ 1287 src/xz/suffix.c | 26 ++++++++------------------ 1288 src/xz/suffix.h | 8 ++++++++ 1289 3 files changed, 24 insertions(+), 18 deletions(-) 1290 1291commit 76dec92fcca4a9ccd2063ed6d5d9e3474665baad 1292Author: Jia Tan <jiat0218@gmail.com> 1293Date: 2023-01-20 21:53:14 +0800 1294 1295 liblzma: Set documentation on all reserved fields to private. 1296 1297 This prevents the reserved fields from being part of the generated 1298 Doxygen documentation. 1299 1300 src/liblzma/api/lzma/base.h | 17 +++++++++++++++ 1301 src/liblzma/api/lzma/block.h | 43 +++++++++++++++++++++++++++++++++++++ 1302 src/liblzma/api/lzma/container.h | 24 +++++++++++++++++++++ 1303 src/liblzma/api/lzma/delta.h | 12 +++++++++++ 1304 src/liblzma/api/lzma/index.h | 27 +++++++++++++++++++++++ 1305 src/liblzma/api/lzma/lzma12.h | 22 +++++++++++++++++++ 1306 src/liblzma/api/lzma/stream_flags.h | 28 ++++++++++++++++++++++++ 1307 7 files changed, 173 insertions(+) 1308 1309commit bd213d06ebf92cf42eeb97e7c578bddc857f8ea8 1310Author: Jia Tan <jiat0218@gmail.com> 1311Date: 2022-12-21 23:59:43 +0800 1312 1313 liblzma: Highlight liblzma API headers should not be included directly. 1314 1315 This improves the generated Doxygen HTML files to better highlight 1316 how to properly use the liblzma API header files. 1317 1318 src/liblzma/api/lzma/base.h | 5 +++-- 1319 src/liblzma/api/lzma/bcj.h | 5 +++-- 1320 src/liblzma/api/lzma/block.h | 5 +++-- 1321 src/liblzma/api/lzma/check.h | 5 +++-- 1322 src/liblzma/api/lzma/container.h | 5 +++-- 1323 src/liblzma/api/lzma/delta.h | 5 +++-- 1324 src/liblzma/api/lzma/filter.h | 5 +++-- 1325 src/liblzma/api/lzma/hardware.h | 5 +++-- 1326 src/liblzma/api/lzma/index.h | 5 +++-- 1327 src/liblzma/api/lzma/index_hash.h | 5 +++-- 1328 src/liblzma/api/lzma/lzma12.h | 5 +++-- 1329 src/liblzma/api/lzma/stream_flags.h | 5 +++-- 1330 src/liblzma/api/lzma/version.h | 5 +++-- 1331 src/liblzma/api/lzma/vli.h | 5 +++-- 1332 14 files changed, 42 insertions(+), 28 deletions(-) 1333 1334commit 257dbff0ba1a7bc45a74d203ece015c9f70c88cd 1335Author: Jia Tan <jiat0218@gmail.com> 1336Date: 2023-01-19 20:35:09 +0800 1337 1338 tuklib_physmem: Silence warning from -Wcast-function-type on MinGW-w64. 1339 1340 tuklib_physmem depends on GetProcAddress() for both MSVC and MinGW-w64 1341 to retrieve a function address. The proper way to do this is to cast the 1342 return value to the type of function pointer retrieved. Unfortunately, 1343 this causes a cast-function-type warning, so the best solution is to 1344 simply ignore the warning. 1345 1346 src/common/tuklib_physmem.c | 18 ++++++++++++++++++ 1347 1 file changed, 18 insertions(+) 1348 1349commit 720ad4a44282a7ee59aa9920eaf495d85d245d97 1350Author: Jia Tan <jiat0218@gmail.com> 1351Date: 2023-01-16 21:35:45 +0800 1352 1353 xz: Add missing comment for coder_set_compression_settings() 1354 1355 src/xz/coder.h | 3 ++- 1356 1 file changed, 2 insertions(+), 1 deletion(-) 1357 1358commit 88dc19163421282369c0989e997c05f9a447edc6 1359Author: Jia Tan <jiat0218@gmail.com> 1360Date: 2023-01-16 20:55:10 +0800 1361 1362 xz: Do not set compression settings with raw format in list mode. 1363 1364 Calling coder_set_compression_settings() in list mode with verbose mode 1365 on caused the filter chain and memory requirements to print. This was 1366 unnecessary since the command results in an error and not consistent 1367 with other formats like lzma and alone. 1368 1369 src/xz/args.c | 3 ++- 1370 1 file changed, 2 insertions(+), 1 deletion(-) 1371 1372commit 039e0ab13efb144642f9d99eeeb9c668e76bb430 1373Author: Jia Tan <jiat0218@gmail.com> 1374Date: 2023-01-13 20:37:06 +0800 1375 1376 Translations: Update the Brazilian Portuguese translation. 1377 1378 po/pt_BR.po | 603 ++++++++++++++++++++++++++++++++++-------------------------- 1379 1 file changed, 344 insertions(+), 259 deletions(-) 1380 1381commit 718f7a60e740b26b8353965edaaddc7d4deb4d85 1382Author: Lasse Collin <lasse.collin@tukaani.org> 1383Date: 2023-01-12 13:04:05 +0200 1384 1385 Build: Omit -Wmissing-noreturn from the default warnings. 1386 1387 It's not that important. It can be annoying in builds that 1388 disable many features since in those cases the tests programs 1389 will correctly trigger this warning with Clang. 1390 1391 configure.ac | 1 - 1392 1 file changed, 1 deletion(-) 1393 1394commit 3ccedb09724c998c39d708c945f6da5852c39e13 1395Author: Lasse Collin <lasse.collin@tukaani.org> 1396Date: 2023-01-12 06:05:58 +0200 1397 1398 xz: Use ssize_t for the to-be-ignored return value from write(fd, ptr, 1). 1399 1400 It makes no difference here as the return value fits into an int 1401 too and it then gets ignored but this looks better. 1402 1403 src/xz/file_io.c | 2 +- 1404 1 file changed, 1 insertion(+), 1 deletion(-) 1405 1406commit 09fbd2f0527def89e839c8907de4fe7ef6bc5019 1407Author: Lasse Collin <lasse.collin@tukaani.org> 1408Date: 2023-01-12 06:01:12 +0200 1409 1410 xz: Silence warnings from -Wsign-conversion in a 32-bit build. 1411 1412 src/common/tuklib_mbstr_fw.c | 2 +- 1413 src/xz/list.c | 4 ++-- 1414 2 files changed, 3 insertions(+), 3 deletions(-) 1415 1416commit 683d3f178ef1487b5418be49f331b0131a101b40 1417Author: Lasse Collin <lasse.collin@tukaani.org> 1418Date: 2023-01-12 05:38:48 +0200 1419 1420 liblzma: Silence another warning from -Wsign-conversion in a 32-bit build. 1421 1422 It doesn't warn on a 64-bit system because truncating 1423 a ptrdiff_t (signed long) to uint32_t is diagnosed under 1424 -Wconversion by GCC and -Wshorten-64-to-32 by Clang. 1425 1426 src/liblzma/lz/lz_encoder_mf.c | 7 ++++--- 1427 1 file changed, 4 insertions(+), 3 deletions(-) 1428 1429commit 2b8062ef94a38d0f9ad0d1b309e8748db52f5c15 1430Author: Lasse Collin <lasse.collin@tukaani.org> 1431Date: 2023-01-12 04:46:45 +0200 1432 1433 liblzma: Silence a warning from -Wsign-conversion in a 32-bit build. 1434 1435 src/common/mythread.h | 4 ++-- 1436 1 file changed, 2 insertions(+), 2 deletions(-) 1437 1438commit b16b9c0d22227012518595c2222facc73bd833a8 1439Author: Lasse Collin <lasse.collin@tukaani.org> 1440Date: 2023-01-12 04:17:24 +0200 1441 1442 Build: Make configure add more warning flags for GCC and Clang. 1443 1444 -Wstrict-aliasing was removed from the list since it is enabled 1445 by -Wall already. 1446 1447 A normal build is clean with these on GNU/Linux x86-64 with 1448 GCC 12.2.0 and Clang 14.0.6. 1449 1450 configure.ac | 36 +++++++++++++++++++++++++++++++----- 1451 1 file changed, 31 insertions(+), 5 deletions(-) 1452 1453commit c47ecd6d3909d0d3ff48dfd6e2ee41e7c7130b94 1454Author: Lasse Collin <lasse.collin@tukaani.org> 1455Date: 2023-01-12 04:14:18 +0200 1456 1457 Tests: Fix warnings from clang --Wassign-enum. 1458 1459 Explicitly casting the integer to lzma_check silences the warning. 1460 Since such an invalid value is needed in multiple tests, a constant 1461 INVALID_LZMA_CHECK_ID was added to tests.h. 1462 1463 The use of 0x1000 for lzma_block.check wasn't optimal as if 1464 the underlying type is a char then 0x1000 will be truncated to 0. 1465 However, in these test cases the value is ignored, thus even with 1466 such truncation the test would have passed. 1467 1468 tests/test_block_header.c | 6 +++--- 1469 tests/test_check.c | 2 +- 1470 tests/test_stream_flags.c | 8 ++++---- 1471 tests/tests.h | 9 +++++++++ 1472 4 files changed, 17 insertions(+), 8 deletions(-) 1473 1474commit 34e13ce015232968731de2a9ec3440a08b0084b1 1475Author: Lasse Collin <lasse.collin@tukaani.org> 1476Date: 2023-01-12 03:51:07 +0200 1477 1478 Tests: Silence warnings from -Wsign-conversion. 1479 1480 Note that assigning an unsigned int to lzma_check doesn't warn 1481 on GNU/Linux x86-64 since the enum type is unsigned on that 1482 platform. The enum can be signed on some other platform though 1483 so it's best to use enumeration type lzma_check in these situations. 1484 1485 tests/test_check.c | 6 +++--- 1486 tests/test_stream_flags.c | 10 +++++----- 1487 2 files changed, 8 insertions(+), 8 deletions(-) 1488 1489commit 6671d0fe46b77f0fafce860836b7a12dc3cda14a 1490Author: Lasse Collin <lasse.collin@tukaani.org> 1491Date: 2023-01-12 03:19:59 +0200 1492 1493 liblzma: Silence warnings from clang -Wconditional-uninitialized. 1494 1495 This is similar to 2ce4f36f179a81d0c6e182a409f363df759d1ad0. 1496 The actual initialization of the variables is done inside 1497 mythread_sync() macro. Clang doesn't seem to see that 1498 the initialization code inside the macro is always executed. 1499 1500 src/liblzma/common/stream_decoder_mt.c | 8 +++++--- 1501 src/liblzma/common/stream_encoder_mt.c | 2 +- 1502 2 files changed, 6 insertions(+), 4 deletions(-) 1503 1504commit d3e833ca1d2abda54648494c33aca73a40a47efe 1505Author: Lasse Collin <lasse.collin@tukaani.org> 1506Date: 2023-01-12 03:11:40 +0200 1507 1508 Fix warnings from clang -Wdocumentation. 1509 1510 src/liblzma/check/check.h | 4 ---- 1511 src/liblzma/lz/lz_encoder_mf.c | 4 ++-- 1512 src/xz/options.c | 4 ++-- 1513 3 files changed, 4 insertions(+), 8 deletions(-) 1514 1515commit 977dd2e26bc50efec8d30fb90380394042d24558 1516Author: Lasse Collin <lasse.collin@tukaani.org> 1517Date: 2023-01-12 03:04:28 +0200 1518 1519 Tests: test_lzip_decoder: Remove trailing white-space. 1520 1521 tests/test_lzip_decoder.c | 4 ++-- 1522 1 file changed, 2 insertions(+), 2 deletions(-) 1523 1524commit c55157ed7437ab14f2afb7fecf331e321f2edf9a 1525Author: Lasse Collin <lasse.collin@tukaani.org> 1526Date: 2023-01-12 03:03:55 +0200 1527 1528 Tests: test_lzip_decoder: Silence warnings from -Wsign-conversion. 1529 1530 tests/test_lzip_decoder.c | 13 +++++++------ 1531 1 file changed, 7 insertions(+), 6 deletions(-) 1532 1533commit 18b845e69752c975dfeda418ec00eda22605c2ee 1534Author: Lasse Collin <lasse.collin@tukaani.org> 1535Date: 2023-01-11 18:52:54 +0200 1536 1537 Bump version and soname for 5.4.1. 1538 1539 src/liblzma/Makefile.am | 2 +- 1540 src/liblzma/api/lzma/version.h | 2 +- 1541 2 files changed, 2 insertions(+), 2 deletions(-) 1542 1543commit 4080bbb844fb36701ffb978f0c41ea2c2c9f8960 1544Author: Jia Tan <jiat0218@gmail.com> 1545Date: 2023-01-11 23:58:16 +0800 1546 1547 Add NEWS for 5.4.1. 1548 1549 NEWS | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1550 1 file changed, 70 insertions(+) 1551 1552commit 674c89fdb8c457ebc3a0652e235d8b6cd7b7dee2 1553Author: Lasse Collin <lasse.collin@tukaani.org> 1554Date: 2023-01-10 11:56:11 +0200 1555 1556 sysdefs.h: Don't include strings.h anymore. 1557 1558 On some platforms src/xz/suffix.c may need <strings.h> for 1559 strcasecmp() but suffix.c includes the header when it needs it. 1560 1561 Unless there is an old system that otherwise supports enough C99 1562 to build XZ Utils but doesn't have C89/C90-compatible <string.h>, 1563 there should be no need to include <strings.h> in sysdefs.h. 1564 1565 src/common/sysdefs.h | 6 ------ 1566 1 file changed, 6 deletions(-) 1567 1568commit 2a6b938084fac9ddb39cd69c9beeed15c3b6f6f6 1569Author: Lasse Collin <lasse.collin@tukaani.org> 1570Date: 2023-01-10 11:23:41 +0200 1571 1572 xz: Include <strings.h> in suffix.c if needed for strcasecmp(). 1573 1574 SUSv2 and POSIX.1‐2017 declare only a few functions in <strings.h>. 1575 Of these, strcasecmp() is used on some platforms in suffix.c. 1576 Nothing else in the project needs <strings.h> (at least if 1577 building on a modern system). 1578 1579 sysdefs.h currently includes <strings.h> if HAVE_STRINGS_H is 1580 defined and suffix.c relied on this. 1581 1582 Note that dos/config.h doesn't #define HAVE_STRINGS_H even though 1583 DJGPP does have strings.h. It isn't needed with DJGPP as strcasecmp() 1584 is also in <string.h> in DJGPP. 1585 1586 src/xz/suffix.c | 3 +++ 1587 1 file changed, 3 insertions(+) 1588 1589commit aea639e81beb548e3114c74b6d9a894d6e036189 1590Author: Jia Tan <jiat0218@gmail.com> 1591Date: 2023-01-11 22:46:48 +0800 1592 1593 xz: Fix warning -Wformat-nonliteral on clang in message.c. 1594 1595 clang and gcc differ in how they handle -Wformat-nonliteral. gcc will 1596 allow a non-literal format string as long as the function takes its 1597 format arguments as a va_list. 1598 1599 src/xz/message.c | 9 +++++++++ 1600 1 file changed, 9 insertions(+) 1601 1602commit e3b42bfcb0f67988beee7c7022fed0361282be45 1603Author: Jia Tan <jiat0218@gmail.com> 1604Date: 2023-01-11 20:58:31 +0800 1605 1606 Tests: Fix test_filter_flags copy/paste error. 1607 1608 tests/test_filter_flags.c | 4 ++-- 1609 1 file changed, 2 insertions(+), 2 deletions(-) 1610 1611commit 21625b7e11d004788e40eb5eb88d9d89f65fe347 1612Author: Jia Tan <jiat0218@gmail.com> 1613Date: 2023-01-11 20:42:29 +0800 1614 1615 Tests: Fix type-limits warning in test_filter_flags. 1616 1617 This only occurs in test_filter_flags when the BCJ filters are not 1618 configured and built. In this case, ARRAY_SIZE() returns 0 and causes a 1619 type-limits warning with the loop variable since an unsigned number will 1620 always be >= 0. 1621 1622 tests/test_filter_flags.c | 13 ++++++++++--- 1623 1 file changed, 10 insertions(+), 3 deletions(-) 1624 1625commit c337983e928682d56ce3470b286a8d5b8646e0ad 1626Author: Lasse Collin <lasse.collin@tukaani.org> 1627Date: 2023-01-10 22:14:03 +0200 1628 1629 liblzma: CLMUL CRC64: Work around a bug in MSVC, second attempt. 1630 1631 This affects only 32-bit x86 builds. x86-64 is OK as is. 1632 1633 I still cannot easily test this myself. The reporter has tested 1634 this and it passes the tests included in the CMake build and 1635 performance is good: raw CRC64 is 2-3 times faster than the 1636 C version of the slice-by-four method. (Note that liblzma doesn't 1637 include a MSVC-compatible version of the 32-bit x86 assembly code 1638 for the slice-by-four method.) 1639 1640 Thanks to Iouri Kharon for figuring out a fix, testing, and 1641 benchmarking. 1642 1643 src/liblzma/check/crc64_fast.c | 18 ++++++++++++++++++ 1644 1 file changed, 18 insertions(+) 1645 1646commit b7fb438ea0e3ee02e3a164f3b72fae456cbe34d7 1647Author: Jia Tan <jiat0218@gmail.com> 1648Date: 2023-01-11 01:18:50 +0800 1649 1650 Tests: Fix unused function warning in test_block_header. 1651 1652 One of the global arrays of filters was only used in a test that 1653 required both encoders and decoders to be configured in the build. 1654 1655 tests/test_block_header.c | 4 ++++ 1656 1 file changed, 4 insertions(+) 1657 1658commit 68e9ef036d18d7c3952bff0b391d5989b86934da 1659Author: Jia Tan <jiat0218@gmail.com> 1660Date: 2023-01-11 01:08:03 +0800 1661 1662 Tests: Fix unused function warning in test_index_hash. 1663 1664 test_index_hash does not use fill_index_hash() unless both encoders 1665 and decoders are configured in the build. 1666 1667 tests/test_index_hash.c | 4 +--- 1668 1 file changed, 1 insertion(+), 3 deletions(-) 1669 1670commit a387707cd8cdefbffb5b7429bda4b7fcc192954a 1671Author: Lasse Collin <lasse.collin@tukaani.org> 1672Date: 2023-01-10 00:33:14 +0200 1673 1674 Windows: Update INSTALL-MSVC.txt to recommend CMake over project files. 1675 1676 windows/INSTALL-MSVC.txt | 19 ++++++++++++------- 1677 1 file changed, 12 insertions(+), 7 deletions(-) 1678 1679commit 52902ad69518255a14b0144f0a2379e06fde5b6e 1680Author: Lasse Collin <lasse.collin@tukaani.org> 1681Date: 2023-01-10 12:47:16 +0200 1682 1683 Revert "liblzma: CLMUL CRC64: Workaround a bug in MSVC (VS2015-2022)." 1684 1685 This reverts commit 36edc65ab4cf10a131f239acbd423b4510ba52d5. 1686 1687 It was reported that it wasn't a good enough fix and MSVC 1688 still produced (different kind of) bad code when building 1689 for 32-bit x86 if optimizations are enabled. 1690 1691 Thanks to Iouri Kharon. 1692 1693 src/liblzma/check/crc64_fast.c | 6 ------ 1694 1 file changed, 6 deletions(-) 1695 1696commit e81b9fc48ca70f9228308d3f1871cd81f9a5a496 1697Author: Lasse Collin <lasse.collin@tukaani.org> 1698Date: 2023-01-10 10:05:13 +0200 1699 1700 sysdefs.h: Fix a comment. 1701 1702 src/common/sysdefs.h | 2 +- 1703 1 file changed, 1 insertion(+), 1 deletion(-) 1704 1705commit 6e89ab58b031aa046308a0b3504ff0a5be042571 1706Author: Lasse Collin <lasse.collin@tukaani.org> 1707Date: 2023-01-10 10:04:06 +0200 1708 1709 sysdefs.h: Don't include memory.h anymore even if it were available. 1710 1711 It quite probably was never needed, that is, any system where memory.h 1712 was required likely couldn't compile XZ Utils for other reasons anyway. 1713 1714 XZ Utils 5.2.6 and later source packages were generated using 1715 Autoconf 2.71 which no longer defines HAVE_MEMORY_H. So the code 1716 being removed is no longer used anyway. 1717 1718 src/common/sysdefs.h | 8 ++------ 1719 1 file changed, 2 insertions(+), 6 deletions(-) 1720 1721commit 65c59ad429aa59f9df0326d9fc82931ba4a9d123 1722Author: Lasse Collin <lasse.collin@tukaani.org> 1723Date: 2023-01-10 08:50:26 +0200 1724 1725 CMake/Windows: Add a workaround for windres from GNU binutils. 1726 1727 This is combined from the following commits in the master branch: 1728 443dfebced041adc88f10d824188eeef5b5821a9 1729 6b117d3b1fe91eb26d533ab16a2e552f84148d47 1730 5e34774c31d1b7509b5cb77a3be9973adec59ea0 1731 1732 Thanks to Iouri Kharon for the bug report, the original patch, 1733 and testing. 1734 1735 CMakeLists.txt | 32 +++++++++++++++++++++++++++++++- 1736 1 file changed, 31 insertions(+), 1 deletion(-) 1737 1738commit 43521e77acc907863fa4f94aae276366172cb9ee 1739Author: Lasse Collin <lasse.collin@tukaani.org> 1740Date: 2023-01-06 22:53:38 +0200 1741 1742 Tests: test_filter_flags: Clean up minor issues. 1743 1744 Here are the list of the most significant issues addressed: 1745 - Avoid using internal common.h header. It's not good to copy the 1746 constants like this but common.h cannot be included for use outside 1747 of liblzma. This is the quickest thing to do that could be fixed later. 1748 1749 - Omit the INIT_FILTER macro. Initialization should be done with just 1750 regular designated initializers. 1751 1752 - Use start_offset = 257 for BCJ tests. It demonstrates that Filter 1753 Flags encoder and decoder don't validate the options thoroughly. 1754 257 is valid only for the x86 filter. This is a bit silly but 1755 not a significant problem in practice because the encoder and 1756 decoder initialization functions will catch bad alignment still. 1757 Perhaps this should be fixed but it's not urgent and doesn't need 1758 to be in 5.4.x. 1759 1760 - Various tweaks to comments such as filter id -> Filter ID 1761 1762 tests/test_filter_flags.c | 153 +++++++++++++++++++++++----------------------- 1763 1 file changed, 78 insertions(+), 75 deletions(-) 1764 1765commit 6b44cead95d767414272dc3a67898a36bfdf95b3 1766Author: Jia Tan <jiat0218@gmail.com> 1767Date: 2022-12-29 23:33:33 +0800 1768 1769 Tests: Refactors existing filter flags tests. 1770 1771 Converts the existing filter flags tests into tuktests. 1772 1773 tests/test_filter_flags.c | 655 ++++++++++++++++++++++++++++++++-------------- 1774 1 file changed, 457 insertions(+), 198 deletions(-) 1775 1776commit 1bbefa9659b202ba31bd244a9d0e4f0d37ff3ed7 1777Author: Lasse Collin <lasse.collin@tukaani.org> 1778Date: 2023-01-08 00:32:29 +0200 1779 1780 Tests: tuktest.h: Support tuktest_malloc(0). 1781 1782 It's not needed in XZ Utils at least for now. It's good to support 1783 it still because if such use is needed later, it wouldn't be 1784 caught on GNU/Linux since malloc(0) from glibc returns non-NULL. 1785 1786 tests/tuktest.h | 4 ++-- 1787 1 file changed, 2 insertions(+), 2 deletions(-) 1788 1789commit ce3a3fbc7c2c399aeed644d54f3bd56ac914dfee 1790Author: Lasse Collin <lasse.collin@tukaani.org> 1791Date: 2023-01-07 21:57:11 +0200 1792 1793 CMake: Update cmake_minimum_required from 3.13...3.16 to 3.13...3.25. 1794 1795 The changes listed on cmake-policies(7) for versions 3.17 to 3.25 1796 shouldn't affect this project. 1797 1798 CMakeLists.txt | 2 +- 1799 1 file changed, 1 insertion(+), 1 deletion(-) 1800 1801commit 99fcd57f2ea35eaa94e09f674d5364329c880fa2 1802Author: Lasse Collin <lasse.collin@tukaani.org> 1803Date: 2023-01-08 00:24:23 +0200 1804 1805 Update THANKS. 1806 1807 THANKS | 1 + 1808 1 file changed, 1 insertion(+) 1809 1810commit c0c13d9d82eb8a4302c8bbb8b4c5178d285fe9ab 1811Author: Lasse Collin <lasse.collin@tukaani.org> 1812Date: 2023-01-07 19:50:35 +0200 1813 1814 Update THANKS. 1815 1816 THANKS | 1 + 1817 1 file changed, 1 insertion(+) 1818 1819commit 3d45987451b1c3bb42697b29341824c0e5484cba 1820Author: Lasse Collin <lasse.collin@tukaani.org> 1821Date: 2023-01-09 11:27:24 +0200 1822 1823 CMake: Fix a copypaste error in xzdec Windows resource file handling. 1824 1825 It was my mistake. Thanks to Iouri Kharon for the bug report. 1826 1827 CMakeLists.txt | 4 ++-- 1828 1 file changed, 2 insertions(+), 2 deletions(-) 1829 1830commit 706bce5018d7cf83094e13454a0731169ec119b5 1831Author: Lasse Collin <lasse.collin@tukaani.org> 1832Date: 2023-01-07 19:50:03 +0200 1833 1834 CMake/Windows: Add resource files to xz.exe and xzdec.exe. 1835 1836 The command line tools cannot be built with MSVC for now but 1837 they can be built with MinGW-w64. 1838 1839 Thanks to Iouri Kharon for the bug report and the original patch. 1840 1841 CMakeLists.txt | 16 ++++++++++++++++ 1842 1 file changed, 16 insertions(+) 1843 1844commit e96dee55df04113c33b387ccdb6cb70935422d91 1845Author: Lasse Collin <lasse.collin@tukaani.org> 1846Date: 2023-01-09 12:22:05 +0200 1847 1848 liblzma: CLMUL CRC64: Workaround a bug in MSVC (VS2015-2022). 1849 1850 I haven't tested with MSVC myself and there doesn't seem to be 1851 information about the problem online, so I'm relying on the bug report. 1852 1853 Thanks to Iouri Kharon for the bug report and the patch. 1854 1855 src/liblzma/check/crc64_fast.c | 6 ++++++ 1856 1 file changed, 6 insertions(+) 1857 1858commit 52bc1ee34dda9bb6fb40175e5952863066681b77 1859Author: Lasse Collin <lasse.collin@tukaani.org> 1860Date: 2023-01-07 19:31:15 +0200 1861 1862 Build: Require that _mm_set_epi64x() is usable to enable CLMUL support. 1863 1864 VS2013 doesn't have _mm_set_epi64x() so this way CLMUL gets 1865 disabled with VS2013. 1866 1867 Thanks to Iouri Kharon for the bug report. 1868 1869 CMakeLists.txt | 3 ++- 1870 configure.ac | 8 ++++++-- 1871 2 files changed, 8 insertions(+), 3 deletions(-) 1872 1873commit bad44cfe19e8be8ae76755369be2a34abcd2b4fa 1874Author: Jia Tan <jiat0218@gmail.com> 1875Date: 2022-12-29 00:25:18 +0800 1876 1877 Tests: Creates test_index_hash.c 1878 1879 Tests all API functions exported from index_hash.h. Does not have a 1880 dedicated test for lzma_index_hash_end. 1881 1882 [Minor edits were made by Lasse Collin.] 1883 1884 .gitignore | 1 + 1885 CMakeLists.txt | 2 + 1886 tests/Makefile.am | 3 + 1887 tests/test_index_hash.c | 388 ++++++++++++++++++++++++++++++++++++++++++++++++ 1888 4 files changed, 394 insertions(+) 1889 1890commit 692ccdf5516dfe55fb6e9c5cdfb31f4c02c1ecd1 1891Author: Jia Tan <jiat0218@gmail.com> 1892Date: 2023-01-05 20:57:25 +0800 1893 1894 liblzma: Remove common.h include from common/index.h. 1895 1896 common/index.h is needed by liblzma internally and tests. common.h will 1897 include and define many things that are not needed by the tests. 1898 1899 Also, this prevents include order problems because both common.h and 1900 lzma.h define LZMA_API. On most platforms it results only in a warning 1901 but on Windows it would break the build as the definition in common.h 1902 must be used only for building liblzma itself. 1903 1904 src/liblzma/common/index.c | 1 + 1905 src/liblzma/common/index.h | 9 +++++++-- 1906 src/liblzma/common/index_decoder.h | 1 + 1907 src/liblzma/common/stream_buffer_encoder.c | 1 + 1908 4 files changed, 10 insertions(+), 2 deletions(-) 1909 1910commit 2ac7bafc8f07c1edefe96a4a7a040ddfff0eb5bb 1911Author: Jia Tan <jiat0218@gmail.com> 1912Date: 2022-08-17 20:20:16 +0800 1913 1914 liblzma: Add NULL check to lzma_index_hash_append. 1915 1916 This is for consistency with lzma_index_append. 1917 1918 src/liblzma/common/index_hash.c | 2 +- 1919 1 file changed, 1 insertion(+), 1 deletion(-) 1920 1921commit db714d30e0c74d1dd4af1a23ed62b44e0e8e4efc 1922Author: Jia Tan <jiat0218@gmail.com> 1923Date: 2022-08-17 17:59:51 +0800 1924 1925 liblzma: Replaced hardcoded 0x0 index indicator byte with macro 1926 1927 src/liblzma/common/index.h | 3 +++ 1928 src/liblzma/common/index_decoder.c | 2 +- 1929 src/liblzma/common/index_encoder.c | 2 +- 1930 src/liblzma/common/index_hash.c | 2 +- 1931 src/liblzma/common/stream_decoder.c | 3 ++- 1932 src/liblzma/common/stream_decoder_mt.c | 2 +- 1933 6 files changed, 9 insertions(+), 5 deletions(-) 1934 1935commit 39d2585dcd3e827cfc3c46025ab6708c4aeb36c6 1936Author: Jia Tan <jiat0218@gmail.com> 1937Date: 2023-01-06 20:43:31 +0800 1938 1939 Style: Change #if !defined() to #ifndef in mythread.h. 1940 1941 src/common/mythread.h | 2 +- 1942 1 file changed, 1 insertion(+), 1 deletion(-) 1943 1944commit 3f0130aa288e4ed57ace609517db9700a41223af 1945Author: Jia Tan <jiat0218@gmail.com> 1946Date: 2023-01-06 20:35:55 +0800 1947 1948 Build: Add missing stream_decoder_mt.c to .vcxproj files. 1949 1950 The line in the .vcxproj files for building with was missing in 5.4.0. 1951 Thank to Hajin Jang for reporting the issue. 1952 1953 windows/vs2013/liblzma.vcxproj | 1 + 1954 windows/vs2013/liblzma_dll.vcxproj | 1 + 1955 windows/vs2017/liblzma.vcxproj | 1 + 1956 windows/vs2017/liblzma_dll.vcxproj | 1 + 1957 windows/vs2019/liblzma.vcxproj | 1 + 1958 windows/vs2019/liblzma_dll.vcxproj | 1 + 1959 6 files changed, 6 insertions(+) 1960 1961commit f204d1050a515d17851eed9049862ce5a9c729c1 1962Author: Lasse Collin <lasse.collin@tukaani.org> 1963Date: 2023-01-04 22:40:54 +0200 1964 1965 Update THANKS. 1966 1967 THANKS | 1 + 1968 1 file changed, 1 insertion(+) 1969 1970commit 34a9c2d650d6c30bd88e1b21910dd863209aa884 1971Author: Lasse Collin <lasse.collin@tukaani.org> 1972Date: 2023-01-04 18:40:28 +0200 1973 1974 Tests: Adjust style in test_compress.sh. 1975 1976 tests/test_compress.sh | 12 +++++++----- 1977 1 file changed, 7 insertions(+), 5 deletions(-) 1978 1979commit 761c208d58e0c3daa0f46e68b406adfc318d2a46 1980Author: Jia Tan <jiat0218@gmail.com> 1981Date: 2023-01-04 23:58:58 +0800 1982 1983 Tests: Replace non portable shell parameter expansion 1984 1985 The shell parameter expansion using # and ## is not supported in 1986 Solaris 10 Bourne shell (/bin/sh). Even though this is POSIX, it is not fully 1987 portable, so we should avoid it. 1988 1989 tests/create_compress_files.c | 2 +- 1990 tests/test_compress.sh | 20 +++++++++++++------- 1991 tests/test_compress_prepared_bcj_sparc | 2 +- 1992 tests/test_compress_prepared_bcj_x86 | 2 +- 1993 4 files changed, 16 insertions(+), 10 deletions(-) 1994 1995commit 8a7cbc074547e55e57f4f3696f69bedeb05e14c4 1996Author: Jia Tan <jiat0218@gmail.com> 1997Date: 2023-01-03 21:02:38 +0800 1998 1999 Translations: Add Korean translation of man pages. 2000 2001 Thanks to Seong-ho Cho 2002 2003 po4a/ko.po | 5552 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2004 po4a/po4a.conf | 2 +- 2005 2 files changed, 5553 insertions(+), 1 deletion(-) 2006 2007commit ca2af49bb8be5995eb0e6a3abf457622626d49a7 2008Author: Jia Tan <jiat0218@gmail.com> 2009Date: 2023-01-03 20:47:27 +0800 2010 2011 Translations: Update the Esperanto translation. 2012 2013 po/eo.po | 620 ++++++++++++++++++++++++++++++++++----------------------------- 2014 1 file changed, 332 insertions(+), 288 deletions(-) 2015 2016commit bfba3394aed03311fe9a746d3141b2e16d8b9325 2017Author: Lasse Collin <lasse.collin@tukaani.org> 2018Date: 2023-01-02 17:05:07 +0200 2019 2020 Build: Fix config.h comments. 2021 2022 configure.ac | 2 +- 2023 m4/tuklib_progname.m4 | 2 +- 2024 2 files changed, 2 insertions(+), 2 deletions(-) 2025 2026commit 507648ad114c2ae0cd6d181063e1ac07e8106718 2027Author: Jia Tan <jiat0218@gmail.com> 2028Date: 2023-01-02 22:33:48 +0800 2029 2030 Build: Only define HAVE_PROGRAM_INVOCATION_NAME if it is set to 1. 2031 2032 HAVE_DECL_PROGRAM_INVOCATION_NAME is renamed to 2033 HAVE_PROGRAM_INVOCATION_NAME. Previously, 2034 HAVE_DECL_PROGRAM_INVOCATION_NAME was always set when 2035 building with autotools. CMake would only set this when it was 1, and the 2036 dos/config.h did not define it. The new macro definition is consistent 2037 across build systems. 2038 2039 cmake/tuklib_progname.cmake | 5 ++--- 2040 m4/tuklib_progname.m4 | 5 ++++- 2041 src/common/tuklib_progname.c | 2 +- 2042 src/common/tuklib_progname.h | 2 +- 2043 4 files changed, 8 insertions(+), 6 deletions(-) 2044 2045commit ab5229d32adfec1f3fbc95228d9dd6f560732ab5 2046Author: Lasse Collin <lasse.collin@tukaani.org> 2047Date: 2022-12-30 20:10:08 +0200 2048 2049 Tests: test_check: Test corner cases of CLMUL CRC64. 2050 2051 tests/test_check.c | 27 +++++++++++++++++++++++++++ 2052 1 file changed, 27 insertions(+) 2053 2054commit 8791826f31733fda0a13b411c2ed930faaeb25aa 2055Author: Lasse Collin <lasse.collin@tukaani.org> 2056Date: 2022-12-30 19:36:49 +0200 2057 2058 Tests: Clarify a comment in test_lzip_decoder.c. 2059 2060 tests/test_lzip_decoder.c | 8 ++++++-- 2061 1 file changed, 6 insertions(+), 2 deletions(-) 2062 2063commit c410d812ea12bfc74f6b727c1a799478c79f19ca 2064Author: Jia Tan <jiat0218@gmail.com> 2065Date: 2022-12-29 01:55:19 +0800 2066 2067 xz: Includes <time.h> and <sys/time.h> conditionally in mytime.c. 2068 2069 Previously, mytime.c depended on mythread.h for <time.h> to be included. 2070 2071 src/xz/mytime.c | 4 +++- 2072 1 file changed, 3 insertions(+), 1 deletion(-) 2073 2074commit 501c6013d4a59fae5d4368e9657c4885493db809 2075Author: Jia Tan <jiat0218@gmail.com> 2076Date: 2022-12-29 01:15:27 +0800 2077 2078 liblzma: Includes sys/time.h conditionally in mythread 2079 2080 Previously, <sys/time.h> was always included, even if mythread only used 2081 clock_gettime. <time.h> is still needed even if clock_gettime is not used 2082 though because struct timespec is needed for mythread_condtime. 2083 2084 src/common/mythread.h | 8 +++++++- 2085 1 file changed, 7 insertions(+), 1 deletion(-) 2086 2087commit 9e3cb514b5b95bd235dcdff3db4436f57444ee4f 2088Author: Jia Tan <jiat0218@gmail.com> 2089Date: 2022-12-29 01:10:53 +0800 2090 2091 Build: No longer require HAVE_DECL_CLOCK_MONOTONIC to always be set. 2092 2093 Previously, if threading was enabled HAVE_DECL_CLOCK_MONOTONIC would always 2094 be set to 0 or 1. However, this macro was needed in xz so if xz was not 2095 built with threading and HAVE_DECL_CLOCK_MONOTONIC was not defined but 2096 HAVE_CLOCK_GETTIME was, it caused a warning during build. Now, 2097 HAVE_DECL_CLOCK_MONOTONIC has been renamed to HAVE_CLOCK_MONOTONIC and 2098 will only be set if it is 1. 2099 2100 CMakeLists.txt | 8 +++----- 2101 configure.ac | 5 ++++- 2102 src/common/mythread.h | 4 ++-- 2103 src/xz/mytime.c | 5 ++--- 2104 4 files changed, 11 insertions(+), 11 deletions(-) 2105 2106commit 6fc3e5467911572fa9af4021ea46396261aae796 2107Author: Jia Tan <jiat0218@gmail.com> 2108Date: 2022-12-28 01:14:07 +0800 2109 2110 Translations: Add Ukrainian translations of man pages. 2111 2112 Thanks to Yuri Chornoivan 2113 2114 po4a/po4a.conf | 2 +- 2115 po4a/uk.po | 3676 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2116 2 files changed, 3677 insertions(+), 1 deletion(-) 2117 2118commit e84f2ab7f8bc38cd8f8befa0bb398656c3c11f8e 2119Author: Jia Tan <jiat0218@gmail.com> 2120Date: 2022-12-22 23:14:53 +0800 2121 2122 liblzma: Update documentation for lzma_filter_encoder. 2123 2124 src/liblzma/common/filter_encoder.c | 7 +++++-- 2125 1 file changed, 5 insertions(+), 2 deletions(-) 2126 2127commit b14b8dbba9a3b232787ae218b46430b9246383dd 2128Author: Jia Tan <jiat0218@gmail.com> 2129Date: 2022-12-21 21:12:03 +0800 2130 2131 Tests: Adds lzip decoder tests 2132 2133 .gitignore | 1 + 2134 tests/Makefile.am | 2 + 2135 tests/test_lzip_decoder.c | 471 ++++++++++++++++++++++++++++++++++++++++++++++ 2136 3 files changed, 474 insertions(+) 2137 2138commit 09a114805e1d4f9a02a06cee7dbf2f5014d1f710 2139Author: Jia Cheong Tan <jiat0218@gmail.com> 2140Date: 2022-12-20 22:05:21 +0800 2141 2142 Doxygen: Update .gitignore for generating docs for in source build. 2143 2144 In source builds are not recommended, but we should still ignore 2145 the generated artifacts. 2146 2147 .gitignore | 2 ++ 2148 1 file changed, 2 insertions(+) 2149 2150commit d3e6fe44196bf9478ad193522e2b48febf2eca6b 2151Author: Jia Tan <jiat0218@gmail.com> 2152Date: 2022-12-20 20:46:44 +0800 2153 2154 liblzma: Fix lzma_microlzma_encoder() return value. 2155 2156 Using return_if_error on lzma_lzma_lclppb_encode was improper because 2157 return_if_error is expecting an lzma_ret value, but 2158 lzma_lzma_lclppb_encode returns a boolean. This could result in 2159 lzma_microlzma_encoder, which would be misleading for applications. 2160 2161 src/liblzma/common/microlzma_encoder.c | 3 ++- 2162 1 file changed, 2 insertions(+), 1 deletion(-) 2163 2164commit b55a27b46f52524a4a8d9cdef03e6689cefc1375 2165Author: Lasse Collin <lasse.collin@tukaani.org> 2166Date: 2022-12-16 18:30:02 +0200 2167 2168 liblzma: Update authors list in arm64.c. 2169 2170 src/liblzma/simple/arm64.c | 1 + 2171 1 file changed, 1 insertion(+) 2172 2173commit 2fd28d2b7cec3468324a6f15eff7e73c285b1d7d 2174Author: Jia Tan <jiat0218@gmail.com> 2175Date: 2022-12-16 20:58:55 +0800 2176 2177 CMake: Update .gitignore for CMake artifacts from in source build. 2178 2179 In source builds are not recommended, but we can make it easier 2180 by ignoring the generated artifacts from CMake. 2181 2182 .gitignore | 23 +++++++++++++++++++++++ 2183 1 file changed, 23 insertions(+) 2184 2185commit b69da6d4bb6bb11fc0cf066920791990d2b22a06 2186Author: Lasse Collin <lasse.collin@tukaani.org> 2187Date: 2022-12-13 20:37:17 +0200 2188 2189 Bump version to 5.4.0 and soname to 5.4.0. 2190 2191 src/liblzma/Makefile.am | 2 +- 2192 src/liblzma/api/lzma/version.h | 6 +++--- 2193 src/liblzma/liblzma_generic.map | 2 +- 2194 src/liblzma/liblzma_linux.map | 2 +- 2195 4 files changed, 6 insertions(+), 6 deletions(-) 2196 2197commit 20869eb3fb280ff4f271ef527b12b6bf68b05e19 2198Author: Lasse Collin <lasse.collin@tukaani.org> 2199Date: 2022-12-13 20:29:39 +0200 2200 2201 Update INSTALL: CMake on Windows isn't experimental anymore. 2202 2203 Using CMake to build liblzma should work on a few other OSes 2204 but building the command line tools is still subtly broken. 2205 2206 It is known that shared library versioning may differ between 2207 CMake and Libtool builds on some OSes, most notably Darwin. 2208 2209 INSTALL | 10 ++++------ 2210 1 file changed, 4 insertions(+), 6 deletions(-) 2211 2212commit cbbd84451944e3e8c63acfaa3c923f6d8aff7852 2213Author: Lasse Collin <lasse.collin@tukaani.org> 2214Date: 2022-12-13 19:47:53 +0200 2215 2216 Add NEWS for 5.4.0. 2217 2218 NEWS | 202 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2219 1 file changed, 202 insertions(+) 2220 2221commit c3e94d37e8d10a3e96019864b6f5d7b578db2c14 2222Author: Lasse Collin <lasse.collin@tukaani.org> 2223Date: 2022-12-13 17:41:20 +0200 2224 2225 Fix a typo in NEWS. 2226 2227 NEWS | 2 +- 2228 1 file changed, 1 insertion(+), 1 deletion(-) 2229 2230commit 0d2a2e0a545c3da2b3e9500f1e531eb903087245 2231Author: Lasse Collin <lasse.collin@tukaani.org> 2232Date: 2022-12-13 17:41:03 +0200 2233 2234 Add NEWS for 5.2.10. 2235 2236 NEWS | 12 ++++++++++++ 2237 1 file changed, 12 insertions(+) 2238 2239commit 177ece1c8eb007188fb1b04eff09ca2193fbdea6 2240Author: Lasse Collin <lasse.collin@tukaani.org> 2241Date: 2022-12-13 12:30:45 +0200 2242 2243 Tests: Fix a typo in tests/files/README. 2244 2245 tests/files/README | 2 +- 2246 1 file changed, 1 insertion(+), 1 deletion(-) 2247 2248commit 60f45bdbaa6b07558b3f4baac285739b0c6342f5 2249Author: Lasse Collin <lasse.collin@tukaani.org> 2250Date: 2022-12-13 12:30:09 +0200 2251 2252 Tests: Add two ARM64 test files. 2253 2254 tests/files/README | 7 +++++++ 2255 tests/files/good-1-arm64-lzma2-1.xz | Bin 0 -> 512 bytes 2256 tests/files/good-1-arm64-lzma2-2.xz | Bin 0 -> 488 bytes 2257 tests/test_files.sh | 5 +++++ 2258 4 files changed, 12 insertions(+) 2259 2260commit f5e419550619c548c7c35d7e367cf00580a56521 2261Author: Lasse Collin <lasse.collin@tukaani.org> 2262Date: 2022-12-12 22:44:21 +0200 2263 2264 Translations: Update the Catalan translation. 2265 2266 po/ca.po | 657 +++++++++++++++++++++++++++++---------------------------------- 2267 1 file changed, 306 insertions(+), 351 deletions(-) 2268 2269commit 0fb9d355da3789b1757040af475b4e6bbc8b8af8 2270Author: Lasse Collin <lasse.collin@tukaani.org> 2271Date: 2022-12-12 19:18:12 +0200 2272 2273 Update THANKS. 2274 2275 THANKS | 1 + 2276 1 file changed, 1 insertion(+) 2277 2278commit e5b6c161c61a37c54dcb76a99bbb83ac4abe02dc 2279Author: Lasse Collin <lasse.collin@tukaani.org> 2280Date: 2022-12-12 19:07:58 +0200 2281 2282 Update AUTHORS. 2283 2284 AUTHORS | 12 ++++++++++++ 2285 1 file changed, 12 insertions(+) 2286 2287commit f2d98e691099d82054d5f3071ef6f5e809932e44 2288Author: Lasse Collin <lasse.collin@tukaani.org> 2289Date: 2022-12-12 15:31:14 +0200 2290 2291 Docs: Omit multi-threaded decompress from TODO. 2292 2293 The TODO file outdated still. 2294 2295 TODO | 2 -- 2296 1 file changed, 2 deletions(-) 2297 2298commit b42908c42a4cc091db45a7e5ba0e0ecceaa3f6da 2299Author: Lasse Collin <lasse.collin@tukaani.org> 2300Date: 2022-12-11 21:16:09 +0200 2301 2302 Docs: Update xz-file-format.txt to 1.1.0 for ARM64 filter. 2303 2304 doc/xz-file-format.txt | 29 ++++++++++++++++++++++------- 2305 1 file changed, 22 insertions(+), 7 deletions(-) 2306 2307commit 854f2f5946b353cb0963fd6dfd54d363adc89b9f 2308Author: Lasse Collin <lasse.collin@tukaani.org> 2309Date: 2022-12-11 21:13:57 +0200 2310 2311 xz: Rename --experimental-arm64 to --arm64. 2312 2313 src/xz/args.c | 2 +- 2314 1 file changed, 1 insertion(+), 1 deletion(-) 2315 2316commit 31dbd1e5fb65831915a7bbb531c3f19aea8d57a5 2317Author: Lasse Collin <lasse.collin@tukaani.org> 2318Date: 2022-12-11 21:13:06 +0200 2319 2320 liblzma: Change LZMA_FILTER_ARM64 to the official Filter ID 0x0A. 2321 2322 src/liblzma/api/lzma/bcj.h | 6 +----- 2323 1 file changed, 1 insertion(+), 5 deletions(-) 2324 2325commit 01b3549e523edac899ec4925b282ceddd20da116 2326Author: Lasse Collin <lasse.collin@tukaani.org> 2327Date: 2022-12-08 19:24:22 +0200 2328 2329 xz: Make args_info.files_name a const pointer. 2330 2331 src/xz/args.c | 2 +- 2332 src/xz/args.h | 2 +- 2333 2 files changed, 2 insertions(+), 2 deletions(-) 2334 2335commit bc665b84ea6bf7946394a08122177efe41b26a5f 2336Author: Lasse Collin <lasse.collin@tukaani.org> 2337Date: 2022-12-08 19:18:16 +0200 2338 2339 xz: Don't modify argv[]. 2340 2341 The code that parses --memlimit options and --block-list modified 2342 the argv[] when parsing the option string from optarg. This was 2343 visible in "ps auxf" and such and could be confusing. I didn't 2344 understand it back in the day when I wrote that code. Now a copy 2345 is allocated when modifiable strings are needed. 2346 2347 src/xz/args.c | 23 +++++++++++++++++++---- 2348 1 file changed, 19 insertions(+), 4 deletions(-) 2349 2350commit a13064e1c290de7933db72b6dffbd65cfce59c9f 2351Author: Lasse Collin <lasse.collin@tukaani.org> 2352Date: 2022-12-08 18:18:57 +0200 2353 2354 Translations: Update the German man page translations. 2355 2356 po4a/de.po | 4570 ++++++++++++++++++------------------------------------------ 2357 1 file changed, 1374 insertions(+), 3196 deletions(-) 2358 2359commit 8bdbe42a8d0d75dff70206b923fc4bce5c69a40a 2360Author: Jia Tan <jiat0218@gmail.com> 2361Date: 2022-12-06 23:05:56 +0800 2362 2363 Translations: Update the German translation. 2364 2365 po/de.po | 586 ++++++++++++++++++++++++++++++++++----------------------------- 2366 1 file changed, 315 insertions(+), 271 deletions(-) 2367 2368commit 5c304b57c24ef40ff57f864301065f0244c05bde 2369Author: Jia Tan <jiat0218@gmail.com> 2370Date: 2022-12-06 23:04:25 +0800 2371 2372 Translations: Update the Turkish translation. 2373 2374 po/tr.po | 221 +++++++++++++++++++++++++++++++-------------------------------- 2375 1 file changed, 108 insertions(+), 113 deletions(-) 2376 2377commit 6d86781fdb937970486500447ebb49b98244235b 2378Author: Jia Tan <jiat0218@gmail.com> 2379Date: 2022-12-06 23:02:11 +0800 2380 2381 Translations: Update the Croatian translation. 2382 2383 po/hr.po | 228 +++++++++++++++++++++++++++++++-------------------------------- 2384 1 file changed, 113 insertions(+), 115 deletions(-) 2385 2386commit 7a5b4b8075eb36026b1796f04ffed5830c42396a 2387Author: Jia Tan <jiat0218@gmail.com> 2388Date: 2022-12-06 22:56:30 +0800 2389 2390 Translations: Add Romanian translation of man pages. 2391 2392 Thanks to Remus-Gabriel Chelu. 2393 2394 po4a/po4a.conf | 2 +- 2395 po4a/ro.po | 3692 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2396 2 files changed, 3693 insertions(+), 1 deletion(-) 2397 2398commit c6977e7400088177556e8771bcb839eb7d90caa3 2399Author: Jia Tan <jiat0218@gmail.com> 2400Date: 2022-12-06 22:52:13 +0800 2401 2402 Translations: Update the Romanian translation. 2403 2404 po/ro.po | 294 +++++++++++++++++++++++++++++++-------------------------------- 2405 1 file changed, 147 insertions(+), 147 deletions(-) 2406 2407commit ac2a747e939c2cbccff7a49c399769af5e02d2ab 2408Author: Lasse Collin <lasse.collin@tukaani.org> 2409Date: 2022-12-08 17:30:09 +0200 2410 2411 liblzma: Check for unexpected NULL pointers in block_header_decode(). 2412 2413 The API docs gave an impression that such checks are done 2414 but they actually weren't done. In practice it made little 2415 difference since the calling code has a bug if these are NULL. 2416 2417 Thanks to Jia Tan for the original patch that checked for 2418 block->filters == NULL. 2419 2420 src/liblzma/common/block_header_decoder.c | 4 ++++ 2421 1 file changed, 4 insertions(+) 2422 2423commit 24790f49ae66938c1c7574315e1c0aba1ed5ed25 2424Author: Lasse Collin <lasse.collin@tukaani.org> 2425Date: 2022-12-01 20:59:32 +0200 2426 2427 Bump version number for 5.3.5beta. 2428 2429 This also sorts the symbol names alphabetically in liblzma_*.map. 2430 2431 src/liblzma/api/lzma/version.h | 4 ++-- 2432 src/liblzma/liblzma_generic.map | 10 +++++----- 2433 src/liblzma/liblzma_linux.map | 10 +++++----- 2434 3 files changed, 12 insertions(+), 12 deletions(-) 2435 2436commit 7e53c5bcb3c2c17f47c096c06ff6b1481e6ecafa 2437Author: Lasse Collin <lasse.collin@tukaani.org> 2438Date: 2022-12-01 20:57:26 +0200 2439 2440 Add NEWS for 5.3.5beta. 2441 2442 NEWS | 43 +++++++++++++++++++++++++++++++++++++++++++ 2443 1 file changed, 43 insertions(+) 2444 2445commit 5865f2aaac326fcbd9f8a7d62defa230e4cb644e 2446Author: Lasse Collin <lasse.collin@tukaani.org> 2447Date: 2022-12-01 20:57:09 +0200 2448 2449 Update THANKS. 2450 2451 THANKS | 3 +++ 2452 1 file changed, 3 insertions(+) 2453 2454commit 62b270988ec67314d69976df484d2974c6eacfda 2455Author: Lasse Collin <lasse.collin@tukaani.org> 2456Date: 2022-12-01 20:04:17 +0200 2457 2458 liblzma: Use __has_attribute(__symver__) to fix Clang detection. 2459 2460 If someone sets up Clang to define __GNUC__ to 10 or greater 2461 then symvers broke. __has_attribute is supported by such GCC 2462 and Clang versions that don't support __symver__ so this should 2463 be much better and simpler way to detect if __symver__ is 2464 actually supported. 2465 2466 Thanks to Tomasz Gajc for the bug report. 2467 2468 src/liblzma/common/common.h | 15 ++++++++++++++- 2469 1 file changed, 14 insertions(+), 1 deletion(-) 2470 2471commit f9ca7d45162664ddd9fb70e19335c2426e5d75bb 2472Author: Lasse Collin <lasse.collin@tukaani.org> 2473Date: 2022-12-01 18:51:52 +0200 2474 2475 liblzma: Omit zero-skipping from ARM64 filter. 2476 2477 It has some complicated downsides and its usefulness is more limited 2478 than I originally thought. So this change is bad for certain very 2479 specific situations but a generic solution that works for other 2480 filters (and is otherwise better too) is planned anyway. And this 2481 way 7-Zip can use the same compatible filter for the .7z format. 2482 2483 This is still marked as experimental with a new temporary Filter ID. 2484 2485 src/liblzma/api/lzma/bcj.h | 2 +- 2486 src/liblzma/simple/arm64.c | 81 +++++++++++++--------------------------------- 2487 2 files changed, 24 insertions(+), 59 deletions(-) 2488 2489commit 5baec3f0a9c85e6abf45c0f652f699b074129a8b 2490Author: Lasse Collin <lasse.collin@tukaani.org> 2491Date: 2022-12-01 18:13:27 +0200 2492 2493 xz: Omit the special notes about ARM64 filter on the man page. 2494 2495 src/xz/xz.1 | 5 ++--- 2496 1 file changed, 2 insertions(+), 3 deletions(-) 2497 2498commit 0c3627b51862eb0dcdd4fc283d046250571991c6 2499Author: Lasse Collin <lasse.collin@tukaani.org> 2500Date: 2022-12-01 18:12:03 +0200 2501 2502 liblzma: Don't be over-specific in lzma_str_to_filters API doc. 2503 2504 src/liblzma/api/lzma/filter.h | 3 +-- 2505 1 file changed, 1 insertion(+), 2 deletions(-) 2506 2507commit 94adf057f27b1970f493dc99cd166407d7255639 2508Author: Lasse Collin <lasse.collin@tukaani.org> 2509Date: 2022-12-01 17:54:23 +0200 2510 2511 liblzma: Silence unused variable warning when BCJ filters are disabled. 2512 2513 Thanks to Jia Tan for the original patch. 2514 2515 src/liblzma/common/string_conversion.c | 15 +++++++++++++++ 2516 1 file changed, 15 insertions(+) 2517 2518commit c68af4441744e5ffc41a472e1be9c9d53a1d9780 2519Author: Lasse Collin <lasse.collin@tukaani.org> 2520Date: 2022-12-01 17:38:03 +0200 2521 2522 Translations: Update the Chinese (simplified) translation. 2523 2524 po/zh_CN.po | 608 ++++++++++++++++++++++++++++++++++-------------------------- 2525 1 file changed, 348 insertions(+), 260 deletions(-) 2526 2527commit 3be6942e5c27d29995d41da52fbe274e4ce4a537 2528Author: Lasse Collin <lasse.collin@tukaani.org> 2529Date: 2022-11-30 18:55:03 +0200 2530 2531 Add NEWS for 5.2.9. 2532 2533 NEWS | 34 ++++++++++++++++++++++++++++++++++ 2534 1 file changed, 34 insertions(+) 2535 2536commit 7c16e312cb2f40b81154c0e5be13a3c6b8da485d 2537Author: Jia Tan <jiat0218@gmail.com> 2538Date: 2022-11-30 23:33:08 +0800 2539 2540 xz: Remove message_filters_to_str function prototype from message.h. 2541 2542 This was forgotten from 7484744af6cbabe81e92af7d9e061dfd597fff7b. 2543 2544 src/xz/message.h | 16 ---------------- 2545 1 file changed, 16 deletions(-) 2546 2547commit 764955e2d4f2a5e8d6d6fec63af694f799e050e7 2548Author: Lasse Collin <lasse.collin@tukaani.org> 2549Date: 2022-11-30 18:08:34 +0200 2550 2551 Change the bug report address. 2552 2553 It forwards to me and Jia Tan. 2554 2555 Also update the IRC reference in README as #tukaani was moved 2556 to Libera Chat long ago. 2557 2558 CMakeLists.txt | 2 +- 2559 README | 11 +++++------ 2560 configure.ac | 2 +- 2561 dos/config.h | 2 +- 2562 windows/README-Windows.txt | 2 +- 2563 5 files changed, 9 insertions(+), 10 deletions(-) 2564 2565commit c21983c76031e01da01ad3c6cc716fe4b8a75070 2566Author: Lasse Collin <lasse.collin@tukaani.org> 2567Date: 2022-11-30 17:50:17 +0200 2568 2569 Build: Add string_conversion.c to CMake, DOS, and VS files. 2570 2571 CMakeLists.txt | 1 + 2572 dos/Makefile | 1 + 2573 windows/vs2013/liblzma.vcxproj | 1 + 2574 windows/vs2013/liblzma_dll.vcxproj | 1 + 2575 windows/vs2017/liblzma.vcxproj | 1 + 2576 windows/vs2017/liblzma_dll.vcxproj | 1 + 2577 windows/vs2019/liblzma.vcxproj | 1 + 2578 windows/vs2019/liblzma_dll.vcxproj | 1 + 2579 8 files changed, 8 insertions(+) 2580 2581commit 30be0c35d24eb5175459d69dbf7d92e2b087ef82 2582Author: Lasse Collin <lasse.collin@tukaani.org> 2583Date: 2022-11-30 17:38:32 +0200 2584 2585 Update to HTTPS URLs in AUTHORS. 2586 2587 AUTHORS | 6 +++--- 2588 1 file changed, 3 insertions(+), 3 deletions(-) 2589 2590commit 0a72b9ca2fe20082da9b7128fe0d908af947a851 2591Author: Jia Tan <jiat0218@gmail.com> 2592Date: 2022-11-30 00:52:06 +0800 2593 2594 liblzma: Improve documentation for string to filter functions. 2595 2596 src/liblzma/api/lzma/filter.h | 17 +++++++++-------- 2597 1 file changed, 9 insertions(+), 8 deletions(-) 2598 2599commit a6e21fcede3b196160a52dd294d965c508a4bb33 2600Author: Lasse Collin <lasse.collin@tukaani.org> 2601Date: 2022-11-29 22:27:42 +0200 2602 2603 liblzma: Two fixes to lzma_str_list_filters() API docs. 2604 2605 Thanks to Jia Tan. 2606 2607 src/liblzma/api/lzma/filter.h | 6 +++--- 2608 1 file changed, 3 insertions(+), 3 deletions(-) 2609 2610commit 7484744af6cbabe81e92af7d9e061dfd597fff7b 2611Author: Lasse Collin <lasse.collin@tukaani.org> 2612Date: 2022-11-28 21:57:47 +0200 2613 2614 xz: Use lzma_str_from_filters(). 2615 2616 Two uses: Displaying encoder filter chain when compressing with -vv, 2617 and displaying the decoder filter chain in --list -vv. 2618 2619 src/xz/list.c | 28 ++++++--- 2620 src/xz/message.c | 175 +++---------------------------------------------------- 2621 2 files changed, 28 insertions(+), 175 deletions(-) 2622 2623commit cedeeca2ea6ada5b0411b2ae10d7a859e837f203 2624Author: Lasse Collin <lasse.collin@tukaani.org> 2625Date: 2022-11-28 21:37:48 +0200 2626 2627 liblzma: Add lzma_str_to_filters, _from_filters, and _list_filters. 2628 2629 lzma_str_to_filters() uses static error messages which makes 2630 them not very precise. It tells the position in the string 2631 where an error occurred though which helps quite a bit if 2632 applications take advantage of it. Dynamic error messages can 2633 be added later with a new flag if it seems important enough. 2634 2635 src/liblzma/api/lzma/filter.h | 258 +++++++ 2636 src/liblzma/common/Makefile.inc | 1 + 2637 src/liblzma/common/string_conversion.c | 1302 ++++++++++++++++++++++++++++++++ 2638 src/liblzma/liblzma_generic.map | 3 + 2639 src/liblzma/liblzma_linux.map | 3 + 2640 5 files changed, 1567 insertions(+) 2641 2642commit 072ebf7b1335421193ffa9d4a70d5533786b8995 2643Author: Lasse Collin <lasse.collin@tukaani.org> 2644Date: 2022-11-28 21:02:19 +0200 2645 2646 liblzma: Make lzma_validate_chain() available outside filter_common.c. 2647 2648 src/liblzma/common/filter_common.c | 8 ++++---- 2649 src/liblzma/common/filter_common.h | 3 +++ 2650 2 files changed, 7 insertions(+), 4 deletions(-) 2651 2652commit 5f22bd2d37e3bd01a5d701b51750eb51f09c11bf 2653Author: Lasse Collin <lasse.collin@tukaani.org> 2654Date: 2022-11-28 10:51:03 +0200 2655 2656 liblzma: Remove lzma_lz_decoder_uncompressed() as it's now unused. 2657 2658 src/liblzma/lz/lz_decoder.c | 14 -------------- 2659 src/liblzma/lz/lz_decoder.h | 3 --- 2660 2 files changed, 17 deletions(-) 2661 2662commit cee83206465b95729ab649aa2f57fdbde8dcaf89 2663Author: Lasse Collin <lasse.collin@tukaani.org> 2664Date: 2022-11-28 10:48:53 +0200 2665 2666 liblzma: Use LZMA1EXT feature in lzma_microlzma_decoder(). 2667 2668 Here too this avoids the slightly ugly method to set 2669 the uncompressed size. 2670 2671 Also moved the setting of dict_size to the struct initializer. 2672 2673 src/liblzma/common/microlzma_decoder.c | 15 ++++++++------- 2674 1 file changed, 8 insertions(+), 7 deletions(-) 2675 2676commit e310e8b6a490dfb468f4ed68feff246d776b323c 2677Author: Lasse Collin <lasse.collin@tukaani.org> 2678Date: 2022-11-28 10:28:20 +0200 2679 2680 liblzma: Use LZMA1EXT feature in lzma_alone_decoder(). 2681 2682 This avoids the need to use the slightly ugly method to 2683 set the uncompressed size. 2684 2685 src/liblzma/common/alone_decoder.c | 18 +++++++++++++----- 2686 1 file changed, 13 insertions(+), 5 deletions(-) 2687 2688commit 33b8a24b6646a9dbfd8358405aec466b13078559 2689Author: Lasse Collin <lasse.collin@tukaani.org> 2690Date: 2022-11-27 23:16:21 +0200 2691 2692 liblzma: Add LZMA_FILTER_LZMA1EXT to support LZMA1 without end marker. 2693 2694 Some file formats need support for LZMA1 streams that don't use 2695 the end of payload marker (EOPM) alias end of stream (EOS) marker. 2696 So far liblzma API has supported decompressing such streams via 2697 lzma_alone_decoder() when .lzma header specifies a known 2698 uncompressed size. Encoding support hasn't been available in the API. 2699 2700 Instead of adding a new LZMA1-only API for this purpose, this commit 2701 adds a new filter ID for use with raw encoder and decoder. The main 2702 benefit of this approach is that then also filter chains are possible, 2703 for example, if someone wants to implement support for .7z files that 2704 use the x86 BCJ filter with LZMA1 (not BCJ2 as that isn't supported 2705 in liblzma). 2706 2707 src/liblzma/api/lzma/lzma12.h | 123 ++++++++++++++++++++++++++++++-- 2708 src/liblzma/common/filter_common.c | 7 ++ 2709 src/liblzma/common/filter_decoder.c | 6 ++ 2710 src/liblzma/common/filter_encoder.c | 9 +++ 2711 src/liblzma/lzma/lzma2_encoder.c | 2 +- 2712 src/liblzma/lzma/lzma_decoder.c | 26 ++++++- 2713 src/liblzma/lzma/lzma_encoder.c | 40 +++++++++-- 2714 src/liblzma/lzma/lzma_encoder.h | 3 +- 2715 src/liblzma/lzma/lzma_encoder_private.h | 3 + 2716 9 files changed, 204 insertions(+), 15 deletions(-) 2717 2718commit 9a304bf1e45b3ddf61aaeaa7c764915b34618ede 2719Author: Lasse Collin <lasse.collin@tukaani.org> 2720Date: 2022-11-27 18:43:07 +0200 2721 2722 liblzma: Avoid unneeded use of void pointer in LZMA decoder. 2723 2724 src/liblzma/lzma/lzma_decoder.c | 3 +-- 2725 src/liblzma/lzma/lzma_decoder.h | 2 +- 2726 2 files changed, 2 insertions(+), 3 deletions(-) 2727 2728commit 218394958c7683f892275bb40eae880620feebcc 2729Author: Lasse Collin <lasse.collin@tukaani.org> 2730Date: 2022-11-27 18:20:33 +0200 2731 2732 liblzma: Pass the Filter ID to LZ encoder and decoder. 2733 2734 This allows using two Filter IDs with the same 2735 initialization function and data structures. 2736 2737 src/liblzma/common/alone_decoder.c | 1 + 2738 src/liblzma/common/alone_encoder.c | 1 + 2739 src/liblzma/common/common.h | 7 +++++-- 2740 src/liblzma/common/lzip_decoder.c | 1 + 2741 src/liblzma/common/microlzma_decoder.c | 1 + 2742 src/liblzma/common/microlzma_encoder.c | 1 + 2743 src/liblzma/lz/lz_decoder.c | 5 +++-- 2744 src/liblzma/lz/lz_decoder.h | 3 ++- 2745 src/liblzma/lz/lz_encoder.c | 5 +++-- 2746 src/liblzma/lz/lz_encoder.h | 3 ++- 2747 src/liblzma/lzma/lzma2_decoder.c | 3 ++- 2748 src/liblzma/lzma/lzma2_encoder.c | 3 ++- 2749 src/liblzma/lzma/lzma_decoder.c | 2 +- 2750 src/liblzma/lzma/lzma_encoder.c | 2 +- 2751 14 files changed, 26 insertions(+), 12 deletions(-) 2752 2753commit 1663c7676b76f4c514031797f3db1896e8100f7f 2754Author: Lasse Collin <lasse.collin@tukaani.org> 2755Date: 2022-11-27 01:03:16 +0200 2756 2757 liblzma: Remove two FIXME comments. 2758 2759 src/liblzma/common/filter_encoder.c | 4 ++-- 2760 1 file changed, 2 insertions(+), 2 deletions(-) 2761 2762commit 11fe708db783ac36ebeeb85da164e29e8c300910 2763Author: Lasse Collin <lasse.collin@tukaani.org> 2764Date: 2022-11-26 22:25:30 +0200 2765 2766 xz: Use lzma_filters_free(). 2767 2768 src/xz/list.c | 8 ++------ 2769 1 file changed, 2 insertions(+), 6 deletions(-) 2770 2771commit e782af9110d8499c7ac2929bc871540eefea5ea1 2772Author: Lasse Collin <lasse.collin@tukaani.org> 2773Date: 2022-11-26 22:21:13 +0200 2774 2775 liblzma: Use lzma_filters_free() in more places. 2776 2777 src/liblzma/common/block_header_decoder.c | 20 ++------------------ 2778 src/liblzma/common/stream_decoder.c | 4 +--- 2779 src/liblzma/common/stream_decoder_mt.c | 22 +++++----------------- 2780 3 files changed, 8 insertions(+), 38 deletions(-) 2781 2782commit 90caaded2dc6db1d6a55b01160d7e87f4a423628 2783Author: Lasse Collin <lasse.collin@tukaani.org> 2784Date: 2022-11-25 18:04:37 +0200 2785 2786 liblzma: Omit simple coder init functions if they are disabled. 2787 2788 src/liblzma/simple/arm.c | 4 ++++ 2789 src/liblzma/simple/armthumb.c | 4 ++++ 2790 src/liblzma/simple/ia64.c | 4 ++++ 2791 src/liblzma/simple/powerpc.c | 4 ++++ 2792 src/liblzma/simple/sparc.c | 4 ++++ 2793 src/liblzma/simple/x86.c | 4 ++++ 2794 6 files changed, 24 insertions(+) 2795 2796commit 5cd9f0df78cc4f8a7807bf6104adea13034fbb45 2797Author: Lasse Collin <lasse.collin@tukaani.org> 2798Date: 2022-11-24 23:24:59 +0200 2799 2800 xz: Allow nice_len 2 and 3 even if match finder requires 3 or 4. 2801 2802 Now that liblzma accepts these, we avoid the extra check and 2803 there's one message less for translators too. 2804 2805 src/xz/options.c | 5 ----- 2806 1 file changed, 5 deletions(-) 2807 2808commit 3be88ae071371caa279b44e13f4836fb178fe4ae 2809Author: Lasse Collin <lasse.collin@tukaani.org> 2810Date: 2022-11-24 23:23:55 +0200 2811 2812 liblzma: Allow nice_len 2 and 3 even if match finder requires 3 or 4. 2813 2814 That is, if the specified nice_len is smaller than the minimum 2815 of the match finder, silently use the match finder's minimum value 2816 instead of reporting an error. The old behavior is annoying to users 2817 and it complicates xz options handling too. 2818 2819 src/liblzma/lz/lz_encoder.c | 14 +++++++++----- 2820 src/liblzma/lz/lz_encoder.h | 9 +++++++++ 2821 src/liblzma/lzma/lzma_encoder.c | 11 ++++++++--- 2822 3 files changed, 26 insertions(+), 8 deletions(-) 2823 2824commit 93439cfafe1768b3b18d67d2356ef7e7559bba59 2825Author: Lasse Collin <lasse.collin@tukaani.org> 2826Date: 2022-11-24 16:25:10 +0200 2827 2828 liblzma: Add lzma_filters_update() support to the multi-threaded encoder. 2829 2830 A tiny downside of this is that now a 1-4 tiny allocations are made 2831 for every Block because each worker thread needs its own copy of 2832 the filter chain. 2833 2834 src/liblzma/api/lzma/filter.h | 36 +++++++------ 2835 src/liblzma/common/stream_encoder_mt.c | 96 +++++++++++++++++++++++++++++++--- 2836 2 files changed, 109 insertions(+), 23 deletions(-) 2837 2838commit 17ac51e689794eb41cab3e80946fec689caea2d2 2839Author: Lasse Collin <lasse.collin@tukaani.org> 2840Date: 2022-11-24 14:53:22 +0200 2841 2842 Update THANKS. 2843 2844 THANKS | 1 + 2845 1 file changed, 1 insertion(+) 2846 2847commit 06824396b2b6c84f3a235cb7c19c2a9701167797 2848Author: Lasse Collin <lasse.collin@tukaani.org> 2849Date: 2022-11-24 14:52:44 +0200 2850 2851 Build: Don't put GNU/Linux-specific symbol versions into static liblzma. 2852 2853 It not only makes no sense to put symbol versions into a static library 2854 but it can also cause breakage. 2855 2856 By default Libtool #defines PIC if building a shared library and 2857 doesn't define it for static libraries. This is documented in the 2858 Libtool manual. It can be overriden using --with-pic or --without-pic. 2859 configure.ac detects if --with-pic or --without-pic is used and then 2860 gives an error if neither --disable-shared nor --disable-static was 2861 used at the same time. Thus, in normal situations it works to build 2862 both shared and static library at the same time on GNU/Linux, 2863 only --with-pic or --without-pic requires that only one type of 2864 library is built. 2865 2866 Thanks to John Paul Adrian Glaubitz from Debian for reporting 2867 the problem that occurred on ia64: 2868 https://www.mail-archive.com/xz-devel@tukaani.org/msg00610.html 2869 2870 CMakeLists.txt | 5 +- 2871 configure.ac | 143 +++++++++++++++++++++++++++++--------------- 2872 src/liblzma/common/common.h | 12 ++++ 2873 3 files changed, 111 insertions(+), 49 deletions(-) 2874 2875commit e1acf7107291f8b3d6d609a7133331ff36d35d14 2876Author: Lasse Collin <lasse.collin@tukaani.org> 2877Date: 2022-11-24 01:32:16 +0200 2878 2879 liblzma: Refactor to use lzma_filters_free(). 2880 2881 lzma_filters_free() sets the options to NULL and ids to 2882 LZMA_VLI_UNKNOWN so there is no need to do it by caller; 2883 the filter arrays will always be left in a safe state. 2884 2885 Also use memcpy() instead of a loop to copy a filter chain 2886 when it is known to be safe to copy LZMA_FILTERS_MAX + 1 2887 (even if the elements past the terminator might be uninitialized). 2888 2889 src/liblzma/common/stream_encoder.c | 16 ++++------------ 2890 src/liblzma/common/stream_encoder_mt.c | 11 ++--------- 2891 2 files changed, 6 insertions(+), 21 deletions(-) 2892 2893commit cb05dbcf8b868441ec805016222f3fd77f1c5caa 2894Author: Lasse Collin <lasse.collin@tukaani.org> 2895Date: 2022-11-24 01:26:37 +0200 2896 2897 liblzma: Fix another invalid free() after memory allocation failure. 2898 2899 This time it can happen when lzma_stream_encoder_mt() is used 2900 to reinitialize an existing multi-threaded Stream encoder 2901 and one of 1-4 tiny allocations in lzma_filters_copy() fail. 2902 2903 It's very similar to the previous bug 2904 10430fbf3820dafd4eafd38ec8be161a6978ed2b, happening with 2905 an array of lzma_filter structures whose old options are freed 2906 but the replacement never arrives due to a memory allocation 2907 failure in lzma_filters_copy(). 2908 2909 src/liblzma/common/stream_encoder_mt.c | 4 ++++ 2910 1 file changed, 4 insertions(+) 2911 2912commit 75f1a6c26df4ce329da0882786403e3ccf5cd898 2913Author: Jia Tan <jiat0218@gmail.com> 2914Date: 2022-05-05 20:53:42 +0800 2915 2916 liblzma: Add support for LZMA_SYNC_FLUSH in the Block encoder. 2917 2918 The documentation mentions that lzma_block_encoder() supports 2919 LZMA_SYNC_FLUSH but it was never added to supported_actions[] 2920 in the internal structure. Because of this, LZMA_SYNC_FLUSH could 2921 not be used with the Block encoder unless it was the next coder 2922 after something like stream_encoder() or stream_encoder_mt(). 2923 2924 src/liblzma/common/block_encoder.c | 1 + 2925 1 file changed, 1 insertion(+) 2926 2927commit d0901645170b638c517f5c50866b6ef48f491c65 2928Author: Lasse Collin <lasse.collin@tukaani.org> 2929Date: 2022-11-24 01:02:50 +0200 2930 2931 liblzma: Add new API function lzma_filters_free(). 2932 2933 This is small but convenient and should have been added 2934 a long time ago. 2935 2936 src/liblzma/api/lzma/filter.h | 21 +++++++++++++++++++++ 2937 src/liblzma/common/filter_common.c | 26 ++++++++++++++++++++++++++ 2938 src/liblzma/liblzma_generic.map | 1 + 2939 src/liblzma/liblzma_linux.map | 1 + 2940 4 files changed, 49 insertions(+) 2941 2942commit ae1f8a723dcde2f2c5cf444bcbb5fc5026b3c3c5 2943Author: Lasse Collin <lasse.collin@tukaani.org> 2944Date: 2022-11-24 00:02:31 +0200 2945 2946 CMake: Don't use symbol versioning with static library. 2947 2948 CMakeLists.txt | 10 +++++++--- 2949 1 file changed, 7 insertions(+), 3 deletions(-) 2950 2951commit 48c1b99dc537a27e1ca929d8837e778e5ba32191 2952Author: Lasse Collin <lasse.collin@tukaani.org> 2953Date: 2022-11-23 21:55:22 +0200 2954 2955 liblzma: Add lzma_attr_warn_unused_result to lzma_filters_copy(). 2956 2957 src/liblzma/api/lzma/filter.h | 3 ++- 2958 1 file changed, 2 insertions(+), 1 deletion(-) 2959 2960commit 10430fbf3820dafd4eafd38ec8be161a6978ed2b 2961Author: Lasse Collin <lasse.collin@tukaani.org> 2962Date: 2022-11-23 21:26:21 +0200 2963 2964 liblzma: Fix invalid free() after memory allocation failure. 2965 2966 The bug was in the single-threaded .xz Stream encoder 2967 in the code that is used for both re-initialization and for 2968 lzma_filters_update(). To trigger it, an application had 2969 to either re-initialize an existing encoder instance with 2970 lzma_stream_encoder() or use lzma_filters_update(), and 2971 then one of the 1-4 tiny allocations in lzma_filters_copy() 2972 (called from stream_encoder_update()) must fail. An error 2973 was correctly reported but the encoder state was corrupted. 2974 2975 This is related to the recent fix in 2976 f8ee61e74eb40600445fdb601c374d582e1e9c8a which is good but 2977 it wasn't enough to fix the main problem in stream_encoder.c. 2978 2979 src/liblzma/common/stream_encoder.c | 39 +++++++++++++++++++++++++++++-------- 2980 1 file changed, 31 insertions(+), 8 deletions(-) 2981 2982commit cafd6dc397ca8b5b5f7775e8d6876b8fe70f8e70 2983Author: Lasse Collin <lasse.collin@tukaani.org> 2984Date: 2022-11-22 16:37:15 +0200 2985 2986 liblzma: Fix language in a comment. 2987 2988 src/liblzma/common/stream_encoder.c | 2 +- 2989 1 file changed, 1 insertion(+), 1 deletion(-) 2990 2991commit c392bf8ccba857baaf50399c4b460119befacd54 2992Author: Lasse Collin <lasse.collin@tukaani.org> 2993Date: 2022-11-22 11:20:17 +0200 2994 2995 liblzma: Fix infinite loop in LZMA encoder init with dict_size >= 2 GiB. 2996 2997 The encoder doesn't support dictionary sizes larger than 1536 MiB. 2998 This is validated, for example, when calculating the memory usage 2999 via lzma_raw_encoder_memusage(). It is also enforced by the LZ 3000 part of the encoder initialization. However, LZMA encoder with 3001 LZMA_MODE_NORMAL did an unsafe calculation with dict_size before 3002 such validation and that results in an infinite loop if dict_size 3003 was 2 << 30 or greater. 3004 3005 src/liblzma/lzma/lzma_encoder.c | 19 +++++++++++++++---- 3006 1 file changed, 15 insertions(+), 4 deletions(-) 3007 3008commit f50534c973a591ccf65485adfc827a8a7126ca6c 3009Author: Lasse Collin <lasse.collin@tukaani.org> 3010Date: 2022-11-21 13:02:33 +0200 3011 3012 liblzma: Fix two Doxygen commands in the API headers. 3013 3014 These were caught by clang -Wdocumentation. 3015 3016 src/liblzma/api/lzma/hardware.h | 2 +- 3017 src/liblzma/api/lzma/index_hash.h | 2 +- 3018 2 files changed, 2 insertions(+), 2 deletions(-) 3019 3020commit 649d4872ed2f55196114a061d45b416fc4353569 3021Author: Lasse Collin <lasse.collin@tukaani.org> 3022Date: 2022-11-19 19:09:55 +0200 3023 3024 xz: Refactor duplicate code from hardware_memlimit_mtenc_get(). 3025 3026 src/xz/hardware.c | 2 +- 3027 1 file changed, 1 insertion(+), 1 deletion(-) 3028 3029commit d327743bb547a53364e5951a16e5f1663fe4b9ff 3030Author: Lasse Collin <lasse.collin@tukaani.org> 3031Date: 2022-11-19 19:06:13 +0200 3032 3033 xz: Add support --threads=+N so that -T+1 gives threaded mode. 3034 3035 src/xz/args.c | 18 +++++++++++++++--- 3036 src/xz/hardware.c | 17 +++++++++++++++-- 3037 src/xz/hardware.h | 1 + 3038 src/xz/xz.1 | 21 ++++++++++++++++++++- 3039 4 files changed, 51 insertions(+), 6 deletions(-) 3040 3041commit a11a2b8b5e830ba682c1d81aaa7078842b296995 3042Author: Jia Tan <jiat0218@gmail.com> 3043Date: 2022-11-19 23:18:04 +0800 3044 3045 CMake: Adds test_memlimit to CMake tests 3046 3047 CMakeLists.txt | 1 + 3048 1 file changed, 1 insertion(+) 3049 3050commit 2af8d9e9b3f44f62d19e7c39297ec63af2e8c64f 3051Author: Lasse Collin <lasse.collin@tukaani.org> 3052Date: 2022-11-15 19:10:21 +0200 3053 3054 Translations: Update the Korean translation. 3055 3056 po/ko.po | 652 ++++++++++++++++++++++++++++++++++++--------------------------- 3057 1 file changed, 371 insertions(+), 281 deletions(-) 3058 3059commit 16ac05677292f7e21a4feaddcfb2ab062ea5f385 3060Author: Lasse Collin <lasse.collin@tukaani.org> 3061Date: 2022-11-15 19:09:28 +0200 3062 3063 Translations: Update the Turkish translation. 3064 3065 po/tr.po | 568 ++++++++++++++++++++++++++++++++++----------------------------- 3066 1 file changed, 310 insertions(+), 258 deletions(-) 3067 3068commit b9a67d9a5fa207062d4aa8a01639234609315d31 3069Author: Lasse Collin <lasse.collin@tukaani.org> 3070Date: 2022-11-15 10:58:39 +0200 3071 3072 Bump version number for 5.3.4alpha. 3073 3074 src/liblzma/api/lzma/version.h | 2 +- 3075 src/liblzma/liblzma_generic.map | 2 +- 3076 src/liblzma/liblzma_linux.map | 2 +- 3077 3 files changed, 3 insertions(+), 3 deletions(-) 3078 3079commit 5b999ba289b3280457b7386b9ac65dbbdf1575a5 3080Author: Lasse Collin <lasse.collin@tukaani.org> 3081Date: 2022-11-15 10:54:40 +0200 3082 3083 Add NEWS for 5.3.4alpha. 3084 3085 NEWS | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3086 1 file changed, 96 insertions(+) 3087 3088commit ce8db9e37da4f6c87691c5066f51f91f2411c44a 3089Author: Lasse Collin <lasse.collin@tukaani.org> 3090Date: 2022-11-15 10:54:08 +0200 3091 3092 Add NEWS for 5.2.8. 3093 3094 NEWS | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3095 1 file changed, 79 insertions(+) 3096 3097commit b56bc8251d2736224af6bdaaae734ceb8926a879 3098Author: Lasse Collin <lasse.collin@tukaani.org> 3099Date: 2022-11-14 23:19:57 +0200 3100 3101 Revert "liblzma: Simple/BCJ filters: Allow disabling generic BCJ options." 3102 3103 This reverts commit 177bdc922cb17bd0fd831ab8139dfae912a5c2b8 3104 and also does equivalent change to arm64.c. 3105 3106 Now that ARM64 filter will use lzma_options_bcj, this change 3107 is not needed anymore. 3108 3109 src/liblzma/simple/arm.c | 2 +- 3110 src/liblzma/simple/arm64.c | 2 +- 3111 src/liblzma/simple/armthumb.c | 2 +- 3112 src/liblzma/simple/ia64.c | 2 +- 3113 src/liblzma/simple/powerpc.c | 2 +- 3114 src/liblzma/simple/simple_coder.c | 4 ++-- 3115 src/liblzma/simple/simple_private.h | 2 +- 3116 src/liblzma/simple/sparc.c | 2 +- 3117 src/liblzma/simple/x86.c | 3 +-- 3118 9 files changed, 10 insertions(+), 11 deletions(-) 3119 3120commit 8370ec8edf9ddf8d1d9fef03d8d1027503ec4c35 3121Author: Lasse Collin <lasse.collin@tukaani.org> 3122Date: 2022-11-14 23:14:41 +0200 3123 3124 Replace the experimental ARM64 filter with a new experimental version. 3125 3126 This is incompatible with the previous version. 3127 3128 This has space/tab fixes in filter_*.c and bcj.h too. 3129 3130 src/liblzma/api/lzma/bcj.h | 41 +----- 3131 src/liblzma/common/filter_common.c | 14 +- 3132 src/liblzma/common/filter_decoder.c | 12 +- 3133 src/liblzma/common/filter_encoder.c | 17 +-- 3134 src/liblzma/simple/arm64.c | 283 ++++++++++++++---------------------- 3135 src/liblzma/simple/simple_decoder.h | 4 - 3136 src/liblzma/simple/simple_encoder.h | 2 - 3137 src/xz/args.c | 2 +- 3138 src/xz/message.c | 13 +- 3139 src/xz/options.c | 39 ----- 3140 src/xz/options.h | 7 - 3141 11 files changed, 147 insertions(+), 287 deletions(-) 3142 3143commit f644473a211394447824ea00518d0a214ff3f7f2 3144Author: Lasse Collin <lasse.collin@tukaani.org> 3145Date: 2022-11-14 21:34:57 +0200 3146 3147 liblzma: Add fast CRC64 for 32/64-bit x86 using SSSE3 + SSE4.1 + CLMUL. 3148 3149 It also works on E2K as it supports these intrinsics. 3150 3151 On x86-64 runtime detection is used so the code keeps working on 3152 older processors too. A CLMUL-only build can be done by using 3153 -msse4.1 -mpclmul in CFLAGS and this will reduce the library 3154 size since the generic implementation and its 8 KiB lookup table 3155 will be omitted. 3156 3157 On 32-bit x86 this isn't used by default for now because by default 3158 on 32-bit x86 the separate assembly file crc64_x86.S is used. 3159 If --disable-assembler is used then this new CLMUL code is used 3160 the same way as on 64-bit x86. However, a CLMUL-only build 3161 (-msse4.1 -mpclmul) won't omit the 8 KiB lookup table on 3162 32-bit x86 due to a currently-missing check for disabled 3163 assembler usage. 3164 3165 The configure.ac check should be such that the code won't be 3166 built if something in the toolchain doesn't support it but 3167 --disable-clmul-crc option can be used to unconditionally 3168 disable this feature. 3169 3170 CLMUL speeds up decompression of files that have compressed very 3171 well (assuming CRC64 is used as a check type). It is know that 3172 the CLMUL code is significantly slower than the generic code for 3173 tiny inputs (especially 1-8 bytes but up to 16 bytes). If that 3174 is a real-world problem then there is already a commented-out 3175 variant that uses the generic version for small inputs. 3176 3177 Thanks to Ilya Kurdyukov for the original patch which was 3178 derived from a white paper from Intel [1] (published in 2009) 3179 and public domain code from [2] (released in 2016). 3180 3181 [1] https://www.intel.com/content/dam/www/public/us/en/documents/white-papers/fast-crc-computation-generic-polynomials-pclmulqdq-paper.pdf 3182 [2] https://github.com/rawrunprotected/crc 3183 3184 CMakeLists.txt | 26 ++- 3185 INSTALL | 12 ++ 3186 configure.ac | 59 +++++- 3187 src/liblzma/check/crc64_fast.c | 449 +++++++++++++++++++++++++++++++++++++++- 3188 src/liblzma/check/crc64_table.c | 21 +- 3189 5 files changed, 554 insertions(+), 13 deletions(-) 3190 3191commit 3b466bc79672bb2b06d1245a500588e6026e0ba0 3192Author: Lasse Collin <lasse.collin@tukaani.org> 3193Date: 2022-11-14 20:14:34 +0200 3194 3195 Translations: Update the Swedish translation one more time. 3196 3197 po/sv.po | 6 +++--- 3198 1 file changed, 3 insertions(+), 3 deletions(-) 3199 3200commit e963379a8622ebdff6ce78e76b803bcd1e1d16d6 3201Author: Lasse Collin <lasse.collin@tukaani.org> 3202Date: 2022-11-14 19:34:15 +0200 3203 3204 Translations: Update the Swedish translation again. 3205 3206 po/sv.po | 16 ++++++++-------- 3207 1 file changed, 8 insertions(+), 8 deletions(-) 3208 3209commit a4bc689a823a2254f29ac9d233170add5121b307 3210Author: Lasse Collin <lasse.collin@tukaani.org> 3211Date: 2022-11-14 19:07:45 +0200 3212 3213 Translations: Update the Swedish translation. 3214 3215 po/sv.po | 671 ++++++++++++++++++++++++++++++++++++--------------------------- 3216 1 file changed, 382 insertions(+), 289 deletions(-) 3217 3218commit bbf2073d824ab4ba33bed4b77f467435abd333a5 3219Author: Lasse Collin <lasse.collin@tukaani.org> 3220Date: 2022-11-14 18:58:09 +0200 3221 3222 Translations: Update the Ukrainian translation. 3223 3224 po/uk.po | 618 ++++++++++++++++++++++++++++++++++++--------------------------- 3225 1 file changed, 354 insertions(+), 264 deletions(-) 3226 3227commit ac10b1b3622e70881595586edfb8a3ebdcd76bb6 3228Author: Lasse Collin <lasse.collin@tukaani.org> 3229Date: 2022-11-14 17:58:07 +0200 3230 3231 Build: Omit x86_64 from --enable-assembler. 3232 3233 It didn't do anything. There are only 32-bit x86 assembly files 3234 and it feels likely that new files won't be added as intrinsics 3235 in C are more portable across toolchains and OSes. 3236 3237 configure.ac | 6 ++---- 3238 1 file changed, 2 insertions(+), 4 deletions(-) 3239 3240commit eb0f1450ad9f23dac03050d9c8375980240aee21 3241Author: Lasse Collin <lasse.collin@tukaani.org> 3242Date: 2022-11-14 16:00:52 +0200 3243 3244 liblzma: Use __attribute__((__constructor__)) if available. 3245 3246 This uses it for CRC table initializations when using --disable-small. 3247 It avoids mythread_once() overhead. It also means that then 3248 --disable-small --disable-threads is thread-safe if this attribute 3249 is supported. 3250 3251 CMakeLists.txt | 15 +++++++++++++++ 3252 INSTALL | 4 +++- 3253 configure.ac | 31 ++++++++++++++++++++++++++++--- 3254 src/liblzma/check/crc32_small.c | 7 +++++++ 3255 src/liblzma/check/crc64_small.c | 5 +++++ 3256 src/liblzma/lz/lz_encoder.c | 2 +- 3257 6 files changed, 59 insertions(+), 5 deletions(-) 3258 3259commit 6553f49b11dafad35c73b05f12e14865ea1fd8a1 3260Author: Lasse Collin <lasse.collin@tukaani.org> 3261Date: 2022-11-12 21:19:52 +0200 3262 3263 Translations: Update the Romanian translation. 3264 3265 po/ro.po | 651 +++++++++++++++++++++++++++++++++++++-------------------------- 3266 1 file changed, 380 insertions(+), 271 deletions(-) 3267 3268commit db97e69e12393becc29f8febd53133d0d36989bd 3269Author: Lasse Collin <lasse.collin@tukaani.org> 3270Date: 2022-11-12 21:17:45 +0200 3271 3272 Translations: Update the Hungarian translation. 3273 3274 po/hu.po | 625 ++++++++++++++++++++++++++++++++++++--------------------------- 3275 1 file changed, 357 insertions(+), 268 deletions(-) 3276 3277commit 2bbb9c0f3829a8b121b36998d273a6c6f92000f4 3278Author: Lasse Collin <lasse.collin@tukaani.org> 3279Date: 2022-11-11 17:58:57 +0200 3280 3281 Translations: Update the Finnish translation. 3282 3283 po/fi.po | 610 ++++++++++++++++++++++++++++++++++++--------------------------- 3284 1 file changed, 348 insertions(+), 262 deletions(-) 3285 3286commit 3c8cbb8137b6f8ed9416c1209d73cdbcb015251f 3287Author: Lasse Collin <lasse.collin@tukaani.org> 3288Date: 2022-11-11 17:58:18 +0200 3289 3290 Translations: Update the Croatian translation. 3291 3292 po/hr.po | 680 +++++++++++++++++++++++++++++++++++---------------------------- 3293 1 file changed, 381 insertions(+), 299 deletions(-) 3294 3295commit 26c3359eac0988d6f3986735cd1363bec1678e8e 3296Author: Lasse Collin <lasse.collin@tukaani.org> 3297Date: 2022-11-11 17:57:18 +0200 3298 3299 Translations: Update the Polish translation. 3300 3301 po/pl.po | 569 ++++++++++++++++++++++++++++++++++----------------------------- 3302 1 file changed, 309 insertions(+), 260 deletions(-) 3303 3304commit 577e467b137c735afb8de6ae71ac7a73c2960cc4 3305Author: Lasse Collin <lasse.collin@tukaani.org> 3306Date: 2022-11-11 17:56:44 +0200 3307 3308 Translations: Update the Spanish translation. 3309 3310 po/es.po | 598 ++++++++++++++++++++++++++++++++++++--------------------------- 3311 1 file changed, 344 insertions(+), 254 deletions(-) 3312 3313commit f9b4ff6e9a0f1678650775582d3e4fe782abce97 3314Author: Lasse Collin <lasse.collin@tukaani.org> 3315Date: 2022-11-11 17:16:03 +0200 3316 3317 Update THANKS. 3318 3319 THANKS | 1 + 3320 1 file changed, 1 insertion(+) 3321 3322commit a39961ef211e1bf030b17edeea3cff29fe263b67 3323Author: Lasse Collin <lasse.collin@tukaani.org> 3324Date: 2022-11-11 17:15:25 +0200 3325 3326 liblzma: Fix building with Intel ICC (the classic compiler). 3327 3328 It claims __GNUC__ >= 10 but doesn't support __symver__ attribute. 3329 3330 Thanks to Stephen Sachs. 3331 3332 src/liblzma/common/common.h | 2 +- 3333 1 file changed, 1 insertion(+), 1 deletion(-) 3334 3335commit c715f683dcb1a817d565da292cddfbceda643e12 3336Author: Lasse Collin <lasse.collin@tukaani.org> 3337Date: 2022-11-11 14:35:58 +0200 3338 3339 liblzma: Fix incorrect #ifdef for x86 SSE2 support. 3340 3341 __SSE2__ is the correct macro for SSE2 support with GCC, Clang, 3342 and ICC. __SSE2_MATH__ means doing floating point math with SSE2 3343 instead of 387. Often the latter macro is defined if the first 3344 one is but it was still a bug. 3345 3346 src/liblzma/common/memcmplen.h | 3 +-- 3347 1 file changed, 1 insertion(+), 2 deletions(-) 3348 3349commit bd334ae56afe7f642ad4d0f1ac19e74e82daa1ce 3350Author: Lasse Collin <lasse.collin@tukaani.org> 3351Date: 2022-11-11 13:27:06 +0200 3352 3353 Add NEWS for 5.2.7 (forgotten cherry-pick from v5.2). 3354 3355 NEWS | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3356 1 file changed, 74 insertions(+) 3357 3358commit 3c7860cf49de6f81046b3a4034a89f3a4803a576 3359Author: Lasse Collin <lasse.collin@tukaani.org> 3360Date: 2022-11-11 13:16:21 +0200 3361 3362 xzdiff: Add support for .lz files. 3363 3364 The other scripts don't need changes for .lz support because 3365 in those scripts it is enough that xz supports .lz. 3366 3367 src/scripts/xzdiff.in | 10 +++++----- 3368 1 file changed, 5 insertions(+), 5 deletions(-) 3369 3370commit d76c752a6d77052e5ad57ade555082585f7ac5d8 3371Author: Lasse Collin <lasse.collin@tukaani.org> 3372Date: 2022-11-11 12:23:58 +0200 3373 3374 Scripts: Ignore warnings from xz. 3375 3376 In practice this means making the scripts work when 3377 the input files have an unsupported check type which 3378 isn't a problem in practice unless support for 3379 some check types has been disabled at build time. 3380 3381 src/scripts/xzdiff.in | 5 +++-- 3382 src/scripts/xzgrep.in | 2 +- 3383 src/scripts/xzless.in | 4 ++-- 3384 src/scripts/xzmore.in | 4 ++-- 3385 4 files changed, 8 insertions(+), 7 deletions(-) 3386 3387commit 6552535afd1fe29d726ab6e68cf14ce3624fd48c 3388Author: Lasse Collin <lasse.collin@tukaani.org> 3389Date: 2022-11-10 12:34:43 +0200 3390 3391 Translations: Rename poa4/fr_FR.po to po4a/fr.po. 3392 3393 That's how it is preferred at the Translation Project. 3394 On my system /usr/share/man/fr_FR doesn't contain any 3395 other man pages than XZ Utils while /usr/share/man/fr 3396 has quite a few, so this will fix that too. 3397 3398 Thanks to Benno Schulenberg from the Translation Project. 3399 3400 po4a/{fr_FR.po => fr.po} | 0 3401 po4a/po4a.conf | 2 +- 3402 2 files changed, 1 insertion(+), 1 deletion(-) 3403 3404commit 0918159ce4c75bfb60aff0193b559f8a9f41d25a 3405Author: Lasse Collin <lasse.collin@tukaani.org> 3406Date: 2022-11-09 18:48:50 +0200 3407 3408 xz: Update the man page about BCJ filters, including upcoming --arm64. 3409 3410 The --arm64 isn't actually implemented yet in the form 3411 described in this commit. 3412 3413 Thanks to Jia Tan. 3414 3415 src/xz/xz.1 | 66 +++++++++++++++++++++++++++---------------------------------- 3416 1 file changed, 29 insertions(+), 37 deletions(-) 3417 3418commit ba2ae3596f6be1587495f33b367488f6e00e56f1 3419Author: Lasse Collin <lasse.collin@tukaani.org> 3420Date: 2022-11-09 18:14:14 +0200 3421 3422 xz: Add --arm64 to --long-help and omit endianness from ARM(-Thumb). 3423 3424 Modern 32-bit ARM in big endian mode use little endian for 3425 instruction encoding still, so the filters work on such 3426 executables too. It's likely less confusing for users this way. 3427 3428 The --arm64 option hasn't been implemented yet (there is 3429 --experimental-arm64 but it's different). The --arm64 option 3430 is added now anyway because this is the likely result and the 3431 strings need to be ready for translators. 3432 3433 Thanks to Jia Tan. 3434 3435 src/xz/message.c | 5 +++-- 3436 1 file changed, 3 insertions(+), 2 deletions(-) 3437 3438commit 802d57d9215d9c81dbee86edb43c9e93a7f7ec55 3439Author: Lasse Collin <lasse.collin@tukaani.org> 3440Date: 2022-11-09 15:12:13 +0200 3441 3442 Windows: Update the VS project files for ARM64 and .lz support. 3443 3444 windows/vs2013/config.h | 9 +++++++++ 3445 windows/vs2013/liblzma.vcxproj | 5 ++++- 3446 windows/vs2013/liblzma_dll.vcxproj | 5 ++++- 3447 windows/vs2017/config.h | 9 +++++++++ 3448 windows/vs2017/liblzma.vcxproj | 3 +++ 3449 windows/vs2017/liblzma_dll.vcxproj | 3 +++ 3450 windows/vs2019/config.h | 9 +++++++++ 3451 windows/vs2019/liblzma.vcxproj | 5 ++++- 3452 windows/vs2019/liblzma_dll.vcxproj | 5 ++++- 3453 9 files changed, 49 insertions(+), 4 deletions(-) 3454 3455commit 5846aeda05972bc803c6094821ae836229ebe691 3456Author: Lasse Collin <lasse.collin@tukaani.org> 3457Date: 2022-11-09 14:57:48 +0200 3458 3459 DOS: Update Makefile and config.h to include ARM64 and .lz support. 3460 3461 dos/Makefile | 2 ++ 3462 dos/config.h | 9 +++++++++ 3463 2 files changed, 11 insertions(+) 3464 3465commit 781da8d6c44de6aa278c916375250668a0b107f2 3466Author: Lasse Collin <lasse.collin@tukaani.org> 3467Date: 2022-11-09 14:45:05 +0200 3468 3469 CMake: Add lzip decoder files and #define to the build. 3470 3471 CMakeLists.txt | 3 +++ 3472 1 file changed, 3 insertions(+) 3473 3474commit df8ad4af65a9c4846b108550d0083770a69dee64 3475Author: Lasse Collin <lasse.collin@tukaani.org> 3476Date: 2022-11-09 14:41:56 +0200 3477 3478 Docs: Update INSTALL and also add new prohibited options to PACKAGERS. 3479 3480 INSTALL | 49 +++++++++++++++++++++++++++++++++++++++++-------- 3481 PACKAGERS | 2 ++ 3482 2 files changed, 43 insertions(+), 8 deletions(-) 3483 3484commit c8ef089c149afaab413c3a51be827dd1d11afe0e 3485Author: Lasse Collin <lasse.collin@tukaani.org> 3486Date: 2022-10-20 17:39:06 +0300 3487 3488 Tests: Test the .lz files in test_files.sh. 3489 3490 tests/test_files.sh | 25 +++++++++++++++++++++++++ 3491 1 file changed, 25 insertions(+) 3492 3493commit c8f70ebb4628ceb6cb29cc9195d9deadf69d2bd7 3494Author: Lasse Collin <lasse.collin@tukaani.org> 3495Date: 2022-10-20 15:35:59 +0300 3496 3497 Tests: Add .lz (lzip) test files. 3498 3499 tests/files/README | 109 +++++++++++++++++++++++++++++---- 3500 tests/files/bad-1-v0-uncomp-size.lz | Bin 0 -> 42 bytes 3501 tests/files/bad-1-v1-crc32.lz | Bin 0 -> 50 bytes 3502 tests/files/bad-1-v1-dict-1.lz | Bin 0 -> 50 bytes 3503 tests/files/bad-1-v1-dict-2.lz | Bin 0 -> 50 bytes 3504 tests/files/bad-1-v1-magic-1.lz | Bin 0 -> 50 bytes 3505 tests/files/bad-1-v1-magic-2.lz | Bin 0 -> 50 bytes 3506 tests/files/bad-1-v1-member-size.lz | Bin 0 -> 50 bytes 3507 tests/files/bad-1-v1-trailing-magic.lz | Bin 0 -> 54 bytes 3508 tests/files/bad-1-v1-uncomp-size.lz | Bin 0 -> 50 bytes 3509 tests/files/good-1-v0-trailing-1.lz | Bin 0 -> 59 bytes 3510 tests/files/good-1-v0.lz | Bin 0 -> 42 bytes 3511 tests/files/good-1-v1-trailing-1.lz | Bin 0 -> 67 bytes 3512 tests/files/good-1-v1-trailing-2.lz | Bin 0 -> 70 bytes 3513 tests/files/good-1-v1.lz | Bin 0 -> 50 bytes 3514 tests/files/good-2-v0-v1.lz | Bin 0 -> 78 bytes 3515 tests/files/good-2-v1-v0.lz | Bin 0 -> 78 bytes 3516 tests/files/good-2-v1-v1.lz | Bin 0 -> 86 bytes 3517 tests/files/unsupported-1-v234.lz | Bin 0 -> 50 bytes 3518 19 files changed, 98 insertions(+), 11 deletions(-) 3519 3520commit 731db13e6fa3ad3e3fc786c0ccf6eac4cce6865f 3521Author: Lasse Collin <lasse.collin@tukaani.org> 3522Date: 2022-10-19 22:32:51 +0300 3523 3524 xz: Remove the commented-out FORMAT_GZIP, gzip, .gz, and .tgz. 3525 3526 src/xz/args.c | 2 -- 3527 src/xz/coder.h | 1 - 3528 src/xz/suffix.c | 9 --------- 3529 3 files changed, 12 deletions(-) 3530 3531commit 3176f992c55b8d788c4633809aaf9447376a5a12 3532Author: Lasse Collin <lasse.collin@tukaani.org> 3533Date: 2022-10-08 21:28:15 +0300 3534 3535 xz: Add .lz (lzip) decompression support. 3536 3537 If configured with --disable-lzip-decoder then --long-help will 3538 still list `lzip' in --format but I left it like that since 3539 due to translations it would be messy to have two help strings. 3540 Features are disabled only in special situations so wrong help 3541 in such a situation shouldn't matter much. 3542 3543 Thanks to Michał Górny for the original patch. 3544 3545 src/xz/args.c | 9 ++++++++ 3546 src/xz/coder.c | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++--- 3547 src/xz/coder.h | 3 +++ 3548 src/xz/message.c | 2 +- 3549 src/xz/suffix.c | 26 ++++++++++++++++++---- 3550 src/xz/xz.1 | 46 +++++++++++++++++++++++++++++++++----- 3551 6 files changed, 141 insertions(+), 13 deletions(-) 3552 3553commit 034086e1ae1459210837a24e04878435c86dc41b 3554Author: Lasse Collin <lasse.collin@tukaani.org> 3555Date: 2022-10-08 00:29:20 +0300 3556 3557 liblzma: Add .lz support to lzma_auto_decoder(). 3558 3559 Thanks to Michał Górny for the original patch. 3560 3561 src/liblzma/api/lzma/container.h | 10 ++++++---- 3562 src/liblzma/common/Makefile.inc | 3 ++- 3563 src/liblzma/common/auto_decoder.c | 23 +++++++++++++++++------ 3564 src/liblzma/common/lzip_decoder.h | 22 ++++++++++++++++++++++ 3565 4 files changed, 47 insertions(+), 11 deletions(-) 3566 3567commit 0538db038f3cdc352007dacb42454aa1806b8e40 3568Author: Lasse Collin <lasse.collin@tukaani.org> 3569Date: 2022-10-06 15:50:20 +0300 3570 3571 liblzma: Add .lz (lzip) decompression support (format versions 0 and 1). 3572 3573 Support for format version 0 was removed from lzip 1.18 for some 3574 reason. .lz format version 0 files are rare (and old) but some 3575 source packages were released in this format, and some people might 3576 have personal files in this format too. It's very little extra code 3577 to support it along side format version 1 so this commits adds 3578 support for both. 3579 3580 The Sync Flush marker extentension to the original .lz format 3581 version 1 isn't supported. It would require changes to the 3582 LZMA decoder itself. Such files are very rare anyway. 3583 3584 See the API doc for lzma_lzip_decoder() for more details about 3585 the .lz format support. 3586 3587 Thanks to Michał Górny for the original patch. 3588 3589 configure.ac | 21 ++ 3590 src/liblzma/api/lzma/container.h | 62 +++++- 3591 src/liblzma/common/Makefile.inc | 5 + 3592 src/liblzma/common/lzip_decoder.c | 413 ++++++++++++++++++++++++++++++++++++++ 3593 src/liblzma/liblzma_generic.map | 1 + 3594 src/liblzma/liblzma_linux.map | 1 + 3595 6 files changed, 501 insertions(+), 2 deletions(-) 3596 3597commit 633d48a075b9ce4b9c08a7a56a7eb4cabc18100c 3598Author: Lasse Collin <lasse.collin@tukaani.org> 3599Date: 2022-11-09 14:17:23 +0200 3600 3601 liblzma: Add the missing Makefile.inc change for --disable-microlzma. 3602 3603 This was forgotten from commit 59c4d6e1390f6f4176f43ac1dad1f7ac03c449b8. 3604 3605 src/liblzma/common/Makefile.inc | 12 ++++++++++-- 3606 1 file changed, 10 insertions(+), 2 deletions(-) 3607 3608commit 724285dadbdc88765c8fb83eab9816575a260966 3609Author: Lasse Collin <lasse.collin@tukaani.org> 3610Date: 2022-11-09 14:10:52 +0200 3611 3612 xz: Add comments about stdin and src_st.st_size. 3613 3614 "xz -v < regular_file > out.xz" doesn't display the percentage 3615 and estimated remaining time because it doesn't even try to 3616 check the input file size when input is read from stdin. 3617 This could be improved but for now there's just a comment 3618 to remind about it. 3619 3620 src/xz/coder.c | 9 +++++++++ 3621 src/xz/file_io.c | 4 ++++ 3622 2 files changed, 13 insertions(+) 3623 3624commit f723eec68b0e44234910f669a29119de33018967 3625Author: Lasse Collin <lasse.collin@tukaani.org> 3626Date: 2022-11-09 12:48:22 +0200 3627 3628 xz: Fix displaying of file sizes in progress indicator in passthru mode. 3629 3630 It worked for one input file since the counters are zero when 3631 xz starts but they weren't reset when starting a new file in 3632 passthru mode. For example, if files A, B, and C are one byte each, 3633 then "xz -dcvf A B C" would show file sizes as 1, 2, and 3 bytes 3634 instead of 1, 1, and 1 byte. 3635 3636 src/xz/coder.c | 6 +++++- 3637 1 file changed, 5 insertions(+), 1 deletion(-) 3638 3639commit 69265d0f223ddf1d66f799b8b047df22923e376f 3640Author: Lasse Collin <lasse.collin@tukaani.org> 3641Date: 2022-11-09 11:27:20 +0200 3642 3643 xz: Add a comment why --to-stdout is not in --help. 3644 3645 It is on the man page still. 3646 3647 src/xz/message.c | 3 +++ 3648 1 file changed, 3 insertions(+) 3649 3650commit fe6b8852a3c6a0eb5a3c33512e0a69af257d3bc7 3651Author: Lasse Collin <lasse.collin@tukaani.org> 3652Date: 2022-11-08 23:05:37 +0200 3653 3654 xz: Make xz -lvv show that the upcoming --arm64 needs 5.4.0 to decompress. 3655 3656 src/xz/list.c | 20 +++++++++++++++----- 3657 1 file changed, 15 insertions(+), 5 deletions(-) 3658 3659commit fb3f05ac9f2b4b0e3643401960fbeab31997ac7a 3660Author: Lasse Collin <lasse.collin@tukaani.org> 3661Date: 2022-11-08 22:26:54 +0200 3662 3663 Docs: Update faq.txt a little. 3664 3665 doc/faq.txt | 66 ++++++++++++++++++++++++++++++++++++++++--------------------- 3666 1 file changed, 43 insertions(+), 23 deletions(-) 3667 3668commit 05331f091ec3b68eccbfb2a9a7a576072768fb4b 3669Author: Lasse Collin <lasse.collin@tukaani.org> 3670Date: 2022-11-08 16:57:17 +0200 3671 3672 Translations: Update Turkish translation. 3673 3674 po/tr.po | 2 +- 3675 1 file changed, 1 insertion(+), 1 deletion(-) 3676 3677commit ed3a4822963b4940d84e6f44d47277c394fc046d 3678Author: Lasse Collin <lasse.collin@tukaani.org> 3679Date: 2022-11-08 14:55:32 +0200 3680 3681 Translations: Update Croatian translation. 3682 3683 po/hr.po | 190 ++++++++++++++++++++++++++++++++------------------------------- 3684 1 file changed, 96 insertions(+), 94 deletions(-) 3685 3686commit 4746f5ec721316bc4c6fec9905b2902e0360e0af 3687Author: Lasse Collin <lasse.collin@tukaani.org> 3688Date: 2022-11-08 14:13:03 +0200 3689 3690 liblzma: Update API docs about decoder flags. 3691 3692 src/liblzma/api/lzma/container.h | 21 +++++++++++++++++---- 3693 1 file changed, 17 insertions(+), 4 deletions(-) 3694 3695commit 8779a9db5d0cec00c9dc9e9965dd2dda04f9d80d 3696Author: Lasse Collin <lasse.collin@tukaani.org> 3697Date: 2022-11-08 14:01:50 +0200 3698 3699 liblzma: Use the return_if_error() macro in alone_decoder.c. 3700 3701 src/liblzma/common/alone_decoder.c | 6 ++---- 3702 1 file changed, 2 insertions(+), 4 deletions(-) 3703 3704commit 3f4990b6822961e75cd9b4e2e82b1df63f6f8fcc 3705Author: Lasse Collin <lasse.collin@tukaani.org> 3706Date: 2022-11-08 14:00:58 +0200 3707 3708 liblzma: Fix a comment in auto_decoder.c. 3709 3710 src/liblzma/common/auto_decoder.c | 4 ++-- 3711 1 file changed, 2 insertions(+), 2 deletions(-) 3712 3713commit 026a5897c72a2041ae08ceec54ce8b1cdeb51334 3714Author: Lasse Collin <lasse.collin@tukaani.org> 3715Date: 2022-11-08 13:43:19 +0200 3716 3717 xz: Initialize the pledge(2) sandbox at the very beginning of main(). 3718 3719 It feels better that the initializations are sandboxed too. 3720 They don't do anything that the pledge() call wouldn't allow. 3721 3722 src/xz/main.c | 27 ++++++++++++++------------- 3723 1 file changed, 14 insertions(+), 13 deletions(-) 3724 3725commit 49a59f6ca001c3ce9affa2c162b437aad021b4d5 3726Author: Lasse Collin <lasse.collin@tukaani.org> 3727Date: 2022-11-07 22:51:16 +0200 3728 3729 xz: Extend --robot --info-memory output. 3730 3731 Now it includes everything that the human-readable --info-memory shows. 3732 3733 src/xz/hardware.c | 24 +++++++++++++++--------- 3734 src/xz/xz.1 | 47 +++++++++++++++++++++++++++++++++++++++++------ 3735 2 files changed, 56 insertions(+), 15 deletions(-) 3736 3737commit 5e2450c75cbac966c62cf2231c824f2cc91ddba8 3738Author: Lasse Collin <lasse.collin@tukaani.org> 3739Date: 2022-11-07 17:22:04 +0200 3740 3741 liblzma: Include cached memory in reported memusage in threaded decoder. 3742 3743 This affects lzma_memusage() and lzma_memlimit_set() when used 3744 with the threaded decompressor. Now all allocations are reported 3745 by lzma_memusage() (so it's not misleading) and lzma_memlimit_set() 3746 cannot lower the limit below that value. 3747 3748 The alternative would have been to allow lowering the limit if 3749 doing so is possible by freeing the cached memory but since 3750 the primary use case of lzma_memlimit_set() is to increase 3751 memlimit after LZMA_MEMLIMIT_ERROR this simple approach 3752 was selected. 3753 3754 The cached memory was always included when enforcing 3755 the memory usage limit while decoding. 3756 3757 Thanks to Jia Tan. 3758 3759 src/liblzma/common/stream_decoder_mt.c | 22 +++++++++++++++++++--- 3760 1 file changed, 19 insertions(+), 3 deletions(-) 3761 3762commit 1fc6e7dd1fabdb60124d449b99273330ccab3ff1 3763Author: Jia Tan <jiat0218@gmail.com> 3764Date: 2022-11-07 16:24:14 +0200 3765 3766 xz: Avoid a compiler warning in progress_speed() in message.c. 3767 3768 This should be smaller too since it avoids the string constants. 3769 3770 src/xz/message.c | 9 +++------ 3771 1 file changed, 3 insertions(+), 6 deletions(-) 3772 3773commit cf118c014683069b5dbe91898acdc40f2f0a1f5d 3774Author: Lasse Collin <lasse.collin@tukaani.org> 3775Date: 2022-10-31 16:26:05 +0200 3776 3777 Build: Clarify comment in configure.ac about SSE2. 3778 3779 configure.ac | 5 ++++- 3780 1 file changed, 4 insertions(+), 1 deletion(-) 3781 3782commit aad3c609ffb72f581a7a2b67be3ad70b2b327840 3783Author: Lasse Collin <lasse.collin@tukaani.org> 3784Date: 2022-10-31 16:16:37 +0200 3785 3786 Build: Remove obsolete commented-out lines from configure.ac. 3787 3788 configure.ac | 4 ---- 3789 1 file changed, 4 deletions(-) 3790 3791commit e53e0e2186c6b8ce866bd19aec52f1c318ed31ba 3792Author: Lasse Collin <lasse.collin@tukaani.org> 3793Date: 2022-10-31 13:31:58 +0200 3794 3795 Windows: Fix mythread_once() macro with Vista threads. 3796 3797 Don't call InitOnceComplete() if initialization was already done. 3798 3799 So far mythread_once() has been needed only when building 3800 with --enable-small. windows/build.bash does this together 3801 with --disable-threads so the Vista-specific mythread_once() 3802 is never needed by those builds. VS project files or 3803 CMake-builds don't support HAVE_SMALL builds at all. 3804 3805 src/common/mythread.h | 7 ++++--- 3806 1 file changed, 4 insertions(+), 3 deletions(-) 3807 3808commit 48dde3bab9dc04081acb5aa7cf7c5044b8a49f58 3809Author: Lasse Collin <lasse.collin@tukaani.org> 3810Date: 2022-10-31 11:54:44 +0200 3811 3812 liblzma: Silence -Wconversion warning from crc64_fast.c. 3813 3814 src/liblzma/check/crc64_fast.c | 5 +++-- 3815 1 file changed, 3 insertions(+), 2 deletions(-) 3816 3817commit a243c617ff249d915ac123de4f536b80322c1fdb 3818Author: Lasse Collin <lasse.collin@tukaani.org> 3819Date: 2022-10-31 11:49:47 +0200 3820 3821 CMake: Sync tuklib_cpucores.cmake with tuklib_cpucores.m4. 3822 3823 This was forgotten from commit 2611c4d90535652d3eb7ef4a026a6691276fab43. 3824 3825 cmake/tuklib_cpucores.cmake | 5 +++++ 3826 1 file changed, 5 insertions(+) 3827 3828commit 05c72de06fcaaedc78f8abba7d5ec568ddcf1e75 3829Author: Lasse Collin <lasse.collin@tukaani.org> 3830Date: 2022-10-27 15:49:18 +0300 3831 3832 Tests: test_files.sh: Make it not fail if features were disabled at build. 3833 3834 It now tries to test as many files as easily possible. 3835 The exit status indicates skipping if any of the files were 3836 skipped. This way it is easy to notice if something is being 3837 skipped when it isn't expected. 3838 3839 tests/test_files.sh | 50 ++++++++++++++++++++++++++++++++++++++++++++++---- 3840 1 file changed, 46 insertions(+), 4 deletions(-) 3841 3842commit b3459327a51f4b8239d19e6c34b4e0c6bc2d81de 3843Author: Lasse Collin <lasse.collin@tukaani.org> 3844Date: 2022-10-27 15:30:13 +0300 3845 3846 Tests: test_files.sh: Suppress an expected warning from the log. 3847 3848 xz (but not xzdec) will normally warn about unsupported check 3849 but since we are testing specifically such a file, it's better 3850 to silence that warning so that it doesn't look suspicious in 3851 test_files.sh.log. 3852 3853 The use of -q and -Q in xzdec is just for consistency and 3854 doesn't affect the result at least for now. 3855 3856 tests/test_files.sh | 4 ++-- 3857 1 file changed, 2 insertions(+), 2 deletions(-) 3858 3859commit 798c86e4231e0835ab76ccd0810c8ea30833b2ce 3860Author: Lasse Collin <lasse.collin@tukaani.org> 3861Date: 2022-10-27 15:27:50 +0300 3862 3863 Tests: test_files.sh: Print the reason for skipping if xz & xzdec missing. 3864 3865 tests/test_files.sh | 1 + 3866 1 file changed, 1 insertion(+) 3867 3868commit c1dd8524e1af07f16b790463899de06a6a5fcc08 3869Author: Lasse Collin <lasse.collin@tukaani.org> 3870Date: 2022-10-27 01:12:40 +0300 3871 3872 Tests: Keep test_compress_* working when some filters are unavailable. 3873 3874 tests/test_compress.sh | 34 ++++++++++++++++++++-------------- 3875 1 file changed, 20 insertions(+), 14 deletions(-) 3876 3877commit ce30ada91951d0746879ae438da11f1ee8a90aa0 3878Author: Jia Tan <jiat0218@gmail.com> 3879Date: 2022-10-23 21:01:08 +0800 3880 3881 Tests: test_bcj_exact_size skips properly now if PowerPC filter disabled. 3882 3883 tests/test_bcj_exact_size.c | 3 +++ 3884 1 file changed, 3 insertions(+) 3885 3886commit 89c5cfcacaca7130509fac836e2f30c46b824502 3887Author: Lasse Collin <lasse.collin@tukaani.org> 3888Date: 2022-10-26 00:05:57 +0300 3889 3890 Tests: Test also unsupported-*.xz. 3891 3892 tests/test_files.sh | 37 +++++++++++++++++++++++++++++++++++++ 3893 1 file changed, 37 insertions(+) 3894 3895commit a4b214b93ac741edef9c41e55865b0b867ca2587 3896Author: Lasse Collin <lasse.collin@tukaani.org> 3897Date: 2022-10-25 23:45:03 +0300 3898 3899 Build: Use AC_CONFIG_HEADERS instead of the ancient AC_CONFIG_HEADER. 3900 3901 We require Autoconf >= 2.69 and that has AC_CONFIG_HEADERS. 3902 3903 There is a warning about AC_PROG_CC_C99 being obsolete but 3904 it cannot be removed because it is needed with Autoconf 2.69. 3905 3906 configure.ac | 2 +- 3907 1 file changed, 1 insertion(+), 1 deletion(-) 3908 3909commit 04f299b64e73f50afc188c2590ebebc6b73ed744 3910Author: Lasse Collin <lasse.collin@tukaani.org> 3911Date: 2022-10-25 23:31:44 +0300 3912 3913 Build: Update m4/ax_pthread.m4 from Autoconf Archive. 3914 3915 m4/ax_pthread.m4 | 29 ++++++++++++++++++++++------- 3916 1 file changed, 22 insertions(+), 7 deletions(-) 3917 3918commit 59c4d6e1390f6f4176f43ac1dad1f7ac03c449b8 3919Author: Lasse Collin <lasse.collin@tukaani.org> 3920Date: 2022-10-25 23:28:34 +0300 3921 3922 Build: Add configure option --disable-microlzma. 3923 3924 MicroLZMA was made for EROFS and used by erofs-utils. 3925 It might be used by something else in the future but 3926 those wanting a smaller build for specific situations 3927 can now disable this rarely-needed feature. 3928 3929 configure.ac | 22 ++++++++++++++++++++++ 3930 1 file changed, 22 insertions(+) 3931 3932commit 054ccd6d14b2cc6eddc56897af280d3221414150 3933Author: Lasse Collin <lasse.collin@tukaani.org> 3934Date: 2022-10-25 23:09:11 +0300 3935 3936 xz: Fix --single-stream with an empty .xz Stream. 3937 3938 Example: 3939 3940 $ xz -dc --single-stream good-0-empty.xz 3941 xz: good-0-empty.xz: Internal error (bug) 3942 3943 The code, that is tries to catch some input file issues early, 3944 didn't anticipate LZMA_STREAM_END which is possible in that 3945 code only when --single-stream is used. 3946 3947 src/xz/coder.c | 9 +++++++++ 3948 1 file changed, 9 insertions(+) 3949 3950commit 563288ea705e83ff5cb292adf794650c263bca1d 3951Author: Lasse Collin <lasse.collin@tukaani.org> 3952Date: 2022-10-25 21:11:58 +0300 3953 3954 xz: Add support for OpenBSD's pledge() sandbox. 3955 3956 configure.ac | 12 +++++++++--- 3957 src/xz/file_io.c | 11 +++++++++++ 3958 src/xz/main.c | 13 +++++++++++++ 3959 src/xz/private.h | 2 +- 3960 4 files changed, 34 insertions(+), 4 deletions(-) 3961 3962commit f9913e8ee2ba0b1e4ff4d0aa4c001aae305ed944 3963Author: Lasse Collin <lasse.collin@tukaani.org> 3964Date: 2022-10-25 19:07:17 +0300 3965 3966 xz: Fix decompressor behavior if input uses an unsupported check type. 3967 3968 Now files with unsupported check will make xz display 3969 a warning, set the exit status to 2 (unless --no-warn is used), 3970 and then decompress the file normally. This is how it was 3971 supposed to work since the beginning but this was broken by 3972 the commit 231c3c7098f1099a56abb8afece76fc9b8699f05, that is, 3973 a little before 5.0.0 was released. The buggy behavior displayed 3974 a message, set exit status 1 (error), and xz didn't attempt to 3975 to decompress the file. 3976 3977 This doesn't matter today except for special builds that disable 3978 CRC64 or SHA-256 at build time (but such builds should be used 3979 in special situations only). The bug matters if new check type 3980 is added in the future and an old xz version is used to decompress 3981 such a file; however, it's likely that such files would use a new 3982 filter too and an old xz wouldn't be able to decompress the file 3983 anyway. 3984 3985 The first hunk in the commit is the actual fix. The second hunk 3986 is a cleanup since LZMA_TELL_ANY_CHECK isn't used in xz. 3987 3988 There is a test file for unsupported check type but it wasn't 3989 used by test_files.sh, perhaps due to different behavior between 3990 xz and the simpler xzdec. 3991 3992 src/xz/coder.c | 19 +++++++++++++++---- 3993 1 file changed, 15 insertions(+), 4 deletions(-) 3994 3995commit aa4fe145b9486adc454f44fd3e09be9add808a0f 3996Author: Lasse Collin <lasse.collin@tukaani.org> 3997Date: 2022-10-25 18:36:19 +0300 3998 3999 xz: Clarify the man page: input file isn't removed if an error occurs. 4000 4001 src/xz/xz.1 | 5 +++-- 4002 1 file changed, 3 insertions(+), 2 deletions(-) 4003 4004commit 8b46ae8cdeddfd7dc01fec92971b8696e9a96c5d 4005Author: Lasse Collin <lasse.collin@tukaani.org> 4006Date: 2022-10-25 18:30:55 +0300 4007 4008 xz: Refactor to remove is_empty_filename(). 4009 4010 Long ago it was used in list.c too but nowadays it's needed 4011 only in io_open_src() so it's nicer to avoid a separate function. 4012 4013 src/xz/file_io.c | 4 +++- 4014 src/xz/util.c | 12 ------------ 4015 src/xz/util.h | 4 ---- 4016 3 files changed, 3 insertions(+), 17 deletions(-) 4017 4018commit 85624015978b0de294cff3df79006df987c552b1 4019Author: Lasse Collin <lasse.collin@tukaani.org> 4020Date: 2022-10-25 18:23:54 +0300 4021 4022 xz: If input file cannot be removed, treat it as a warning, not error. 4023 4024 Treating it as a warning (message + exit status 2) matches gzip 4025 and it seems more logical as at that point the output file has 4026 already been successfully closed. When it's a warning it is 4027 possible to suppress it with --no-warn. 4028 4029 src/xz/file_io.c | 4 ++-- 4030 1 file changed, 2 insertions(+), 2 deletions(-) 4031 4032commit fda9f85f52c546f7ca0313cf89481da4707fecb3 4033Author: Lasse Collin <lasse.collin@tukaani.org> 4034Date: 2022-10-24 16:25:09 +0300 4035 4036 liblzma: Threaded decoder: Stop the worker threads on errors. 4037 4038 It's waste of CPU time and electricity to leave the unfinished 4039 worker threads running when it is known that their output will 4040 get ignored. 4041 4042 src/liblzma/common/stream_decoder_mt.c | 33 ++++++++++++++++++++++++++------- 4043 1 file changed, 26 insertions(+), 7 deletions(-) 4044 4045commit 2611c4d90535652d3eb7ef4a026a6691276fab43 4046Author: Lasse Collin <lasse.collin@tukaani.org> 4047Date: 2022-10-20 20:22:50 +0300 4048 4049 tuklib_cpucores: Use HW_NCPUONLINE on OpenBSD. 4050 4051 On OpenBSD the number of cores online is often less 4052 than what HW_NCPU would return because OpenBSD disables 4053 simultaneous multi-threading (SMT) by default. 4054 4055 Thanks to Christian Weisgerber. 4056 4057 m4/tuklib_cpucores.m4 | 5 +++++ 4058 src/common/tuklib_cpucores.c | 9 +++++++++ 4059 2 files changed, 14 insertions(+) 4060 4061commit 424ac91c7e0419393ff2bde4f62e21fa611c776d 4062Author: Lasse Collin <lasse.collin@tukaani.org> 4063Date: 2022-10-19 19:39:35 +0300 4064 4065 Tests: Skip tests in test_*.sh if encoders and/or decoders are disabled. 4066 4067 This isn't perfect as the scripts can still fail if only 4068 certain filters are disabled. This is still an improvement 4069 as now "make check" has better behavior when all encoders 4070 or decoders are disabled. 4071 4072 Grepping ../config.h is simple and fairly clean but it only 4073 works if config.h was created. CMake builds don't create 4074 config.h but they don't use these test scripts either. 4075 4076 Thanks to Sebastian Andrzej Siewior for reporting the problem. 4077 Thanks to Jia Tan for the original patch which grepped xz 4078 error messages instead of config.h. 4079 4080 tests/test_compress.sh | 12 ++++++++++++ 4081 tests/test_files.sh | 11 +++++++++++ 4082 tests/test_scripts.sh | 11 +++++++++++ 4083 3 files changed, 34 insertions(+) 4084 4085commit ca8bf9d7c5a30be8ba1eeb106fd892f19e83ed09 4086Author: Lasse Collin <lasse.collin@tukaani.org> 4087Date: 2022-10-19 18:54:34 +0300 4088 4089 Test: Remove the (exit 1) lines. 4090 4091 I suspect that I used these in the original version because 4092 Autoconf's manual describes that such a trick is needed in 4093 some specific situations for portability reasons. None of those 4094 situations listed on Autoconf 2.71 manual apply to these test 4095 scripts though so this cleans them up. 4096 4097 tests/test_compress.sh | 10 ---------- 4098 tests/test_files.sh | 9 --------- 4099 tests/test_scripts.sh | 6 ------ 4100 3 files changed, 25 deletions(-) 4101 4102commit 82fcb7cfc17ce62f79ebc7ca2374e1daca5e4d5e 4103Author: Lasse Collin <lasse.collin@tukaani.org> 4104Date: 2022-10-19 17:14:57 +0300 4105 4106 Tests: Fix a warning in test_memlimit.c when decoders are disabled. 4107 4108 tests/test_memlimit.c | 3 +++ 4109 1 file changed, 3 insertions(+) 4110 4111commit b5f8271b45b9b0e59485ffba3640ca3418835ec4 4112Author: Lasse Collin <lasse.collin@tukaani.org> 4113Date: 2022-10-19 17:11:46 +0300 4114 4115 Tests: Add test_memlimit to .gitignore. 4116 4117 Thanks to Jia Tan. 4118 4119 .gitignore | 1 + 4120 1 file changed, 1 insertion(+) 4121 4122commit 6a86e81cab202d0a812a7b2e9efacaf70c58ba38 4123Author: Jia Tan <jiat0218@gmail.com> 4124Date: 2022-10-06 21:53:09 +0300 4125 4126 Tests: Refactor test_stream_flags.c. 4127 4128 Converts test_stream_flags to tuktest. Also the test will now 4129 compile and skip properly if encoders or decoders are disabled. 4130 4131 Thanks to Sebastian Andrzej Siewior. 4132 4133 tests/test_stream_flags.c | 533 ++++++++++++++++++++++++++++++++++++---------- 4134 1 file changed, 416 insertions(+), 117 deletions(-) 4135 4136commit 827ac5b4821491fd3afe0d0e1ddac326253aeb66 4137Author: Jia Tan <jiat0218@gmail.com> 4138Date: 2022-10-06 17:00:38 +0800 4139 4140 Tests: Refactor test_block_header.c. 4141 4142 test_block_header now achieves higher test coverage. Also the 4143 test will now compile and skip properly if encoders or decoders 4144 are disabled. 4145 4146 Thanks to Sebastian Andrzej Siewior. 4147 4148 tests/test_block_header.c | 486 +++++++++++++++++++++++++++++++++++----------- 4149 1 file changed, 370 insertions(+), 116 deletions(-) 4150 4151commit 84963318952064a93bfc52edd6b0ef70593384ee 4152Author: Jia Tan <jiat0218@gmail.com> 4153Date: 2022-10-05 23:54:12 +0800 4154 4155 Tests: Fix compilation issues. 4156 4157 test_bcj_exact_size, test_check, test_hardware, and test_index will 4158 all now compile and skip properly if encoders or decoders are disabled. 4159 4160 Also fixed a small typo (disabed -> disabled). 4161 4162 Thanks to Sebastian Andrzej Siewior. 4163 4164 tests/test_bcj_exact_size.c | 20 ++++++++++++++------ 4165 tests/test_check.c | 8 +++++++- 4166 tests/test_hardware.c | 2 +- 4167 tests/test_index.c | 6 ++++++ 4168 tests/test_memlimit.c | 16 +++++++++++++++- 4169 tests/test_vli.c | 13 +++++++++++++ 4170 6 files changed, 56 insertions(+), 9 deletions(-) 4171 4172commit 7dcabeec63d46b436fa5f043c3d1f09d0e15be16 4173Author: Lasse Collin <lasse.collin@tukaani.org> 4174Date: 2022-10-05 16:20:47 +0300 4175 4176 Tests: Include mythread.h in the tests that use MYTHREAD_ENABLED. 4177 4178 tests/test_check.c | 1 + 4179 tests/test_hardware.c | 1 + 4180 tests/test_memlimit.c | 1 + 4181 3 files changed, 3 insertions(+) 4182 4183commit 14af758a770c7781af18fb66d6d21ee5b1c27f04 4184Author: Jia Tan <jiat0218@gmail.com> 4185Date: 2022-10-05 20:57:16 +0800 4186 4187 liblzma: Fix a compilation issue when encoders are disabled. 4188 4189 When encoders were disabled and threading enabled, outqueue.c and 4190 outqueue.h were not compiled. The multi threaded decoder required 4191 these files, so compilation failed. 4192 4193 src/liblzma/common/Makefile.inc | 7 ++++--- 4194 1 file changed, 4 insertions(+), 3 deletions(-) 4195 4196commit 6ca5c354bd4620aa7f81da68870eef1b1f26288f 4197Author: Jia Tan <jiat0218@gmail.com> 4198Date: 2022-10-05 16:41:38 +0800 4199 4200 Tests: Fix compilation error when threading support has been disabled. 4201 4202 Now tests that require threading are skipped when threading 4203 support has been disabled. 4204 4205 Thanks to Sebastian Andrzej Siewior. 4206 4207 tests/test_check.c | 4 ++++ 4208 tests/test_hardware.c | 4 ++++ 4209 tests/test_memlimit.c | 4 ++++ 4210 3 files changed, 12 insertions(+) 4211 4212commit fae37ad2affd8fe8871f4ff93d5cab5ec14d5e58 4213Author: Lasse Collin <lasse.collin@tukaani.org> 4214Date: 2022-10-05 14:26:00 +0300 4215 4216 tuklib_integer: Add 64-bit endianness-converting reads and writes. 4217 4218 Also update the comment in liblzma's memcmplen.h. 4219 4220 Thanks to Michał Górny for the original patch for the reads. 4221 4222 m4/tuklib_integer.m4 | 8 ++++---- 4223 src/common/tuklib_integer.h | 46 ++++++++++++++++++++++++++++++++++++++++-- 4224 src/liblzma/common/memcmplen.h | 9 +++------ 4225 3 files changed, 51 insertions(+), 12 deletions(-) 4226 4227commit 508a44372c5b0dede8863fd0d358d4a9d8645c95 4228Author: Lasse Collin <lasse.collin@tukaani.org> 4229Date: 2022-09-30 12:06:13 +0300 4230 4231 liblzma: Add API doc note about the .xz decoder LZMA_MEMLIMIT_ERROR bug. 4232 4233 The bug was fixed in 660739f99ab211edec4071de98889fb32ed04e98. 4234 4235 src/liblzma/api/lzma/base.h | 11 +++++++++++ 4236 1 file changed, 11 insertions(+) 4237 4238commit 8cc9874a7974cd575aee44f218836f7acdbeb0ed 4239Author: Jia Tan <jiat0218@gmail.com> 4240Date: 2022-09-21 16:15:50 +0800 4241 4242 liblzma: Add dest and src NULL checks to lzma_index_cat. 4243 4244 The documentation states LZMA_PROG_ERROR can be returned from 4245 lzma_index_cat. Previously, lzma_index_cat could not return 4246 LZMA_PROG_ERROR. Now, the validation is similar to 4247 lzma_index_append, which does a NULL check on the index 4248 parameter. 4249 4250 src/liblzma/common/index.c | 3 +++ 4251 1 file changed, 3 insertions(+) 4252 4253commit afd5a8bf5374eba82804a999e1ea7af680784086 4254Author: Jia Tan <jiat0218@gmail.com> 4255Date: 2022-09-21 20:29:28 +0800 4256 4257 Tests: Create a test for the lzma_index_cat bug. 4258 4259 tests/test_index.c | 43 ++++++++++++++++++++++++++++++++++++++++++- 4260 1 file changed, 42 insertions(+), 1 deletion(-) 4261 4262commit 3d5a99ca373a4e86faf671226ca6487febb9eeac 4263Author: Jia Tan <jiat0218@gmail.com> 4264Date: 2022-09-21 19:28:53 +0800 4265 4266 liblzma: Fix copying of check type statistics in lzma_index_cat(). 4267 4268 The check type of the last Stream in dest was never copied to 4269 dest->checks (the code tried to copy it but it was done too late). 4270 This meant that the value returned by lzma_index_checks() would 4271 only include the check type of the last Stream when multiple 4272 lzma_indexes had been concatenated. 4273 4274 In xz --list this meant that the summary would only list the 4275 check type of the last Stream, so in this sense this was only 4276 a visual bug. However, it's possible that some applications 4277 use this information for purposes other than merely showing 4278 it to the users in an informational message. I'm not aware of 4279 such applications though and it's quite possible that such 4280 applications don't exist. 4281 4282 Regular streamed decompression in xz or any other application 4283 doesn't use lzma_index_cat() and so this bug cannot affect them. 4284 4285 src/liblzma/common/index.c | 7 ++++++- 4286 1 file changed, 6 insertions(+), 1 deletion(-) 4287 4288commit a61d32172789735350a941e23baf6b587c49e5d9 4289Author: Lasse Collin <lasse.collin@tukaani.org> 4290Date: 2022-09-28 12:20:41 +0300 4291 4292 tuklib_physmem: Fix Unicode builds on Windows. 4293 4294 Thanks to ArSaCiA Game. 4295 4296 src/common/tuklib_physmem.c | 2 +- 4297 1 file changed, 1 insertion(+), 1 deletion(-) 4298 4299commit 5a4d3548ab214fdca364d5c734baf1d1fab47308 4300Author: Lasse Collin <lasse.collin@tukaani.org> 4301Date: 2022-09-28 11:12:07 +0300 4302 4303 Tests: Add test_memlimit.c to test restarting after LZMA_MEMLIMIT_ERROR. 4304 4305 tests/Makefile.am | 2 + 4306 tests/test_memlimit.c | 151 ++++++++++++++++++++++++++++++++++++++++++++++++++ 4307 2 files changed, 153 insertions(+) 4308 4309commit 660739f99ab211edec4071de98889fb32ed04e98 4310Author: Lasse Collin <lasse.collin@tukaani.org> 4311Date: 2022-09-28 11:05:15 +0300 4312 4313 liblzma: Stream decoder: Fix restarting after LZMA_MEMLIMIT_ERROR. 4314 4315 If lzma_code() returns LZMA_MEMLIMIT_ERROR it is now possible 4316 to use lzma_memlimit_set() to increase the limit and continue 4317 decoding. This was supposed to work from the beginning but 4318 there was a bug. With other decoders (.lzma or threaded .xz) 4319 this already worked correctly. 4320 4321 src/liblzma/common/stream_decoder.c | 16 +++++++++++++--- 4322 1 file changed, 13 insertions(+), 3 deletions(-) 4323 4324commit 7e68fda58c74ad9e5b876cc22fcbe80fc0e4747b 4325Author: Lasse Collin <lasse.collin@tukaani.org> 4326Date: 2022-09-28 11:00:23 +0300 4327 4328 liblzma: Stream decoder: Fix comments. 4329 4330 src/liblzma/common/stream_decoder.c | 12 +++++------- 4331 1 file changed, 5 insertions(+), 7 deletions(-) 4332 4333commit f664cb25841fc1c478b819034a224a558e2ac6e7 4334Author: Lasse Collin <lasse.collin@tukaani.org> 4335Date: 2022-09-20 16:58:22 +0300 4336 4337 liblzma: ARM64: Add comments. 4338 4339 src/liblzma/simple/arm64.c | 13 +++++++++++++ 4340 1 file changed, 13 insertions(+) 4341 4342commit b557b4a0eea05470fae8ba5ef4ad5a6dfb36ac41 4343Author: Lasse Collin <lasse.collin@tukaani.org> 4344Date: 2022-09-20 16:27:50 +0300 4345 4346 liblzma: ARM64: Fix wrong comment in API doc. 4347 4348 Thanks to Jia Tan. 4349 4350 src/liblzma/api/lzma/bcj.h | 4 ++-- 4351 1 file changed, 2 insertions(+), 2 deletions(-) 4352 4353commit d5b0906fa55157f48c200188a3951d80df9cb308 4354Author: Lasse Collin <lasse.collin@tukaani.org> 4355Date: 2022-09-19 20:24:26 +0300 4356 4357 xz: Add --experimental-arm64[=width=WIDTH]. 4358 4359 It will be renamed to --arm64 once it is stable. 4360 4361 Man page or --long-help weren't updated yet. 4362 4363 src/xz/args.c | 7 +++++++ 4364 src/xz/message.c | 7 +++++++ 4365 src/xz/options.c | 39 +++++++++++++++++++++++++++++++++++++++ 4366 src/xz/options.h | 7 +++++++ 4367 4 files changed, 60 insertions(+) 4368 4369commit ecb966de308c255bb4735a7307ef9901c643a9de 4370Author: Lasse Collin <lasse.collin@tukaani.org> 4371Date: 2022-09-19 19:34:56 +0300 4372 4373 liblzma: Add experimental ARM64 BCJ filter with a temporary Filter ID. 4374 4375 That is, the Filter ID will be changed once the design is final. 4376 The current version will be removed. So files created with the 4377 tempoary Filter ID won't be supported in the future. 4378 4379 CMakeLists.txt | 3 + 4380 configure.ac | 4 +- 4381 src/liblzma/api/lzma/bcj.h | 35 +++++- 4382 src/liblzma/common/filter_common.c | 9 ++ 4383 src/liblzma/common/filter_decoder.c | 8 ++ 4384 src/liblzma/common/filter_encoder.c | 11 ++ 4385 src/liblzma/simple/Makefile.inc | 4 + 4386 src/liblzma/simple/arm64.c | 227 ++++++++++++++++++++++++++++++++++++ 4387 src/liblzma/simple/simple_coder.h | 9 ++ 4388 src/liblzma/simple/simple_decoder.h | 4 + 4389 src/liblzma/simple/simple_encoder.h | 2 + 4390 11 files changed, 313 insertions(+), 3 deletions(-) 4391 4392commit 177bdc922cb17bd0fd831ab8139dfae912a5c2b8 4393Author: Lasse Collin <lasse.collin@tukaani.org> 4394Date: 2022-09-17 22:42:18 +0300 4395 4396 liblzma: Simple/BCJ filters: Allow disabling generic BCJ options. 4397 4398 This will be needed for the ARM64 BCJ filter as it will use 4399 its own options struct. 4400 4401 src/liblzma/simple/arm.c | 2 +- 4402 src/liblzma/simple/armthumb.c | 2 +- 4403 src/liblzma/simple/ia64.c | 2 +- 4404 src/liblzma/simple/powerpc.c | 2 +- 4405 src/liblzma/simple/simple_coder.c | 4 ++-- 4406 src/liblzma/simple/simple_private.h | 2 +- 4407 src/liblzma/simple/sparc.c | 2 +- 4408 src/liblzma/simple/x86.c | 3 ++- 4409 8 files changed, 10 insertions(+), 9 deletions(-) 4410 4411commit c3592d0a55114144686ecf960cb516d6b31c98e9 4412Author: Lasse Collin <lasse.collin@tukaani.org> 4413Date: 2022-09-16 17:08:53 +0300 4414 4415 Tests: Add a test file for lzma_index_append() integer overflow bug. 4416 4417 This test fails before commit 18d7facd3802b55c287581405c4d49c98708c136. 4418 4419 test_files.sh now runs xz -l for bad-3-index-uncomp-overflow.xz 4420 because only then the previously-buggy code path gets tested. 4421 Normal decompression doesn't use lzma_index_append() at all. 4422 Instead, lzma_index_hash functions are used and those already 4423 did the overflow check. 4424 4425 tests/files/README | 10 ++++++++++ 4426 tests/files/bad-3-index-uncomp-overflow.xz | Bin 0 -> 132 bytes 4427 tests/test_files.sh | 8 ++++++++ 4428 3 files changed, 18 insertions(+) 4429 4430commit 982b29f828079a2a26253a40e975127a40a7d2bd 4431Author: Lasse Collin <lasse.collin@tukaani.org> 4432Date: 2022-09-16 15:10:07 +0300 4433 4434 Translations: Add Turkish translation. 4435 4436 po/LINGUAS | 1 + 4437 po/tr.po | 977 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4438 2 files changed, 978 insertions(+) 4439 4440commit 1fc088d9f6d1697924aaeac8cd1fb9918d1532e2 4441Author: Lasse Collin <lasse.collin@tukaani.org> 4442Date: 2022-09-16 14:09:07 +0300 4443 4444 Update THANKS. 4445 4446 THANKS | 1 + 4447 1 file changed, 1 insertion(+) 4448 4449commit 097c7b67ce86ff16a7cef7631b39e5ca4ee3d420 4450Author: Lasse Collin <lasse.collin@tukaani.org> 4451Date: 2022-09-16 14:07:03 +0300 4452 4453 xzgrep: Fix compatibility with old shells. 4454 4455 Running the current xzgrep on Slackware 10.1 with GNU bash 3.00.15: 4456 4457 xzgrep: line 231: syntax error near unexpected token `;;' 4458 4459 On SCO OpenServer 5.0.7 with Korn Shell 93r: 4460 4461 syntax error at line 231 : `;;' unexpected 4462 4463 Turns out that some old shells don't like apostrophes (') inside 4464 command substitutions. For example, the following fails: 4465 4466 x=$(echo foo 4467 # asdf'zxcv 4468 echo bar) 4469 printf '%s\n' "$x" 4470 4471 The problem was introduced by commits 4472 69d1b3fc29677af8ade8dc15dba83f0589cb63d6 (2022-03-29), 4473 bd7b290f3fe4faeceb7d3497ed9bf2e6ed5e7dc5 (2022-07-18), and 4474 a648978b20495b7aa4a8b029c5a810b5ad9d08ff (2022-07-19). 4475 5.2.6 is the only stable release that included 4476 this problem. 4477 4478 Thanks to Kevin R. Bulgrien for reporting the problem 4479 on SCO OpenServer 5.0.7 and for providing the fix. 4480 4481 src/scripts/xzgrep.in | 6 +++--- 4482 1 file changed, 3 insertions(+), 3 deletions(-) 4483 4484commit f2d084fe3f0d6d71488bfc6987f26542f67bfd99 4485Author: Lasse Collin <lasse.collin@tukaani.org> 4486Date: 2022-09-09 14:12:30 +0300 4487 4488 Tests: Silence warnings about unused functions from tuktest.h. 4489 4490 Warnings about unused tuktest_run_test conveniently tell which 4491 test programs haven't been converted to tuktest.h yet but I 4492 silenced that warning too for now anyway. 4493 4494 It is fine to use __attribute__((__unused__)) even when the 4495 function is actually used because the attribute only means 4496 that the function might be unused. 4497 4498 tests/tuktest.h | 10 ++++++++++ 4499 1 file changed, 10 insertions(+) 4500 4501commit f8ee61e74eb40600445fdb601c374d582e1e9c8a 4502Author: Lasse Collin <lasse.collin@tukaani.org> 4503Date: 2022-09-09 13:51:57 +0300 4504 4505 liblzma: lzma_filters_copy: Keep dest[] unmodified if an error occurs. 4506 4507 lzma_stream_encoder() and lzma_stream_encoder_mt() always assumed 4508 this. Before this patch, failing lzma_filters_copy() could result 4509 in free(invalid_pointer) or invalid memory reads in stream_encoder.c 4510 or stream_encoder_mt.c. 4511 4512 To trigger this, allocating memory for a filter options structure 4513 has to fail. These are tiny allocations so in practice they very 4514 rarely fail. 4515 4516 Certain badness in the filter chain array could also make 4517 lzma_filters_copy() fail but both stream_encoder.c and 4518 stream_encoder_mt.c validate the filter chain before 4519 trying to copy it, so the crash cannot occur this way. 4520 4521 src/liblzma/api/lzma/filter.h | 4 +++- 4522 src/liblzma/common/filter_common.c | 18 ++++++++++++------ 4523 2 files changed, 15 insertions(+), 7 deletions(-) 4524 4525commit 18d7facd3802b55c287581405c4d49c98708c136 4526Author: Jia Tan <jiat0218@gmail.com> 4527Date: 2022-09-02 20:18:55 +0800 4528 4529 liblzma: lzma_index_append: Add missing integer overflow check. 4530 4531 The documentation in src/liblzma/api/lzma/index.h suggests that 4532 both the unpadded (compressed) size and the uncompressed size 4533 are checked for overflow, but only the unpadded size was checked. 4534 The uncompressed check is done first since that is more likely to 4535 occur than the unpadded or index field size overflows. 4536 4537 src/liblzma/common/index.c | 4 ++++ 4538 1 file changed, 4 insertions(+) 4539 4540commit 9ac06cb5b85274d18f9f70d82cf2d8c9c1151bd4 4541Author: Lasse Collin <lasse.collin@tukaani.org> 4542Date: 2022-09-08 15:11:08 +0300 4543 4544 Update THANKS. 4545 4546 THANKS | 1 + 4547 1 file changed, 1 insertion(+) 4548 4549commit ba3e4ba2de034ae93a513f9c3a0823b80cdb66dc 4550Author: Jia Tan <jiat0218@gmail.com> 4551Date: 2022-09-08 15:07:00 +0300 4552 4553 CMake: Clarify a comment about Windows symlinks without file extension. 4554 4555 CMakeLists.txt | 7 +++---- 4556 1 file changed, 3 insertions(+), 4 deletions(-) 4557 4558commit 17485e884ce5c74315f29a8a1507bc706cd5cd1d 4559Author: Lasse Collin <lasse.collin@tukaani.org> 4560Date: 2022-09-08 15:02:41 +0300 4561 4562 CMake: Update for liblzma_*.map files and fix wrong common_w32res.rc dep. 4563 4564 The previous commit split liblzma.map into liblzma_linux.map and 4565 liblzma_generic.map. This commit updates the CMake build for those. 4566 4567 common_w32res.rc dependency was listed under Linux/FreeBSD while 4568 obviously it belongs to Windows when building a DLL. 4569 4570 CMakeLists.txt | 24 +++++++++++++++++++----- 4571 1 file changed, 19 insertions(+), 5 deletions(-) 4572 4573commit 913ddc5572b9455fa0cf299be2e35c708840e922 4574Author: Lasse Collin <lasse.collin@tukaani.org> 4575Date: 2022-09-04 23:23:00 +0300 4576 4577 liblzma: Vaccinate against an ill patch from RHEL/CentOS 7. 4578 4579 RHEL/CentOS 7 shipped with 5.1.2alpha, including the threaded 4580 encoder that is behind #ifdef LZMA_UNSTABLE in the API headers. 4581 In 5.1.2alpha these symbols are under XZ_5.1.2alpha in liblzma.map. 4582 API/ABI compatibility tracking isn't done between development 4583 releases so newer releases didn't have XZ_5.1.2alpha anymore. 4584 4585 Later RHEL/CentOS 7 updated xz to 5.2.2 but they wanted to keep 4586 the exported symbols compatible with 5.1.2alpha. After checking 4587 the ABI changes it turned out that >= 5.2.0 ABI is backward 4588 compatible with the threaded encoder functions from 5.1.2alpha 4589 (but not vice versa as fixes and extensions to these functions 4590 were made between 5.1.2alpha and 5.2.0). 4591 4592 In RHEL/CentOS 7, XZ Utils 5.2.2 was patched with 4593 xz-5.2.2-compat-libs.patch to modify liblzma.map: 4594 4595 - XZ_5.1.2alpha was added with lzma_stream_encoder_mt and 4596 lzma_stream_encoder_mt_memusage. This matched XZ Utils 5.1.2alpha. 4597 4598 - XZ_5.2 was replaced with XZ_5.2.2. It is clear that this was 4599 an error; the intention was to keep using XZ_5.2 (XZ_5.2.2 4600 has never been used in XZ Utils). So XZ_5.2.2 lists all 4601 symbols that were listed under XZ_5.2 before the patch. 4602 lzma_stream_encoder_mt and _mt_memusage are included too so 4603 they are listed both here and under XZ_5.1.2alpha. 4604 4605 The patch didn't add any __asm__(".symver ...") lines to the .c 4606 files. Thus the resulting liblzma.so exports the threaded encoder 4607 functions under XZ_5.1.2alpha only. Listing the two functions 4608 also under XZ_5.2.2 in liblzma.map has no effect without 4609 matching .symver lines. 4610 4611 The lack of XZ_5.2 in RHEL/CentOS 7 means that binaries linked 4612 against unpatched XZ Utils 5.2.x won't run on RHEL/CentOS 7. 4613 This is unfortunate but this alone isn't too bad as the problem 4614 is contained within RHEL/CentOS 7 and doesn't affect users 4615 of other distributions. It could also be fixed internally in 4616 RHEL/CentOS 7. 4617 4618 The second problem is more serious: In XZ Utils 5.2.2 the API 4619 headers don't have #ifdef LZMA_UNSTABLE for obvious reasons. 4620 This is true in RHEL/CentOS 7 version too. Thus now programs 4621 using new APIs can be compiled without an extra #define. However, 4622 the programs end up depending on symbol version XZ_5.1.2alpha 4623 (and possibly also XZ_5.2.2) instead of XZ_5.2 as they would 4624 with an unpatched XZ Utils 5.2.2. This means that such binaries 4625 won't run on other distributions shipping XZ Utils >= 5.2.0 as 4626 they don't provide XZ_5.1.2alpha or XZ_5.2.2; they only provide 4627 XZ_5.2 (and XZ_5.0). (This includes RHEL/CentOS 8 as the patch 4628 luckily isn't included there anymore with XZ Utils 5.2.4.) 4629 4630 Binaries built by RHEL/CentOS 7 users get distributed and then 4631 people wonder why they don't run on some other distribution. 4632 Seems that people have found out about the patch and been copying 4633 it to some build scripts, seemingly curing the symptoms but 4634 actually spreading the illness further and outside RHEL/CentOS 7. 4635 4636 The ill patch seems to be from late 2016 (RHEL 7.3) and in 2017 it 4637 had spread at least to EasyBuild. I heard about the events only 4638 recently. :-( 4639 4640 This commit splits liblzma.map into two versions: one for 4641 GNU/Linux and another for other OSes that can use symbol versioning 4642 (FreeBSD, Solaris, maybe others). The Linux-specific file and the 4643 matching additions to .c files add full compatibility with binaries 4644 that have been built against a RHEL/CentOS-patched liblzma. Builds 4645 for OSes other than GNU/Linux won't get the vaccine as they should 4646 be immune to the problem (I really hope that no build script uses 4647 the RHEL/CentOS 7 patch outside GNU/Linux). 4648 4649 The RHEL/CentOS compatibility symbols XZ_5.1.2alpha and XZ_5.2.2 4650 are intentionally put *after* XZ_5.2 in liblzma_linux.map. This way 4651 if one forgets to #define HAVE_SYMBOL_VERSIONS_LINUX when building, 4652 the resulting liblzma.so.5 will have lzma_stream_encoder_mt@@XZ_5.2 4653 since XZ_5.2 {...} is the first one that lists that function. 4654 Without HAVE_SYMBOL_VERSIONS_LINUX @XZ_5.1.2alpha and @XZ_5.2.2 4655 will be missing but that's still a minor problem compared to 4656 only having lzma_stream_encoder_mt@@XZ_5.1.2alpha! 4657 4658 The "local: *;" line was moved to XZ_5.0 so that it doesn't need 4659 to be moved around. It doesn't matter where it is put. 4660 4661 Having two similar liblzma_*.map files is a bit silly as it is, 4662 at least for now, easily possible to generate the generic one 4663 from the Linux-specific file. But that adds extra steps and 4664 increases the risk of mistakes when supporting more than one 4665 build system. So I rather maintain two files in parallel and let 4666 validate_map.sh check that they are in sync when "make mydist" 4667 is run. 4668 4669 This adds .symver lines for lzma_stream_encoder_mt@XZ_5.2.2 and 4670 lzma_stream_encoder_mt_memusage@XZ_5.2.2 even though these 4671 weren't exported by RHEL/CentOS 7 (only @@XZ_5.1.2alpha was 4672 for these two). I added these anyway because someone might 4673 misunderstand the RHEL/CentOS 7 patch and think that @XZ_5.2.2 4674 (@@XZ_5.2.2) versions were exported too. 4675 4676 At glance one could suggest using __typeof__ to copy the function 4677 prototypes when making aliases. However, this doesn't work trivially 4678 because __typeof__ won't copy attributes (lzma_nothrow, lzma_pure) 4679 and it won't change symbol visibility from hidden to default (done 4680 by LZMA_API()). Attributes could be copied with __copy__ attribute 4681 but that needs GCC 9 and a fallback method would be needed anyway. 4682 4683 This uses __symver__ attribute with GCC >= 10 and 4684 __asm__(".symver ...") with everything else. The attribute method 4685 is required for LTO (-flto) support with GCC. Using -flto with 4686 GCC older than 10 is now broken on GNU/Linux and will not be fixed 4687 (can silently result in a broken liblzma build that has dangerously 4688 incorrect symbol versions). LTO builds with Clang seem to work 4689 with the traditional __asm__(".symver ...") method. 4690 4691 Thanks to Boud Roukema for reporting the problem and discussing 4692 the details and testing the fix. 4693 4694 configure.ac | 23 +++- 4695 src/liblzma/Makefile.am | 10 +- 4696 src/liblzma/common/block_buffer_encoder.c | 18 ++++ 4697 src/liblzma/common/common.c | 14 +++ 4698 src/liblzma/common/common.h | 28 +++++ 4699 src/liblzma/common/hardware_cputhreads.c | 12 +++ 4700 src/liblzma/common/stream_encoder_mt.c | 42 ++++++++ 4701 src/liblzma/{liblzma.map => liblzma_generic.map} | 6 +- 4702 src/liblzma/liblzma_linux.map | 131 +++++++++++++++++++++++ 4703 src/liblzma/validate_map.sh | 113 +++++++++++++++++-- 4704 10 files changed, 382 insertions(+), 15 deletions(-) 4705 4706commit 80a1a8bb838842a2be343bd88ad1462c21c5e2c9 4707Author: Lasse Collin <lasse.collin@tukaani.org> 4708Date: 2022-08-31 16:42:04 +0300 4709 4710 CMake: Add xz symlinks. 4711 4712 These are a minor thing especially since the xz build has 4713 some real problems still like lack of large file support 4714 on 32-bit systems but I'll commit this since the code exists. 4715 4716 Thanks to Jia Tan. 4717 4718 CMakeLists.txt | 38 +++++++++++++++++++++++++++++++++++++- 4719 1 file changed, 37 insertions(+), 1 deletion(-) 4720 4721commit a4193bb6d85d7765b1b87faeab3e50106d3ab2e9 4722Author: Lasse Collin <lasse.collin@tukaani.org> 4723Date: 2022-08-31 16:29:38 +0300 4724 4725 CMake: Put xz man page install under if(UNIX) like is for xzdec. 4726 4727 Thanks to Jia Tan. 4728 4729 CMakeLists.txt | 8 +++++--- 4730 1 file changed, 5 insertions(+), 3 deletions(-) 4731 4732commit c1555b1a221a1427d4d650647531016d754bc4da 4733Author: Lasse Collin <lasse.collin@tukaani.org> 4734Date: 2022-08-22 18:16:40 +0300 4735 4736 Bump version number for 5.3.3alpha. 4737 4738 src/liblzma/api/lzma/version.h | 2 +- 4739 src/liblzma/liblzma.map | 2 +- 4740 2 files changed, 2 insertions(+), 2 deletions(-) 4741 4742commit 44fedddc11c3f6ec2f7fe35a3e38f15ca93f90eb 4743Author: Lasse Collin <lasse.collin@tukaani.org> 4744Date: 2022-08-22 18:13:56 +0300 4745 4746 Add NEWS for 5.3.3alpha. 4747 4748 NEWS | 119 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4749 1 file changed, 119 insertions(+) 4750 4751commit a93e235d7ca764cc19f8f9f9063b40ff361c3cfa 4752Author: Lasse Collin <lasse.collin@tukaani.org> 4753Date: 2022-07-12 17:59:41 +0300 4754 4755 Translations: Add Portuguese translation. 4756 4757 Jia Tan made white-space changes and also changed "Language: pt_BR\n" 4758 to pt. The translator wasn't reached so I'm hoping these changes 4759 are OK and will commit it without translator's approval. 4760 4761 Thanks to Pedro Albuquerque and Jia Tan. 4762 4763 po/LINGUAS | 1 + 4764 po/pt.po | 1001 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4765 2 files changed, 1002 insertions(+) 4766 4767commit e7cf5a946f25e40d77f45e41f0dee7d42a04e9ae 4768Author: Lasse Collin <lasse.collin@tukaani.org> 4769Date: 2022-07-10 21:16:40 +0300 4770 4771 Translations: Add Serbian translation. 4772 4773 Quite a few white-space changes were made by Jia Tan to make 4774 this look good. Contacting the translator didn't succeed so 4775 I'm committing this without getting translator's approval. 4776 4777 Thanks to Мирослав Николић (Miroslav Nikolic) and Jia Tan. 4778 4779 po/LINGUAS | 1 + 4780 po/sr.po | 987 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4781 2 files changed, 988 insertions(+) 4782 4783commit cc8617ab53b1f2a4da212fa76c92fe538269c5de 4784Author: Lasse Collin <lasse.collin@tukaani.org> 4785Date: 2022-07-04 23:51:36 +0300 4786 4787 Translations: Add Swedish translation. 4788 4789 Thanks to Sebastian Rasmussen and Jia Tan. 4790 4791 po/LINGUAS | 1 + 4792 po/sv.po | 983 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4793 2 files changed, 984 insertions(+) 4794 4795commit c613598c358b640682d0ca2aed38fa7df763e8c7 4796Author: Lasse Collin <lasse.collin@tukaani.org> 4797Date: 2022-07-04 23:40:27 +0300 4798 4799 Translations: Add Esperanto translation. 4800 4801 Thanks to Keith Bowes and Jia Tan. 4802 4803 po/LINGUAS | 1 + 4804 po/eo.po | 984 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4805 2 files changed, 985 insertions(+) 4806 4807commit 659a587d678f21e98e91d2751c31d4ce050c081a 4808Author: Lasse Collin <lasse.collin@tukaani.org> 4809Date: 2022-07-01 00:22:33 +0300 4810 4811 Translations: Add Catalan translation. 4812 4813 Thanks to Jordi Mas and Jia Tan. 4814 4815 po/LINGUAS | 1 + 4816 po/ca.po | 1076 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4817 2 files changed, 1077 insertions(+) 4818 4819commit 739fd8c9bdf1d85f57d56642aad87148d4779530 4820Author: Lasse Collin <lasse.collin@tukaani.org> 4821Date: 2022-06-30 17:47:08 +0300 4822 4823 Translations: Add Ukrainian translation. 4824 4825 Thanks to Yuri Chornoivan and Jia Tan. 4826 4827 po/LINGUAS | 1 + 4828 po/uk.po | 996 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4829 2 files changed, 997 insertions(+) 4830 4831commit 73280550b111930c62a667e56add8fd574f80bc8 4832Author: Lasse Collin <lasse.collin@tukaani.org> 4833Date: 2022-06-30 17:45:26 +0300 4834 4835 Translators: Add Romanian translation. 4836 4837 Thanks to Remus-Gabriel Chelu and Jia Tan. 4838 4839 po/LINGUAS | 1 + 4840 po/ro.po | 1016 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4841 2 files changed, 1017 insertions(+) 4842 4843commit 2465f5b825152714b2c357d96c2422c31109d320 4844Author: Lasse Collin <lasse.collin@tukaani.org> 4845Date: 2022-06-29 18:33:32 +0300 4846 4847 Translations: Update Brazilian Portuguese translation. 4848 4849 One msgstr was changed. The diff is long due to changes 4850 in the source code line numbers in the comments. 4851 4852 Thanks to Rafael Fontenelle. 4853 4854 po/pt_BR.po | 186 ++++++++++++++++++++++++++++++------------------------------ 4855 1 file changed, 92 insertions(+), 94 deletions(-) 4856 4857commit 434e1ffd3e62719d509da10b646216f5ef53fe4d 4858Author: Lasse Collin <lasse.collin@tukaani.org> 4859Date: 2022-06-29 18:04:44 +0300 4860 4861 Translations: Add Croatian translation. 4862 4863 Thanks to Božidar Putanec and Jia Tan. 4864 4865 po/LINGUAS | 1 + 4866 po/hr.po | 987 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4867 2 files changed, 988 insertions(+) 4868 4869commit 0732d0f7065c9bd48bfe4f5983144ae970c4a499 4870Author: Lasse Collin <lasse.collin@tukaani.org> 4871Date: 2022-06-29 17:58:48 +0300 4872 4873 Translations: Add Spanish translation. 4874 4875 Thanks to Cristian Othón Martínez Vera and Jia Tan. 4876 4877 po/LINGUAS | 1 + 4878 po/es.po | 984 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4879 2 files changed, 985 insertions(+) 4880 4881commit 9899b0f82bc130998d1f1f618a6ab805b73f2696 4882Author: Lasse Collin <lasse.collin@tukaani.org> 4883Date: 2022-06-29 17:49:43 +0300 4884 4885 Translations: Add Korean translation. 4886 4887 Thanks to Seong-ho Cho and Jia Tan. 4888 4889 po/LINGUAS | 1 + 4890 po/ko.po | 972 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4891 2 files changed, 973 insertions(+) 4892 4893commit 65217eaf6bd195f3ef027d4ac55d57b7d133d69f 4894Author: Lasse Collin <lasse.collin@tukaani.org> 4895Date: 2020-03-16 21:57:21 +0200 4896 4897 Translations: Rebuild cs.po to avoid incorrect fuzzy strings. 4898 4899 "make dist" updates the .po files and the fuzzy strings would 4900 result in multiple very wrong translations. 4901 4902 po/cs.po | 592 ++++++++++++++++++++++++++++++++++----------------------------- 4903 1 file changed, 322 insertions(+), 270 deletions(-) 4904 4905commit e56ff423ee7af9e648e16b132f0d835d2cb4db26 4906Author: Lasse Collin <lasse.collin@tukaani.org> 4907Date: 2020-03-16 17:30:39 +0200 4908 4909 Translations: Add partial Danish translation. 4910 4911 I made a few minor white space changes without getting them 4912 approved by the Danish translation team. 4913 4914 po/LINGUAS | 1 + 4915 po/da.po | 896 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4916 2 files changed, 897 insertions(+) 4917 4918commit 43e09c62e77cb8807d932c81de4decbdb956e184 4919Author: Lasse Collin <lasse.collin@tukaani.org> 4920Date: 2020-03-11 22:37:54 +0200 4921 4922 Translations: Add hu, zh_CN, and zh_TW. 4923 4924 I made a few white space changes to these without getting them 4925 approved by the translation teams. (I tried to contact the hu and 4926 zh_TW teams but didn't succeed. I didn't contact the zh_CN team.) 4927 4928 po/LINGUAS | 3 + 4929 po/hu.po | 985 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4930 po/zh_CN.po | 963 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4931 po/zh_TW.po | 956 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4932 4 files changed, 2907 insertions(+) 4933 4934commit 982b6b198ae1ffe6093236dd8a3d03d1415b912b 4935Author: Lasse Collin <lasse.collin@tukaani.org> 4936Date: 2020-03-11 14:33:30 +0200 4937 4938 Translations: Update vi.po to match the file from the TP. 4939 4940 The translated strings haven't been updated but word wrapping 4941 is different. 4942 4943 po/vi.po | 407 ++++++++++++++++++++++++++++----------------------------------- 4944 1 file changed, 179 insertions(+), 228 deletions(-) 4945 4946commit 801f39691fc4abc6dd33d7653d498781b593f3eb 4947Author: Lasse Collin <lasse.collin@tukaani.org> 4948Date: 2020-03-11 14:18:03 +0200 4949 4950 Translations: Add fi and pt_BR, and update de, fr, it, and pl. 4951 4952 The German translation isn't identical to the file in 4953 the Translation Project but the changes (white space changes 4954 only) were approved by the translator Mario Blättermann. 4955 4956 po/LINGUAS | 2 + 4957 po/de.po | 476 ++++++++++++++-------------- 4958 po/fi.po | 974 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4959 po/fr.po | 272 ++++++++-------- 4960 po/it.po | 479 ++++++++++++---------------- 4961 po/pl.po | 239 +++++++------- 4962 po/pt_BR.po | 1001 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4963 7 files changed, 2697 insertions(+), 746 deletions(-) 4964 4965commit 311e4f85ede5d2f0bb71f3ad70b5b7db1b5adf33 4966Author: Lasse Collin <lasse.collin@tukaani.org> 4967Date: 2022-08-22 17:27:19 +0300 4968 4969 xz: Try to clarify --memlimit-mt-decompress vs. --memlimit-compress. 4970 4971 src/xz/xz.1 | 31 +++++++++++++++++++------------ 4972 1 file changed, 19 insertions(+), 12 deletions(-) 4973 4974commit df23c31000283c00e5ef1ca32a0bc3bb757bd707 4975Author: Lasse Collin <lasse.collin@tukaani.org> 4976Date: 2022-08-22 16:46:18 +0300 4977 4978 CMake: Add liblzma tests. 4979 4980 Thanks to Jia Tan for the patch. 4981 4982 CMakeLists.txt | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 4983 1 file changed, 52 insertions(+), 1 deletion(-) 4984 4985commit 02a777f9c422d3b5ec895078530bb1a2b6f7bdf5 4986Author: Lasse Collin <lasse.collin@tukaani.org> 4987Date: 2022-08-19 23:32:22 +0300 4988 4989 xz: Revise --info-memory output. 4990 4991 The strings could be more descriptive but it's good 4992 to have some version of this committed now. 4993 4994 --robot mode wasn't changed yet. 4995 4996 src/xz/hardware.c | 32 ++++++++++++++++++++++++++------ 4997 src/xz/xz.1 | 1 + 4998 2 files changed, 27 insertions(+), 6 deletions(-) 4999 5000commit f864f6d42eab57ea8ed82cc2dd19a03b51377442 5001Author: Lasse Collin <lasse.collin@tukaani.org> 5002Date: 2022-08-19 23:12:02 +0300 5003 5004 xz: Update the man page for threaded decompression and memlimits. 5005 5006 This documents the changes made in commits 5007 6c6da57ae2aa962aabde6892442227063d87e88c, 5008 cad299008cf73ec566f0662a9cf2b94f86a99659, and 5009 898faa97287a756231c663a3ed5165672b417207. 5010 5011 The --info-memory bit hasn't been finished yet 5012 even though it's already mentioned in this commit 5013 under --memlimit-mt-decompress and --threads. 5014 5015 src/xz/xz.1 | 148 +++++++++++++++++++++++++++++++++++++++++++++++++----------- 5016 1 file changed, 121 insertions(+), 27 deletions(-) 5017 5018commit d13bfcc0056617dd648f655a01653932fad7067f 5019Author: Lasse Collin <lasse.collin@tukaani.org> 5020Date: 2022-08-18 17:49:16 +0300 5021 5022 Build: Include the CMake files in the distribution. 5023 5024 This was supposed to be done in 2020 with 5.2.5 release 5025 already but it was noticed only today. 5.2.5 and 5.2.6 5026 even mention experiemental CMake support in the NEWS entries. 5027 5028 Thanks to Olivier B. for reporting the problem. 5029 5030 Makefile.am | 2 ++ 5031 1 file changed, 2 insertions(+) 5032 5033commit e66787bcfefdb93f19c974f895f65969a77937b0 5034Author: Lasse Collin <lasse.collin@tukaani.org> 5035Date: 2022-08-18 17:38:05 +0300 5036 5037 Windows: Fix broken liblzma.dll build with Visual Studio project files. 5038 5039 The bug was introduced in 352ba2d69af2136bc814aa1df1a132559d445616 5040 "Windows: Fix building of resource files when config.h isn't used." 5041 5042 That commit fixed liblzma.dll build with CMake while keeping it 5043 working with Autotools on Windows but the VS project files were 5044 forgotten. 5045 5046 I haven't tested these changes. 5047 5048 Thanks to Olivier B. for reporting the bug and for the initial patch. 5049 5050 windows/vs2013/liblzma_dll.vcxproj | 6 ++++++ 5051 windows/vs2017/liblzma_dll.vcxproj | 6 ++++++ 5052 windows/vs2019/liblzma_dll.vcxproj | 6 ++++++ 5053 3 files changed, 18 insertions(+) 5054 5055commit c4e8e5fb311225b8b48d34157891a640b2535e0c 5056Author: Lasse Collin <lasse.collin@tukaani.org> 5057Date: 2022-08-18 17:16:49 +0300 5058 5059 liblzma: Threaded decoder: Improve LZMA_FAIL_FAST when LZMA_FINISH is used. 5060 5061 It will now return LZMA_DATA_ERROR (not LZMA_OK or LZMA_BUF_ERROR) 5062 if LZMA_FINISH is used and there isn't enough input to finish 5063 decoding the Block Header or the Block. The use of LZMA_DATA_ERROR 5064 is simpler and the less risky than LZMA_BUF_ERROR but this might 5065 be changed before 5.4.0. 5066 5067 src/liblzma/api/lzma/container.h | 6 +++++ 5068 src/liblzma/common/stream_decoder_mt.c | 42 ++++++++++++++++++++++++++++++++++ 5069 2 files changed, 48 insertions(+) 5070 5071commit 6dcf606e7efa2b259f0262f9e2f61e00116842d3 5072Author: Lasse Collin <lasse.collin@tukaani.org> 5073Date: 2022-08-12 18:31:47 +0300 5074 5075 Add NEWS for 5.2.6. 5076 5077 NEWS | 121 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 5078 1 file changed, 121 insertions(+) 5079 5080commit 413b86fcf8934fae5a004f378a9483d37d8fcaab 5081Author: Lasse Collin <lasse.collin@tukaani.org> 5082Date: 2022-08-12 14:28:41 +0300 5083 5084 Add Jia Tan to AUTHORS. 5085 5086 AUTHORS | 2 +- 5087 1 file changed, 1 insertion(+), 1 deletion(-) 5088 5089commit 352672732c346c546ff3c26d0605bc0ed1c8b7c7 5090Author: Lasse Collin <lasse.collin@tukaani.org> 5091Date: 2022-07-25 19:28:26 +0300 5092 5093 Build: Start the generated ChangeLog from around 5.2.0 instead of 5.0.0. 5094 5095 This makes ChangeLog smaller. 5096 5097 Makefile.am | 2 +- 5098 1 file changed, 1 insertion(+), 1 deletion(-) 5099 5100commit 6f6d11225d6016be2bbb55d845b66f6b04d048df 5101Author: Lasse Collin <lasse.collin@tukaani.org> 5102Date: 2022-07-25 19:11:05 +0300 5103 5104 Translations: Change the copyright comment string to use with po4a. 5105 5106 This affects the second line in po4a/xz-man.pot. The man pages of 5107 xzdiff, xzgrep, and xzmore are from GNU gzip and under GNU GPLv2+ 5108 while the rest of the man pages are in the public domain. 5109 5110 po4a/update-po | 2 +- 5111 1 file changed, 1 insertion(+), 1 deletion(-) 5112 5113commit 61f8ec804abdb4c5dac01e8ae9b90c7be58a5c24 5114Author: Jia Tan <jiat0218@gmail.com> 5115Date: 2022-07-25 18:30:05 +0300 5116 5117 liblzma: Refactor lzma_mf_is_supported() to use a switch-statement. 5118 5119 src/liblzma/lz/lz_encoder.c | 32 ++++++++++++++------------------ 5120 1 file changed, 14 insertions(+), 18 deletions(-) 5121 5122commit 4d80b463a1251aa22eabc87d2732fec13b1adda6 5123Author: Jia Tan <jiat0218@gmail.com> 5124Date: 2022-07-25 18:20:01 +0300 5125 5126 Build: Don't allow empty LIST in --enable-match-finders=LIST. 5127 5128 It's enforced only when a match finder is needed, that is, 5129 when LZMA1 or LZMA2 encoder is enabled. 5130 5131 configure.ac | 4 ++++ 5132 1 file changed, 4 insertions(+) 5133 5134commit 9cc721af5436908f2d5a828aebbc4050a32a3487 5135Author: Lasse Collin <lasse.collin@tukaani.org> 5136Date: 2022-07-24 13:27:48 +0300 5137 5138 xz: Update the man page that change to --keep will be in 5.2.6. 5139 5140 src/xz/xz.1 | 4 ++-- 5141 1 file changed, 2 insertions(+), 2 deletions(-) 5142 5143commit b81bf0c7d1873e52a4086a9abb494471d652cb55 5144Author: Lasse Collin <lasse.collin@tukaani.org> 5145Date: 2022-07-19 23:23:54 +0300 5146 5147 Update THANKS. 5148 5149 THANKS | 1 + 5150 1 file changed, 1 insertion(+) 5151 5152commit 340cf1ec3927767046b8293a49da3db4e393f426 5153Author: Nicholas Jackson <nickajacks1@gmail.com> 5154Date: 2022-07-17 17:39:23 -0700 5155 5156 CMake: Add missing source file to liblzma build 5157 5158 CMakeLists.txt | 1 + 5159 1 file changed, 1 insertion(+) 5160 5161commit d796b6d7fdb8b7238b277056cf9146cce25db604 5162Author: Lasse Collin <lasse.collin@tukaani.org> 5163Date: 2022-07-19 23:19:49 +0300 5164 5165 xzgrep man page: Document exit statuses. 5166 5167 src/scripts/xzgrep.1 | 15 ++++++++++++++- 5168 1 file changed, 14 insertions(+), 1 deletion(-) 5169 5170commit 923bf96b55e5216a6c8df9d8331934f54784390e 5171Author: Lasse Collin <lasse.collin@tukaani.org> 5172Date: 2022-07-19 23:13:24 +0300 5173 5174 xzgrep: Improve error handling, especially signals. 5175 5176 xzgrep wouldn't exit on SIGPIPE or SIGQUIT when it clearly 5177 should have. It's quite possible that it's not perfect still 5178 but at least it's much better. 5179 5180 If multiple exit statuses compete, now it tries to pick 5181 the largest of value. 5182 5183 Some comments were added. 5184 5185 The exit status handling of signals is still broken if the shell 5186 uses values larger than 255 in $? to indicate that a process 5187 died due to a signal ***and*** their "exit" command doesn't take 5188 this into account. This seems to work well with the ksh and yash 5189 versions I tried. However, there is a report in gzip/zgrep that 5190 OpenSolaris 5.11 (not 5.10) has a problem with "exit" truncating 5191 the argument to 8 bits: 5192 5193 https://debbugs.gnu.org/cgi/bugreport.cgi?bug=22900#25 5194 5195 Such a bug would break xzgrep but I didn't add a workaround 5196 at least for now. 5.11 is old and I don't know if the problem 5197 exists in modern descendants, or if the problem exists in other 5198 ksh implementations in use. 5199 5200 src/scripts/xzgrep.in | 72 +++++++++++++++++++++++++++++++++++++-------------- 5201 1 file changed, 53 insertions(+), 19 deletions(-) 5202 5203commit a648978b20495b7aa4a8b029c5a810b5ad9d08ff 5204Author: Lasse Collin <lasse.collin@tukaani.org> 5205Date: 2022-07-19 00:10:55 +0300 5206 5207 xzgrep: Make the fix for ZDI-CAN-16587 more robust. 5208 5209 I don't know if this can make a difference in the real world 5210 but it looked kind of suspicious (what happens with sed 5211 implementations that cannot process very long lines?). 5212 At least this commit shouldn't make it worse. 5213 5214 src/scripts/xzgrep.in | 5 ++++- 5215 1 file changed, 4 insertions(+), 1 deletion(-) 5216 5217commit bd7b290f3fe4faeceb7d3497ed9bf2e6ed5e7dc5 5218Author: Lasse Collin <lasse.collin@tukaani.org> 5219Date: 2022-07-18 21:52:31 +0300 5220 5221 xzgrep: Use grep -H --label when available (GNU, *BSDs). 5222 5223 It avoids the use of sed for prefixing filenames to output lines. 5224 Using sed for that is slower and prone to security bugs so now 5225 the sed method is only used as a fallback. 5226 5227 This also fixes an actual bug: When grepping a binary file, 5228 GNU grep nowadays prints its diagnostics to stderr instead of 5229 stdout and thus the sed-method for prefixing the filename doesn't 5230 work. So with this commit grepping binary files gives reasonable 5231 output with GNU grep now. 5232 5233 This was inspired by zgrep but the implementation is different. 5234 5235 src/scripts/xzgrep.in | 21 +++++++++++++++++++++ 5236 1 file changed, 21 insertions(+) 5237 5238commit b56729af9f1a596e57aeefd7570d8d7dce5c9f52 5239Author: Lasse Collin <lasse.collin@tukaani.org> 5240Date: 2022-07-18 21:10:25 +0300 5241 5242 xzgrep: Use -e to specify the pattern to grep. 5243 5244 Now we don't need the separate test for adding the -q option 5245 as it can be added directly in the two places where it's needed. 5246 5247 src/scripts/xzgrep.in | 12 ++++-------- 5248 1 file changed, 4 insertions(+), 8 deletions(-) 5249 5250commit bad61b5997e6647911974022bfb72f3d4818a594 5251Author: Lasse Collin <lasse.collin@tukaani.org> 5252Date: 2022-07-18 19:18:48 +0300 5253 5254 Scripts: Use printf instead of echo in a few places. 5255 5256 It's a good habbit as echo has some portability corner cases 5257 when the string contents can be anything. 5258 5259 src/scripts/xzdiff.in | 6 +++--- 5260 src/scripts/xzgrep.in | 4 ++-- 5261 src/scripts/xzless.in | 4 ++-- 5262 src/scripts/xzmore.in | 8 ++++---- 5263 4 files changed, 11 insertions(+), 11 deletions(-) 5264 5265commit 6a4a4a7d2667837dc824c26fcb19ed6ca5aff645 5266Author: Lasse Collin <lasse.collin@tukaani.org> 5267Date: 2022-07-17 21:36:25 +0300 5268 5269 xzgrep: Add more LC_ALL=C to avoid bugs with multibyte characters. 5270 5271 Also replace one use of expr with printf. 5272 5273 The rationale for LC_ALL=C was already mentioned in 5274 69d1b3fc29677af8ade8dc15dba83f0589cb63d6 that fixed a security 5275 issue. However, unrelated uses weren't changed in that commit yet. 5276 5277 POSIX says that with sed and such tools one should use LC_ALL=C 5278 to ensure predictable behavior when strings contain byte sequences 5279 that aren't valid multibyte characters in the current locale. See 5280 under "Application usage" in here: 5281 5282 https://pubs.opengroup.org/onlinepubs/9699919799/utilities/sed.html 5283 5284 With GNU sed invalid multibyte strings would work without this; 5285 it's documented in its Texinfo manual. Some other implementations 5286 aren't so forgiving. 5287 5288 src/scripts/xzgrep.in | 14 ++++++++------ 5289 1 file changed, 8 insertions(+), 6 deletions(-) 5290 5291commit b48f9d615f2c2e8d2f6e253d0e48ee66d0652b68 5292Author: Lasse Collin <lasse.collin@tukaani.org> 5293Date: 2022-07-17 20:55:16 +0300 5294 5295 xzgrep: Fix parsing of certain options. 5296 5297 Fix handling of "xzgrep -25 foo" (in GNU grep "grep -25 foo" is 5298 an alias for "grep -C25 foo"). xzgrep would treat "foo" as filename 5299 instead of as a pattern. This bug was fixed in zgrep in gzip in 2012. 5300 5301 Add -E, -F, -G, and -P to the "no argument required" list. 5302 5303 Add -X to "argument required" list. It is an 5304 intentionally-undocumented GNU grep option so this isn't 5305 an important option for xzgrep but it seems that other grep 5306 implementations (well, those that I checked) don't support -X 5307 so I hope this change is an improvement still. 5308 5309 grep -d (grep --directories=ACTION) requires an argument. In 5310 contrast to zgrep, I kept -d in the "no argument required" list 5311 because it's not supported in xzgrep (or zgrep). This way 5312 "xzgrep -d" gives an error about option being unsupported instead 5313 of telling that it requires an argument. Both zgrep and xzgrep 5314 tell that it's unsupported if an argument is specified. 5315 5316 Add comments. 5317 5318 src/scripts/xzgrep.in | 19 +++++++++++++++++-- 5319 1 file changed, 17 insertions(+), 2 deletions(-) 5320 5321commit 2d2201bc6315deda4d43625aa510972467bd51d4 5322Author: Lasse Collin <lasse.collin@tukaani.org> 5323Date: 2022-07-14 20:33:05 +0300 5324 5325 Tests: Add the .lzma files to test_files.sh. 5326 5327 tests/test_files.sh | 20 ++++++++++++++++++++ 5328 1 file changed, 20 insertions(+) 5329 5330commit ce5549a591bf126300618879f5b24023351baff6 5331Author: Lasse Collin <lasse.collin@tukaani.org> 5332Date: 2022-07-14 19:37:42 +0300 5333 5334 Tests: Add .lzma test files. 5335 5336 tests/files/README | 63 ++++++++++++++++----- 5337 tests/files/bad-too_big_size-with_eopm.lzma | Bin 0 -> 37 bytes 5338 tests/files/bad-too_small_size-without_eopm-1.lzma | Bin 0 -> 31 bytes 5339 tests/files/bad-too_small_size-without_eopm-2.lzma | Bin 0 -> 31 bytes 5340 tests/files/bad-too_small_size-without_eopm-3.lzma | Bin 0 -> 36 bytes 5341 tests/files/bad-unknown_size-without_eopm.lzma | Bin 0 -> 31 bytes 5342 tests/files/good-known_size-with_eopm.lzma | Bin 0 -> 37 bytes 5343 tests/files/good-known_size-without_eopm.lzma | Bin 0 -> 31 bytes 5344 tests/files/good-unknown_size-with_eopm.lzma | Bin 0 -> 37 bytes 5345 9 files changed, 50 insertions(+), 13 deletions(-) 5346 5347commit 107c93ee5cad51a6ea0cee471209bfe8d76deaa3 5348Author: Lasse Collin <lasse.collin@tukaani.org> 5349Date: 2022-07-14 18:12:38 +0300 5350 5351 liblzma: Rename a variable and improve a comment. 5352 5353 src/liblzma/lzma/lzma_decoder.c | 13 +++++++++---- 5354 1 file changed, 9 insertions(+), 4 deletions(-) 5355 5356commit 511feb5eadb988d641b025d597f4fac7502003b8 5357Author: Lasse Collin <lasse.collin@tukaani.org> 5358Date: 2022-07-13 22:24:41 +0300 5359 5360 Update THANKS. 5361 5362 THANKS | 1 + 5363 1 file changed, 1 insertion(+) 5364 5365commit 9595a3119b9faf0ce01375329cad8bbf85c35ea2 5366Author: Lasse Collin <lasse.collin@tukaani.org> 5367Date: 2022-07-13 22:24:07 +0300 5368 5369 liblzma: Add optional autodetection of LZMA end marker. 5370 5371 Turns out that this is needed for .lzma files as the spec in 5372 LZMA SDK says that end marker may be present even if the size 5373 is stored in the header. Such files are rare but exist in the 5374 real world. The code in liblzma is so old that the spec didn't 5375 exist in LZMA SDK back then and I had understood that such 5376 files weren't possible (the lzma tool in LZMA SDK didn't 5377 create such files). 5378 5379 This modifies the internal API so that LZMA decoder can be told 5380 if EOPM is allowed even when the uncompressed size is known. 5381 It's allowed with .lzma and not with other uses. 5382 5383 Thanks to Karl Beldan for reporting the problem. 5384 5385 doc/lzma-file-format.txt | 11 +++- 5386 src/liblzma/common/alone_decoder.c | 2 +- 5387 src/liblzma/common/microlzma_decoder.c | 2 +- 5388 src/liblzma/lz/lz_decoder.c | 10 +++- 5389 src/liblzma/lz/lz_decoder.h | 8 +-- 5390 src/liblzma/lzma/lzma2_decoder.c | 2 +- 5391 src/liblzma/lzma/lzma_decoder.c | 99 ++++++++++++++++++++++++---------- 5392 7 files changed, 95 insertions(+), 39 deletions(-) 5393 5394commit 0c0f8e9761eb6eaf199082cf144db7ac5f9d8cb2 5395Author: Lasse Collin <lasse.collin@tukaani.org> 5396Date: 2022-07-12 18:53:04 +0300 5397 5398 xz: Document the special memlimit case of 2000 MiB on MIPS32. 5399 5400 See commit fc3d3a7296ef58bb799a73943636b8bfd95339f7. 5401 5402 src/xz/xz.1 | 8 ++++++-- 5403 1 file changed, 6 insertions(+), 2 deletions(-) 5404 5405commit d1bfa3dc703325ecd974167e864a8712fdfe936e 5406Author: Jia Tan <jiat0218@gmail.com> 5407Date: 2022-07-01 21:19:26 +0800 5408 5409 Created script to generate code coverage reports. 5410 5411 The script uses lcov and genhtml after running the tests 5412 to show the code coverage statistics. The script will create 5413 a coverage directory where it is run. It can be run both in 5414 and out of the source directory. 5415 5416 .gitignore | 4 +++ 5417 tests/code_coverage.sh | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++ 5418 2 files changed, 83 insertions(+) 5419 5420commit 86a30b0255d8064169fabfd213d907016d2f9f2a 5421Author: Jia Tan <jiat0218@gmail.com> 5422Date: 2022-06-16 17:32:19 +0300 5423 5424 Tests: Add more tests into test_check. 5425 5426 tests/test_check.c | 279 +++++++++++++++++++++++++++++++++++++++++++++++++++-- 5427 tests/tests.h | 23 +++++ 5428 2 files changed, 295 insertions(+), 7 deletions(-) 5429 5430commit 82e30fed66a89706388a8c15dc954d84e63f38fa 5431Author: Lasse Collin <lasse.collin@tukaani.org> 5432Date: 2022-06-16 15:02:57 +0300 5433 5434 Tests: Use char[][24] array for enum_strings_lzma_ret. 5435 5436 Array of pointers to short strings is a bit pointless here 5437 and now it's fully const. 5438 5439 tests/tests.h | 2 +- 5440 1 file changed, 1 insertion(+), 1 deletion(-) 5441 5442commit 5ba9459e6c4a29f6870ca78ce8ac6e519d59c41e 5443Author: Lasse Collin <lasse.collin@tukaani.org> 5444Date: 2022-06-16 14:12:14 +0300 5445 5446 Tests: tuktest.h: Add tuktest_error_impl to help with error conditions. 5447 5448 tests/tuktest.h | 72 +++++++++++++++++++++++++-------------------------------- 5449 1 file changed, 32 insertions(+), 40 deletions(-) 5450 5451commit b339892668da20aea22a93668c82b87a38e4a97f 5452Author: Lasse Collin <lasse.collin@tukaani.org> 5453Date: 2022-06-16 13:29:59 +0300 5454 5455 Tests: tuktest.h: Rename file_from_* and use tuktest_malloc there. 5456 5457 tests/test_bcj_exact_size.c | 4 +--- 5458 tests/tuktest.h | 52 +++++++++++++++++++++------------------------ 5459 2 files changed, 25 insertions(+), 31 deletions(-) 5460 5461commit d8b63a0ad68d1c461eb373466679ebc41fbc207d 5462Author: Lasse Collin <lasse.collin@tukaani.org> 5463Date: 2022-06-16 13:08:19 +0300 5464 5465 Tests: tuktest.h: Add malloc wrapper with automatic freeing. 5466 5467 tests/tuktest.h | 124 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 5468 1 file changed, 124 insertions(+) 5469 5470commit 1d51536a4b19a8fae768f8eb462fc2238cb36d53 5471Author: Lasse Collin <lasse.collin@tukaani.org> 5472Date: 2022-06-16 11:47:37 +0300 5473 5474 Tests: tuktest.h: Move a function. 5475 5476 tests/tuktest.h | 44 ++++++++++++++++++++++---------------------- 5477 1 file changed, 22 insertions(+), 22 deletions(-) 5478 5479commit 70c7555f6403553ee35539e869de0025592d8564 5480Author: Lasse Collin <lasse.collin@tukaani.org> 5481Date: 2022-06-14 22:21:15 +0300 5482 5483 Tests: test_vli: Remove an invalid test-assertion. 5484 5485 lzma_vli is unsigned so trying a signed value results in 5486 a compiler warning from -Wsign-conversion. (lzma_vli)-1 5487 equals to LZMA_VLI_UNKNOWN anyway which is the next assertion. 5488 5489 tests/test_vli.c | 2 -- 5490 1 file changed, 2 deletions(-) 5491 5492commit 154b73c5a1092c3f785e01666b564ad7ff1be555 5493Author: Lasse Collin <lasse.collin@tukaani.org> 5494Date: 2022-06-14 22:10:10 +0300 5495 5496 Tests: test_vli: Add const where appropriate. 5497 5498 tests/test_vli.c | 53 ++++++++++++++++++++++++++++------------------------- 5499 1 file changed, 28 insertions(+), 25 deletions(-) 5500 5501commit 0354d6cce3ff98ea6f927107baf216253f6ce2bb 5502Author: Jia Tan <jiat75@gmail.com> 5503Date: 2022-06-13 20:27:03 +0800 5504 5505 Added vli tests to .gitignore 5506 5507 .gitignore | 1 + 5508 1 file changed, 1 insertion(+) 5509 5510commit a08f5ccf6bdc20ef70e41f6f3321618ef146f96e 5511Author: Jia Tan <jiat0218@gmail.com> 5512Date: 2022-06-12 11:31:40 +0800 5513 5514 Created tests for all functions exported in vli.h 5515 5516 Achieved 100% code coverage vli_encoder.c, vli_decoder.c, and vli_size.c 5517 5518 tests/Makefile.am | 4 +- 5519 tests/test_vli.c | 308 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 5520 2 files changed, 311 insertions(+), 1 deletion(-) 5521 5522commit 1e3eb61815a91c0a1bfbb802e2d95593f523491f 5523Author: jiat75 <jiat0218@gmail.com> 5524Date: 2022-06-03 21:24:54 +0800 5525 5526 Added parallel test artifacts to .gitignore 5527 5528 .gitignore | 2 ++ 5529 1 file changed, 2 insertions(+) 5530 5531commit 00e3613f1212eaa84e721585fdb4de6967cf2476 5532Author: Lasse Collin <lasse.collin@tukaani.org> 5533Date: 2022-06-14 21:29:21 +0300 5534 5535 Tests: Use good-1-empty-bcj-lzma2.xz in test_bcj_exact_size. 5536 5537 It's much nicer this way so that the test data isn't a hardcoded 5538 table inside the C file. 5539 5540 tests/test_bcj_exact_size.c | 19 +++++++------------ 5541 1 file changed, 7 insertions(+), 12 deletions(-) 5542 5543commit 86bab755be252bfd3e0a9aee8e7b83a9bbb23ed0 5544Author: Lasse Collin <lasse.collin@tukaani.org> 5545Date: 2022-06-14 21:26:13 +0300 5546 5547 Tests: Add file reading helpers to tuktest.h. 5548 5549 tests/tuktest.h | 183 +++++++++++++++++++++++++++++++++++++++++++++++++++++--- 5550 1 file changed, 176 insertions(+), 7 deletions(-) 5551 5552commit 83d2337b72dbf391c6f3b41889eea99e51679105 5553Author: Lasse Collin <lasse.collin@tukaani.org> 5554Date: 2022-06-14 18:21:57 +0300 5555 5556 Tests: tuktest.h: Move a printf from a macro to a helper function. 5557 5558 tests/tuktest.h | 26 ++++++++++++++++++-------- 5559 1 file changed, 18 insertions(+), 8 deletions(-) 5560 5561commit f9e8176ea7d520797a2db2d49a5a632c285674a8 5562Author: Lasse Collin <lasse.collin@tukaani.org> 5563Date: 2022-06-14 17:20:49 +0300 5564 5565 Tests: Add test file good-1-empty-bcj-lzma2.xz. 5566 5567 This is from test_bcj_exact_size.c. 5568 It's good to have it as a standalone file. 5569 5570 tests/files/README | 5 +++++ 5571 tests/files/good-1-empty-bcj-lzma2.xz | Bin 0 -> 52 bytes 5572 2 files changed, 5 insertions(+) 5573 5574commit aa75c5563a760aea3aa23d997d519e702e82726b 5575Author: Jia Tan <jiat0218@gmail.com> 5576Date: 2022-06-10 21:35:18 +0800 5577 5578 Tests: Created tests for hardware functions. 5579 5580 Created tests for all API functions exported in 5581 src/liblzma/api/lzma/hardware.h. The tests are fairly trivial 5582 but are helpful because they will inform users if their machines 5583 cannot support these functions. They also improve the code 5584 coverage metrics. 5585 5586 .gitignore | 1 + 5587 tests/Makefile.am | 2 ++ 5588 tests/test_hardware.c | 45 +++++++++++++++++++++++++++++++++++++++++++++ 5589 3 files changed, 48 insertions(+) 5590 5591commit 5c8ffdca20813939818843476fb212dfae8838a3 5592Author: Lasse Collin <lasse.collin@tukaani.org> 5593Date: 2022-06-02 21:01:45 +0300 5594 5595 Tests: Convert test_check to tuktest. 5596 5597 Thanks to Jia Tan for help with all the tests. 5598 5599 tests/test_check.c | 67 +++++++++++++++++++++++++++--------------------------- 5600 1 file changed, 33 insertions(+), 34 deletions(-) 5601 5602commit faf5ff8899d539b4dcd2a7e5280cb820a4746c86 5603Author: Lasse Collin <lasse.collin@tukaani.org> 5604Date: 2022-06-02 20:31:03 +0300 5605 5606 Tests: Convert test_block_header to tuktest. 5607 5608 tests/test_block_header.c | 89 +++++++++++++++++++++++++++-------------------- 5609 1 file changed, 52 insertions(+), 37 deletions(-) 5610 5611commit 754d39fbebee3782258d42f154a223d3c5770ec7 5612Author: Lasse Collin <lasse.collin@tukaani.org> 5613Date: 2022-06-02 20:28:23 +0300 5614 5615 Tests: Convert test_bcj_exact_size to tuktest. 5616 5617 The compress() and decompress() functions were merged because 5618 the later depends on the former so they need to be a single 5619 test case. 5620 5621 tests/test_bcj_exact_size.c | 75 +++++++++++++++++++++++++-------------------- 5622 1 file changed, 41 insertions(+), 34 deletions(-) 5623 5624commit 96da21470f9570cd08286906a050a7c22631775b 5625Author: Lasse Collin <lasse.collin@tukaani.org> 5626Date: 2022-06-02 20:27:00 +0300 5627 5628 Tests: Include tuktest.h in tests.h. 5629 5630 This breaks -Werror because none of the tests so far use 5631 tuktest.h and thus there are warnings about unused variables 5632 and functions. 5633 5634 tests/tests.h | 47 +++++++++++++++++++++++------------------------ 5635 1 file changed, 23 insertions(+), 24 deletions(-) 5636 5637commit df71ba1c991f60c3269aaadd398247e632714626 5638Author: Lasse Collin <lasse.collin@tukaani.org> 5639Date: 2022-06-02 20:25:21 +0300 5640 5641 Tests: Add tuktest.h mini-test-framework. 5642 5643 tests/Makefile.am | 1 + 5644 tests/tuktest.h | 752 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 5645 2 files changed, 753 insertions(+) 5646 5647commit 4773608554d1b684a05ff9c1d879cf5c42266d33 5648Author: Lasse Collin <lasse.collin@tukaani.org> 5649Date: 2022-05-23 21:31:36 +0300 5650 5651 Build: Enable Automake's parallel test harness. 5652 5653 It has been the default for quite some time already and 5654 the old serial harness isn't discouraged. The downside is 5655 that with parallel tests one cannot print progress info or 5656 other diagnostics to the terminal; all output from the tests 5657 will be in the log files only. But now that the compression 5658 tests are separated the parallel tests will speed things up. 5659 5660 configure.ac | 2 +- 5661 1 file changed, 1 insertion(+), 1 deletion(-) 5662 5663commit 9a6dd6d46f7f256a5573e5d874c1052033ed7b05 5664Author: Lasse Collin <lasse.collin@tukaani.org> 5665Date: 2022-05-23 21:17:47 +0300 5666 5667 Tests: Split test_compress.sh into separate test unit for each file. 5668 5669 test_compress.sh now takes one command line argument: 5670 a filename to be tested. If it begins with "compress_generated_" 5671 the file will be created with create_compress_files. 5672 5673 This will allow parallel execution of the slow tests. 5674 5675 tests/Makefile.am | 11 +++- 5676 tests/test_compress.sh | 91 +++++++++++++++++++--------------- 5677 tests/test_compress_generated_abc | 3 ++ 5678 tests/test_compress_generated_random | 3 ++ 5679 tests/test_compress_generated_text | 3 ++ 5680 tests/test_compress_prepared_bcj_sparc | 3 ++ 5681 tests/test_compress_prepared_bcj_x86 | 3 ++ 5682 7 files changed, 77 insertions(+), 40 deletions(-) 5683 5684commit c7758ac9c734707514dd34f254173ebac5eea7f8 5685Author: Lasse Collin <lasse.collin@tukaani.org> 5686Date: 2022-05-23 20:32:49 +0300 5687 5688 Test: Make create_compress_files.c a little more flexible. 5689 5690 If a command line argument is given, then only the test file 5691 of that type is created. It's quite dumb in sense that unknown 5692 names don't give an error but it's good enough here. 5693 5694 Also use EXIT_FAILURE instead of 1 as exit status for errors. 5695 5696 tests/create_compress_files.c | 25 +++++++++++++++---------- 5697 1 file changed, 15 insertions(+), 10 deletions(-) 5698 5699commit 4a8e4a7b0ad4b03c0ac6862716c3457452cdaf8c 5700Author: Lasse Collin <lasse.collin@tukaani.org> 5701Date: 2022-05-23 20:17:42 +0300 5702 5703 Tests: Remove unneeded commented lines from test_compress.sh. 5704 5705 tests/test_compress.sh | 13 ------------- 5706 1 file changed, 13 deletions(-) 5707 5708commit 2ee50d150ee009f36135540b459e6ff328549725 5709Author: Lasse Collin <lasse.collin@tukaani.org> 5710Date: 2022-05-23 20:16:00 +0300 5711 5712 Tests: Remove progress indicator from test_compress.sh. 5713 5714 It will be useless with Automake's parallel tests. 5715 5716 tests/test_compress.sh | 9 --------- 5717 1 file changed, 9 deletions(-) 5718 5719commit 2ce4f36f179a81d0c6e182a409f363df759d1ad0 5720Author: Lasse Collin <lasse.collin@tukaani.org> 5721Date: 2022-05-23 19:37:18 +0300 5722 5723 liblzma: Silence a warning. 5724 5725 The actual initialization is done via mythread_sync and seems 5726 that GCC doesn't necessarily see that it gets initialized there. 5727 5728 src/liblzma/common/stream_decoder_mt.c | 2 +- 5729 1 file changed, 1 insertion(+), 1 deletion(-) 5730 5731commit 5d8f3764ef43c35910e6d7003c0900a961ef6544 5732Author: Lasse Collin <lasse.collin@tukaani.org> 5733Date: 2022-04-14 20:53:16 +0300 5734 5735 xz: Fix build with --disable-threads. 5736 5737 src/xz/hardware.c | 4 ++++ 5738 1 file changed, 4 insertions(+) 5739 5740commit 1d592897278b172d8549aa29c3a1f3a4f432a9b9 5741Author: Lasse Collin <lasse.collin@tukaani.org> 5742Date: 2022-04-14 14:50:17 +0300 5743 5744 xz: Change the cap of the default -T0 memlimit for 32-bit xz. 5745 5746 The SIZE_MAX / 3 was 1365 MiB. 1400 MiB gives little more room 5747 and it looks like a round (artificial) number in --info-memory 5748 once --info-memory is made to display it. 5749 5750 Also, using #if avoids useless code on 64-bit builds. 5751 5752 src/xz/hardware.c | 4 +++- 5753 1 file changed, 3 insertions(+), 1 deletion(-) 5754 5755commit c77fe55ddb7752ed0fec46967c5ec9a72632ea0c 5756Author: Lasse Collin <lasse.collin@tukaani.org> 5757Date: 2022-04-14 14:20:46 +0300 5758 5759 xz: Add a default soft memory usage limit for --threads=0. 5760 5761 This is a soft limit in sense that it only affects the number of 5762 threads. It never makes xz fail and it never makes xz change 5763 settings that would affect the compressed output. 5764 5765 The idea is to make -T0 have more reasonable behavior when 5766 the system has very many cores or when a memory-hungry 5767 compression options are used. This also helps with 32-bit xz, 5768 preventing it from running out of address space. 5769 5770 The downside of this commit is that now the number of threads 5771 might become too low compared to what the user expected. I 5772 hope this to be an acceptable compromise as the old behavior 5773 has been a source of well-argued complaints for a long time. 5774 5775 src/xz/coder.c | 28 ++++++++++++++++++++++++++-- 5776 src/xz/hardware.c | 38 +++++++++++++++++++++++++++++--------- 5777 src/xz/hardware.h | 27 +++++++++++++++++++++++++++ 5778 3 files changed, 82 insertions(+), 11 deletions(-) 5779 5780commit 0adc13bfe32c14f3e4c6ce9f2d4fdf4112ab53f4 5781Author: Lasse Collin <lasse.collin@tukaani.org> 5782Date: 2022-04-14 12:59:09 +0300 5783 5784 xz: Make -T0 use multithreaded mode on single-core systems. 5785 5786 The main problem withi the old behavior is that the compressed 5787 output is different on single-core systems vs. multicore systems. 5788 This commit fixes it by making -T0 one thread in multithreaded mode 5789 on single-core systems. 5790 5791 The downside of this is that it uses more memory. However, if 5792 --memlimit-compress is used, xz can (thanks to the previous commit) 5793 drop to the single-threaded mode still. 5794 5795 src/xz/coder.c | 18 +++++++++--------- 5796 src/xz/hardware.c | 14 ++++++++++++++ 5797 src/xz/hardware.h | 4 ++++ 5798 3 files changed, 27 insertions(+), 9 deletions(-) 5799 5800commit 898faa97287a756231c663a3ed5165672b417207 5801Author: Lasse Collin <lasse.collin@tukaani.org> 5802Date: 2022-04-14 12:38:00 +0300 5803 5804 xz: Changes to --memlimit-compress and --no-adjust. 5805 5806 In single-threaded mode, --memlimit-compress can make xz scale down 5807 the LZMA2 dictionary size to meet the memory usage limit. This 5808 obviously affects the compressed output. However, if xz was in 5809 threaded mode, --memlimit-compress could make xz reduce the number 5810 of threads but it wouldn't make xz switch from multithreaded mode 5811 to single-threaded mode or scale down the LZMA2 dictionary size. 5812 This seemed illogical and there was even a "FIXME?" about it. 5813 5814 Now --memlimit-compress can make xz switch to single-threaded 5815 mode if one thread in multithreaded mode uses too much memory. 5816 If memory usage is still too high, then the LZMA2 dictionary 5817 size can be scaled down too. 5818 5819 The option --no-adjust was also changed so that it no longer 5820 prevents xz from scaling down the number of threads as that 5821 doesn't affect compressed output (only performance). After 5822 this commit --no-adjust only prevents adjustments that affect 5823 compressed output, that is, with --no-adjust xz won't switch 5824 from multithreaded mode to single-threaded mode and won't 5825 scale down the LZMA2 dictionary size. 5826 5827 The man page wasn't updated yet. 5828 5829 src/xz/coder.c | 63 +++++++++++++++++++++++++++++++++++++++------------------- 5830 1 file changed, 43 insertions(+), 20 deletions(-) 5831 5832commit cad299008cf73ec566f0662a9cf2b94f86a99659 5833Author: Lasse Collin <lasse.collin@tukaani.org> 5834Date: 2022-04-11 22:20:49 +0300 5835 5836 xz: Add --memlimit-mt-decompress along with a default limit value. 5837 5838 --memlimit-mt-decompress allows specifying the limit for 5839 multithreaded decompression. This matches memlimit_threading in 5840 liblzma. This limit can only affect the number of threads being 5841 used; it will never prevent xz from decompressing a file. The 5842 old --memlimit-decompress option is still used at the same time. 5843 5844 If the value of --memlimit-decompress (the default value or 5845 one specified by the user) is less than the value of 5846 --memlimit-mt-decompress , then --memlimit-mt-decompress is 5847 reduced to match --memlimit-decompress. 5848 5849 Man page wasn't updated yet. 5850 5851 src/xz/args.c | 24 +++++++++++++++------- 5852 src/xz/coder.c | 34 ++++++++++--------------------- 5853 src/xz/hardware.c | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++----- 5854 src/xz/hardware.h | 17 ++++++++++------ 5855 src/xz/message.c | 4 +++- 5856 5 files changed, 97 insertions(+), 42 deletions(-) 5857 5858commit fe87b4cd5364f5bbb6a75a0299f1500c852d7c9a 5859Author: Lasse Collin <lasse.collin@tukaani.org> 5860Date: 2022-04-06 23:11:59 +0300 5861 5862 liblzma: Threaded decoder: Improve setting of pending_error. 5863 5864 It doesn't need to be done conditionally. The comments try 5865 to explain it. 5866 5867 src/liblzma/common/stream_decoder_mt.c | 51 +++++++++++++++++++++++----------- 5868 1 file changed, 35 insertions(+), 16 deletions(-) 5869 5870commit 90621da7f6e1bfd6d91d60415eae04b2bca274c2 5871Author: Lasse Collin <lasse.collin@tukaani.org> 5872Date: 2022-04-06 12:39:49 +0300 5873 5874 liblzma: Add a new flag LZMA_FAIL_FAST for threaded decoder. 5875 5876 In most cases if the input file is corrupt the application won't 5877 care about the uncompressed content at all. With this new flag 5878 the threaded decoder will return an error as soon as any thread 5879 has detected an error; it won't wait to copy out the data before 5880 the location of the error. 5881 5882 I don't plan to use this in xz to keep the behavior consistent 5883 between single-threaded and multi-threaded modes. 5884 5885 src/liblzma/api/lzma/container.h | 25 ++++++++++++++++- 5886 src/liblzma/common/common.h | 7 +++-- 5887 src/liblzma/common/stream_decoder_mt.c | 50 +++++++++++++++++++--------------- 5888 3 files changed, 56 insertions(+), 26 deletions(-) 5889 5890commit 64b6d496dc815a176d8307f418f6834a26783484 5891Author: Lasse Collin <lasse.collin@tukaani.org> 5892Date: 2022-04-05 12:24:57 +0300 5893 5894 liblzma: Threaded decoder: Always wait for output if LZMA_FINISH is used. 5895 5896 This makes the behavior consistent with the single-threaded 5897 decoder when handling truncated .xz files. 5898 5899 Thanks to Jia Tan for finding this issue. 5900 5901 src/liblzma/common/stream_decoder_mt.c | 26 ++++++++++++++++++++++++-- 5902 1 file changed, 24 insertions(+), 2 deletions(-) 5903 5904commit e671bc8828b9c0c5406c3a22c541301d0eb54518 5905Author: Lasse Collin <lasse.collin@tukaani.org> 5906Date: 2022-04-02 21:49:59 +0300 5907 5908 liblzma: Threaded decoder: Support zpipe.c-style decoding loop. 5909 5910 This makes it possible to call lzma_code() in a loop that only 5911 reads new input when lzma_code() didn't fill the output buffer 5912 completely. That isn't the calling style suggested by the 5913 liblzma example program 02_decompress.c so perhaps the usefulness 5914 of this feature is limited. 5915 5916 Also, it is possible to write such a loop so that it works 5917 with the single-threaded decoder but not with the threaded 5918 decoder even after this commit, or so that it works only if 5919 lzma_mt.timeout = 0. 5920 5921 The zlib tutorial <https://zlib.net/zlib_how.html> is a well-known 5922 example of a loop where more input is read only when output isn't 5923 full. Porting this as is to liblzma would work with the 5924 single-threaded decoder (if LZMA_CONCATENATED isn't used) but it 5925 wouldn't work with threaded decoder even after this commit because 5926 the loop assumes that no more output is possible when it cannot 5927 read more input ("if (strm.avail_in == 0) break;"). This cannot 5928 be fixed at liblzma side; the loop has to be modified at least 5929 a little. 5930 5931 I'm adding this in any case because the actual code is simple 5932 and short and should have no harmful side-effects in other 5933 situations. 5934 5935 src/liblzma/common/stream_decoder_mt.c | 77 +++++++++++++++++++++++++++++----- 5936 1 file changed, 67 insertions(+), 10 deletions(-) 5937 5938commit 2ba8173e27be4793edb46497e499ac2ae753a316 5939Author: Lasse Collin <lasse.collin@tukaani.org> 5940Date: 2022-03-31 00:05:07 +0300 5941 5942 Update THANKS. 5943 5944 THANKS | 1 + 5945 1 file changed, 1 insertion(+) 5946 5947commit 69d1b3fc29677af8ade8dc15dba83f0589cb63d6 5948Author: Lasse Collin <lasse.collin@tukaani.org> 5949Date: 2022-03-29 19:19:12 +0300 5950 5951 xzgrep: Fix escaping of malicious filenames (ZDI-CAN-16587). 5952 5953 Malicious filenames can make xzgrep to write to arbitrary files 5954 or (with a GNU sed extension) lead to arbitrary code execution. 5955 5956 xzgrep from XZ Utils versions up to and including 5.2.5 are 5957 affected. 5.3.1alpha and 5.3.2alpha are affected as well. 5958 This patch works for all of them. 5959 5960 This bug was inherited from gzip's zgrep. gzip 1.12 includes 5961 a fix for zgrep. 5962 5963 The issue with the old sed script is that with multiple newlines, 5964 the N-command will read the second line of input, then the 5965 s-commands will be skipped because it's not the end of the 5966 file yet, then a new sed cycle starts and the pattern space 5967 is printed and emptied. So only the last line or two get escaped. 5968 5969 One way to fix this would be to read all lines into the pattern 5970 space first. However, the included fix is even simpler: All lines 5971 except the last line get a backslash appended at the end. To ensure 5972 that shell command substitution doesn't eat a possible trailing 5973 newline, a colon is appended to the filename before escaping. 5974 The colon is later used to separate the filename from the grep 5975 output so it is fine to add it here instead of a few lines later. 5976 5977 The old code also wasn't POSIX compliant as it used \n in the 5978 replacement section of the s-command. Using \<newline> is the 5979 POSIX compatible method. 5980 5981 LC_ALL=C was added to the two critical sed commands. POSIX sed 5982 manual recommends it when using sed to manipulate pathnames 5983 because in other locales invalid multibyte sequences might 5984 cause issues with some sed implementations. In case of GNU sed, 5985 these particular sed scripts wouldn't have such problems but some 5986 other scripts could have, see: 5987 5988 info '(sed)Locale Considerations' 5989 5990 This vulnerability was discovered by: 5991 cleemy desu wayo working with Trend Micro Zero Day Initiative 5992 5993 Thanks to Jim Meyering and Paul Eggert discussing the different 5994 ways to fix this and for coordinating the patch release schedule 5995 with gzip. 5996 5997 src/scripts/xzgrep.in | 20 ++++++++++++-------- 5998 1 file changed, 12 insertions(+), 8 deletions(-) 5999 6000commit bd93b776c1bd15e90661033c918cdeb354dbcc38 6001Author: Lasse Collin <lasse.collin@tukaani.org> 6002Date: 2022-03-26 01:02:44 +0200 6003 6004 liblzma: Fix a deadlock in threaded decoder. 6005 6006 If a worker thread has consumed all input so far and it's 6007 waiting on thr->cond and then the main thread enables 6008 partial update for that thread, the code used to deadlock. 6009 This commit allows one dummy decoding pass to occur in this 6010 situation which then also does the partial update. 6011 6012 As part of the fix, this moves thr->progress_* updates to 6013 avoid the second thr->mutex locking. 6014 6015 Thanks to Jia Tan for finding, debugging, and reporting the bug. 6016 6017 src/liblzma/common/stream_decoder_mt.c | 71 +++++++++++++++++++++++++--------- 6018 1 file changed, 52 insertions(+), 19 deletions(-) 6019 6020commit e0394e94230f208682ac1e1f4c41f22f9ad79916 6021Author: Lasse Collin <lasse.collin@tukaani.org> 6022Date: 2022-03-23 16:34:00 +0200 6023 6024 Update THANKS. 6025 6026 THANKS | 1 + 6027 1 file changed, 1 insertion(+) 6028 6029commit 487c77d48760564b1949c5067630b675b87be4de 6030Author: Lasse Collin <lasse.collin@tukaani.org> 6031Date: 2022-03-23 16:28:55 +0200 6032 6033 liblzma: Threaded decoder: Don't stop threads on LZMA_TIMED_OUT. 6034 6035 LZMA_TIMED_OUT is not an error and thus stopping threads on 6036 LZMA_TIMED_OUT breaks the decoder badly. 6037 6038 Thanks to Jia Tan for finding the bug and for the patch. 6039 6040 src/liblzma/common/stream_decoder_mt.c | 2 +- 6041 1 file changed, 1 insertion(+), 1 deletion(-) 6042 6043commit 6c6da57ae2aa962aabde6892442227063d87e88c 6044Author: Lasse Collin <lasse.collin@tukaani.org> 6045Date: 2022-03-07 00:36:16 +0200 6046 6047 xz: Add initial support for threaded decompression. 6048 6049 If threading support is enabled at build time, this will 6050 use lzma_stream_decoder_mt() even for single-threaded mode. 6051 With memlimit_threading=0 the behavior should be identical. 6052 6053 This needs some work like adding --memlimit-threading=LIMIT. 6054 6055 The original patch from Sebastian Andrzej Siewior included 6056 a method to get currently available RAM on Linux. It might 6057 be one way to go but as it is Linux-only, the available-RAM 6058 approach needs work for portability or using a fallback method 6059 on other OSes. 6060 6061 The man page wasn't updated yet. 6062 6063 src/xz/coder.c | 36 +++++++++++++++++++++++++++++++++++- 6064 1 file changed, 35 insertions(+), 1 deletion(-) 6065 6066commit 4cce3e27f529af33e0e7749a8cbcec59954946b5 6067Author: Lasse Collin <lasse.collin@tukaani.org> 6068Date: 2022-03-06 23:36:20 +0200 6069 6070 liblzma: Add threaded .xz decompressor. 6071 6072 I realize that this is about a decade late. 6073 6074 Big thanks to Sebastian Andrzej Siewior for the original patch. 6075 I made a bunch of smaller changes but after a while quite a few 6076 things got rewritten. So any bugs in the commit were created by me. 6077 6078 src/liblzma/api/lzma/container.h | 90 +- 6079 src/liblzma/common/Makefile.inc | 5 + 6080 src/liblzma/common/common.h | 4 + 6081 src/liblzma/common/stream_decoder_mt.c | 1814 ++++++++++++++++++++++++++++++++ 6082 src/liblzma/liblzma.map | 1 + 6083 5 files changed, 1907 insertions(+), 7 deletions(-) 6084 6085commit 717631b9788dc9c100ee0c87d3c14a2782638ff4 6086Author: Lasse Collin <lasse.collin@tukaani.org> 6087Date: 2022-03-06 16:54:23 +0200 6088 6089 liblzma: Fix docs: lzma_block_decoder() cannot return LZMA_UNSUPPORTED_CHECK. 6090 6091 If Check is unsupported, it will be silently ignored. 6092 It's the caller's job to handle it. 6093 6094 src/liblzma/api/lzma/block.h | 3 --- 6095 1 file changed, 3 deletions(-) 6096 6097commit 1a4bb97a00936535e30ac61945aeee38882b5d1a 6098Author: Lasse Collin <lasse.collin@tukaani.org> 6099Date: 2022-03-06 16:41:19 +0200 6100 6101 liblzma: Add new output queue (lzma_outq) features. 6102 6103 Add lzma_outq_clear_cache2() which may leave one buffer allocated 6104 in the cache. 6105 6106 Add lzma_outq_outbuf_memusage() to get the memory needed for 6107 a single lzma_outbuf. This is now used internally in outqueue.c too. 6108 6109 Track both the total amount of memory allocated and the amount of 6110 memory that is in active use (not in cache). 6111 6112 In lzma_outbuf, allow storing the current input position that 6113 matches the current output position. This way the main thread 6114 can notice when no more output is possible without first providing 6115 more input. 6116 6117 Allow specifying return code for lzma_outq_read() in a finished 6118 lzma_outbuf. 6119 6120 src/liblzma/common/outqueue.c | 43 +++++++++++++++++++++++++++++++++++------- 6121 src/liblzma/common/outqueue.h | 44 ++++++++++++++++++++++++++++++++++++++++++- 6122 2 files changed, 79 insertions(+), 8 deletions(-) 6123 6124commit ddbc6f58c2de388eed24cd7ea91b523d397da5f4 6125Author: Lasse Collin <lasse.collin@tukaani.org> 6126Date: 2022-03-06 15:18:58 +0200 6127 6128 liblzma: Index hash: Change return value type of hash_append() to void. 6129 6130 src/liblzma/common/index_hash.c | 11 +++++------ 6131 1 file changed, 5 insertions(+), 6 deletions(-) 6132 6133commit 20e7a33e2d59c6a814447d3991f21e2702174b20 6134Author: Lasse Collin <lasse.collin@tukaani.org> 6135Date: 2022-02-22 03:42:57 +0200 6136 6137 liblzma: Minor addition to lzma_vli_size() API doc. 6138 6139 Thanks to Jia Tan. 6140 6141 src/liblzma/api/lzma/vli.h | 2 ++ 6142 1 file changed, 2 insertions(+) 6143 6144commit 4f78f5fcf63592f2d77e921cfe0d5de300867374 6145Author: Lasse Collin <lasse.collin@tukaani.org> 6146Date: 2022-02-22 02:04:18 +0200 6147 6148 liblzma: Check the return value of lzma_index_append() in threaded encoder. 6149 6150 If lzma_index_append() failed (most likely memory allocation failure) 6151 it could have gone unnoticed and the resulting .xz file would have 6152 an incorrect Index. Decompressing such a file would produce the 6153 correct uncompressed data but then an error would occur when 6154 verifying the Index field. 6155 6156 src/liblzma/common/stream_encoder_mt.c | 7 +++++-- 6157 1 file changed, 5 insertions(+), 2 deletions(-) 6158 6159commit 5313ad66b40aab822ddca3e9905254cb99a4080d 6160Author: Lasse Collin <lasse.collin@tukaani.org> 6161Date: 2022-02-22 01:37:39 +0200 6162 6163 Update THANKS. 6164 6165 THANKS | 1 + 6166 1 file changed, 1 insertion(+) 6167 6168commit 865e0a3689a25a7ee8eecae1a34c1775e3aa676e 6169Author: Ed Maste <emaste@FreeBSD.org> 6170Date: 2022-02-11 15:25:46 +0000 6171 6172 liblzma: Use non-executable stack on FreeBSD as on Linux 6173 6174 src/liblzma/check/crc32_x86.S | 4 ++-- 6175 src/liblzma/check/crc64_x86.S | 4 ++-- 6176 2 files changed, 4 insertions(+), 4 deletions(-) 6177 6178commit 1c9a5786d206b4abc8e427326651c8174baea753 6179Author: Lasse Collin <lasse.collin@tukaani.org> 6180Date: 2022-02-20 20:36:27 +0200 6181 6182 liblzma: Make Block decoder catch certain types of errors better. 6183 6184 Now it limits the input and output buffer sizes that are 6185 passed to a raw decoder. This way there's no need to check 6186 if the sizes can grow too big or overflow when updating 6187 Compressed Size and Uncompressed Size counts. This also means 6188 that a corrupt file cannot cause the raw decoder to process 6189 useless extra input or output that would exceed the size info 6190 in Block Header (and thus cause LZMA_DATA_ERROR anyway). 6191 6192 More importantly, now the size information is verified more 6193 carefully in case raw decoder returns LZMA_OK. This doesn't 6194 really matter with the current single-threaded .xz decoder 6195 as the errors would be detected slightly later anyway. But 6196 this helps avoiding corner cases in the upcoming threaded 6197 decompressor, and it might help other Block decoder uses 6198 outside liblzma too. 6199 6200 The test files bad-1-lzma2-{9,10,11}.xz test these conditions. 6201 With the single-threaded .xz decoder the only difference is 6202 that LZMA_DATA_ERROR is detected in a difference place now. 6203 6204 src/liblzma/common/block_decoder.c | 79 ++++++++++++++++++++++++++------------ 6205 1 file changed, 54 insertions(+), 25 deletions(-) 6206 6207commit 555de11873eb00c9b94a8be70645db502e5a9dbd 6208Author: Lasse Collin <lasse.collin@tukaani.org> 6209Date: 2022-02-20 19:38:55 +0200 6210 6211 Tests: Add bad-1-lzma2-11.xz. 6212 6213 tests/files/README | 5 +++++ 6214 tests/files/bad-1-lzma2-11.xz | Bin 0 -> 64 bytes 6215 2 files changed, 5 insertions(+) 6216 6217commit f0da507f22e7f4e3edb75b45b74d344244ca03fb 6218Author: Lasse Collin <lasse.collin@tukaani.org> 6219Date: 2022-02-18 18:51:10 +0200 6220 6221 Translations: Fix po4a failure with the French man page translations. 6222 6223 Thanks to Mario Blättermann for the patch. 6224 6225 po4a/fr_FR.po | 6 ++++-- 6226 1 file changed, 4 insertions(+), 2 deletions(-) 6227 6228commit f7711d228c3c32395460c82498c60a9f730d0239 6229Author: Lasse Collin <lasse.collin@tukaani.org> 6230Date: 2022-02-07 01:14:37 +0200 6231 6232 Translations: Add French translation of man pages. 6233 6234 This matches xz-utils 5.2.5-2 in Debian. 6235 6236 The translation was done by "bubu", proofread by the debian-l10n-french 6237 mailing list contributors, and submitted to me on the xz-devel mailing 6238 list by Jean-Pierre Giraud. Thanks to everyone! 6239 6240 po4a/fr_FR.po | 3541 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 6241 po4a/po4a.conf | 2 +- 6242 2 files changed, 3542 insertions(+), 1 deletion(-) 6243 6244commit 6468f7e41a8e9c611e4ba8d34e2175c5dacdbeb4 6245Author: jiat75 <jiat0218@gmail.com> 6246Date: 2022-01-28 20:47:55 +0800 6247 6248 liblzma: Add NULL checks to LZMA and LZMA2 properties encoders. 6249 6250 Previously lzma_lzma_props_encode() and lzma_lzma2_props_encode() 6251 assumed that the options pointers must be non-NULL because the 6252 with these filters the API says it must never be NULL. It is 6253 good to do these checks anyway. 6254 6255 src/liblzma/lzma/lzma2_encoder.c | 3 +++ 6256 src/liblzma/lzma/lzma_encoder.c | 3 +++ 6257 2 files changed, 6 insertions(+) 6258 6259commit 2523c30705f49eabd27b854aa656ae87cc224808 6260Author: Lasse Collin <lasse.collin@tukaani.org> 6261Date: 2022-02-06 23:19:32 +0200 6262 6263 liblzma: Fix uint64_t vs. size_t confusion. 6264 6265 This broke 32-bit builds due to a pointer type mismatch. 6266 6267 This bug was introduced with the output-size-limited encoding 6268 in 625f4c7c99b2fcc4db9e7ab2deb4884790e2e17c. 6269 6270 Thanks to huangqinjin for the bug report. 6271 6272 src/liblzma/rangecoder/range_encoder.h | 11 +++++++---- 6273 1 file changed, 7 insertions(+), 4 deletions(-) 6274 6275commit 2bd36c91d03e03b31a4f12fd0afc100ae32d66e2 6276Author: huangqinjin <huangqinjin@gmail.com> 6277Date: 2021-12-13 20:49:21 +0800 6278 6279 CMake: Keep compatible with Windows 95 for 32-bit build. 6280 6281 CMakeLists.txt | 12 +++++++++++- 6282 1 file changed, 11 insertions(+), 1 deletion(-) 6283 6284commit 2024fbf2794885277d05378d40b2b8015a7c3b40 6285Author: Lasse Collin <lasse.collin@tukaani.org> 6286Date: 2021-11-13 21:04:05 +0200 6287 6288 xzgrep: Update man page timestamp. 6289 6290 src/scripts/xzgrep.1 | 2 +- 6291 1 file changed, 1 insertion(+), 1 deletion(-) 6292 6293commit 400e7a239a53282cedaad927a41f3463d7f542e5 6294Author: Lasse Collin <lasse.collin@tukaani.org> 6295Date: 2021-11-13 18:23:24 +0200 6296 6297 Update THANKS. 6298 6299 THANKS | 1 + 6300 1 file changed, 1 insertion(+) 6301 6302commit 3a512c7787b2642ca946f4adc6e9a0a5d9b0d5a0 6303Author: Ville Skyttä <ville.skytta@iki.fi> 6304Date: 2021-11-13 10:11:57 +0200 6305 6306 xzgrep: use `grep -E/-F` instead of `egrep` and `fgrep` 6307 6308 `egrep` and `fgrep` have been deprecated in GNU grep since 2007, and in 6309 current post 3.7 Git they have been made to emit obsolescence warnings: 6310 https://git.savannah.gnu.org/cgit/grep.git/commit/?id=a9515624709865d480e3142fd959bccd1c9372d1 6311 6312 src/scripts/xzgrep.1 | 8 ++++---- 6313 src/scripts/xzgrep.in | 4 ++-- 6314 2 files changed, 6 insertions(+), 6 deletions(-) 6315 6316commit edf525e2b1840dcaf377df472c67d8f11f8ace1b 6317Author: Lasse Collin <lasse.collin@tukaani.org> 6318Date: 2021-10-28 23:02:11 +0300 6319 6320 Bump the version number for 5.3.2alpha. 6321 6322 src/liblzma/api/lzma/version.h | 2 +- 6323 src/liblzma/liblzma.map | 2 +- 6324 2 files changed, 2 insertions(+), 2 deletions(-) 6325 6326commit ea8c948655a86290524efe59cff067e06a886709 6327Author: Lasse Collin <lasse.collin@tukaani.org> 6328Date: 2021-10-28 22:59:52 +0300 6329 6330 Add NEWS for 5.3.2alpha. 6331 6332 NEWS | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 6333 1 file changed, 86 insertions(+) 6334 6335commit 52435f302f4724157ec50b4210cbe42b285c3cbc 6336Author: Lasse Collin <lasse.collin@tukaani.org> 6337Date: 2021-10-27 23:27:48 +0300 6338 6339 Update THANKS. 6340 6341 THANKS | 1 + 6342 1 file changed, 1 insertion(+) 6343 6344commit f2aea1d5a504b2021bf47a238390e4f12bdd518d 6345Author: Lasse Collin <lasse.collin@tukaani.org> 6346Date: 2021-10-27 23:23:11 +0300 6347 6348 xz: Change the coding style of the previous commit. 6349 6350 It isn't any better now but it's consistent with 6351 the rest of the code base. 6352 6353 src/xz/file_io.c | 11 ++++++----- 6354 1 file changed, 6 insertions(+), 5 deletions(-) 6355 6356commit 892b16cc282f5b4e1c49871b326f4db25c5b4d81 6357Author: Alexander Bluhm <alexander.bluhm@gmx.net> 6358Date: 2021-10-05 23:33:16 +0200 6359 6360 xz: Avoid fchown(2) failure. 6361 6362 OpenBSD does not allow to change the group of a file if the user 6363 does not belong to this group. In contrast to Linux, OpenBSD also 6364 fails if the new group is the same as the old one. Do not call 6365 fchown(2) in this case, it would change nothing anyway. 6366 6367 This fixes an issue with Perl Alien::Build module. 6368 https://github.com/PerlAlien/Alien-Build/issues/62 6369 6370 src/xz/file_io.c | 8 +++++++- 6371 1 file changed, 7 insertions(+), 1 deletion(-) 6372 6373commit 2b509c868cae3988bf21cd693fbf9021cdc85628 6374Author: Lasse Collin <lasse.collin@tukaani.org> 6375Date: 2021-09-17 17:31:11 +0300 6376 6377 liblzma: Fix liblzma.map for the lzma_microlzma_* symbols. 6378 6379 This should have been part of d267d109c370a40b502e73f8664b154b15e4f253. 6380 6381 Thanks to Gao Xiang. 6382 6383 src/liblzma/liblzma.map | 4 ++-- 6384 1 file changed, 2 insertions(+), 2 deletions(-) 6385 6386commit cacb06a954b58255dfc084a0bc9708f43a0fd6d6 6387Author: Lasse Collin <lasse.collin@tukaani.org> 6388Date: 2021-09-09 22:21:07 +0300 6389 6390 Update THANKS. 6391 6392 THANKS | 1 + 6393 1 file changed, 1 insertion(+) 6394 6395commit 6928aac9da6ba612780b9f72ba1d6ecbe1e8b54e 6396Author: Lasse Collin <lasse.collin@tukaani.org> 6397Date: 2021-09-09 21:41:51 +0300 6398 6399 liblzma: Use _MSVC_LANG to detect when "noexcept" can be used with MSVC. 6400 6401 By default, MSVC always sets __cplusplus to 199711L. The real 6402 C++ standard version is available in _MSVC_LANG (or one could 6403 use /Zc:__cplusplus to set __cplusplus correctly). 6404 6405 Fixes <https://sourceforge.net/p/lzmautils/discussion/708858/thread/f6bc3b108a/>. 6406 6407 Thanks to Dan Weiss. 6408 6409 src/liblzma/api/lzma.h | 3 ++- 6410 1 file changed, 2 insertions(+), 1 deletion(-) 6411 6412commit d267d109c370a40b502e73f8664b154b15e4f253 6413Author: Lasse Collin <lasse.collin@tukaani.org> 6414Date: 2021-09-05 20:38:12 +0300 6415 6416 liblzma: Rename EROFS LZMA to MicroLZMA. 6417 6418 It still exists primarily for EROFS but MicroLZMA is 6419 a more generic name (that hopefully doesn't clash with 6420 something that already exists). 6421 6422 src/liblzma/api/lzma/container.h | 33 +++++++++++++--------- 6423 src/liblzma/common/Makefile.inc | 4 +-- 6424 .../{erofs_decoder.c => microlzma_decoder.c} | 32 ++++++++++----------- 6425 .../{erofs_encoder.c => microlzma_encoder.c} | 30 ++++++++++---------- 6426 4 files changed, 52 insertions(+), 47 deletions(-) 6427 6428commit 3247e95115acb95bc27f41e8cf4501db5b0b4309 6429Author: Lasse Collin <lasse.collin@tukaani.org> 6430Date: 2021-06-04 19:02:38 +0300 6431 6432 xzdiff: Update the man page about the exit status. 6433 6434 This was forgotten from 194029ffaf74282a81f0c299c07f73caca3232ca. 6435 6436 src/scripts/xzdiff.1 | 4 ++-- 6437 1 file changed, 2 insertions(+), 2 deletions(-) 6438 6439commit 96f5a28a46fc93ac4e296808ac0f8631d05498bc 6440Author: Lasse Collin <lasse.collin@tukaani.org> 6441Date: 2021-06-04 18:52:48 +0300 6442 6443 xzless: Fix less(1) version detection when it contains a dot. 6444 6445 Sometimes the version number from "less -V" contains a dot, 6446 sometimes not. xzless failed detect the version number when 6447 it does contain a dot. This fixes it. 6448 6449 Thanks to nick87720z for reporting this. Apparently it had been 6450 reported here <https://bugs.gentoo.org/489362> in 2013. 6451 6452 src/scripts/xzless.in | 2 +- 6453 1 file changed, 1 insertion(+), 1 deletion(-) 6454 6455commit 5fb5212d816addbc523d0798cb482fdd0484f8fa 6456Author: Lasse Collin <lasse.collin@tukaani.org> 6457Date: 2021-04-11 19:58:10 +0300 6458 6459 Update THANKS. 6460 6461 THANKS | 2 ++ 6462 1 file changed, 2 insertions(+) 6463 6464commit fc3d3a7296ef58bb799a73943636b8bfd95339f7 6465Author: Ivan A. Melnikov <iv@altlinux.org> 6466Date: 2021-04-09 11:45:10 +0300 6467 6468 Reduce maximum possible memory limit on MIPS32 6469 6470 Due to architectural limitations, address space available to a single 6471 userspace process on MIPS32 is limited to 2 GiB, not 4, even on systems 6472 that have more physical RAM -- e.g. 64-bit systems with 32-bit 6473 userspace, or systems that use XPA (an extension similar to x86's PAE). 6474 6475 So, for MIPS32, we have to impose stronger memory limits. I've chosen 6476 2000MiB to give the process some headroom. 6477 6478 src/xz/hardware.c | 6 ++++++ 6479 1 file changed, 6 insertions(+) 6480 6481commit e7da44d5151e21f153925781ad29334ae0786101 6482Author: Lasse Collin <lasse.collin@tukaani.org> 6483Date: 2021-02-13 23:31:27 +0200 6484 6485 CMake: Use interface library for better FindLibLZMA compatibility. 6486 6487 https://www.mail-archive.com/xz-devel@tukaani.org/msg00446.html 6488 6489 Thanks to Markus Rickert. 6490 6491 CMakeLists.txt | 11 +++++++++-- 6492 1 file changed, 9 insertions(+), 2 deletions(-) 6493 6494commit a61dd82ada39030f41b4ffca9ea551714908bedc 6495Author: Lasse Collin <lasse.collin@tukaani.org> 6496Date: 2021-01-30 18:36:04 +0200 6497 6498 CMake: Try to improve compatibility with the FindLibLZMA module. 6499 6500 The naming conflict with FindLibLZMA module gets worse. 6501 Not avoiding it in the first place was stupid. 6502 6503 Normally find_package(LibLZMA) will use the module and 6504 find_package(liblzma 5.2.5 REQUIRED CONFIG) will use the config 6505 file even with a case insensitive file system. However, if 6506 CMAKE_FIND_PACKAGE_PREFER_CONFIG is TRUE and the file system 6507 is case insensitive, find_package(LibLZMA) will find our liblzma 6508 config file instead of using FindLibLZMA module. 6509 6510 One big problem with this is that FindLibLZMA uses 6511 LibLZMA::LibLZMA and we use liblzma::liblzma as the target 6512 name. With target names CMake happens to be case sensitive. 6513 To workaround this, this commit adds 6514 6515 add_library(LibLZMA::LibLZMA ALIAS liblzma::liblzma) 6516 6517 to the config file. Then both spellings work. 6518 6519 To make the behavior consistent between case sensitive and 6520 insensitive file systems, the config and related files are 6521 renamed from liblzmaConfig.cmake to liblzma-config.cmake style. 6522 With this style CMake looks for lowercase version of the package 6523 name so find_package(LiBLzmA 5.2.5 REQUIRED CONFIG) will work 6524 to find our config file. 6525 6526 There are other differences between our config file and 6527 FindLibLZMA so it's still possible that things break for 6528 reasons other than the spelling of the target name. Hopefully 6529 those situations aren't too common. 6530 6531 When the config file is available, it should always give as good or 6532 better results as FindLibLZMA so this commit doesn't affect the 6533 recommendation to use find_package(liblzma 5.2.5 REQUIRED CONFIG) 6534 which explicitly avoids FindLibLZMA. 6535 6536 Thanks to Markus Rickert. 6537 6538 CMakeLists.txt | 21 +++++++++++++-------- 6539 1 file changed, 13 insertions(+), 8 deletions(-) 6540 6541commit 5b7bc1b8ae766a76710ca1b99f909cf52c697f05 6542Author: Lasse Collin <lasse.collin@tukaani.org> 6543Date: 2021-01-29 21:19:43 +0200 6544 6545 Update THANKS. 6546 6547 THANKS | 1 + 6548 1 file changed, 1 insertion(+) 6549 6550commit 6c6f0db340dcb8bb424411cedba713405d55f6b8 6551Author: Lasse Collin <lasse.collin@tukaani.org> 6552Date: 2021-01-29 21:19:08 +0200 6553 6554 liblzma: Fix unitialized variable. 6555 6556 This was introduced two weeks ago in the commit 6557 625f4c7c99b2fcc4db9e7ab2deb4884790e2e17c. 6558 6559 Thanks to Nathan Moinvaziri. 6560 6561 src/liblzma/lzma/lzma_encoder.c | 1 + 6562 1 file changed, 1 insertion(+) 6563 6564commit bb1d5c1fdd30550d4221ecd336e0be1206132a5c 6565Author: Lasse Collin <lasse.collin@tukaani.org> 6566Date: 2021-01-24 22:32:41 +0200 6567 6568 Tests: Add bad-1-lzma2-10.xz and also modify -9.xz. 6569 6570 tests/files/README | 11 +++++++++-- 6571 tests/files/bad-1-lzma2-10.xz | Bin 0 -> 60 bytes 6572 tests/files/bad-1-lzma2-9.xz | Bin 72 -> 72 bytes 6573 3 files changed, 9 insertions(+), 2 deletions(-) 6574 6575commit 6b8abc84a5469792e0355d0bfc0784d41cfdfef7 6576Author: Lasse Collin <lasse.collin@tukaani.org> 6577Date: 2021-01-24 19:22:35 +0200 6578 6579 liblzma: Fix a wrong comment in stream_encoder_mt.c. 6580 6581 src/liblzma/common/stream_encoder_mt.c | 10 +++++++--- 6582 1 file changed, 7 insertions(+), 3 deletions(-) 6583 6584commit 939fc5ed654aac25fe0c8684b2df8dbeadb2de1e 6585Author: Lasse Collin <lasse.collin@tukaani.org> 6586Date: 2021-01-24 18:51:51 +0200 6587 6588 Tests: Add bad-1-lzma2-9.xz. 6589 6590 tests/files/README | 4 ++++ 6591 tests/files/bad-1-lzma2-9.xz | Bin 0 -> 72 bytes 6592 2 files changed, 4 insertions(+) 6593 6594commit fdd30032f8531ac89519b48c21d810ecf06825f6 6595Author: Lasse Collin <lasse.collin@tukaani.org> 6596Date: 2021-01-24 17:02:00 +0200 6597 6598 Tests: Add bad-1-check-crc32-2.xz. 6599 6600 tests/files/README | 7 +++++++ 6601 tests/files/bad-1-check-crc32-2.xz | Bin 0 -> 72 bytes 6602 2 files changed, 7 insertions(+) 6603 6604commit db465419ae26ec7fb9b9472183911ff521620c77 6605Author: Lasse Collin <lasse.collin@tukaani.org> 6606Date: 2021-01-17 19:20:50 +0200 6607 6608 liblzma: In EROFS LZMA decoder, verify that comp_size matches at the end. 6609 6610 When the uncompressed size is known to be exact, after decompressing 6611 the stream exactly comp_size bytes of input must have been consumed. 6612 This is a minor improvement to error detection. 6613 6614 src/liblzma/common/erofs_decoder.c | 7 ++++++- 6615 1 file changed, 6 insertions(+), 1 deletion(-) 6616 6617commit 774cc0118ba2496581cb2621505a04bb6598cc75 6618Author: Lasse Collin <lasse.collin@tukaani.org> 6619Date: 2021-01-17 18:53:34 +0200 6620 6621 liblzma: Make EROFS LZMA decoder work when exact uncomp_size isn't known. 6622 6623 The caller must still not specify an uncompressed size bigger 6624 than the actual uncompressed size. 6625 6626 As a downside, this now needs the exact compressed size. 6627 6628 src/liblzma/api/lzma/container.h | 23 ++++++++--- 6629 src/liblzma/common/erofs_decoder.c | 80 ++++++++++++++++++++++++++++++++++---- 6630 2 files changed, 91 insertions(+), 12 deletions(-) 6631 6632commit 421b0aa352da244075db10205cf33712f91b9835 6633Author: Lasse Collin <lasse.collin@tukaani.org> 6634Date: 2021-01-14 20:57:11 +0200 6635 6636 liblzma: Fix missing normalization in rc_encode_dummy(). 6637 6638 Without this fix it could attempt to create too much output. 6639 6640 src/liblzma/rangecoder/range_encoder.h | 7 ++++++- 6641 1 file changed, 6 insertions(+), 1 deletion(-) 6642 6643commit 601ec0311e769fc704daaaa7dac0ca840aff080e 6644Author: Lasse Collin <lasse.collin@tukaani.org> 6645Date: 2021-01-14 20:07:01 +0200 6646 6647 liblzma: Add EROFS LZMA encoder and decoder. 6648 6649 Right now this is just a planned extra-compact format for use 6650 in the EROFS file system in Linux. At this point it's possible 6651 that the format will either change or be abandoned and removed 6652 completely. 6653 6654 The special thing about the encoder is that it uses the 6655 output-size-limited encoding added in the previous commit. 6656 EROFS uses fixed-sized blocks (e.g. 4 KiB) to hold compressed 6657 data so the compressors must be able to create valid streams 6658 that fill the given block size. 6659 6660 src/liblzma/api/lzma/container.h | 76 +++++++++++++++++++ 6661 src/liblzma/common/Makefile.inc | 2 + 6662 src/liblzma/common/erofs_decoder.c | 148 +++++++++++++++++++++++++++++++++++++ 6663 src/liblzma/common/erofs_encoder.c | 139 ++++++++++++++++++++++++++++++++++ 6664 src/liblzma/liblzma.map | 2 + 6665 5 files changed, 367 insertions(+) 6666 6667commit 625f4c7c99b2fcc4db9e7ab2deb4884790e2e17c 6668Author: Lasse Collin <lasse.collin@tukaani.org> 6669Date: 2021-01-13 19:16:32 +0200 6670 6671 liblzma: Add rough support for output-size-limited encoding in LZMA1. 6672 6673 With this it is possible to encode LZMA1 data without EOPM so that 6674 the encoder will encode as much input as it can without exceeding 6675 the specified output size limit. The resulting LZMA1 stream will 6676 be a normal LZMA1 stream without EOPM. The actual uncompressed size 6677 will be available to the caller via the uncomp_size pointer. 6678 6679 One missing thing is that the LZMA layer doesn't inform the LZ layer 6680 when the encoding is finished and thus the LZ may read more input 6681 when it won't be used. However, this doesn't matter if encoding is 6682 done with a single call (which is the planned use case for now). 6683 For proper multi-call encoding this should be improved. 6684 6685 This commit only adds the functionality for internal use. 6686 Nothing uses it yet. 6687 6688 src/liblzma/common/common.h | 11 +++ 6689 src/liblzma/lz/lz_encoder.c | 16 ++++ 6690 src/liblzma/lz/lz_encoder.h | 4 + 6691 src/liblzma/lzma/lzma_encoder.c | 127 +++++++++++++++++++++++--------- 6692 src/liblzma/lzma/lzma_encoder_private.h | 12 +++ 6693 src/liblzma/rangecoder/range_encoder.h | 111 ++++++++++++++++++++++++++++ 6694 6 files changed, 246 insertions(+), 35 deletions(-) 6695 6696commit 9cdabbeea891e8f1e7741b076f7db6ac05ae392a 6697Author: Lasse Collin <lasse.collin@tukaani.org> 6698Date: 2021-01-11 23:57:11 +0200 6699 6700 Scripts: Add zstd support to xzdiff. 6701 6702 src/scripts/xzdiff.1 | 6 ++++-- 6703 src/scripts/xzdiff.in | 16 +++++++++++----- 6704 2 files changed, 15 insertions(+), 7 deletions(-) 6705 6706commit d9ec3add97cf4c999a7f594c6529680227b6c274 6707Author: Lasse Collin <lasse.collin@tukaani.org> 6708Date: 2021-01-11 23:41:30 +0200 6709 6710 Update THANKS. 6711 6712 THANKS | 2 ++ 6713 1 file changed, 2 insertions(+) 6714 6715commit 074259f4f3966aeac6edb205fecbc1a8d2b58bb2 6716Author: Lasse Collin <lasse.collin@tukaani.org> 6717Date: 2021-01-11 23:41:16 +0200 6718 6719 xz: Make --keep accept symlinks, hardlinks, and setuid/setgid/sticky. 6720 6721 Previously this required using --force but that has other 6722 effects too which might be undesirable. Changing the behavior 6723 of --keep has a small risk of breaking existing scripts but 6724 since this is a fairly special corner case I expect the 6725 likehood of breakage to be low enough. 6726 6727 I think the new behavior is more logical. The only reason for 6728 the old behavior was to be consistent with gzip and bzip2. 6729 6730 Thanks to Vincent Lefevre and Sebastian Andrzej Siewior. 6731 6732 src/xz/file_io.c | 9 +++++---- 6733 src/xz/xz.1 | 16 +++++++++++++++- 6734 2 files changed, 20 insertions(+), 5 deletions(-) 6735 6736commit 73c555b3077c19dda29b6f4592ced2af876f8333 6737Author: Lasse Collin <lasse.collin@tukaani.org> 6738Date: 2021-01-11 23:28:52 +0200 6739 6740 Scripts: Fix exit status of xzgrep. 6741 6742 Omit the -q option from xz, gzip, and bzip2. With xz this shouldn't 6743 matter. With gzip it's important because -q makes gzip replace SIGPIPE 6744 with exit status 2. With bzip2 it's important because with -q bzip2 6745 is completely silent if input is corrupt while other decompressors 6746 still give an error message. 6747 6748 Avoiding exit status 2 from gzip is important because bzip2 uses 6749 exit status 2 to indicate corrupt input. Before this commit xzgrep 6750 didn't recognize corrupt .bz2 files because xzgrep was treating 6751 exit status 2 as SIGPIPE for gzip compatibility. 6752 6753 zstd still needs -q because otherwise it is noisy in normal 6754 operation. 6755 6756 The code to detect real SIGPIPE didn't check if the exit status 6757 was due to a signal (>= 128) and so could ignore some other exit 6758 status too. 6759 6760 src/scripts/xzgrep.in | 20 +++++++++++++------- 6761 1 file changed, 13 insertions(+), 7 deletions(-) 6762 6763commit 194029ffaf74282a81f0c299c07f73caca3232ca 6764Author: Lasse Collin <lasse.collin@tukaani.org> 6765Date: 2021-01-11 22:01:51 +0200 6766 6767 Scripts: Fix exit status of xzdiff/xzcmp. 6768 6769 This is a minor fix since this affects only the situation when 6770 the files differ and the exit status is something else than 0. 6771 In such case there could be SIGPIPE from a decompression tool 6772 and that would result in exit status of 2 from xzdiff/xzcmp 6773 while the correct behavior would be to return 1 or whatever 6774 else diff or cmp may have returned. 6775 6776 This commit omits the -q option from xz/gzip/bzip2/lzop arguments. 6777 I'm not sure why the -q was used in the first place, perhaps it 6778 hides warnings in some situation that I cannot see at the moment. 6779 Hopefully the removal won't introduce a new bug. 6780 6781 With gzip the -q option was harmful because it made gzip return 2 6782 instead of >= 128 with SIGPIPE. Ignoring exit status 2 (warning 6783 from gzip) isn't practical because bzip2 uses exit status 2 to 6784 indicate corrupt input file. It's better if SIGPIPE results in 6785 exit status >= 128. 6786 6787 With bzip2 the removal of -q seems to be good because with -q 6788 it prints nothing if input is corrupt. The other tools aren't 6789 silent in this situation even with -q. On the other hand, if 6790 zstd support is added, it will need -q since otherwise it's 6791 noisy in normal situations. 6792 6793 Thanks to Étienne Mollier and Sebastian Andrzej Siewior. 6794 6795 src/scripts/xzdiff.in | 35 +++++++++++++++++++++-------------- 6796 1 file changed, 21 insertions(+), 14 deletions(-) 6797 6798commit f7fa309e1f7178d04c7bedc03b73077639371e97 6799Author: Lasse Collin <lasse.collin@tukaani.org> 6800Date: 2021-01-09 21:14:36 +0200 6801 6802 liblzma: Make lzma_outq usable for threaded decompression too. 6803 6804 Before this commit all output queue buffers were allocated as 6805 a single big allocation. Now each buffer is allocated separately 6806 when needed. Used buffers are cached to avoid reallocation 6807 overhead but the cache will keep only one buffer size at a time. 6808 This should make things work OK in the decompression where most 6809 of the time the buffer sizes will be the same but with some less 6810 common files the buffer sizes may vary. 6811 6812 While this should work fine, it's still a bit preliminary 6813 and may even get reverted if it turns out to be useless for 6814 decompression. 6815 6816 src/liblzma/common/outqueue.c | 268 +++++++++++++++++++++------------ 6817 src/liblzma/common/outqueue.h | 138 ++++++++++++----- 6818 src/liblzma/common/stream_encoder_mt.c | 52 ++++--- 6819 3 files changed, 301 insertions(+), 157 deletions(-) 6820 6821commit a35a69d693ce37d4ba7c1855bda7d9cfa13d1778 6822Author: Lasse Collin <lasse.collin@tukaani.org> 6823Date: 2020-12-23 17:15:49 +0200 6824 6825 Update THANKS. 6826 6827 THANKS | 1 + 6828 1 file changed, 1 insertion(+) 6829 6830commit 4fd79b90c52396d70e0b1206ceb1a873a0ad2589 6831Author: H.J. Lu <hjl.tools@gmail.com> 6832Date: 2020-12-23 06:49:04 -0800 6833 6834 liblzma: Enable Intel CET in x86 CRC assembly codes 6835 6836 When Intel CET is enabled, we need to include <cet.h> in assembly codes 6837 to mark Intel CET support and add _CET_ENDBR to indirect jump targets. 6838 6839 Tested on Intel Tiger Lake under CET enabled Linux. 6840 6841 src/liblzma/check/crc32_x86.S | 9 +++++++++ 6842 src/liblzma/check/crc64_x86.S | 9 +++++++++ 6843 2 files changed, 18 insertions(+) 6844 6845commit bb3b8c6a23e25db79f862b1de325c56052e0354b 6846Author: Lasse Collin <lasse.collin@tukaani.org> 6847Date: 2020-12-16 18:33:29 +0200 6848 6849 Update THANKS. 6850 6851 THANKS | 1 + 6852 1 file changed, 1 insertion(+) 6853 6854commit 21588ca34af98738954fc12ded1b89d7294ef646 6855Author: Lasse Collin <lasse.collin@tukaani.org> 6856Date: 2020-12-16 18:30:14 +0200 6857 6858 Build: Don't build bundles on Apple OSes. 6859 6860 Thanks to Daniel Packard. 6861 6862 CMakeLists.txt | 3 +++ 6863 1 file changed, 3 insertions(+) 6864 6865commit d05b0c42dd8b38d8c6b8193c8af50e9bd3d16f28 6866Author: Lasse Collin <lasse.collin@tukaani.org> 6867Date: 2020-12-05 22:44:03 +0200 6868 6869 Update THANKS. 6870 6871 THANKS | 1 + 6872 1 file changed, 1 insertion(+) 6873 6874commit 1890351f3423627ba5c4c495402f32d7e9ed90b7 6875Author: Adam Borowski <kilobyte@angband.pl> 6876Date: 2020-09-25 03:35:18 +0200 6877 6878 Scripts: Add zstd support to xzgrep. 6879 6880 Thanks to Adam Borowski. 6881 6882 src/scripts/xzgrep.1 | 9 ++++++--- 6883 src/scripts/xzgrep.in | 1 + 6884 2 files changed, 7 insertions(+), 3 deletions(-) 6885 6886commit 2f108abb3d82e4e2313b438dae9c0c7c7a6366f2 6887Author: Lasse Collin <lasse.collin@tukaani.org> 6888Date: 2020-11-17 20:51:48 +0200 6889 6890 CMake: Fix compatibility with CMake 3.13. 6891 6892 The syntax "if(DEFINED CACHE{FOO})" requires CMake 3.14. 6893 In some other places the code treats the cache variables 6894 like normal variables already (${FOO} or if(FOO) is used, 6895 not ${CACHE{FOO}). 6896 6897 Thanks to ygrek for reporting the bug on IRC. 6898 6899 CMakeLists.txt | 2 +- 6900 cmake/tuklib_cpucores.cmake | 4 ++-- 6901 cmake/tuklib_physmem.cmake | 4 ++-- 6902 3 files changed, 5 insertions(+), 5 deletions(-) 6903 6904commit 5af726a79273fafa5de5745b117e567f21c90e49 6905Author: Lasse Collin <lasse.collin@tukaani.org> 6906Date: 2020-11-01 22:56:43 +0200 6907 6908 Update THANKS. 6909 6910 THANKS | 4 +++- 6911 1 file changed, 3 insertions(+), 1 deletion(-) 6912 6913commit 4575d9d365c756ec189899f9f743e0b3515ce72d 6914Author: Lasse Collin <lasse.collin@tukaani.org> 6915Date: 2020-11-01 22:34:25 +0200 6916 6917 xz: Avoid unneeded \f escapes on the man page. 6918 6919 I don't want to use \c in macro arguments but groff_man(7) 6920 suggests that \f has better portability. \f would be needed 6921 for the .TP strings for portability reasons anyway. 6922 6923 Thanks to Bjarni Ingi Gislason. 6924 6925 src/xz/xz.1 | 31 ++++++++++++++++++++++--------- 6926 1 file changed, 22 insertions(+), 9 deletions(-) 6927 6928commit 620b32f5339f86710cb4435e01ecdac972ccac73 6929Author: Lasse Collin <lasse.collin@tukaani.org> 6930Date: 2020-11-01 19:09:53 +0200 6931 6932 xz: Use non-breaking spaces when intentionally using more than one space. 6933 6934 This silences some style checker warnings. Seems that spaces 6935 in the beginning of a line don't need this treatment. 6936 6937 Thanks to Bjarni Ingi Gislason. 6938 6939 src/xz/xz.1 | 2 +- 6940 1 file changed, 1 insertion(+), 1 deletion(-) 6941 6942commit cb1f34988c8a4130485091b2f8b641303d8f701b 6943Author: Lasse Collin <lasse.collin@tukaani.org> 6944Date: 2020-11-01 18:49:37 +0200 6945 6946 xz: Protect the ellipsis (...) on the man page with \&. 6947 6948 This does it only when ... appears outside macro calls. 6949 6950 Thanks to Bjarni Ingi Gislason. 6951 6952 src/xz/xz.1 | 4 ++-- 6953 1 file changed, 2 insertions(+), 2 deletions(-) 6954 6955commit 5d224da3da87400f2fab313abbd7c710e7169ef9 6956Author: Lasse Collin <lasse.collin@tukaani.org> 6957Date: 2020-11-01 18:41:21 +0200 6958 6959 xz: Avoid the abbreviation "e.g." on the man page. 6960 6961 A few are simply omitted, most are converted to "for example" 6962 and surrounded with commas. Sounds like that this is better 6963 style, for example, man-pages(7) recommends avoiding such 6964 abbreviations except in parenthesis. 6965 6966 Thanks to Bjarni Ingi Gislason. 6967 6968 src/xz/xz.1 | 66 ++++++++++++++++++++++++++++++------------------------------- 6969 1 file changed, 33 insertions(+), 33 deletions(-) 6970 6971commit 90457dbe3e5717660f5b81f8c604860fc5137c0c 6972Author: Lasse Collin <lasse.collin@tukaani.org> 6973Date: 2020-07-12 23:10:03 +0300 6974 6975 xz man page: Change \- (minus) to \(en (en-dash) for a numeric range. 6976 6977 Docs of ancient troff/nroff mention \(em (em-dash) but not \(en 6978 and \- was used for both minus and en-dash. I don't know how 6979 portable \(en is nowadays but it can be changed back if someone 6980 complains. At least GNU groff and OpenBSD's mandoc support it. 6981 6982 Thanks to Bjarni Ingi Gislason for the patch. 6983 6984 src/xz/xz.1 | 16 ++++++++-------- 6985 1 file changed, 8 insertions(+), 8 deletions(-) 6986 6987commit 352ba2d69af2136bc814aa1df1a132559d445616 6988Author: Lasse Collin <lasse.collin@tukaani.org> 6989Date: 2020-07-12 20:46:24 +0300 6990 6991 Windows: Fix building of resource files when config.h isn't used. 6992 6993 Now CMake + Visual Studio works for building liblzma.dll. 6994 6995 Thanks to Markus Rickert. 6996 6997 src/common/common_w32res.rc | 4 +++- 6998 1 file changed, 3 insertions(+), 1 deletion(-) 6999 7000commit a9e2a87f1d61dcf684d809bf08c8ebea93f8a480 7001Author: Lasse Collin <lasse.collin@tukaani.org> 7002Date: 2020-04-06 19:31:50 +0300 7003 7004 src/scripts/xzgrep.1: Filenames to xzgrep are optional. 7005 7006 xzgrep --help was correct already. 7007 7008 src/scripts/xzgrep.1 | 2 +- 7009 1 file changed, 1 insertion(+), 1 deletion(-) 7010 7011commit a7ba275d9b855d186abb29eb7a4f4cb6d9ca6fe0 7012Author: Bjarni Ingi Gislason <bjarniig@rhi.hi.is> 7013Date: 2020-03-26 22:17:31 +0000 7014 7015 src/script/xzgrep.1: Remove superfluous '.RB' 7016 7017 Output is from: test-groff -b -e -mandoc -T utf8 -rF0 -t -w w -z 7018 7019 [ "test-groff" is a developmental version of "groff" ] 7020 7021 Input file is ./src/scripts/xzgrep.1 7022 7023 <src/scripts/xzgrep.1>:20 (macro RB): only 1 argument, but more are expected 7024 <src/scripts/xzgrep.1>:23 (macro RB): only 1 argument, but more are expected 7025 <src/scripts/xzgrep.1>:26 (macro RB): only 1 argument, but more are expected 7026 <src/scripts/xzgrep.1>:29 (macro RB): only 1 argument, but more are expected 7027 <src/scripts/xzgrep.1>:32 (macro RB): only 1 argument, but more are expected 7028 7029 "abc..." does not mean the same as "abc ...". 7030 7031 The output from nroff and troff is unchanged except for the space 7032 between "file" and "...". 7033 7034 Signed-off-by: Bjarni Ingi Gislason <bjarniig@rhi.hi.is> 7035 7036 src/scripts/xzgrep.1 | 12 ++++++------ 7037 1 file changed, 6 insertions(+), 6 deletions(-) 7038 7039commit 133d498db0f4b14f066d192d64dbcade45deae6b 7040Author: Bjarni Ingi Gislason <bjarniig@rhi.hi.is> 7041Date: 2020-03-30 21:56:36 +0000 7042 7043 xzgrep.1: Delete superfluous '.PP' 7044 7045 Summary: 7046 7047 mandoc -T lint xzgrep.1 : 7048 mandoc: xzgrep.1:79:2: WARNING: skipping paragraph macro: PP empty 7049 7050 There is no change in the output of "nroff" and "troff". 7051 7052 Signed-off-by: Bjarni Ingi Gislason <bjarniig@rhi.hi.is> 7053 7054 src/scripts/xzgrep.1 | 1 - 7055 1 file changed, 1 deletion(-) 7056 7057commit 057839ca982f886387b66746bffe749cb14fd8cd 7058Author: Bjarni Ingi Gislason <bjarniig@rhi.hi.is> 7059Date: 2020-03-26 21:16:18 +0000 7060 7061 src/xz/xz.1: Correct misused two-fonts macros 7062 7063 Output is from: test-groff -b -e -mandoc -T utf8 -rF0 -t -w w -z 7064 7065 [ "test-groff" is a developmental version of "groff" ] 7066 7067 Input file is ./src/xz/xz.1 7068 7069 <src/xz/xz.1>:408 (macro BR): only 1 argument, but more are expected 7070 <src/xz/xz.1>:1009 (macro BR): only 1 argument, but more are expected 7071 <src/xz/xz.1>:1743 (macro BR): only 1 argument, but more are expected 7072 <src/xz/xz.1>:1920 (macro BR): only 1 argument, but more are expected 7073 <src/xz/xz.1>:2213 (macro BR): only 1 argument, but more are expected 7074 7075 Output from nroff and troff is unchanged, except for a font change of a 7076 full stop (.). 7077 7078 Signed-off-by: Bjarni Ingi Gislason <bjarniig@rhi.hi.is> 7079 7080 src/xz/xz.1 | 10 +++++----- 7081 1 file changed, 5 insertions(+), 5 deletions(-) 7082 7083commit b8e12f5ab4c9fd3cb09a4330b2861f6b979ababd 7084Author: Lasse Collin <lasse.collin@tukaani.org> 7085Date: 2020-03-23 18:07:50 +0200 7086 7087 Typo fixes from fossies.org. 7088 7089 https://fossies.org/linux/misc/xz-5.2.5.tar.xz/codespell.html 7090 7091 Makefile.am | 2 +- 7092 doc/examples/01_compress_easy.c | 2 +- 7093 src/liblzma/api/lzma/base.h | 2 +- 7094 src/liblzma/check/crc32_x86.S | 2 +- 7095 src/liblzma/common/index.c | 2 +- 7096 src/xz/xz.1 | 4 ++-- 7097 6 files changed, 7 insertions(+), 7 deletions(-) 7098 7099commit 869b9d1b4edd6df07f819d360d306251f8147353 7100Author: Lasse Collin <lasse.collin@tukaani.org> 7101Date: 2020-03-17 16:24:28 +0200 7102 7103 Update NEWS for 5.2.5. 7104 7105 NEWS | 105 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 7106 1 file changed, 105 insertions(+) 7107 7108commit a048e3a92d238c65f050a765174d9c75417231d4 7109Author: Lasse Collin <lasse.collin@tukaani.org> 7110Date: 2020-03-16 20:01:37 +0200 7111 7112 README: Update outdated sections. 7113 7114 README | 21 +++++++++++---------- 7115 1 file changed, 11 insertions(+), 10 deletions(-) 7116 7117commit 29aed815ad4f98f3e4d355faa76a244ecd8ce716 7118Author: Lasse Collin <lasse.collin@tukaani.org> 7119Date: 2020-03-16 19:39:45 +0200 7120 7121 README: Mention that man pages can be translated. 7122 7123 README | 7 ++++--- 7124 1 file changed, 4 insertions(+), 3 deletions(-) 7125 7126commit 7fa7653940cc9dcfcbce2fbc5166ea343ad4e3c1 7127Author: Lasse Collin <lasse.collin@tukaani.org> 7128Date: 2020-03-16 16:43:29 +0200 7129 7130 Update INSTALL.generic from Automake 1.16.1. 7131 7132 INSTALL.generic | 321 ++++++++++++++++++++++++++++---------------------------- 7133 1 file changed, 162 insertions(+), 159 deletions(-) 7134 7135commit 9bd317ef03ab9b3e6a927c27c2e9c4ac041182f0 7136Author: Lasse Collin <lasse.collin@tukaani.org> 7137Date: 2020-03-15 15:27:22 +0200 7138 7139 Update INSTALL for Windows and DOS and add preliminary info for z/OS. 7140 7141 INSTALL | 51 +++++++++++++++++++++++++++++++++++++++++---------- 7142 1 file changed, 41 insertions(+), 10 deletions(-) 7143 7144commit a3148c0446dc7fa96363752df414d22539c9007b 7145Author: Lasse Collin <lasse.collin@tukaani.org> 7146Date: 2020-03-15 15:26:20 +0200 7147 7148 Build: Update m4/ax_pthread.m4 from Autoconf Archive (again). 7149 7150 m4/ax_pthread.m4 | 219 +++++++++++++++++++++++++++++-------------------------- 7151 1 file changed, 117 insertions(+), 102 deletions(-) 7152 7153commit 7812002dd3ed319e42a14662a8531802cca8ca67 7154Author: Lasse Collin <lasse.collin@tukaani.org> 7155Date: 2020-03-11 21:15:35 +0200 7156 7157 xz: Never use thousand separators in DJGPP builds. 7158 7159 DJGPP 2.05 added support for thousands separators but it's 7160 broken at least under WinXP with Finnish locale that uses 7161 a non-breaking space as the thousands separator. Workaround 7162 by disabling thousands separators for DJGPP builds. 7163 7164 src/xz/util.c | 14 ++++++++++++-- 7165 1 file changed, 12 insertions(+), 2 deletions(-) 7166 7167commit 7c8f688bf7fccd65d396e0130cbf4ea5dff5c56f 7168Author: Lasse Collin <lasse.collin@tukaani.org> 7169Date: 2020-03-11 19:38:08 +0200 7170 7171 DOS: Update dos/Makefile for DJGPP 2.05. 7172 7173 It doesn't need -fgnu89-inline like 2.04beta did. 7174 7175 dos/Makefile | 4 +--- 7176 1 file changed, 1 insertion(+), 3 deletions(-) 7177 7178commit 319ca928d73de87940c54e30bffe69f9fa65efdf 7179Author: Lasse Collin <lasse.collin@tukaani.org> 7180Date: 2020-03-11 19:36:07 +0200 7181 7182 DOS: Update instructions in dos/INSTALL.txt. 7183 7184 dos/INSTALL.txt | 59 ++++++++++++++++++++++++++++----------------------------- 7185 1 file changed, 29 insertions(+), 30 deletions(-) 7186 7187commit cb6b227ce39932824812ccd8a0647bd968de27d2 7188Author: Lasse Collin <lasse.collin@tukaani.org> 7189Date: 2020-03-11 17:58:51 +0200 7190 7191 DOS: Update config.h. 7192 7193 The added defines assume GCC >= 4.8. 7194 7195 dos/config.h | 8 ++++++++ 7196 1 file changed, 8 insertions(+) 7197 7198commit 4572d53e16e87eee375bc5624de2fd59bb0ae9cd 7199Author: Lasse Collin <lasse.collin@tukaani.org> 7200Date: 2020-03-02 13:54:33 +0200 7201 7202 liblzma: Fix a comment and RC_SYMBOLS_MAX. 7203 7204 The comment didn't match the value of RC_SYMBOLS_MAX and the value 7205 itself was slightly larger than actually needed. The only harm 7206 about this was that memory usage was a few bytes larger. 7207 7208 src/liblzma/rangecoder/range_encoder.h | 4 ++-- 7209 1 file changed, 2 insertions(+), 2 deletions(-) 7210 7211commit 265daa873c0d871f5f23f9b56e133a6f20045a0a 7212Author: Lasse Collin <lasse.collin@tukaani.org> 7213Date: 2020-02-27 20:58:52 +0200 7214 7215 Build: Make CMake build fail if tuklib_cpucores or tuklib_physmem fails. 7216 7217 CMakeLists.txt | 18 ++++++++++++++++++ 7218 1 file changed, 18 insertions(+) 7219 7220commit 7c8b904527cdbe61248c80edcc2e20d840c4fef9 7221Author: Lasse Collin <lasse.collin@tukaani.org> 7222Date: 2020-02-27 20:24:27 +0200 7223 7224 Build: Add support for --no-po4a option to autogen.sh. 7225 7226 Normally, if po4a isn't available, autogen.sh will return 7227 with non-zero exit status. The option --no-po4a can be useful 7228 when one knows that po4a isn't available but wants autogen.sh 7229 to still return with zero exit status. 7230 7231 autogen.sh | 11 ++++++++++- 7232 1 file changed, 10 insertions(+), 1 deletion(-) 7233 7234commit 292a5c0f9c9b3a66f5a5c652dc46381836d4537f 7235Author: Lasse Collin <lasse.collin@tukaani.org> 7236Date: 2020-02-25 21:35:14 +0200 7237 7238 Update THANKS. 7239 7240 THANKS | 1 + 7241 1 file changed, 1 insertion(+) 7242 7243commit 474320e9908786ba2021035f9013191e16cde08a 7244Author: Lasse Collin <lasse.collin@tukaani.org> 7245Date: 2020-02-25 20:42:31 +0200 7246 7247 Build: Fix bugs in the CMake files. 7248 7249 Seems that the phrase "add more quotes" from sh/bash scripting 7250 applies to CMake as well. E.g. passing an unquoted list ${FOO} 7251 to a function that expects one argument results in only the 7252 first element of the list being passed as an argument and 7253 the rest get ignored. Adding quotes helps ("${FOO}"). 7254 7255 list(INSERT ...) is weird. Inserting an empty string to an empty 7256 variable results in empty list, but inserting it to a non-empty 7257 variable does insert an empty element to the list. 7258 7259 Since INSERT requires at least one element, 7260 "${CMAKE_THREAD_LIBS_INIT}" needs to be quoted in CMakeLists.txt. 7261 It might result in an empty element in the list. It seems to not 7262 matter as empty elements consistently get ignored in that variable. 7263 In fact, calling cmake_check_push_state() and cmake_check_pop_state() 7264 will strip the empty elements from CMAKE_REQUIRED_LIBRARIES! 7265 7266 In addition to quoting fixes, this fixes checks for the cache 7267 variables in tuklib_cpucores.cmake and tuklib_physmem.cmake. 7268 7269 Thanks to Martin Matuška for testing and reporting the problems. 7270 These fixes aren't tested yet but hopefully they soon will be. 7271 7272 CMakeLists.txt | 52 ++++++++++++++++++++++----------------------- 7273 cmake/tuklib_common.cmake | 8 ++++--- 7274 cmake/tuklib_cpucores.cmake | 30 ++++++++++++++------------ 7275 cmake/tuklib_integer.cmake | 34 +++++++++++++++-------------- 7276 cmake/tuklib_mbstr.cmake | 6 +++--- 7277 cmake/tuklib_physmem.cmake | 29 +++++++++++++------------ 7278 cmake/tuklib_progname.cmake | 4 ++-- 7279 7 files changed, 85 insertions(+), 78 deletions(-) 7280 7281commit 7e3493d40eac0c3fa3d5124097745a70e15c41f6 7282Author: Lasse Collin <lasse.collin@tukaani.org> 7283Date: 2020-02-24 23:38:16 +0200 7284 7285 Build: Add very limited experimental CMake support. 7286 7287 This does *NOT* replace the Autotools-based build system in 7288 the foreseeable future. See the comment in the beginning 7289 of CMakeLists.txt. 7290 7291 So far this has been tested only on GNU/Linux but I commit 7292 it anyway to make it easier for others to test. Since I 7293 haven't played much with CMake before, it's likely that 7294 there are things that have been done in a silly or wrong 7295 way and need to be fixed. 7296 7297 CMakeLists.txt | 643 ++++++++++++++++++++++++++++++++++++++++++++ 7298 cmake/tuklib_common.cmake | 47 ++++ 7299 cmake/tuklib_cpucores.cmake | 173 ++++++++++++ 7300 cmake/tuklib_integer.cmake | 100 +++++++ 7301 cmake/tuklib_mbstr.cmake | 20 ++ 7302 cmake/tuklib_physmem.cmake | 149 ++++++++++ 7303 cmake/tuklib_progname.cmake | 19 ++ 7304 7 files changed, 1151 insertions(+) 7305 7306commit 21bd4701fca3e9002ce78bc135debca369ed8545 7307Author: Lasse Collin <lasse.collin@tukaani.org> 7308Date: 2020-02-24 23:37:07 +0200 7309 7310 Update m4/.gitignore. 7311 7312 m4/.gitignore | 1 + 7313 1 file changed, 1 insertion(+) 7314 7315commit e094d1d0f196a91ec703e8d0055948feef349ae8 7316Author: Lasse Collin <lasse.collin@tukaani.org> 7317Date: 2020-02-24 23:29:35 +0200 7318 7319 tuklib: Omit an unneeded <sys/types.h> from a tests. 7320 7321 tuklib_cpucores.c and tuklib_physmem.c don't include <sys/types.h> 7322 even via other files in this package, so clearly that header isn't 7323 needed in the tests either (no one has reported build problems due 7324 to a missing header in a .c file). 7325 7326 m4/tuklib_cpucores.m4 | 1 - 7327 m4/tuklib_physmem.m4 | 1 - 7328 2 files changed, 2 deletions(-) 7329 7330commit b3ed19a55fe99a45bd77614e149d39d18498075c 7331Author: Lasse Collin <lasse.collin@tukaani.org> 7332Date: 2020-02-24 23:01:00 +0200 7333 7334 liblzma: Remove unneeded <sys/types.h> from fastpos_tablegen.c. 7335 7336 This file only generates fastpos_table.c. 7337 It isn't built as a part of liblzma. 7338 7339 src/liblzma/lzma/fastpos_tablegen.c | 1 - 7340 1 file changed, 1 deletion(-) 7341 7342commit 7b8982b29179b3c586e0456dc9ecbd4f58dcea59 7343Author: Lasse Collin <lasse.collin@tukaani.org> 7344Date: 2020-02-22 14:15:07 +0200 7345 7346 Use defined(__GNUC__) before __GNUC__ in preprocessor lines. 7347 7348 This should silence the equivalent of -Wundef in compilers that 7349 don't define __GNUC__. 7350 7351 src/common/sysdefs.h | 3 ++- 7352 src/liblzma/api/lzma.h | 5 +++-- 7353 2 files changed, 5 insertions(+), 3 deletions(-) 7354 7355commit 43dfe04e6209c691cf4fbe3072d4ee91271748f1 7356Author: Lasse Collin <lasse.collin@tukaani.org> 7357Date: 2020-02-21 17:40:02 +0200 7358 7359 liblzma: Add more uses of lzma_memcmplen() to the normal mode of LZMA. 7360 7361 This gives a tiny encoder speed improvement. This could have been done 7362 in 2014 after the commit 544aaa3d13554e8640f9caf7db717a96360ec0f6 but 7363 it was forgotten. 7364 7365 src/liblzma/lzma/lzma_encoder_optimum_normal.c | 16 ++++++++++------ 7366 1 file changed, 10 insertions(+), 6 deletions(-) 7367 7368commit 59e6eb4840b9f52fa3a61544974017279b448216 7369Author: Lasse Collin <lasse.collin@tukaani.org> 7370Date: 2020-02-21 17:01:15 +0200 7371 7372 Build: Add visibility.m4 from gnulib. 7373 7374 Appears that this file used to get included as a side effect of 7375 gettext. After the change to gettext version requirements this file 7376 no longer got copied to the package and so the build was broken. 7377 7378 m4/.gitignore | 1 - 7379 m4/visibility.m4 | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 7380 2 files changed, 77 insertions(+), 1 deletion(-) 7381 7382commit 7fe3ef2eaa53d439cec043727ea1998f4ff0e22a 7383Author: Lasse Collin <lasse.collin@tukaani.org> 7384Date: 2020-02-21 16:10:44 +0200 7385 7386 xz: Silence a warning when sig_atomic_t is long int. 7387 7388 It can be true at least on z/OS. 7389 7390 src/xz/signals.c | 2 +- 7391 1 file changed, 1 insertion(+), 1 deletion(-) 7392 7393commit b0a2a77d10940c42b449d47a005bfc2e50ab5db8 7394Author: Lasse Collin <lasse.collin@tukaani.org> 7395Date: 2020-02-21 15:59:26 +0200 7396 7397 xz: Avoid unneeded access of a volatile variable. 7398 7399 src/xz/signals.c | 2 +- 7400 1 file changed, 1 insertion(+), 1 deletion(-) 7401 7402commit 524c2f12c762032b819757aeda8af7c47c4cabce 7403Author: Lasse Collin <lasse.collin@tukaani.org> 7404Date: 2020-02-21 01:24:18 +0200 7405 7406 tuklib_integer.m4: Optimize the check order. 7407 7408 The __builtin byteswapping is the preferred one so check for it first. 7409 7410 m4/tuklib_integer.m4 | 56 +++++++++++++++++++++++++++------------------------- 7411 1 file changed, 29 insertions(+), 27 deletions(-) 7412 7413commit 57360bb4fd79b358b36d2877db26ac828d1fdfcb 7414Author: Lasse Collin <lasse.collin@tukaani.org> 7415Date: 2020-02-20 18:54:04 +0200 7416 7417 tuklib_exit: Add missing header. 7418 7419 strerror() needs <string.h> which happened to be included via 7420 tuklib_common.h -> tuklib_config.h -> sysdefs.h if HAVE_CONFIG_H 7421 was defined. This wasn't tested without config.h before so it 7422 had worked fine. 7423 7424 src/common/tuklib_exit.c | 1 + 7425 1 file changed, 1 insertion(+) 7426 7427commit fddd31175e74a538997a939d930462fde17d2dd4 7428Author: Lasse Collin <lasse.collin@tukaani.org> 7429Date: 2020-02-18 19:12:35 +0200 7430 7431 Revert the previous commit and add a comment. 7432 7433 The previous commit broke crc32_tablegen.c. 7434 7435 If the whole package is built without config.h (with defines 7436 set on the compiler command line) this should still work fine 7437 as long as these headers conform to C99 well enough. 7438 7439 src/common/tuklib_config.h | 17 ++++++++++------- 7440 1 file changed, 10 insertions(+), 7 deletions(-) 7441 7442commit 4e4e9fbb7e66d45319525ac224bff48fbdd0cf6e 7443Author: Lasse Collin <lasse.collin@tukaani.org> 7444Date: 2020-02-17 23:37:20 +0200 7445 7446 Do not check for HAVE_CONFIG_H in tuklib_config.h. 7447 7448 In XZ Utils sysdefs.h takes care of it and the required headers. 7449 7450 src/common/tuklib_config.h | 15 +++++++-------- 7451 1 file changed, 7 insertions(+), 8 deletions(-) 7452 7453commit 2d4cef954feba82073951358466a1d614141cf33 7454Author: Lasse Collin <lasse.collin@tukaani.org> 7455Date: 2020-02-16 11:18:28 +0200 7456 7457 sysdefs.h: Omit the conditionals around string.h and limits.h. 7458 7459 string.h is used unconditionally elsewhere in the project and 7460 configure has always stopped if limits.h is missing, so these 7461 headers must have been always available even on the weirdest 7462 systems. 7463 7464 src/common/sysdefs.h | 8 ++------ 7465 1 file changed, 2 insertions(+), 6 deletions(-) 7466 7467commit feb9c1969bc3eb33d4ecb72cfa897f92dae84939 7468Author: Lasse Collin <lasse.collin@tukaani.org> 7469Date: 2020-02-15 15:07:11 +0200 7470 7471 Build: Bump Autoconf and Libtool version requirements. 7472 7473 There is no specific reason for this other than blocking 7474 the most ancient versions. These are still old: 7475 7476 Autoconf 2.69 (2012) 7477 Automake 1.12 (2012) 7478 gettext 0.19.6 (2015) 7479 Libtool 2.4 (2010) 7480 7481 configure.ac | 4 ++-- 7482 1 file changed, 2 insertions(+), 2 deletions(-) 7483 7484commit 3d576cf92158d62790017ad7f2dd6dc1dd6b42bb 7485Author: Lasse Collin <lasse.collin@tukaani.org> 7486Date: 2020-02-15 03:08:32 +0200 7487 7488 Build: Use AM_GNU_GETTEXT_REQUIRE_VERSION and require 0.19.6. 7489 7490 This bumps the version requirement from 0.19 (from 2014) to 7491 0.19.6 (2015). 7492 7493 Using only the old AM_GNU_GETTEXT_VERSION results in old 7494 gettext infrastructure being placed in the package. By using 7495 both macros we get the latest gettext files while the other 7496 programs in the Autotools family can still see the old macro. 7497 7498 configure.ac | 6 +++++- 7499 1 file changed, 5 insertions(+), 1 deletion(-) 7500 7501commit fa792b8befaf7cb3960b655e0a9410da866d756f 7502Author: Lasse Collin <lasse.collin@tukaani.org> 7503Date: 2020-02-14 20:42:06 +0200 7504 7505 Translations: Add German translation of the man pages. 7506 7507 Thanks to Mario Blättermann. 7508 7509 po4a/de.po | 5532 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 7510 po4a/po4a.conf | 2 +- 7511 2 files changed, 5533 insertions(+), 1 deletion(-) 7512 7513commit 6f7211b6bb47a895b47f533282dba9ee9a1b0c8b 7514Author: Lasse Collin <lasse.collin@tukaani.org> 7515Date: 2020-02-07 15:32:21 +0200 7516 7517 Build: Add support for translated man pages using po4a. 7518 7519 The dependency on po4a is optional. It's never required to install 7520 the translated man pages when xz is built from a release tarball. 7521 If po4a is missing when building from xz.git, the translated man 7522 pages won't be generated but otherwise the build will work normally. 7523 7524 The translations are only updated automatically by autogen.sh and 7525 by "make mydist". This makes it easy to keep po4a as an optional 7526 dependency and ensures that I won't forget to put updated 7527 translations to a release tarball. 7528 7529 The translated man pages aren't installed if --disable-nls is used. 7530 7531 The installation of translated man pages abuses Automake internals 7532 by calling "install-man" with redefined dist_man_MANS and man_MANS. 7533 This makes the hairy script code slightly less hairy. If it breaks 7534 some day, this code needs to be fixed; don't blame Automake developers. 7535 7536 Also, this adds more quotes to the existing shell script code in 7537 the Makefile.am "-hook"s. 7538 7539 Makefile.am | 4 ++++ 7540 autogen.sh | 8 ++++--- 7541 po4a/.gitignore | 2 ++ 7542 po4a/po4a.conf | 14 +++++++++++ 7543 po4a/update-po | 45 ++++++++++++++++++++++++++++++++++ 7544 src/scripts/Makefile.am | 64 +++++++++++++++++++++++++++++++++++++------------ 7545 src/xz/Makefile.am | 50 +++++++++++++++++++++++++++----------- 7546 src/xzdec/Makefile.am | 55 ++++++++++++++++++++++++++++++++---------- 7547 8 files changed, 197 insertions(+), 45 deletions(-) 7548 7549commit 426f9e5819ff7710a5ff573a96c02940be65d52f 7550Author: Lasse Collin <lasse.collin@tukaani.org> 7551Date: 2020-02-06 17:31:38 +0200 7552 7553 Update THANKS. 7554 7555 THANKS | 1 + 7556 1 file changed, 1 insertion(+) 7557 7558commit e3a4481d020e4de89efa037f335cf50f3ca55592 7559Author: Lasse Collin <lasse.collin@tukaani.org> 7560Date: 2020-02-05 22:35:06 +0200 7561 7562 Update tests/.gitignore. 7563 7564 .gitignore | 4 ++++ 7565 1 file changed, 4 insertions(+) 7566 7567commit 07208de92f2d5bca764f6d0ebe9d9866051dc4ef 7568Author: Lasse Collin <lasse.collin@tukaani.org> 7569Date: 2020-02-05 22:28:51 +0200 7570 7571 Update m4/.gitignore. 7572 7573 m4/.gitignore | 1 + 7574 1 file changed, 1 insertion(+) 7575 7576commit c91fbf223db46c3b3cb9df769863a1a60cd9c908 7577Author: Lasse Collin <lasse.collin@tukaani.org> 7578Date: 2020-02-05 20:47:38 +0200 7579 7580 Update THANKS. 7581 7582 THANKS | 1 + 7583 1 file changed, 1 insertion(+) 7584 7585commit 15a133b6d1a3eab4faf6eb52a71fdc56bd65846f 7586Author: Lasse Collin <lasse.collin@tukaani.org> 7587Date: 2020-02-05 20:40:14 +0200 7588 7589 xz: Make it a fatal error if enabling the sandbox fails. 7590 7591 Perhaps it's too drastic but on the other hand it will let me 7592 learn about possible problems if people report the errors. 7593 This won't be backported to the v5.2 branch. 7594 7595 src/xz/file_io.c | 2 +- 7596 1 file changed, 1 insertion(+), 1 deletion(-) 7597 7598commit af0fb386ef55db66654ae39e2deec6e04190c4ff 7599Author: Lasse Collin <lasse.collin@tukaani.org> 7600Date: 2020-02-05 20:33:50 +0200 7601 7602 xz: Comment out annoying sandboxing messages. 7603 7604 src/xz/file_io.c | 10 +++++++--- 7605 1 file changed, 7 insertions(+), 3 deletions(-) 7606 7607commit 986d8c9b52b824474088e5bb3b6940651660f0e2 7608Author: Lasse Collin <lasse.collin@tukaani.org> 7609Date: 2020-02-05 19:33:37 +0200 7610 7611 Build: Workaround a POSIX shell detection problem on Solaris. 7612 7613 I don't know if the problem is in gnulib's gl_POSIX_SHELL macro 7614 or if xzgrep does something that isn't in POSIX. The workaround 7615 adds a special case for Solaris: if /usr/xpg4/bin/sh exists and 7616 gl_cv_posix_shell wasn't overriden on the configure command line, 7617 use that shell for xzgrep and other scripts. That shell is known 7618 to work and exists on most Solaris systems. 7619 7620 configure.ac | 10 ++++++++++ 7621 1 file changed, 10 insertions(+) 7622 7623commit 6629ed929cc7d45a11e385f357ab58ec15e7e4ad 7624Author: Lasse Collin <lasse.collin@tukaani.org> 7625Date: 2020-02-03 22:03:50 +0200 7626 7627 Build: Update m4/ax_pthread.m4 from Autoconf Archive. 7628 7629 m4/ax_pthread.m4 | 398 ++++++++++++++++++++++++++++++++++++++----------------- 7630 1 file changed, 279 insertions(+), 119 deletions(-) 7631 7632commit 353970510895f6a80adfe60cf71b70a95adfa8bc 7633Author: Lasse Collin <lasse.collin@tukaani.org> 7634Date: 2020-02-01 19:56:18 +0200 7635 7636 xz: Limit --memlimit-compress to at most 4020 MiB for 32-bit xz. 7637 7638 See the code comment for reasoning. It's far from perfect but 7639 hopefully good enough for certain cases while hopefully doing 7640 nothing bad in other situations. 7641 7642 At presets -5 ... -9, 4020 MiB vs. 4096 MiB makes no difference 7643 on how xz scales down the number of threads. 7644 7645 The limit has to be a few MiB below 4096 MiB because otherwise 7646 things like "xz --lzma2=dict=500MiB" won't scale down the dict 7647 size enough and xz cannot allocate enough memory. With 7648 "ulimit -v $((4096 * 1024))" on x86-64, the limit in xz had 7649 to be no more than 4085 MiB. Some safety margin is good though. 7650 7651 This is hack but it should be useful when running 32-bit xz on 7652 a 64-bit kernel that gives full 4 GiB address space to xz. 7653 Hopefully this is enough to solve this: 7654 7655 https://bugzilla.redhat.com/show_bug.cgi?id=1196786 7656 7657 FreeBSD has a patch that limits the result in tuklib_physmem() 7658 to SIZE_MAX on 32-bit systems. While I think it's not the way 7659 to do it, the results on --memlimit-compress have been good. This 7660 commit should achieve practically identical results for compression 7661 while leaving decompression and tuklib_physmem() and thus 7662 lzma_physmem() unaffected. 7663 7664 src/xz/hardware.c | 32 +++++++++++++++++++++++++++++++- 7665 src/xz/xz.1 | 21 ++++++++++++++++++++- 7666 2 files changed, 51 insertions(+), 2 deletions(-) 7667 7668commit ba76d67585f88677af9f48b48e7bdc3bb7687def 7669Author: Lasse Collin <lasse.collin@tukaani.org> 7670Date: 2020-01-26 20:53:25 +0200 7671 7672 xz: Set the --flush-timeout deadline when the first input byte arrives. 7673 7674 xz --flush-timeout=2000, old version: 7675 7676 1. xz is started. The next flush will happen after two seconds. 7677 2. No input for one second. 7678 3. A burst of a few kilobytes of input. 7679 4. No input for one second. 7680 5. Two seconds have passed and flushing starts. 7681 7682 The first second counted towards the flush-timeout even though 7683 there was no pending data. This can cause flushing to occur more 7684 often than needed. 7685 7686 xz --flush-timeout=2000, after this commit: 7687 7688 1. xz is started. 7689 2. No input for one second. 7690 3. A burst of a few kilobytes of input. The next flush will 7691 happen after two seconds counted from the time when the 7692 first bytes of the burst were read. 7693 4. No input for one second. 7694 5. No input for another second. 7695 6. Two seconds have passed and flushing starts. 7696 7697 src/xz/coder.c | 6 +----- 7698 src/xz/file_io.c | 6 +++++- 7699 src/xz/mytime.c | 1 - 7700 3 files changed, 6 insertions(+), 7 deletions(-) 7701 7702commit fd47fd62bbb1bfd13ab63869137971d8b390025f 7703Author: Lasse Collin <lasse.collin@tukaani.org> 7704Date: 2020-01-26 20:19:19 +0200 7705 7706 xz: Move flush_needed from mytime.h to file_pair struct in file_io.h. 7707 7708 src/xz/coder.c | 3 ++- 7709 src/xz/file_io.c | 3 ++- 7710 src/xz/file_io.h | 3 +++ 7711 src/xz/mytime.c | 3 --- 7712 src/xz/mytime.h | 4 ---- 7713 5 files changed, 7 insertions(+), 9 deletions(-) 7714 7715commit 815035681063d5774d3640fc20b8ede783dd574e 7716Author: Lasse Collin <lasse.collin@tukaani.org> 7717Date: 2020-01-26 14:49:22 +0200 7718 7719 xz: coder.c: Make writing output a separate function. 7720 7721 The same code sequence repeats so it's nicer as a separate function. 7722 Note that in one case there was no test for opt_mode != MODE_TEST, 7723 but that was only because that condition would always be true, so 7724 this commit doesn't change the behavior there. 7725 7726 src/xz/coder.c | 30 +++++++++++++++++------------- 7727 1 file changed, 17 insertions(+), 13 deletions(-) 7728 7729commit 5a49e081a098455bcdbd95cefb90e9b18780fe58 7730Author: Lasse Collin <lasse.collin@tukaani.org> 7731Date: 2020-01-26 14:13:42 +0200 7732 7733 xz: Fix semi-busy-waiting in xz --flush-timeout. 7734 7735 When input blocked, xz --flush-timeout=1 would wake up every 7736 millisecond and initiate flushing which would have nothing to 7737 flush and thus would just waste CPU time. The fix disables the 7738 timeout when no input has been seen since the previous flush. 7739 7740 src/xz/coder.c | 4 ++++ 7741 src/xz/file_io.c | 15 +++++++++++---- 7742 src/xz/file_io.h | 4 ++++ 7743 3 files changed, 19 insertions(+), 4 deletions(-) 7744 7745commit dcca70fe9fa3c4bec56cf9c79e966166c9a9cf6a 7746Author: Lasse Collin <lasse.collin@tukaani.org> 7747Date: 2020-01-26 13:47:31 +0200 7748 7749 xz: Refactor io_read() a bit. 7750 7751 src/xz/file_io.c | 17 ++++++++--------- 7752 1 file changed, 8 insertions(+), 9 deletions(-) 7753 7754commit 4ae9ab70cd3214395756435d13d8d000368ca2cb 7755Author: Lasse Collin <lasse.collin@tukaani.org> 7756Date: 2020-01-26 13:37:08 +0200 7757 7758 xz: Update a comment in file_io.h. 7759 7760 src/xz/file_io.h | 5 ++++- 7761 1 file changed, 4 insertions(+), 1 deletion(-) 7762 7763commit 3333ba4a6795a55cf0375329ba08152bd7fcbd46 7764Author: Lasse Collin <lasse.collin@tukaani.org> 7765Date: 2020-01-26 13:27:51 +0200 7766 7767 xz: Move the setting of flush_needed in file_io.c to a nicer location. 7768 7769 src/xz/file_io.c | 6 ++---- 7770 1 file changed, 2 insertions(+), 4 deletions(-) 7771 7772commit cf2df0f05ac98c1158c6e48145900b773223605d 7773Author: Lasse Collin <lasse.collin@tukaani.org> 7774Date: 2020-01-19 21:54:33 +0200 7775 7776 Use $(LIB_FUZZING_ENGINE) in tests/ossfuzz/Makefile. 7777 7778 https://github.com/google/oss-fuzz/pull/3219#issuecomment-573751048 7779 7780 Thanks to Bhargava Shastry for sending the patch. 7781 7782 tests/ossfuzz/Makefile | 2 +- 7783 1 file changed, 1 insertion(+), 1 deletion(-) 7784 7785commit 7136f1735c60ac6967c4b8e277fcde53d485234f 7786Author: Lasse Collin <lasse.collin@tukaani.org> 7787Date: 2019-12-31 00:41:28 +0200 7788 7789 Rename unaligned_read32ne to read32ne, and similarly for the others. 7790 7791 src/common/tuklib_integer.h | 64 +++++++++++++++---------------- 7792 src/liblzma/common/alone_encoder.c | 2 +- 7793 src/liblzma/common/block_header_decoder.c | 2 +- 7794 src/liblzma/common/block_header_encoder.c | 2 +- 7795 src/liblzma/common/memcmplen.h | 9 ++--- 7796 src/liblzma/common/stream_flags_decoder.c | 6 +-- 7797 src/liblzma/common/stream_flags_encoder.c | 8 ++-- 7798 src/liblzma/lz/lz_encoder_hash.h | 2 +- 7799 src/liblzma/lzma/lzma_decoder.c | 2 +- 7800 src/liblzma/lzma/lzma_encoder.c | 2 +- 7801 src/liblzma/lzma/lzma_encoder_private.h | 3 +- 7802 src/liblzma/simple/simple_decoder.c | 2 +- 7803 src/liblzma/simple/simple_encoder.c | 2 +- 7804 tests/test_block_header.c | 4 +- 7805 tests/test_stream_flags.c | 6 +-- 7806 15 files changed, 54 insertions(+), 62 deletions(-) 7807 7808commit 5e78fcbf2eb21936022c9c5c3625d4da76f4b241 7809Author: Lasse Collin <lasse.collin@tukaani.org> 7810Date: 2019-12-31 00:29:48 +0200 7811 7812 Rename read32ne to aligned_read32ne, and similarly for the others. 7813 7814 Using the aligned methods requires more care to ensure that 7815 the address really is aligned, so it's nicer if the aligned 7816 methods are prefixed. The next commit will remove the unaligned_ 7817 prefix from the unaligned methods which in liblzma are used in 7818 more places than the aligned ones. 7819 7820 src/common/tuklib_integer.h | 56 +++++++++++++++++++++--------------------- 7821 src/liblzma/check/crc32_fast.c | 4 +-- 7822 src/liblzma/check/crc64_fast.c | 4 +-- 7823 3 files changed, 32 insertions(+), 32 deletions(-) 7824 7825commit 77bc5bc6dd67056cfd5888520ac930cfc57b4516 7826Author: Lasse Collin <lasse.collin@tukaani.org> 7827Date: 2019-12-31 00:18:24 +0200 7828 7829 Revise tuklib_integer.h and .m4. 7830 7831 Add a configure option --enable-unsafe-type-punning to get the 7832 old non-conforming memory access methods. It can be useful with 7833 old compilers or in some other less typical situations but 7834 shouldn't normally be used. 7835 7836 Omit the packed struct trick for unaligned access. While it's 7837 best in some cases, this is simpler. If the memcpy trick doesn't 7838 work, one can request unsafe type punning from configure. 7839 7840 Because CRC32/CRC64 code needs fast aligned reads, if no very 7841 safe way to do it is found, type punning is used as a fallback. 7842 This sucks but since it currently works in practice, it seems to 7843 be the least bad option. It's never needed with GCC >= 4.7 or 7844 Clang >= 3.6 since these support __builtin_assume_aligned and 7845 thus fast aligned access can be done with the memcpy trick. 7846 7847 Other things: 7848 - Support GCC/Clang __builtin_bswapXX 7849 - Cleaner bswap fallback macros 7850 - Minor cleanups 7851 7852 m4/tuklib_integer.m4 | 46 ++++- 7853 src/common/tuklib_integer.h | 488 ++++++++++++++++++++++++-------------------- 7854 2 files changed, 316 insertions(+), 218 deletions(-) 7855 7856commit 8b72950a6b2e2a36c2d8fdc8857564b57191b088 7857Author: Lasse Collin <lasse.collin@tukaani.org> 7858Date: 2019-12-29 22:51:58 +0200 7859 7860 Tests: Hopefully fix test_check.c to work on EBCDIC systems. 7861 7862 Thanks to Daniel Richard G. 7863 7864 tests/test_check.c | 9 +++++++-- 7865 1 file changed, 7 insertions(+), 2 deletions(-) 7866 7867commit 43ce4ea7c762238d3df9717b34126d3e0d7cd51c 7868Author: Lasse Collin <lasse.collin@tukaani.org> 7869Date: 2019-09-24 23:02:40 +0300 7870 7871 Scripts: Put /usr/xpg4/bin to the beginning of PATH on Solaris. 7872 7873 This adds a configure option --enable-path-for-scripts=PREFIX 7874 which defaults to empty except on Solaris it is /usr/xpg4/bin 7875 to make POSIX grep and others available. The Solaris case had 7876 been documented in INSTALL with a manual fix but it's better 7877 to do this automatically since it is needed on most Solaris 7878 systems anyway. 7879 7880 Thanks to Daniel Richard G. 7881 7882 INSTALL | 43 +++++++++++++++++++++++++++++++++++-------- 7883 configure.ac | 26 ++++++++++++++++++++++++++ 7884 src/scripts/xzdiff.in | 1 + 7885 src/scripts/xzgrep.in | 1 + 7886 src/scripts/xzless.in | 1 + 7887 src/scripts/xzmore.in | 1 + 7888 6 files changed, 65 insertions(+), 8 deletions(-) 7889 7890commit 6a89e656ebedd53a10cd1a063a32a9e4ade0da1f 7891Author: Lasse Collin <lasse.collin@tukaani.org> 7892Date: 2019-07-12 18:57:43 +0300 7893 7894 Fix comment typos in tuklib_mbstr* files. 7895 7896 src/common/tuklib_mbstr.h | 2 +- 7897 src/common/tuklib_mbstr_fw.c | 2 +- 7898 src/common/tuklib_mbstr_width.c | 2 +- 7899 3 files changed, 3 insertions(+), 3 deletions(-) 7900 7901commit ac0b4212656a48ef0c187c0c941d40ac9489ae36 7902Author: Lasse Collin <lasse.collin@tukaani.org> 7903Date: 2019-07-12 18:30:46 +0300 7904 7905 Add missing include to tuklib_mbstr_width.c. 7906 7907 It didn't matter in XZ Utils because sysdefs.h 7908 includes string.h anyway. 7909 7910 src/common/tuklib_mbstr_width.c | 1 + 7911 1 file changed, 1 insertion(+) 7912 7913commit 72a443281fb0b91aebf8cdff2ab1f7c07b081240 7914Author: Lasse Collin <lasse.collin@tukaani.org> 7915Date: 2019-07-12 18:10:57 +0300 7916 7917 Update tuklib base headers to include stdbool.h. 7918 7919 src/common/tuklib_common.h | 2 +- 7920 src/common/tuklib_config.h | 1 + 7921 2 files changed, 2 insertions(+), 1 deletion(-) 7922 7923commit de1f47b2b40e960b7bc3acba754f66dd19705921 7924Author: Lasse Collin <lasse.collin@tukaani.org> 7925Date: 2019-06-28 00:54:31 +0300 7926 7927 xz: Automatically align the strings in --info-memory. 7928 7929 This makes it easier to translate the strings. 7930 7931 Also, the string for amount of RAM was shortened. 7932 7933 src/xz/hardware.c | 45 ++++++++++++++++++++++++++++++++++----------- 7934 1 file changed, 34 insertions(+), 11 deletions(-) 7935 7936commit 8ce679125dbd0e2058d8f886e738d7f19a45cab5 7937Author: Lasse Collin <lasse.collin@tukaani.org> 7938Date: 2019-06-25 23:15:21 +0300 7939 7940 liblzma: Fix a buggy comment. 7941 7942 src/liblzma/lz/lz_encoder_mf.c | 2 +- 7943 1 file changed, 1 insertion(+), 1 deletion(-) 7944 7945commit fc77929e92e869f6869bf88931066103fd75f376 7946Author: Lasse Collin <lasse.collin@tukaani.org> 7947Date: 2019-06-25 00:16:06 +0300 7948 7949 configure.ac: Fix a typo in a comment. 7950 7951 configure.ac | 2 +- 7952 1 file changed, 1 insertion(+), 1 deletion(-) 7953 7954commit e873902641794210ad7db59743f98e3e1cd6139f 7955Author: Lasse Collin <lasse.collin@tukaani.org> 7956Date: 2019-06-25 00:08:13 +0300 7957 7958 Tests: Silence warnings from clang -Wassign-enum. 7959 7960 Also changed 999 to 99 so it fits even if lzma_check happened 7961 to be 8 bits wide. 7962 7963 tests/test_block_header.c | 3 ++- 7964 tests/test_stream_flags.c | 2 +- 7965 2 files changed, 3 insertions(+), 2 deletions(-) 7966 7967commit d499e467d99efeaae688564eedc4548837c1416a 7968Author: Lasse Collin <lasse.collin@tukaani.org> 7969Date: 2019-06-24 23:52:17 +0300 7970 7971 liblzma: Add a comment. 7972 7973 src/liblzma/common/stream_encoder_mt.c | 2 +- 7974 1 file changed, 1 insertion(+), 1 deletion(-) 7975 7976commit a12b13c5f0d54c684fa8446f93fdac08ab2a716b 7977Author: Lasse Collin <lasse.collin@tukaani.org> 7978Date: 2019-06-24 23:45:21 +0300 7979 7980 liblzma: Silence clang -Wmissing-variable-declarations. 7981 7982 src/liblzma/check/crc32_table.c | 3 +++ 7983 src/liblzma/check/crc64_table.c | 3 +++ 7984 2 files changed, 6 insertions(+) 7985 7986commit 1b4675cebf7471f7cc9b7072c950e3de97147063 7987Author: Lasse Collin <lasse.collin@tukaani.org> 7988Date: 2019-06-24 23:25:41 +0300 7989 7990 Add LZMA_RET_INTERNAL1..8 to lzma_ret and use one for LZMA_TIMED_OUT. 7991 7992 LZMA_TIMED_OUT is *internally* used as a value for lzma_ret 7993 enumeration. Previously it was #defined to 32 and cast to lzma_ret. 7994 That way it wasn't visible in the public API, but this was hackish. 7995 7996 Now the public API has eight LZMA_RET_INTERNALx members and 7997 LZMA_TIMED_OUT is #defined to LZMA_RET_INTERNAL1. This way 7998 the code is cleaner overall although the public API has a few 7999 extra mysterious enum members. 8000 8001 src/liblzma/api/lzma/base.h | 15 ++++++++++++++- 8002 src/liblzma/common/common.c | 4 +--- 8003 src/liblzma/common/common.h | 5 ++--- 8004 src/xz/message.c | 8 ++++++++ 8005 4 files changed, 25 insertions(+), 7 deletions(-) 8006 8007commit 159c43875eb25deea626ed651274464bae3e32ef 8008Author: Lasse Collin <lasse.collin@tukaani.org> 8009Date: 2019-06-24 22:57:43 +0300 8010 8011 xz: Silence a warning from clang -Wsign-conversion in main.c. 8012 8013 src/xz/main.c | 2 +- 8014 1 file changed, 1 insertion(+), 1 deletion(-) 8015 8016commit 466cfcd3e52f6750ce28a635997f3dd84fb18515 8017Author: Lasse Collin <lasse.collin@tukaani.org> 8018Date: 2019-06-24 22:52:20 +0300 8019 8020 xz: Make "headings" static in list.c. 8021 8022 Caught by clang -Wmissing-variable-declarations. 8023 8024 src/xz/list.c | 2 +- 8025 1 file changed, 1 insertion(+), 1 deletion(-) 8026 8027commit 608517b9b76c41fac6613dbda1193d6f41338e19 8028Author: Lasse Collin <lasse.collin@tukaani.org> 8029Date: 2019-06-24 22:47:39 +0300 8030 8031 liblzma: Remove incorrect uses of lzma_attribute((__unused__)). 8032 8033 Caught by clang -Wused-but-marked-unused. 8034 8035 src/liblzma/common/alone_decoder.c | 3 +-- 8036 src/liblzma/common/alone_encoder.c | 3 +-- 8037 src/liblzma/lz/lz_decoder.c | 3 +-- 8038 3 files changed, 3 insertions(+), 6 deletions(-) 8039 8040commit c2d2ab6a9d41a2b55d047c5b710aacf80d219255 8041Author: Lasse Collin <lasse.collin@tukaani.org> 8042Date: 2019-06-24 20:53:55 +0300 8043 8044 Tests: Silence a warning from -Wsign-conversion. 8045 8046 tests/create_compress_files.c | 8 ++++---- 8047 1 file changed, 4 insertions(+), 4 deletions(-) 8048 8049commit 2402f7873dcae719d0ebddd23bb579074519ac52 8050Author: Lasse Collin <lasse.collin@tukaani.org> 8051Date: 2019-06-24 20:45:49 +0300 8052 8053 xz: Fix an integer overflow with 32-bit off_t. 8054 8055 Or any off_t which isn't very big (like signed 64 bit integer 8056 that most system have). A small off_t could overflow if the 8057 file being decompressed had long enough run of zero bytes, 8058 which would result in corrupt output. 8059 8060 src/xz/file_io.c | 11 +++++++++-- 8061 1 file changed, 9 insertions(+), 2 deletions(-) 8062 8063commit 4fd3a8dd0b60f029e1c66a0ee634f9e9fda3caa9 8064Author: Lasse Collin <lasse.collin@tukaani.org> 8065Date: 2019-06-24 01:24:17 +0300 8066 8067 xz: Cleanup io_seek_src() a bit. 8068 8069 lseek() returns -1 on error and checking for -1 is nicer. 8070 8071 src/xz/file_io.c | 4 +--- 8072 1 file changed, 1 insertion(+), 3 deletions(-) 8073 8074commit dfda7cf6afa486e10df035327d68753896dfb48a 8075Author: Lasse Collin <lasse.collin@tukaani.org> 8076Date: 2019-06-24 00:57:23 +0300 8077 8078 Tests: Remove a duplicate branch from tests/tests.h. 8079 8080 The duplication was introduced about eleven years ago and 8081 should have been cleaned up back then already. 8082 8083 This was caught by -Wduplicated-branches. 8084 8085 tests/tests.h | 9 ++------- 8086 1 file changed, 2 insertions(+), 7 deletions(-) 8087 8088commit 1d4a904d8fb634bd5a04f7fbdd17d3739f3d8866 8089Author: Lasse Collin <lasse.collin@tukaani.org> 8090Date: 2019-06-24 00:40:45 +0300 8091 8092 xz: Change io_seek_src and io_pread arguments from off_t to uint64_t. 8093 8094 This helps fixing warnings from -Wsign-conversion and makes the 8095 code look better too. 8096 8097 src/xz/file_io.c | 16 ++++++++++++---- 8098 src/xz/file_io.h | 4 ++-- 8099 src/xz/list.c | 9 ++++----- 8100 3 files changed, 18 insertions(+), 11 deletions(-) 8101 8102commit 50120deb0159fcb53ee1a6caffb2bb81a1ecd990 8103Author: Lasse Collin <lasse.collin@tukaani.org> 8104Date: 2019-06-24 00:12:38 +0300 8105 8106 xz: list.c: Fix some warnings from -Wsign-conversion. 8107 8108 src/xz/list.c | 7 ++++--- 8109 1 file changed, 4 insertions(+), 3 deletions(-) 8110 8111commit d0a78751eb54fb1572002746c533936a118e4e42 8112Author: Lasse Collin <lasse.collin@tukaani.org> 8113Date: 2019-06-23 23:22:45 +0300 8114 8115 tuklib_mbstr_width: Fix a warning from -Wsign-conversion. 8116 8117 src/common/tuklib_mbstr_width.c | 2 +- 8118 1 file changed, 1 insertion(+), 1 deletion(-) 8119 8120commit 7883d73530b4b2a701ddd7d50c35676cbc158039 8121Author: Lasse Collin <lasse.collin@tukaani.org> 8122Date: 2019-06-23 23:19:34 +0300 8123 8124 xz: Fix some of the warnings from -Wsign-conversion. 8125 8126 src/xz/args.c | 4 ++-- 8127 src/xz/coder.c | 4 ++-- 8128 src/xz/file_io.c | 5 +++-- 8129 src/xz/message.c | 4 ++-- 8130 src/xz/mytime.c | 4 ++-- 8131 src/xz/options.c | 2 +- 8132 src/xz/util.c | 4 ++-- 8133 7 files changed, 14 insertions(+), 13 deletions(-) 8134 8135commit c2b994fe3d35e9e575c28869a2f7f534f2495d05 8136Author: Lasse Collin <lasse.collin@tukaani.org> 8137Date: 2019-06-23 22:27:45 +0300 8138 8139 tuklib_cpucores: Silence warnings from -Wsign-conversion. 8140 8141 src/common/tuklib_cpucores.c | 10 +++++----- 8142 1 file changed, 5 insertions(+), 5 deletions(-) 8143 8144commit 07c4fa9e1a195e0543f271380c8de22a3ab145ff 8145Author: Lasse Collin <lasse.collin@tukaani.org> 8146Date: 2019-06-23 21:40:47 +0300 8147 8148 xzdec: Fix warnings from -Wsign-conversion. 8149 8150 src/xzdec/xzdec.c | 2 +- 8151 1 file changed, 1 insertion(+), 1 deletion(-) 8152 8153commit dfac2c9a1d7d4a2b8a5d7c9c6d567dee48318bcf 8154Author: Lasse Collin <lasse.collin@tukaani.org> 8155Date: 2019-06-23 21:38:56 +0300 8156 8157 liblzma: Fix warnings from -Wsign-conversion. 8158 8159 Also, more parentheses were added to the literal_subcoder 8160 macro in lzma_comon.h (better style but no functional change 8161 in the current usage). 8162 8163 src/liblzma/common/block_header_decoder.c | 2 +- 8164 src/liblzma/delta/delta_decoder.c | 2 +- 8165 src/liblzma/lzma/fastpos.h | 2 +- 8166 src/liblzma/lzma/lzma2_decoder.c | 8 ++++---- 8167 src/liblzma/lzma/lzma_common.h | 3 ++- 8168 src/liblzma/lzma/lzma_decoder.c | 16 ++++++++-------- 8169 src/liblzma/simple/arm.c | 6 +++--- 8170 src/liblzma/simple/armthumb.c | 8 ++++---- 8171 src/liblzma/simple/ia64.c | 2 +- 8172 src/liblzma/simple/powerpc.c | 9 +++++---- 8173 src/liblzma/simple/x86.c | 2 +- 8174 11 files changed, 31 insertions(+), 29 deletions(-) 8175 8176commit 41838dcc26375f6aa393a63e4d81e2f4d223de07 8177Author: Lasse Collin <lasse.collin@tukaani.org> 8178Date: 2019-06-23 19:33:55 +0300 8179 8180 tuklib_integer: Silence warnings from -Wsign-conversion. 8181 8182 src/common/tuklib_integer.h | 6 +++--- 8183 1 file changed, 3 insertions(+), 3 deletions(-) 8184 8185commit 3ce05d235f736d392347a05086b8033416874b87 8186Author: Lasse Collin <lasse.collin@tukaani.org> 8187Date: 2019-06-20 19:40:30 +0300 8188 8189 tuklib_integer: Fix usage of conv macros. 8190 8191 Use a temporary variable instead of e.g. 8192 conv32le(unaligned_read32ne(buf)) because the macro can 8193 evaluate its argument multiple times. 8194 8195 src/common/tuklib_integer.h | 12 ++++++++---- 8196 1 file changed, 8 insertions(+), 4 deletions(-) 8197 8198commit b525b0c0ef40cd89b69294c9b8d57f4a8db58e1f 8199Author: Lasse Collin <lasse.collin@tukaani.org> 8200Date: 2019-06-03 20:44:19 +0300 8201 8202 Update THANKS. 8203 8204 THANKS | 1 + 8205 1 file changed, 1 insertion(+) 8206 8207commit 039a168e8cf201d5104a25ec41f0cf25eda6cc53 8208Author: Lasse Collin <lasse.collin@tukaani.org> 8209Date: 2019-06-03 20:41:54 +0300 8210 8211 liblzma: Fix comments. 8212 8213 Thanks to Bruce Stark. 8214 8215 src/liblzma/common/alone_encoder.c | 4 ++-- 8216 src/liblzma/common/block_util.c | 2 +- 8217 src/liblzma/common/common.c | 2 +- 8218 src/liblzma/common/filter_common.h | 2 +- 8219 src/liblzma/common/filter_decoder.h | 2 +- 8220 src/liblzma/common/filter_flags_encoder.c | 2 +- 8221 6 files changed, 7 insertions(+), 7 deletions(-) 8222 8223commit c460f6defebc5a81bbca90adc2476154ca244f69 8224Author: Lasse Collin <lasse.collin@tukaani.org> 8225Date: 2019-06-02 00:50:59 +0300 8226 8227 liblzma: Fix one more unaligned read to use unaligned_read16ne(). 8228 8229 src/liblzma/lz/lz_encoder_hash.h | 2 +- 8230 1 file changed, 1 insertion(+), 1 deletion(-) 8231 8232commit c81d77c537f0b8c8672868e1dc6cf7290ce4a25b 8233Author: Lasse Collin <lasse.collin@tukaani.org> 8234Date: 2019-06-01 21:41:55 +0300 8235 8236 Update THANKS. 8237 8238 THANKS | 1 + 8239 1 file changed, 1 insertion(+) 8240 8241commit 386394fc9fcde2615391f804eaa466749f96f4ef 8242Author: Lasse Collin <lasse.collin@tukaani.org> 8243Date: 2019-06-01 21:36:13 +0300 8244 8245 liblzma: memcmplen: Use ctz32() from tuklib_integer.h. 8246 8247 The same compiler-specific #ifdefs are already in tuklib_integer.h 8248 8249 src/liblzma/common/memcmplen.h | 10 +--------- 8250 1 file changed, 1 insertion(+), 9 deletions(-) 8251 8252commit 264ab971ce2994baac41b1579c9c35aba7743fc8 8253Author: Lasse Collin <lasse.collin@tukaani.org> 8254Date: 2019-06-01 21:30:03 +0300 8255 8256 tuklib_integer: Cleanup MSVC-specific code. 8257 8258 src/common/tuklib_integer.h | 20 +++++++++----------- 8259 1 file changed, 9 insertions(+), 11 deletions(-) 8260 8261commit 33773c6f2a8711d4aa6656795db52c59a28580ec 8262Author: Lasse Collin <lasse.collin@tukaani.org> 8263Date: 2019-06-01 19:01:21 +0300 8264 8265 liblzma: Use unaligned_readXXne functions instead of type punning. 8266 8267 Now gcc -fsanitize=undefined should be clean. 8268 8269 Thanks to Jeffrey Walton. 8270 8271 src/liblzma/common/memcmplen.h | 12 ++++++------ 8272 src/liblzma/lzma/lzma_encoder_private.h | 2 +- 8273 2 files changed, 7 insertions(+), 7 deletions(-) 8274 8275commit e5f13a66567b1987e0aae42c6fdcd277bb5810ba 8276Author: Lasse Collin <lasse.collin@tukaani.org> 8277Date: 2019-06-01 18:46:54 +0300 8278 8279 tuklib_integer: Autodetect support for unaligned access on ARM. 8280 8281 The result is used as the default for --enable-unaligned-access. 8282 The test should work with GCC and Clang. 8283 8284 m4/tuklib_integer.m4 | 11 +++++++++++ 8285 1 file changed, 11 insertions(+) 8286 8287commit 3bc112c2d38d5f348bce7bc2422286b1692c7490 8288Author: Lasse Collin <lasse.collin@tukaani.org> 8289Date: 2019-06-01 18:41:16 +0300 8290 8291 tuklib_integer: Improve unaligned memory access. 8292 8293 Now memcpy() or GNU C packed structs for unaligned access instead 8294 of type punning. See the comment in this commit for details. 8295 8296 Avoiding type punning with unaligned access is needed to 8297 silence gcc -fsanitize=undefined. 8298 8299 New functions: unaliged_readXXne and unaligned_writeXXne where 8300 XX is 16, 32, or 64. 8301 8302 src/common/tuklib_integer.h | 180 +++++++++++++++++++++++++++++++++++++++++--- 8303 1 file changed, 168 insertions(+), 12 deletions(-) 8304 8305commit 2a22de439ec63da1927b640eda309296a1e8dce5 8306Author: Lasse Collin <lasse.collin@tukaani.org> 8307Date: 2019-05-13 20:05:17 +0300 8308 8309 liblzma: Avoid memcpy(NULL, foo, 0) because it is undefined behavior. 8310 8311 I should have always known this but I didn't. Here is an example 8312 as a reminder to myself: 8313 8314 int mycopy(void *dest, void *src, size_t n) 8315 { 8316 memcpy(dest, src, n); 8317 return dest == NULL; 8318 } 8319 8320 In the example, a compiler may assume that dest != NULL because 8321 passing NULL to memcpy() would be undefined behavior. Testing 8322 with GCC 8.2.1, mycopy(NULL, NULL, 0) returns 1 with -O0 and -O1. 8323 With -O2 the return value is 0 because the compiler infers that 8324 dest cannot be NULL because it was already used with memcpy() 8325 and thus the test for NULL gets optimized out. 8326 8327 In liblzma, if a null-pointer was passed to memcpy(), there were 8328 no checks for NULL *after* the memcpy() call, so I cautiously 8329 suspect that it shouldn't have caused bad behavior in practice, 8330 but it's hard to be sure, and the problematic cases had to be 8331 fixed anyway. 8332 8333 Thanks to Jeffrey Walton. 8334 8335 src/liblzma/common/common.c | 6 +++++- 8336 src/liblzma/lz/lz_decoder.c | 12 +++++++++--- 8337 src/liblzma/simple/simple_coder.c | 10 +++++++++- 8338 3 files changed, 23 insertions(+), 5 deletions(-) 8339 8340commit d3fc850cfedc058247d9e334ce59bbc8f2286d8a 8341Author: Lasse Collin <lasse.collin@tukaani.org> 8342Date: 2019-05-11 20:56:08 +0300 8343 8344 Update THANKS. 8345 8346 THANKS | 1 + 8347 1 file changed, 1 insertion(+) 8348 8349commit 4adb8288ab61d5f14e212007b8742df0710baf73 8350Author: Lasse Collin <lasse.collin@tukaani.org> 8351Date: 2019-05-11 20:54:12 +0300 8352 8353 xz: Update xz man page date. 8354 8355 src/xz/xz.1 | 2 +- 8356 1 file changed, 1 insertion(+), 1 deletion(-) 8357 8358commit 2fb0ddaa557ce86e38fe06439930fa8665f092fd 8359Author: Antoine Cœur <antoine.coeur@ef.com> 8360Date: 2019-05-08 13:30:57 +0800 8361 8362 spelling 8363 8364 Doxyfile.in | 2 +- 8365 NEWS | 2 +- 8366 doc/examples/11_file_info.c | 2 +- 8367 src/liblzma/api/lzma/block.h | 2 +- 8368 src/liblzma/api/lzma/hardware.h | 2 +- 8369 src/liblzma/api/lzma/lzma12.h | 2 +- 8370 src/liblzma/api/lzma/vli.h | 2 +- 8371 src/liblzma/common/file_info.c | 4 ++-- 8372 src/liblzma/common/hardware_physmem.c | 2 +- 8373 src/liblzma/common/index.c | 4 ++-- 8374 src/liblzma/common/stream_encoder_mt.c | 2 +- 8375 src/liblzma/common/vli_decoder.c | 2 +- 8376 src/liblzma/lz/lz_decoder.c | 2 +- 8377 src/scripts/xzgrep.in | 2 +- 8378 src/xz/args.c | 2 +- 8379 src/xz/coder.c | 4 ++-- 8380 src/xz/list.c | 4 ++-- 8381 src/xz/main.c | 2 +- 8382 src/xz/mytime.h | 2 +- 8383 src/xz/private.h | 2 +- 8384 src/xz/xz.1 | 2 +- 8385 windows/build.bash | 2 +- 8386 22 files changed, 26 insertions(+), 26 deletions(-) 8387 8388commit 4ed339606156bd313ed99237485cb8ed0362d64f 8389Author: Lasse Collin <lasse.collin@tukaani.org> 8390Date: 2019-05-01 18:43:10 +0300 8391 8392 xz: In xz -lvv look at the widths of the check names too. 8393 8394 Now the widths of the check names is used to adjust the width 8395 of the Check column. This way there no longer is a need to restrict 8396 the widths of the check names to be at most ten terminal-columns. 8397 8398 src/xz/list.c | 32 ++++++++++++++++++++++++++------ 8399 1 file changed, 26 insertions(+), 6 deletions(-) 8400 8401commit 2f4281a1001dcf7fdf1418c0c0d246c16561fb65 8402Author: Lasse Collin <lasse.collin@tukaani.org> 8403Date: 2019-05-01 18:33:25 +0300 8404 8405 xz: Fix xz -lvv column alignment to look at the translated strings. 8406 8407 src/xz/list.c | 4 ++-- 8408 1 file changed, 2 insertions(+), 2 deletions(-) 8409 8410commit 01d01b7c7c0b8eaf7f780a5584ec52c22d10fa4a 8411Author: Lasse Collin <lasse.collin@tukaani.org> 8412Date: 2019-05-01 16:52:36 +0300 8413 8414 Update THANKS. 8415 8416 THANKS | 1 + 8417 1 file changed, 1 insertion(+) 8418 8419commit 64030c6b17f7743df03a9948a0ccfcdf40c6b97c 8420Author: Lasse Collin <lasse.collin@tukaani.org> 8421Date: 2019-05-01 16:43:16 +0300 8422 8423 Windows: Update VS version in windows/vs2019/config.h. 8424 8425 windows/vs2019/config.h | 2 +- 8426 1 file changed, 1 insertion(+), 1 deletion(-) 8427 8428commit 2dc9117f5fbfab31444a3ca1e55795ccfa8a9f51 8429Author: Julien Marrec <julien.marrec@gmail.com> 8430Date: 2019-04-25 17:44:06 +0200 8431 8432 Windows: Upgrade solution itself 8433 8434 windows/vs2019/xz_win.sln | 7 +++++-- 8435 1 file changed, 5 insertions(+), 2 deletions(-) 8436 8437commit ac31413916fa9b11bab17f0f0aa63e2869360f6f 8438Author: Julien Marrec <julien.marrec@gmail.com> 8439Date: 2019-04-25 17:40:24 +0200 8440 8441 Windows: Upgrade solution with VS2019 8442 8443 windows/vs2019/liblzma.vcxproj | 15 ++++++++------- 8444 windows/vs2019/liblzma_dll.vcxproj | 15 ++++++++------- 8445 2 files changed, 16 insertions(+), 14 deletions(-) 8446 8447commit be25a0c37ba92a20c390b4d17fe502457fe96b71 8448Author: Julien Marrec <julien.marrec@gmail.com> 8449Date: 2019-04-25 17:39:32 +0200 8450 8451 Windows: Duplicate windows/vs2017 before upgrading 8452 8453 windows/vs2019/config.h | 148 ++++++++++++++ 8454 windows/vs2019/liblzma.vcxproj | 356 ++++++++++++++++++++++++++++++++++ 8455 windows/vs2019/liblzma_dll.vcxproj | 385 +++++++++++++++++++++++++++++++++++++ 8456 windows/vs2019/xz_win.sln | 48 +++++ 8457 4 files changed, 937 insertions(+) 8458 8459commit d0e58b3a51e8e616f3dc26ec7b7e4aa0fa6991ad 8460Author: Lasse Collin <lasse.collin@tukaani.org> 8461Date: 2019-03-04 22:49:04 +0200 8462 8463 README: Update translation instructions. 8464 8465 XZ Utils is now part of the Translation Project 8466 <https://translationproject.org/>. 8467 8468 README | 32 +++++++++++++------------------- 8469 1 file changed, 13 insertions(+), 19 deletions(-) 8470 8471commit a750c35a7d45a16c11c1d40fecee8443c32a9996 8472Author: Lasse Collin <lasse.collin@tukaani.org> 8473Date: 2019-03-04 21:20:39 +0200 8474 8475 xz: Automatically align column headings in xz -lvv. 8476 8477 src/xz/list.c | 263 ++++++++++++++++++++++++++++++++++++++++++++++------------ 8478 1 file changed, 212 insertions(+), 51 deletions(-) 8479 8480commit 6cb42e8aa1dc37bf403a9f5acbd07e86036b7e77 8481Author: Lasse Collin <lasse.collin@tukaani.org> 8482Date: 2019-03-04 01:07:59 +0200 8483 8484 xz: Automatically align strings ending in a colon in --list output. 8485 8486 This should avoid alignment errors in translations with these 8487 strings. 8488 8489 src/xz/list.c | 114 +++++++++++++++++++++++++++++++++++++++++++++++++++------- 8490 1 file changed, 102 insertions(+), 12 deletions(-) 8491 8492commit 1e3f29b62f2c03e50fc9ebea7b83c1497dd35484 8493Author: Lasse Collin <lasse.collin@tukaani.org> 8494Date: 2019-01-13 17:29:23 +0200 8495 8496 Windows/VS2017: Omit WindowsTargetPlatformVersion from project files. 8497 8498 I understood that if a WTPV is specified, it's often wrong 8499 because different VS installations have different SDK version 8500 installed. Omitting the WTPV tag makes VS2017 default to 8501 Windows SDK 8.1 which often is also missing, so in any case 8502 people may need to specify the WTPV before building. But some 8503 day in the future a missing WTPV tag will start to default to 8504 the latest installed SDK which sounds reasonable: 8505 8506 https://developercommunity.visualstudio.com/content/problem/140294/windowstargetplatformversion-makes-it-impossible-t.html 8507 8508 Thanks to "dom". 8509 8510 windows/INSTALL-MSVC.txt | 4 ++++ 8511 windows/vs2017/liblzma.vcxproj | 1 - 8512 windows/vs2017/liblzma_dll.vcxproj | 1 - 8513 3 files changed, 4 insertions(+), 2 deletions(-) 8514 8515commit 4d86076332aece6314063d3712a5f364172bbb0f 8516Author: Lasse Collin <lasse.collin@tukaani.org> 8517Date: 2018-12-20 20:42:29 +0200 8518 8519 Update THANKS. 8520 8521 THANKS | 1 + 8522 1 file changed, 1 insertion(+) 8523 8524commit b55d79461d1f6aeaac03c7dae84481e5eb8bea4c 8525Author: Lasse Collin <lasse.collin@tukaani.org> 8526Date: 2018-12-14 20:34:30 +0200 8527 8528 xz: Fix a crash in progress indicator when in passthru mode. 8529 8530 "xz -dcfv not_an_xz_file" crashed (all four options are 8531 required to trigger it). It caused xz to call 8532 lzma_get_progress(&strm, ...) when no coder was initialized 8533 in strm. In this situation strm.internal is NULL which leads 8534 to a crash in lzma_get_progress(). 8535 8536 The bug was introduced when xz started using lzma_get_progress() 8537 to get progress info for multi-threaded compression, so the 8538 bug is present in versions 5.1.3alpha and higher. 8539 8540 Thanks to Filip Palian <Filip.Palian@pjwstk.edu.pl> for 8541 the bug report. 8542 8543 src/xz/coder.c | 11 +++++++---- 8544 src/xz/message.c | 18 ++++++++++++++++-- 8545 src/xz/message.h | 3 ++- 8546 3 files changed, 25 insertions(+), 7 deletions(-) 8547 8548commit 4ae5526de013efd1021686fa80bdd10cf1cb9c56 8549Author: Lasse Collin <lasse.collin@tukaani.org> 8550Date: 2018-11-22 17:20:31 +0200 8551 8552 xz: Update man page timestamp. 8553 8554 src/xz/xz.1 | 2 +- 8555 1 file changed, 1 insertion(+), 1 deletion(-) 8556 8557commit 6a36d0d5f49e0080ff64dd9ef250abd489bea2ad 8558Author: Pavel Raiskup <praiskup@redhat.com> 8559Date: 2018-11-22 15:14:34 +0100 8560 8561 'have have' typos 8562 8563 src/xz/signals.c | 2 +- 8564 src/xz/xz.1 | 2 +- 8565 2 files changed, 2 insertions(+), 2 deletions(-) 8566 8567commit 9eca51ef805ed8002a851df1b4995d71826c8b6e 8568Author: Lasse Collin <lasse.collin@tukaani.org> 8569Date: 2018-11-02 20:40:48 +0200 8570 8571 Update THANKS. 8572 8573 THANKS | 1 + 8574 1 file changed, 1 insertion(+) 8575 8576commit 106d1a663d4ba42b63231caa289f531548df81c1 8577Author: Lasse Collin <lasse.collin@tukaani.org> 8578Date: 2018-11-02 20:18:45 +0200 8579 8580 Tests: Add a fuzz test program and a config file for OSS-Fuzz. 8581 8582 Thanks to Bhargava Shastry and Github user pdknsk. 8583 8584 tests/Makefile.am | 1 + 8585 tests/ossfuzz/Makefile | 7 ++++ 8586 tests/ossfuzz/config/fuzz.dict | 2 + 8587 tests/ossfuzz/config/fuzz.options | 2 + 8588 tests/ossfuzz/fuzz.c | 82 +++++++++++++++++++++++++++++++++++++++ 8589 5 files changed, 94 insertions(+) 8590 8591commit a18ae42a79a19b1394b41eb3e238139fd28012ec 8592Author: Lasse Collin <lasse.collin@tukaani.org> 8593Date: 2018-10-26 22:49:10 +0300 8594 8595 liblzma: Don't verify header CRC32s if building for fuzz testing. 8596 8597 FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION is #defined when liblzma 8598 is being built for fuzz testing. 8599 8600 Most fuzzed inputs would normally get rejected because of incorrect 8601 CRC32 and the actual header decoding code wouldn't get fuzzed. 8602 Disabling CRC32 checks avoids this problem. The fuzzer program 8603 must still use LZMA_IGNORE_CHECK flag to disable verification of 8604 integrity checks of uncompressed data. 8605 8606 src/liblzma/common/block_header_decoder.c | 5 ++++- 8607 src/liblzma/common/index_decoder.c | 5 ++++- 8608 src/liblzma/common/index_hash.c | 5 ++++- 8609 src/liblzma/common/stream_flags_decoder.c | 10 ++++++++-- 8610 4 files changed, 20 insertions(+), 5 deletions(-) 8611 8612commit f76f7516d6a1c832f61810c82e92d151cc80966c 8613Author: Lasse Collin <lasse.collin@tukaani.org> 8614Date: 2018-07-27 18:10:44 +0300 8615 8616 xzless: Rename unused variables to silence static analysers. 8617 8618 In this particular case I don't see this affecting readability 8619 of the code. 8620 8621 Thanks to Pavel Raiskup. 8622 8623 src/scripts/xzless.in | 2 +- 8624 1 file changed, 1 insertion(+), 1 deletion(-) 8625 8626commit 3cbcaeb07eb7543735befd6f507fdb5fa4363cff 8627Author: Lasse Collin <lasse.collin@tukaani.org> 8628Date: 2018-07-27 16:02:58 +0300 8629 8630 liblzma: Remove an always-true condition from lzma_index_cat(). 8631 8632 This should help static analysis tools to see that newg 8633 isn't leaked. 8634 8635 Thanks to Pavel Raiskup. 8636 8637 src/liblzma/common/index.c | 4 ++-- 8638 1 file changed, 2 insertions(+), 2 deletions(-) 8639 8640commit 76762ae6098ec55c326f4b4b4a42e8c1918ee81f 8641Author: Lasse Collin <lasse.collin@tukaani.org> 8642Date: 2018-05-19 21:23:25 +0300 8643 8644 liblzma: Improve lzma_properties_decode() API documentation. 8645 8646 src/liblzma/api/lzma/filter.h | 7 ++++--- 8647 1 file changed, 4 insertions(+), 3 deletions(-) 8648 8649commit 2267f5b0d20a5d24e93fcd9f72ea7eeb0d89708c 8650Author: Lasse Collin <lasse.collin@tukaani.org> 8651Date: 2018-04-29 18:58:19 +0300 8652 8653 Bump the version number to 5.3.1alpha. 8654 8655 src/liblzma/api/lzma/version.h | 2 +- 8656 src/liblzma/liblzma.map | 2 +- 8657 2 files changed, 2 insertions(+), 2 deletions(-) 8658 8659commit cee3021d30704858e4bdd22240e7d28e570d7451 8660Author: Lasse Collin <lasse.collin@tukaani.org> 8661Date: 2018-04-29 18:48:00 +0300 8662 8663 extra/scanlzma: Fix compiler warnings. 8664 8665 extra/scanlzma/scanlzma.c | 6 +++++- 8666 1 file changed, 5 insertions(+), 1 deletion(-) 8667 8668commit c5c7ceb08a011b97d261798033e2c39613a69eb7 8669Author: Lasse Collin <lasse.collin@tukaani.org> 8670Date: 2018-04-29 18:44:47 +0300 8671 8672 DOS: Add file_info.c to the list of files to build. 8673 8674 dos/Makefile | 1 + 8675 1 file changed, 1 insertion(+) 8676 8677commit 114cab97af766b21e0fc8620479202fb1e7a5e41 8678Author: Lasse Collin <lasse.collin@tukaani.org> 8679Date: 2018-04-29 18:33:10 +0300 8680 8681 Update NEWS for 5.3.1alpha. 8682 8683 NEWS | 11 +++++++++++ 8684 1 file changed, 11 insertions(+) 8685 8686commit b8139e11c512bbf32bf58ab0689f9bb6c52819da 8687Author: Lasse Collin <lasse.collin@tukaani.org> 8688Date: 2018-04-29 18:15:37 +0300 8689 8690 Add NEWS for 5.2.4. 8691 8692 NEWS | 27 +++++++++++++++++++++++++++ 8693 1 file changed, 27 insertions(+) 8694 8695commit 47b59d47cfd904a420fbd45629d168ca1973721d 8696Author: Lasse Collin <lasse.collin@tukaani.org> 8697Date: 2018-02-06 19:36:30 +0200 8698 8699 Update THANKS. 8700 8701 THANKS | 2 ++ 8702 1 file changed, 2 insertions(+) 8703 8704commit bc197991690ede24ab143665b5b0f0f9cb35cc46 8705Author: Ben Boeckel <mathstuf@gmail.com> 8706Date: 2018-01-29 13:58:18 -0500 8707 8708 nothrow: use noexcept for C++11 and newer 8709 8710 In C++11, the `throw()` specifier is deprecated and `noexcept` is 8711 preffered instead. 8712 8713 src/liblzma/api/lzma.h | 6 +++++- 8714 1 file changed, 5 insertions(+), 1 deletion(-) 8715 8716commit fb6d4f83cb6e144734f2a4216bb117bd56dc3cb5 8717Author: Lasse Collin <lasse.collin@tukaani.org> 8718Date: 2018-02-06 18:02:48 +0200 8719 8720 liblzma: Remove incorrect #ifdef from range_common.h. 8721 8722 In most cases it was harmless but it could affect some 8723 custom build systems. 8724 8725 Thanks to Pippijn van Steenhoven. 8726 8727 src/liblzma/rangecoder/range_common.h | 4 +--- 8728 1 file changed, 1 insertion(+), 3 deletions(-) 8729 8730commit bc577d35c2d0ed17f554d2d8107b2a2a9abbac76 8731Author: Lasse Collin <lasse.collin@tukaani.org> 8732Date: 2018-01-10 22:10:39 +0200 8733 8734 Update THANKS. 8735 8736 THANKS | 1 + 8737 1 file changed, 1 insertion(+) 8738 8739commit 713bbc1a80f26d34c96ed3dbb9887362204de3a1 8740Author: Lasse Collin <lasse.collin@tukaani.org> 8741Date: 2018-01-10 21:54:27 +0200 8742 8743 tuklib_integer: New Intel C compiler needs immintrin.h. 8744 8745 Thanks to Melanie Blower (Intel) for the patch. 8746 8747 src/common/tuklib_integer.h | 11 +++++++++++ 8748 1 file changed, 11 insertions(+) 8749 8750commit a0ee1afbd99da138b559cb27fa2022e7f1ab44f3 8751Author: Lasse Collin <lasse.collin@tukaani.org> 8752Date: 2017-09-24 20:04:24 +0300 8753 8754 Update THANKS. 8755 8756 THANKS | 1 + 8757 1 file changed, 1 insertion(+) 8758 8759commit a1e2c568de29c0b57d873eab40a2879b749da429 8760Author: Lasse Collin <lasse.collin@tukaani.org> 8761Date: 2017-09-16 20:36:20 +0300 8762 8763 Windows: Fix paths in VS project files. 8764 8765 Some paths use slashes instead of backslashes as directory 8766 separators... now it should work (I tested VS2013 version). 8767 8768 windows/vs2013/liblzma.vcxproj | 12 ++++++------ 8769 windows/vs2013/liblzma_dll.vcxproj | 24 ++++++++++++------------ 8770 windows/vs2017/liblzma.vcxproj | 12 ++++++------ 8771 windows/vs2017/liblzma_dll.vcxproj | 24 ++++++++++++------------ 8772 4 files changed, 36 insertions(+), 36 deletions(-) 8773 8774commit cea5cf8d26c9d1dc30a808614d79c0b25640e15e 8775Author: Lasse Collin <lasse.collin@tukaani.org> 8776Date: 2017-09-16 12:56:20 +0300 8777 8778 Windows: Update VS2017 project files to include file info decoder. 8779 8780 windows/vs2017/liblzma.vcxproj | 2 ++ 8781 windows/vs2017/liblzma_dll.vcxproj | 2 ++ 8782 2 files changed, 4 insertions(+) 8783 8784commit 95d563db3ee497b223e522b699c4d4c29943eef0 8785Author: Lasse Collin <lasse.collin@tukaani.org> 8786Date: 2017-09-16 12:54:23 +0300 8787 8788 Windows: Add project files for VS2017. 8789 8790 These files match the v5.2 branch (no file info decoder). 8791 8792 windows/vs2017/config.h | 148 ++++++++++++++ 8793 windows/vs2017/liblzma.vcxproj | 355 ++++++++++++++++++++++++++++++++++ 8794 windows/vs2017/liblzma_dll.vcxproj | 384 +++++++++++++++++++++++++++++++++++++ 8795 windows/vs2017/xz_win.sln | 48 +++++ 8796 4 files changed, 935 insertions(+) 8797 8798commit ab72416d62ea8f50ad31d5b8545fcb6a2bf96b73 8799Author: Lasse Collin <lasse.collin@tukaani.org> 8800Date: 2017-09-16 12:45:50 +0300 8801 8802 Windows: Update VS2013 project files to include file info decoder. 8803 8804 windows/vs2013/liblzma.vcxproj | 2 ++ 8805 windows/vs2013/liblzma_dll.vcxproj | 2 ++ 8806 2 files changed, 4 insertions(+) 8807 8808commit 82388980187b0e3794d187762054200bbdcc9a53 8809Author: Lasse Collin <lasse.collin@tukaani.org> 8810Date: 2017-09-16 12:39:43 +0300 8811 8812 Windows: Move VS2013 files into windows/vs2013 directory. 8813 8814 windows/{ => vs2013}/config.h | 0 8815 windows/{ => vs2013}/liblzma.vcxproj | 278 +++++++++++++++--------------- 8816 windows/{ => vs2013}/liblzma_dll.vcxproj | 280 +++++++++++++++---------------- 8817 windows/{ => vs2013}/xz_win.sln | 0 8818 4 files changed, 279 insertions(+), 279 deletions(-) 8819 8820commit 94e3f986aa4e14b4ff01ac24857f499630d6d180 8821Author: Lasse Collin <lasse.collin@tukaani.org> 8822Date: 2017-08-14 20:08:33 +0300 8823 8824 Fix or hide warnings from GCC 7's -Wimplicit-fallthrough. 8825 8826 src/liblzma/lzma/lzma_decoder.c | 6 ++++++ 8827 src/xz/list.c | 2 ++ 8828 2 files changed, 8 insertions(+) 8829 8830commit 0b0e1e6803456aac641a59332200f8e95e2b7ea8 8831Author: Alexey Tourbin <alexey.tourbin@gmail.com> 8832Date: 2017-05-16 23:56:35 +0300 8833 8834 Docs: Fix a typo in a comment in doc/examples/02_decompress.c. 8835 8836 doc/examples/02_decompress.c | 2 +- 8837 1 file changed, 1 insertion(+), 1 deletion(-) 8838 8839commit a015cd1f90116e655be4eaf4aad42c4c911c2807 8840Author: Lasse Collin <lasse.collin@tukaani.org> 8841Date: 2017-05-23 18:34:43 +0300 8842 8843 xz: Fix "xz --list --robot missing_or_bad_file.xz". 8844 8845 It ended up printing an uninitialized char-array when trying to 8846 print the check names (column 7) on the "totals" line. 8847 8848 This also changes the column 12 (minimum xz version) to 8849 50000002 (xz 5.0.0) instead of 0 when there are no valid 8850 input files. 8851 8852 Thanks to kidmin for the bug report. 8853 8854 src/xz/list.c | 8 ++++++-- 8855 1 file changed, 6 insertions(+), 2 deletions(-) 8856 8857commit c2e29f06a7d1e3ba242ac2fafc69f5d6e92f62cd 8858Author: Lasse Collin <lasse.collin@tukaani.org> 8859Date: 2017-04-24 20:20:11 +0300 8860 8861 Docs: Add doc/examples/11_file_info.c. 8862 8863 doc/examples/11_file_info.c | 206 ++++++++++++++++++++++++++++++++++++++++++++ 8864 doc/examples/Makefile | 3 +- 8865 2 files changed, 208 insertions(+), 1 deletion(-) 8866 8867commit 1520f6ec808896375ac7bf778c449e0f7dea5f46 8868Author: Lasse Collin <lasse.collin@tukaani.org> 8869Date: 2017-04-24 19:48:47 +0300 8870 8871 Build: Omit pre-5.0.0 entries from the generated ChangeLog. 8872 8873 It makes ChangeLog significantly smaller. 8874 8875 Makefile.am | 3 ++- 8876 1 file changed, 2 insertions(+), 1 deletion(-) 8877 8878commit 8269782283806c90a8509c2ac2a308344f70e171 8879Author: Lasse Collin <lasse.collin@tukaani.org> 8880Date: 2017-04-24 19:48:23 +0300 8881 8882 xz: Use lzma_file_info_decoder() for --list. 8883 8884 src/xz/list.c | 254 ++++++++++------------------------------------------------ 8885 1 file changed, 44 insertions(+), 210 deletions(-) 8886 8887commit e353d0b1cc0d3997ae5048faa8e6786414953e06 8888Author: Lasse Collin <lasse.collin@tukaani.org> 8889Date: 2017-04-24 19:35:50 +0300 8890 8891 liblzma: Add lzma_file_info_decoder(). 8892 8893 src/liblzma/api/lzma/index.h | 66 ++++ 8894 src/liblzma/common/Makefile.inc | 1 + 8895 src/liblzma/common/file_info.c | 855 ++++++++++++++++++++++++++++++++++++++++ 8896 src/liblzma/liblzma.map | 7 +- 8897 4 files changed, 928 insertions(+), 1 deletion(-) 8898 8899commit 144ef9e19e9496c995b21505dd1e111c442968d1 8900Author: Lasse Collin <lasse.collin@tukaani.org> 8901Date: 2017-04-24 19:30:22 +0300 8902 8903 Update the Git repository URL to HTTPS in ChangeLog. 8904 8905 ChangeLog | 2 +- 8906 1 file changed, 1 insertion(+), 1 deletion(-) 8907 8908commit 8c9842c265993d7dd4039f732d3546267fb5ecc4 8909Author: Lasse Collin <lasse.collin@tukaani.org> 8910Date: 2017-04-21 15:05:16 +0300 8911 8912 liblzma: Rename LZMA_SEEK to LZMA_SEEK_NEEDED and seek_in to seek_pos. 8913 8914 src/liblzma/api/lzma/base.h | 18 +++++++++--------- 8915 src/liblzma/common/common.c | 2 +- 8916 src/xz/message.c | 2 +- 8917 3 files changed, 11 insertions(+), 11 deletions(-) 8918 8919commit 662b27c417cab248cb365dd7682121bdec4d5ae7 8920Author: Lasse Collin <lasse.collin@tukaani.org> 8921Date: 2017-04-19 22:17:35 +0300 8922 8923 Update the home page URLs to HTTPS. 8924 8925 COPYING | 2 +- 8926 README | 2 +- 8927 configure.ac | 2 +- 8928 doc/faq.txt | 4 ++-- 8929 dos/config.h | 2 +- 8930 src/common/common_w32res.rc | 2 +- 8931 src/xz/xz.1 | 6 +++--- 8932 src/xzdec/xzdec.1 | 4 ++-- 8933 windows/README-Windows.txt | 2 +- 8934 windows/config.h | 2 +- 8935 10 files changed, 14 insertions(+), 14 deletions(-) 8936 8937commit c28f0b3d00af87b92dda229831548d8eb0067d1d 8938Author: Lasse Collin <lasse.collin@tukaani.org> 8939Date: 2017-04-05 18:47:22 +0300 8940 8941 xz: Add io_seek_src(). 8942 8943 src/xz/file_io.c | 20 +++++++++++++++++--- 8944 src/xz/file_io.h | 13 +++++++++++++ 8945 2 files changed, 30 insertions(+), 3 deletions(-) 8946 8947commit bba477257d7319c8764890f3669175b866d24944 8948Author: Lasse Collin <lasse.collin@tukaani.org> 8949Date: 2017-03-30 22:01:54 +0300 8950 8951 xz: Use POSIX_FADV_RANDOM for in "xz --list" mode. 8952 8953 xz --list is random access so POSIX_FADV_SEQUENTIAL was clearly 8954 wrong. 8955 8956 src/xz/file_io.c | 10 ++++++++-- 8957 1 file changed, 8 insertions(+), 2 deletions(-) 8958 8959commit 310d19816d1652b0c8bb1b82574d46345d924752 8960Author: Lasse Collin <lasse.collin@tukaani.org> 8961Date: 2017-03-30 20:03:05 +0300 8962 8963 liblzma: Make lzma_index_decoder_init() visible to other liblzma funcs. 8964 8965 This is to allow other functions to use it without going 8966 via the public API (lzma_index_decoder()). 8967 8968 src/liblzma/common/Makefile.inc | 1 + 8969 src/liblzma/common/index_decoder.c | 10 +++++----- 8970 src/liblzma/common/index_decoder.h | 24 ++++++++++++++++++++++++ 8971 3 files changed, 30 insertions(+), 5 deletions(-) 8972 8973commit a27920002dbc469f778a134fc665b7c3ea73701b 8974Author: Lasse Collin <lasse.collin@tukaani.org> 8975Date: 2017-03-30 20:00:09 +0300 8976 8977 liblzma: Add generic support for input seeking (LZMA_SEEK). 8978 8979 Also mention LZMA_SEEK in xz/message.c to silence a warning. 8980 8981 src/liblzma/api/lzma/base.h | 31 ++++++++++++++++++++++++++++++- 8982 src/liblzma/common/common.c | 12 +++++++++++- 8983 src/xz/message.c | 1 + 8984 3 files changed, 42 insertions(+), 2 deletions(-) 8985 8986commit a0b1dda409bc3e6e2957a2651663fc411d2caf2d 8987Author: Lasse Collin <lasse.collin@tukaani.org> 8988Date: 2017-03-30 19:47:45 +0300 8989 8990 liblzma: Fix lzma_memlimit_set(strm, 0). 8991 8992 The 0 got treated specially in a buggy way and as a result 8993 the function did nothing. The API doc said that 0 was supposed 8994 to return LZMA_PROG_ERROR but it didn't. 8995 8996 Now 0 is treated as if 1 had been specified. This is done because 8997 0 is already used to indicate an error from lzma_memlimit_get() 8998 and lzma_memusage(). 8999 9000 In addition, lzma_memlimit_set() no longer checks that the new 9001 limit is at least LZMA_MEMUSAGE_BASE. It's counter-productive 9002 for the Index decoder and was actually needed only by the 9003 auto decoder. Auto decoder has now been modified to check for 9004 LZMA_MEMUSAGE_BASE. 9005 9006 src/liblzma/api/lzma/base.h | 7 ++++++- 9007 src/liblzma/common/auto_decoder.c | 3 +++ 9008 src/liblzma/common/common.c | 6 ++++-- 9009 3 files changed, 13 insertions(+), 3 deletions(-) 9010 9011commit 84462afaada61379f5878e46f8f00e25a1cdcf29 9012Author: Lasse Collin <lasse.collin@tukaani.org> 9013Date: 2017-03-30 19:16:55 +0300 9014 9015 liblzma: Similar memlimit fix for stream_, alone_, and auto_decoder. 9016 9017 src/liblzma/api/lzma/container.h | 21 +++++++++++++++++---- 9018 src/liblzma/common/alone_decoder.c | 5 +---- 9019 src/liblzma/common/auto_decoder.c | 5 +---- 9020 src/liblzma/common/stream_decoder.c | 5 +---- 9021 4 files changed, 20 insertions(+), 16 deletions(-) 9022 9023commit cbc74017939690d13441b8926bb743fb03211b83 9024Author: Lasse Collin <lasse.collin@tukaani.org> 9025Date: 2017-03-30 18:58:18 +0300 9026 9027 liblzma: Fix handling of memlimit == 0 in lzma_index_decoder(). 9028 9029 It returned LZMA_PROG_ERROR, which was done to avoid zero as 9030 the limit (because it's a special value elsewhere), but using 9031 LZMA_PROG_ERROR is simply inconvenient and can cause bugs. 9032 9033 The fix/workaround is to treat 0 as if it were 1 byte. It's 9034 effectively the same thing. The only weird consequence is 9035 that then lzma_memlimit_get() will return 1 even when 0 was 9036 specified as the limit. 9037 9038 This fixes a very rare corner case in xz --list where a specific 9039 memory usage limit and a multi-stream file could print the 9040 error message "Internal error (bug)" instead of saying that 9041 the memory usage limit is too low. 9042 9043 src/liblzma/api/lzma/index.h | 18 +++++++++++------- 9044 src/liblzma/common/index_decoder.c | 4 ++-- 9045 2 files changed, 13 insertions(+), 9 deletions(-) 9046 9047commit 78ae13bced912b1b92ae927992c99cbcc463cae7 9048Author: Lasse Collin <lasse.collin@tukaani.org> 9049Date: 2016-12-30 13:25:10 +0200 9050 9051 Update NEWS for 5.2.3. 9052 9053 NEWS | 39 +++++++++++++++++++++++++++++++++++++++ 9054 1 file changed, 39 insertions(+) 9055 9056commit 0297863fdb453aed1a25eb025f3ba7bacbbb1357 9057Author: Lasse Collin <lasse.collin@tukaani.org> 9058Date: 2016-12-26 20:55:52 +0200 9059 9060 Document --enable-sandbox configure option in INSTALL. 9061 9062 INSTALL | 23 +++++++++++++++++++++++ 9063 1 file changed, 23 insertions(+) 9064 9065commit d4a0462abe5478193521c14625e1c81fead87f9f 9066Author: Lasse Collin <lasse.collin@tukaani.org> 9067Date: 2016-11-21 20:24:50 +0200 9068 9069 liblzma: Avoid multiple definitions of lzma_coder structures. 9070 9071 Only one definition was visible in a translation unit. 9072 It avoided a few casts and temp variables but seems that 9073 this hack doesn't work with link-time optimizations in compilers 9074 as it's not C99/C11 compliant. 9075 9076 Fixes: 9077 http://www.mail-archive.com/xz-devel@tukaani.org/msg00279.html 9078 9079 src/liblzma/common/alone_decoder.c | 44 +++++---- 9080 src/liblzma/common/alone_encoder.c | 34 ++++--- 9081 src/liblzma/common/auto_decoder.c | 35 ++++--- 9082 src/liblzma/common/block_decoder.c | 41 ++++---- 9083 src/liblzma/common/block_encoder.c | 40 ++++---- 9084 src/liblzma/common/common.h | 18 ++-- 9085 src/liblzma/common/index_decoder.c | 33 ++++--- 9086 src/liblzma/common/index_encoder.c | 16 ++-- 9087 src/liblzma/common/stream_decoder.c | 50 +++++----- 9088 src/liblzma/common/stream_encoder.c | 56 ++++++----- 9089 src/liblzma/common/stream_encoder_mt.c | 124 ++++++++++++++----------- 9090 src/liblzma/delta/delta_common.c | 25 ++--- 9091 src/liblzma/delta/delta_decoder.c | 6 +- 9092 src/liblzma/delta/delta_encoder.c | 12 ++- 9093 src/liblzma/delta/delta_private.h | 4 +- 9094 src/liblzma/lz/lz_decoder.c | 60 ++++++------ 9095 src/liblzma/lz/lz_decoder.h | 13 ++- 9096 src/liblzma/lz/lz_encoder.c | 57 +++++++----- 9097 src/liblzma/lz/lz_encoder.h | 9 +- 9098 src/liblzma/lzma/lzma2_decoder.c | 32 ++++--- 9099 src/liblzma/lzma/lzma2_encoder.c | 51 +++++----- 9100 src/liblzma/lzma/lzma_decoder.c | 27 +++--- 9101 src/liblzma/lzma/lzma_encoder.c | 29 +++--- 9102 src/liblzma/lzma/lzma_encoder.h | 9 +- 9103 src/liblzma/lzma/lzma_encoder_optimum_fast.c | 3 +- 9104 src/liblzma/lzma/lzma_encoder_optimum_normal.c | 23 ++--- 9105 src/liblzma/lzma/lzma_encoder_private.h | 6 +- 9106 src/liblzma/simple/arm.c | 2 +- 9107 src/liblzma/simple/armthumb.c | 2 +- 9108 src/liblzma/simple/ia64.c | 2 +- 9109 src/liblzma/simple/powerpc.c | 2 +- 9110 src/liblzma/simple/simple_coder.c | 61 ++++++------ 9111 src/liblzma/simple/simple_private.h | 12 +-- 9112 src/liblzma/simple/sparc.c | 2 +- 9113 src/liblzma/simple/x86.c | 15 +-- 9114 35 files changed, 532 insertions(+), 423 deletions(-) 9115 9116commit a01794c52add98263b49119842c3e7141d1b9ced 9117Author: Lasse Collin <lasse.collin@tukaani.org> 9118Date: 2016-10-24 18:53:25 +0300 9119 9120 Update THANKS. 9121 9122 THANKS | 1 + 9123 1 file changed, 1 insertion(+) 9124 9125commit df8f446e3ad47e5148b8c8d8b6e519d3ce29cb9d 9126Author: Lasse Collin <lasse.collin@tukaani.org> 9127Date: 2016-10-24 18:51:36 +0300 9128 9129 tuklib_cpucores: Add support for sched_getaffinity(). 9130 9131 It's available in glibc (GNU/Linux, GNU/kFreeBSD). It's better 9132 than sysconf(_SC_NPROCESSORS_ONLN) because sched_getaffinity() 9133 gives the number of cores available to the process instead of 9134 the total number of cores online. 9135 9136 As a side effect, this commit fixes a bug on GNU/kFreeBSD where 9137 configure would detect the FreeBSD-specific cpuset_getaffinity() 9138 but it wouldn't actually work because on GNU/kFreeBSD it requires 9139 using -lfreebsd-glue when linking. Now the glibc-specific function 9140 will be used instead. 9141 9142 Thanks to Sebastian Andrzej Siewior for the original patch 9143 and testing. 9144 9145 m4/tuklib_cpucores.m4 | 30 +++++++++++++++++++++++++++++- 9146 src/common/tuklib_cpucores.c | 9 +++++++++ 9147 2 files changed, 38 insertions(+), 1 deletion(-) 9148 9149commit 446e4318fa79788e09299d5953b5dd428953d14b 9150Author: Lasse Collin <lasse.collin@tukaani.org> 9151Date: 2016-06-30 20:27:36 +0300 9152 9153 xz: Fix copying of timestamps on Windows. 9154 9155 xz used to call utime() on Windows, but its result gets lost 9156 on close(). Using _futime() seems to work. 9157 9158 Thanks to Martok for reporting the bug: 9159 http://www.mail-archive.com/xz-devel@tukaani.org/msg00261.html 9160 9161 configure.ac | 2 +- 9162 src/xz/file_io.c | 18 ++++++++++++++++++ 9163 2 files changed, 19 insertions(+), 1 deletion(-) 9164 9165commit 1b0ac0c53c761263e91e34195cb21dfdcfeac0bd 9166Author: Lasse Collin <lasse.collin@tukaani.org> 9167Date: 2016-06-16 22:46:02 +0300 9168 9169 xz: Silence warnings from -Wlogical-op. 9170 9171 Thanks to Evan Nemerson. 9172 9173 src/xz/file_io.c | 12 ++++++++++-- 9174 1 file changed, 10 insertions(+), 2 deletions(-) 9175 9176commit c83b7a03342c3325ff10400b22ee21edfcd1e026 9177Author: Lasse Collin <lasse.collin@tukaani.org> 9178Date: 2016-04-10 20:55:49 +0300 9179 9180 Build: Fix = to += for xz_SOURCES in src/xz/Makefile.am. 9181 9182 Thanks to Christian Kujau. 9183 9184 src/xz/Makefile.am | 2 +- 9185 1 file changed, 1 insertion(+), 1 deletion(-) 9186 9187commit ade31a2bfb95c94d05fbfc0ecbba5d6377f2506e 9188Author: Lasse Collin <lasse.collin@tukaani.org> 9189Date: 2016-04-10 20:54:17 +0300 9190 9191 Build: Bump GNU Gettext version requirement to 0.19. 9192 9193 It silences a few warnings and most people probably have 9194 0.19 even on stable distributions. 9195 9196 Thanks to Christian Kujau. 9197 9198 configure.ac | 2 +- 9199 1 file changed, 1 insertion(+), 1 deletion(-) 9200 9201commit ac398c3bafa6e4c80e20571373a96947db863b3d 9202Author: Lasse Collin <lasse.collin@tukaani.org> 9203Date: 2016-03-13 20:21:49 +0200 9204 9205 liblzma: Disable external SHA-256 by default. 9206 9207 This is the sane thing to do. The conflict with OpenSSL 9208 on some OSes and especially that the OS-provided versions 9209 can be significantly slower makes it clear that it was 9210 a mistake to have the external SHA-256 support enabled by 9211 default. 9212 9213 Those who want it can now pass --enable-external-sha256 to 9214 configure. INSTALL was updated with notes about OSes where 9215 this can be a bad idea. 9216 9217 The SHA-256 detection code in configure.ac had some bugs that 9218 could lead to a build failure in some situations. These were 9219 fixed, although it doesn't matter that much now that the 9220 external SHA-256 is disabled by default. 9221 9222 MINIX >= 3.2.0 uses NetBSD's libc and thus has SHA256_Init 9223 in libc instead of libutil. Support for the libutil version 9224 was removed. 9225 9226 INSTALL | 36 ++++++++++++++++++++++ 9227 configure.ac | 76 +++++++++++++++++++++++------------------------ 9228 src/liblzma/check/check.h | 16 ++++------ 9229 3 files changed, 79 insertions(+), 49 deletions(-) 9230 9231commit 6fd5ecb589a9fdd7a576ea48c4850d496bab9ce5 9232Author: Lasse Collin <lasse.collin@tukaani.org> 9233Date: 2016-03-10 20:27:05 +0200 9234 9235 Update THANKS. 9236 9237 THANKS | 1 + 9238 1 file changed, 1 insertion(+) 9239 9240commit 473ef0dc69a30e64d5fa0d34aca02f7309faa3e9 9241Author: Lasse Collin <lasse.collin@tukaani.org> 9242Date: 2016-03-10 20:26:49 +0200 9243 9244 Build: Avoid SHA256_Init on FreeBSD and MINIX 3. 9245 9246 On FreeBSD 10 and older, SHA256_Init from libmd conflicts 9247 with libcrypto from OpenSSL. The OpenSSL version has 9248 different sizeof(SHA256_CTX) and it can cause weird 9249 problems if wrong SHA256_Init gets used. 9250 9251 Looking at the source, MINIX 3 seems to have a similar issue but 9252 I'm not sure. To be safe, I disabled SHA256_Init on MINIX 3 too. 9253 9254 NetBSD has SHA256_Init in libc and they had a similar problem, 9255 but they already fixed it in 2009. 9256 9257 Thanks to Jim Wilcoxson for the bug report that helped 9258 in finding the problem. 9259 9260 configure.ac | 27 +++++++++++++++++++++------ 9261 1 file changed, 21 insertions(+), 6 deletions(-) 9262 9263commit faf302137e54d605b44ecf0373cb51a6403a2de1 9264Author: Lasse Collin <lasse.collin@tukaani.org> 9265Date: 2015-11-08 20:16:10 +0200 9266 9267 tuklib_physmem: Hopefully silence a warning on Windows. 9268 9269 src/common/tuklib_physmem.c | 3 ++- 9270 1 file changed, 2 insertions(+), 1 deletion(-) 9271 9272commit e52e9151cf8613022d1de4712ff39dbcb666e991 9273Author: Lasse Collin <lasse.collin@tukaani.org> 9274Date: 2015-11-04 23:17:43 +0200 9275 9276 Update THANKS. 9277 9278 THANKS | 1 + 9279 1 file changed, 1 insertion(+) 9280 9281commit 14115f84a38161d55eaa2d070f08739bde37e966 9282Author: Lasse Collin <lasse.collin@tukaani.org> 9283Date: 2015-11-04 23:14:00 +0200 9284 9285 liblzma: Make Valgrind happier with optimized (gcc -O2) liblzma. 9286 9287 When optimizing, GCC can reorder code so that an uninitialized 9288 value gets used in a comparison, which makes Valgrind unhappy. 9289 It doesn't happen when compiled with -O0, which I tend to use 9290 when running Valgrind. 9291 9292 Thanks to Rich Prohaska. I remember this being mentioned long 9293 ago by someone else but nothing was done back then. 9294 9295 src/liblzma/lz/lz_encoder.c | 4 ++++ 9296 1 file changed, 4 insertions(+) 9297 9298commit f4c95ba94beb71a608eb6eadbf82b44f53a0260e 9299Author: Lasse Collin <lasse.collin@tukaani.org> 9300Date: 2015-11-03 20:55:45 +0200 9301 9302 liblzma: Rename lzma_presets.c back to lzma_encoder_presets.c. 9303 9304 It would be too annoying to update other build systems 9305 just because of this. 9306 9307 src/liblzma/lzma/Makefile.inc | 2 +- 9308 src/liblzma/lzma/{lzma_presets.c => lzma_encoder_presets.c} | 2 +- 9309 2 files changed, 2 insertions(+), 2 deletions(-) 9310 9311commit c7bc20a6f3e71920871d48db31a79ab58b5a0a4b 9312Author: Lasse Collin <lasse.collin@tukaani.org> 9313Date: 2015-11-03 20:47:07 +0200 9314 9315 Build: Disable xzdec, lzmadec, and lzmainfo when they cannot be built. 9316 9317 They all need decoder support and if that isn't available, 9318 there's no point trying to build them. 9319 9320 configure.ac | 3 +++ 9321 1 file changed, 3 insertions(+) 9322 9323commit 5cbca1205deeb6fb7afe7a864fa68a57466d928a 9324Author: Lasse Collin <lasse.collin@tukaani.org> 9325Date: 2015-11-03 20:35:19 +0200 9326 9327 Build: Simplify $enable_{encoders,decoders} usage a bit. 9328 9329 configure.ac | 6 ++++-- 9330 1 file changed, 4 insertions(+), 2 deletions(-) 9331 9332commit af13781886c8e7a0aabebb5141ea282dc364f5c6 9333Author: Lasse Collin <lasse.collin@tukaani.org> 9334Date: 2015-11-03 20:31:31 +0200 9335 9336 Windows/MSVC: Update config.h. 9337 9338 windows/config.h | 6 ++++++ 9339 1 file changed, 6 insertions(+) 9340 9341commit 9fa5949330f162c5a2f6653f83025327837e8f39 9342Author: Lasse Collin <lasse.collin@tukaani.org> 9343Date: 2015-11-03 20:29:58 +0200 9344 9345 DOS: Update config.h. 9346 9347 dos/config.h | 6 ++++++ 9348 1 file changed, 6 insertions(+) 9349 9350commit cb3111e3ed84152912b5138d690c8d9f00c6ef02 9351Author: Lasse Collin <lasse.collin@tukaani.org> 9352Date: 2015-11-03 20:29:33 +0200 9353 9354 xz: Make xz buildable even when encoders or decoders are disabled. 9355 9356 The patch is quite long but it's mostly about adding new #ifdefs 9357 to omit code when encoders or decoders have been disabled. 9358 9359 This adds two new #defines to config.h: HAVE_ENCODERS and 9360 HAVE_DECODERS. 9361 9362 configure.ac | 4 ++++ 9363 src/xz/Makefile.am | 8 ++++++-- 9364 src/xz/args.c | 16 ++++++++++++++++ 9365 src/xz/coder.c | 33 +++++++++++++++++++++++++-------- 9366 src/xz/main.c | 9 +++++++-- 9367 src/xz/private.h | 5 ++++- 9368 6 files changed, 62 insertions(+), 13 deletions(-) 9369 9370commit 4cc584985c0b7a13901da1b7a64ef9f7cc36e8ab 9371Author: Lasse Collin <lasse.collin@tukaani.org> 9372Date: 2015-11-03 18:06:40 +0200 9373 9374 Build: Build LZMA1/2 presets also when only decoder is wanted. 9375 9376 People shouldn't rely on the presets when decoding raw streams, 9377 but xz uses the presets as the starting point for raw decoder 9378 options anyway. 9379 9380 lzma_encocder_presets.c was renamed to lzma_presets.c to 9381 make it clear it's not used solely by the encoder code. 9382 9383 src/liblzma/lzma/Makefile.inc | 6 +++++- 9384 src/liblzma/lzma/{lzma_encoder_presets.c => lzma_presets.c} | 3 ++- 9385 2 files changed, 7 insertions(+), 2 deletions(-) 9386 9387commit 23ed1d41489f632155bbc9660f323d57e09da180 9388Author: Lasse Collin <lasse.collin@tukaani.org> 9389Date: 2015-11-03 17:54:48 +0200 9390 9391 Build: Fix configure to handle LZMA1 dependency with LZMA2. 9392 9393 Now it gives an error if LZMA1 encoder/decoder is missing 9394 when LZMA2 encoder/decoder was requested. Even better would 9395 be LZMA2 implicitly enabling LZMA1 but it would need more code. 9396 9397 configure.ac | 5 ----- 9398 1 file changed, 5 deletions(-) 9399 9400commit b0bc3e03852af13419ea2960881824258d451117 9401Author: Lasse Collin <lasse.collin@tukaani.org> 9402Date: 2015-11-03 17:41:54 +0200 9403 9404 Build: Don't omit lzma_cputhreads() unless using --disable-threads. 9405 9406 Previously it was omitted if encoders were disabled 9407 with --disable-encoders. It didn't make sense and 9408 it also broke the build. 9409 9410 src/liblzma/common/Makefile.inc | 5 ++++- 9411 1 file changed, 4 insertions(+), 1 deletion(-) 9412 9413commit c6bf438ab39e0fb4a47d3c81725c227919502726 9414Author: Lasse Collin <lasse.collin@tukaani.org> 9415Date: 2015-11-02 18:16:51 +0200 9416 9417 liblzma: Fix a build failure related to external SHA-256 support. 9418 9419 If an appropriate header and structure were found by configure, 9420 but a library with a usable SHA-256 functions wasn't, the build 9421 failed. 9422 9423 src/liblzma/check/check.h | 32 +++++++++++++++++++++++--------- 9424 1 file changed, 23 insertions(+), 9 deletions(-) 9425 9426commit e18adc56f2262aa9394d46681e9e4b9981ed5e97 9427Author: Lasse Collin <lasse.collin@tukaani.org> 9428Date: 2015-11-02 15:19:10 +0200 9429 9430 xz: Always close the file before trying to delete it. 9431 9432 unlink() can return EBUSY in errno for open files on some 9433 operating systems and file systems. 9434 9435 src/xz/file_io.c | 25 ++++++++++++------------- 9436 1 file changed, 12 insertions(+), 13 deletions(-) 9437 9438commit 282e768a1484e88c8b7ec35655ee4959954ec87a 9439Author: Lasse Collin <lasse.collin@tukaani.org> 9440Date: 2015-10-12 21:08:42 +0300 9441 9442 Update THANKS. 9443 9444 THANKS | 1 + 9445 1 file changed, 1 insertion(+) 9446 9447commit 372e402713a1d4337ffce5f56d5c5c9ed99a66d0 9448Author: Lasse Collin <lasse.collin@tukaani.org> 9449Date: 2015-10-12 21:07:41 +0300 9450 9451 Tests: Add tests for the two bugs fixed in index.c. 9452 9453 tests/test_index.c | 30 ++++++++++++++++++++++++++++++ 9454 1 file changed, 30 insertions(+) 9455 9456commit 21515d79d778b8730a434f151b07202d52a04611 9457Author: Lasse Collin <lasse.collin@tukaani.org> 9458Date: 2015-10-12 20:45:15 +0300 9459 9460 liblzma: Fix lzma_index_dup() for empty Streams. 9461 9462 Stream Flags and Stream Padding weren't copied from 9463 empty Streams. 9464 9465 src/liblzma/common/index.c | 11 ++++++----- 9466 1 file changed, 6 insertions(+), 5 deletions(-) 9467 9468commit 09f395b6b360c0b13e8559eece1d179b908ebd3a 9469Author: Lasse Collin <lasse.collin@tukaani.org> 9470Date: 2015-10-12 20:31:44 +0300 9471 9472 liblzma: Add a note to index.c for those using static analyzers. 9473 9474 src/liblzma/common/index.c | 3 +++ 9475 1 file changed, 3 insertions(+) 9476 9477commit 3bf857edfef51374f6f3fffae3d817f57d3264a0 9478Author: Lasse Collin <lasse.collin@tukaani.org> 9479Date: 2015-10-12 20:29:09 +0300 9480 9481 liblzma: Fix a memory leak in error path of lzma_index_dup(). 9482 9483 lzma_index_dup() calls index_dup_stream() which, in case of 9484 an error, calls index_stream_end() to free memory allocated 9485 by index_stream_init(). However, it illogically didn't 9486 actually free the memory. To make it logical, the tree 9487 handling code was modified a bit in addition to changing 9488 index_stream_end(). 9489 9490 Thanks to Evan Nemerson for the bug report. 9491 9492 src/liblzma/common/index.c | 18 +++++++++--------- 9493 1 file changed, 9 insertions(+), 9 deletions(-) 9494 9495commit 7f05803979b4b79642d5be4218a79da7a0b12c47 9496Author: Lasse Collin <lasse.collin@tukaani.org> 9497Date: 2015-09-29 13:57:28 +0300 9498 9499 Update NEWS for 5.2.2. 9500 9501 NEWS | 18 ++++++++++++++++++ 9502 1 file changed, 18 insertions(+) 9503 9504commit 397fcc0946315b55c3c6d80e37e82a2a78bc15c1 9505Author: Hauke Henningsen <sqrt@entless.org> 9506Date: 2015-08-17 04:59:54 +0200 9507 9508 Update German translation, mostly wrt orthography 9509 9510 Provide an update of the German translation. 9511 * A lot of compound words were previously written with spaces, while 9512 German orthography is relatively clear in that the components 9513 should not be separated. 9514 * When referring to the actual process of (de)compression rather than the 9515 concept, replace “(De-)Kompression” with “(De-)Komprimierung”. 9516 Previously, both forms were used in this context and are now used in a 9517 manner consistent with “Komprimierung” being more likely to refer to 9518 a process. 9519 * Consistently translate “standard input”/“output” 9520 * Use “Zeichen” instead of false friend “Charakter” for “character” 9521 * Insert commas around relative clauses (as required in German) 9522 * Some other minor corrections 9523 * Capitalize “ß” as “ẞ” 9524 * Consistently start option descriptions in --help with capital letters 9525 9526 Acked-By: Andre Noll <maan@tuebingen.mpg.de> 9527 9528 * Update after msgmerge 9529 9530 po/de.po | 383 ++++++++++++++++++++++++++++++++------------------------------- 9531 1 file changed, 196 insertions(+), 187 deletions(-) 9532 9533commit cbc9e39bae715accb44168930a71888480aad569 9534Author: Lasse Collin <lasse.collin@tukaani.org> 9535Date: 2015-08-11 13:23:04 +0300 9536 9537 Build: Minor Cygwin cleanup. 9538 9539 Some tests used "cygwin*" and some used "cygwin". I changed 9540 them all to use "cygwin". Shouldn't affect anything in practice. 9541 9542 configure.ac | 6 +++--- 9543 1 file changed, 3 insertions(+), 3 deletions(-) 9544 9545commit bcacd8ce7a031566858e5e03c1009064c3f1c89e 9546Author: Lasse Collin <lasse.collin@tukaani.org> 9547Date: 2015-08-11 13:21:52 +0300 9548 9549 Build: Support building of MSYS2 binaries. 9550 9551 configure.ac | 16 +++++++++++----- 9552 1 file changed, 11 insertions(+), 5 deletions(-) 9553 9554commit 0275a5398c01d57b724dec7fea52dec3bd6edc6c 9555Author: Lasse Collin <lasse.collin@tukaani.org> 9556Date: 2015-08-09 21:06:26 +0300 9557 9558 Windows: Define DLL_EXPORT when building liblzma.dll with MSVC. 9559 9560 src/liblzma/common/common.h uses it to set __declspec(dllexport) 9561 for the API symbols. 9562 9563 Thanks to Adam Walling. 9564 9565 windows/liblzma_dll.vcxproj | 12 ++++++------ 9566 1 file changed, 6 insertions(+), 6 deletions(-) 9567 9568commit a74525cf9b945fb0b370e64cf406104beb31729b 9569Author: Lasse Collin <lasse.collin@tukaani.org> 9570Date: 2015-08-09 21:02:20 +0300 9571 9572 Windows: Omit unneeded header files from MSVC project files. 9573 9574 windows/liblzma.vcxproj | 5 ----- 9575 windows/liblzma_dll.vcxproj | 5 ----- 9576 2 files changed, 10 deletions(-) 9577 9578commit fbbb295a91caf39faf8838c8c39526e4cb4dc121 9579Author: Lasse Collin <lasse.collin@tukaani.org> 9580Date: 2015-07-12 20:48:19 +0300 9581 9582 liblzma: A MSVC-specific hack isn't needed with MSVC 2013 and newer. 9583 9584 src/liblzma/api/lzma.h | 18 +++++++++++++----- 9585 1 file changed, 13 insertions(+), 5 deletions(-) 9586 9587commit 713dbe5c230fe00865a54f5c32358ea30f9a1156 9588Author: Lasse Collin <lasse.collin@tukaani.org> 9589Date: 2015-06-19 20:38:55 +0300 9590 9591 Update THANKS. 9592 9593 THANKS | 2 ++ 9594 1 file changed, 2 insertions(+) 9595 9596commit 3a5d755d055d51f99c523b4c2952727e1e69cfa1 9597Author: Lasse Collin <lasse.collin@tukaani.org> 9598Date: 2015-06-19 20:21:30 +0300 9599 9600 Windows: Update the docs. 9601 9602 INSTALL | 29 ++++++++----- 9603 windows/INSTALL-MSVC.txt | 47 ++++++++++++++++++++++ 9604 windows/{INSTALL-Windows.txt => INSTALL-MinGW.txt} | 2 +- 9605 3 files changed, 67 insertions(+), 11 deletions(-) 9606 9607commit b0798c6aa6184efcefd0bdcca20f96121a13feda 9608Author: Lasse Collin <lasse.collin@tukaani.org> 9609Date: 2015-06-19 17:25:31 +0300 9610 9611 Windows: Add MSVC project files for building liblzma. 9612 9613 Thanks to Adam Walling for creating these files. 9614 9615 windows/liblzma.vcxproj | 359 ++++++++++++++++++++++++++++++++++++++++ 9616 windows/liblzma_dll.vcxproj | 388 ++++++++++++++++++++++++++++++++++++++++++++ 9617 windows/xz_win.sln | 48 ++++++ 9618 3 files changed, 795 insertions(+) 9619 9620commit 9b02a4ffdac1b9f066658ec4c95c0834f4cd2fb7 9621Author: Andre Noll <maan@tuebingen.mpg.de> 9622Date: 2015-05-28 15:50:00 +0200 9623 9624 Fix typo in German translation. 9625 9626 As pointed out by Robert Pollak, there's a typo in the German 9627 translation of the compression preset option (-0 ... -9) help text. 9628 "The compressor" translates to "der Komprimierer", and the genitive 9629 form is "des Komprimierers". The old word makes no sense at all. 9630 9631 po/de.po | 2 +- 9632 1 file changed, 1 insertion(+), 1 deletion(-) 9633 9634commit c7f4041f6b8f4729f88d3bc888b2a4080ae51f72 9635Author: Lasse Collin <lasse.collin@tukaani.org> 9636Date: 2015-05-13 20:57:55 +0300 9637 9638 Tests: Fix a memory leak in test_bcj_exact_size. 9639 9640 Thanks to Cristian Rodríguez. 9641 9642 tests/test_bcj_exact_size.c | 1 + 9643 1 file changed, 1 insertion(+) 9644 9645commit 17b29d4f0ae0f780fbd69e15a398dc478d8492f8 9646Author: Lasse Collin <lasse.collin@tukaani.org> 9647Date: 2015-05-12 18:08:24 +0300 9648 9649 Fix NEWS about threading in 5.2.0. 9650 9651 Thanks to Andy Hochhaus. 9652 9653 NEWS | 3 ++- 9654 1 file changed, 2 insertions(+), 1 deletion(-) 9655 9656commit 49c26920d6e2d85e5c6123e34958aed2e77485ad 9657Author: Lasse Collin <lasse.collin@tukaani.org> 9658Date: 2015-05-11 21:26:16 +0300 9659 9660 xz: Document that threaded decompression hasn't been implemented yet. 9661 9662 src/xz/xz.1 | 10 +++++++++- 9663 1 file changed, 9 insertions(+), 1 deletion(-) 9664 9665commit 5b2458cb244ed237efe4de1ebcf06e1b3a1f4256 9666Author: Lasse Collin <lasse.collin@tukaani.org> 9667Date: 2015-04-20 20:20:29 +0300 9668 9669 Update THANKS. 9670 9671 THANKS | 1 + 9672 1 file changed, 1 insertion(+) 9673 9674commit 6bd0349c58451b13442e8f463e35de83548bf985 9675Author: Lasse Collin <lasse.collin@tukaani.org> 9676Date: 2015-04-20 19:59:18 +0300 9677 9678 Revert "xz: Use pipe2() if available." 9679 9680 This reverts commit 7a11c4a8e5e15f13d5fa59233b3172e65428efdd. 9681 It is a problem when libc has pipe2() but the kernel is too 9682 old to have pipe2() and thus pipe2() fails. In xz it's pointless 9683 to have a fallback for non-functioning pipe2(); it's better to 9684 avoid pipe2() completely. 9685 9686 Thanks to Michael Fox for the bug report. 9687 9688 configure.ac | 4 ++-- 9689 src/xz/file_io.c | 9 +-------- 9690 2 files changed, 3 insertions(+), 10 deletions(-) 9691 9692commit fc0df0f8db87dff45543708a711e17d29c37f632 9693Author: Lasse Collin <lasse.collin@tukaani.org> 9694Date: 2015-04-01 14:45:25 +0300 9695 9696 xz: Fix the Capsicum rights on user_abort_pipe. 9697 9698 src/xz/file_io.c | 6 +++++- 9699 1 file changed, 5 insertions(+), 1 deletion(-) 9700 9701commit 57393615b31b3788dd77280452d845bcc12d33af 9702Author: Lasse Collin <lasse.collin@tukaani.org> 9703Date: 2015-03-31 22:20:11 +0300 9704 9705 Update THANKS. 9706 9707 THANKS | 1 + 9708 1 file changed, 1 insertion(+) 9709 9710commit 1238381143a9a7ce84839c2582ccd56ff750a440 9711Author: Lasse Collin <lasse.collin@tukaani.org> 9712Date: 2015-03-31 22:19:34 +0300 9713 9714 xz: Add support for sandboxing with Capsicum. 9715 9716 The sandboxing is used conditionally as described in main.c. 9717 This isn't optimal but it was much easier to implement than 9718 a full sandboxing solution and it still covers the most common 9719 use cases where xz is writing to standard output. This should 9720 have practically no effect on performance even with small files 9721 as fork() isn't needed. 9722 9723 C and locale libraries can open files as needed. This has been 9724 fine in the past, but it's a problem with things like Capsicum. 9725 io_sandbox_enter() tries to ensure that various locale-related 9726 files have been loaded before cap_enter() is called, but it's 9727 possible that there are other similar problems which haven't 9728 been seen yet. 9729 9730 Currently Capsicum is available on FreeBSD 10 and later 9731 and there is a port to Linux too. 9732 9733 Thanks to Loganaden Velvindron for help. 9734 9735 configure.ac | 41 +++++++++++++++++++++++++++ 9736 src/xz/Makefile.am | 2 +- 9737 src/xz/file_io.c | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 9738 src/xz/file_io.h | 6 ++++ 9739 src/xz/main.c | 18 ++++++++++++ 9740 src/xz/private.h | 4 +++ 9741 6 files changed, 151 insertions(+), 1 deletion(-) 9742 9743commit 29a087fb5a0c879f0b1bc4c6b989f7b87bacdf9e 9744Author: Lasse Collin <lasse.collin@tukaani.org> 9745Date: 2015-03-31 21:12:30 +0300 9746 9747 Fix bugs and otherwise improve ax_check_capsicum.m4. 9748 9749 AU_ALIAS was removed because the new version is incompatible 9750 with the old version. 9751 9752 It no longer checks for <sys/capability.h> separately. 9753 It's enough to test for it as part of AC_CHECK_DECL. 9754 The defines HAVE_CAPSICUM_SYS_CAPSICUM_H and 9755 HAVE_CAPSICUM_SYS_CAPABILITY_H were removed as unneeded. 9756 HAVE_SYS_CAPSICUM_H from AC_CHECK_HEADERS is enough. 9757 9758 It no longer does a useless search for the Capsicum library 9759 if the header wasn't found. 9760 9761 Fixed a bug in ACTION-IF-FOUND (the first argument). Specifying 9762 the argument omitted the default action but the given action 9763 wasn't used instead. 9764 9765 AC_DEFINE([HAVE_CAPSICUM]) is now always called when Capsicum 9766 support is found. Previously it was part of the default 9767 ACTION-IF-FOUND which a custom action would override. Now 9768 the default action only prepends ${CAPSICUM_LIB} to LIBS. 9769 9770 The documentation was updated. 9771 9772 Since there as no serial number, "#serial 2" was added. 9773 9774 m4/ax_check_capsicum.m4 | 103 ++++++++++++++++++++++++------------------------ 9775 1 file changed, 51 insertions(+), 52 deletions(-) 9776 9777commit 6e845c6a3eddf2fde9db5a29950421dff60a43ac 9778Author: Lasse Collin <lasse.collin@tukaani.org> 9779Date: 2015-03-31 19:20:24 +0300 9780 9781 Add m4/ax_check_capsicum.m4 for detecting Capsicum support. 9782 9783 The file was loaded from this web page: 9784 https://github.com/google/capsicum-test/blob/dev/autoconf/m4/ax_check_capsicum.m4 9785 9786 Thanks to Loganaden Velvindron for pointing it out for me. 9787 9788 m4/ax_check_capsicum.m4 | 86 +++++++++++++++++++++++++++++++++++++++++++++++++ 9789 1 file changed, 86 insertions(+) 9790 9791commit 3717885f9ef2c06f1bcbad9f4c2ed2d5695f844e 9792Author: Lasse Collin <lasse.collin@tukaani.org> 9793Date: 2015-03-30 22:44:02 +0300 9794 9795 Bump version to 5.3.0alpha and soname to 5.3.99. 9796 9797 The idea of 99 is that it looks a bit weird in this context. 9798 For new features there's no API/ABI stability in devel versions. 9799 9800 src/liblzma/Makefile.am | 2 +- 9801 src/liblzma/api/lzma/version.h | 6 +++--- 9802 2 files changed, 4 insertions(+), 4 deletions(-) 9803 9804commit eccd8155e107c5ada03d13e7730675cdf1a44ddc 9805Author: Lasse Collin <lasse.collin@tukaani.org> 9806Date: 2015-03-29 22:14:47 +0300 9807 9808 Update THANKS. 9809 9810 THANKS | 1 + 9811 1 file changed, 1 insertion(+) 9812 9813commit 25263fd9e7a8a913395cb93d7c104cd48c2b4a00 9814Author: Lasse Collin <lasse.collin@tukaani.org> 9815Date: 2015-03-29 22:13:48 +0300 9816 9817 Fix the detection of installed RAM on QNX. 9818 9819 The earlier version compiled but didn't actually work 9820 since sysconf(_SC_PHYS_PAGES) always fails (or so I was told). 9821 9822 Thanks to Ole André Vadla Ravnås for the patch and testing. 9823 9824 m4/tuklib_physmem.m4 | 6 +++--- 9825 src/common/tuklib_physmem.c | 14 +++++++++++++- 9826 2 files changed, 16 insertions(+), 4 deletions(-) 9827 9828commit 4c544d2410903d38402221cb783ed85585b6a007 9829Author: Lasse Collin <lasse.collin@tukaani.org> 9830Date: 2015-03-27 22:39:07 +0200 9831 9832 Fix CPU core count detection on QNX. 9833 9834 It tried to use sysctl() on QNX but 9835 - it broke the build because sysctl() needs -lsocket on QNX; 9836 - sysctl() doesn't work for detecting the core count on QNX 9837 even if it compiled. 9838 9839 sysconf() works. An alternative would have been to use 9840 QNX-specific SYSPAGE_ENTRY(num_cpu) from <sys/syspage.h>. 9841 9842 Thanks to Ole André Vadla Ravnås. 9843 9844 m4/tuklib_cpucores.m4 | 15 +++++++++++---- 9845 1 file changed, 11 insertions(+), 4 deletions(-) 9846 9847commit e0ea6737b03e83ccaff4514d00e31bb926f8f0f3 9848Author: Lasse Collin <lasse.collin@tukaani.org> 9849Date: 2015-03-07 22:05:57 +0200 9850 9851 xz: size_t/uint32_t cleanup in options.c. 9852 9853 src/xz/options.c | 12 ++++++------ 9854 1 file changed, 6 insertions(+), 6 deletions(-) 9855 9856commit 8bcca29a65335fd679c13814b70b35b68fa5daed 9857Author: Lasse Collin <lasse.collin@tukaani.org> 9858Date: 2015-03-07 22:04:23 +0200 9859 9860 xz: Fix a comment and silence a warning in message.c. 9861 9862 src/xz/message.c | 5 +++-- 9863 1 file changed, 3 insertions(+), 2 deletions(-) 9864 9865commit f243f5f44c6b19a7c289a0ec73a03ee08364cb5b 9866Author: Lasse Collin <lasse.collin@tukaani.org> 9867Date: 2015-03-07 22:01:00 +0200 9868 9869 liblzma: Silence more uint32_t vs. size_t warnings. 9870 9871 src/liblzma/lz/lz_encoder.c | 2 +- 9872 src/liblzma/lzma/lzma_encoder.c | 2 +- 9873 2 files changed, 2 insertions(+), 2 deletions(-) 9874 9875commit 7f0a4c50f4a374c40acf4b86848f301ad1e82d34 9876Author: Lasse Collin <lasse.collin@tukaani.org> 9877Date: 2015-03-07 19:54:00 +0200 9878 9879 xz: Make arg_count an unsigned int to silence a warning. 9880 9881 Actually the value of arg_count cannot exceed INT_MAX 9882 but it's nicer as an unsigned int. 9883 9884 src/xz/args.h | 2 +- 9885 src/xz/main.c | 2 +- 9886 2 files changed, 2 insertions(+), 2 deletions(-) 9887 9888commit f6ec46801588b1be29c07c9db98558b521304002 9889Author: Lasse Collin <lasse.collin@tukaani.org> 9890Date: 2015-03-07 19:33:17 +0200 9891 9892 liblzma: Fix a warning in index.c. 9893 9894 src/liblzma/common/index.c | 4 +++- 9895 1 file changed, 3 insertions(+), 1 deletion(-) 9896 9897commit a24518971cc621315af142dd3bb7614fab04ad27 9898Author: Lasse Collin <lasse.collin@tukaani.org> 9899Date: 2015-02-26 20:46:14 +0200 9900 9901 Build: Fix a CR+LF problem when running autoreconf -fi on OS/2. 9902 9903 build-aux/version.sh | 2 +- 9904 1 file changed, 1 insertion(+), 1 deletion(-) 9905 9906commit dec11497a71518423b5ff0e759100cf8aadf6c7b 9907Author: Lasse Collin <lasse.collin@tukaani.org> 9908Date: 2015-02-26 16:53:44 +0200 9909 9910 Bump version and soname for 5.2.1. 9911 9912 src/liblzma/Makefile.am | 2 +- 9913 src/liblzma/api/lzma/version.h | 2 +- 9914 2 files changed, 2 insertions(+), 2 deletions(-) 9915 9916commit 29e39c79975ab89ee5dd671e97064534a9f3a649 9917Author: Lasse Collin <lasse.collin@tukaani.org> 9918Date: 2015-02-26 13:01:09 +0200 9919 9920 Update NEWS for 5.2.1. 9921 9922 NEWS | 14 ++++++++++++++ 9923 1 file changed, 14 insertions(+) 9924 9925commit 7a11c4a8e5e15f13d5fa59233b3172e65428efdd 9926Author: Lasse Collin <lasse.collin@tukaani.org> 9927Date: 2015-02-22 19:38:48 +0200 9928 9929 xz: Use pipe2() if available. 9930 9931 configure.ac | 4 ++-- 9932 src/xz/file_io.c | 9 ++++++++- 9933 2 files changed, 10 insertions(+), 3 deletions(-) 9934 9935commit 117d962685c72682c63edc9bb765367189800202 9936Author: Lasse Collin <lasse.collin@tukaani.org> 9937Date: 2015-02-21 23:40:26 +0200 9938 9939 liblzma: Fix a compression-ratio regression in LZMA1/2 in fast mode. 9940 9941 The bug was added in the commit 9942 f48fce093b07aeda95c18850f5e086d9f2383380 and thus 9943 affected 5.1.4beta and 5.2.0. Luckily the bug cannot 9944 cause data corruption or other nasty things. 9945 9946 src/liblzma/lzma/lzma_encoder_optimum_fast.c | 2 +- 9947 1 file changed, 1 insertion(+), 1 deletion(-) 9948 9949commit ae984e31c167d3bc52972ec422dd1ebd5f5d5719 9950Author: Lasse Collin <lasse.collin@tukaani.org> 9951Date: 2015-02-21 23:00:19 +0200 9952 9953 xz: Fix the fcntl() usage when creating a pipe for the self-pipe trick. 9954 9955 Now it reads the old flags instead of blindly setting O_NONBLOCK. 9956 The old code may have worked correctly, but this is better. 9957 9958 src/xz/file_io.c | 16 +++++++++++----- 9959 1 file changed, 11 insertions(+), 5 deletions(-) 9960 9961commit 2205bb5853098aea36a56df6f5747037175f66b4 9962Author: Lasse Collin <lasse.collin@tukaani.org> 9963Date: 2015-02-10 15:29:34 +0200 9964 9965 Update THANKS. 9966 9967 THANKS | 1 + 9968 1 file changed, 1 insertion(+) 9969 9970commit d935b0cdf3db440269b9d952b2b281b18f8c7b08 9971Author: Lasse Collin <lasse.collin@tukaani.org> 9972Date: 2015-02-10 15:28:30 +0200 9973 9974 tuklib_cpucores: Use cpuset_getaffinity() on FreeBSD if available. 9975 9976 In FreeBSD, cpuset_getaffinity() is the preferred way to get 9977 the number of available cores. 9978 9979 Thanks to Rui Paulo for the patch. I edited it slightly, but 9980 hopefully I didn't break anything. 9981 9982 m4/tuklib_cpucores.m4 | 23 ++++++++++++++++++++++- 9983 src/common/tuklib_cpucores.c | 18 ++++++++++++++++++ 9984 2 files changed, 40 insertions(+), 1 deletion(-) 9985 9986commit eb61bc58c20769cac4d05f363b9c0e8c9c71a560 9987Author: Lasse Collin <lasse.collin@tukaani.org> 9988Date: 2015-02-09 22:08:37 +0200 9989 9990 xzdiff: Make the mktemp usage compatible with FreeBSD's mktemp. 9991 9992 Thanks to Rui Paulo for the fix. 9993 9994 src/scripts/xzdiff.in | 7 ++++++- 9995 1 file changed, 6 insertions(+), 1 deletion(-) 9996 9997commit b9a5b6b7a29029680af733082b6a46e0fc01623a 9998Author: Lasse Collin <lasse.collin@tukaani.org> 9999Date: 2015-02-03 21:45:53 +0200 10000 10001 Add a few casts to tuklib_integer.h to silence possible warnings. 10002 10003 I heard that Visual Studio 2013 gave warnings without the casts. 10004 10005 Thanks to Gabi Davar. 10006 10007 src/common/tuklib_integer.h | 24 ++++++++++++------------ 10008 1 file changed, 12 insertions(+), 12 deletions(-) 10009 10010commit c45757135f40e4a0de730ba5fff0100219493982 10011Author: Lasse Collin <lasse.collin@tukaani.org> 10012Date: 2015-01-26 21:24:39 +0200 10013 10014 liblzma: Set LZMA_MEMCMPLEN_EXTRA depending on the compare method. 10015 10016 src/liblzma/common/memcmplen.h | 15 ++++++++++----- 10017 1 file changed, 10 insertions(+), 5 deletions(-) 10018 10019commit 3c500174ed5485f550972a2a6109c361e875f069 10020Author: Lasse Collin <lasse.collin@tukaani.org> 10021Date: 2015-01-26 20:40:16 +0200 10022 10023 Update THANKS. 10024 10025 THANKS | 1 + 10026 1 file changed, 1 insertion(+) 10027 10028commit fec88d41e672d9e197c9442aecf02bd0dfa6d516 10029Author: Lasse Collin <lasse.collin@tukaani.org> 10030Date: 2015-01-26 20:39:28 +0200 10031 10032 liblzma: Silence harmless Valgrind errors. 10033 10034 Thanks to Torsten Rupp for reporting this. I had 10035 forgotten to run Valgrind before the 5.2.0 release. 10036 10037 src/liblzma/lz/lz_encoder.c | 6 ++++++ 10038 1 file changed, 6 insertions(+) 10039 10040commit a9b45badfec0928d20a27c7176c005fa637f7d1e 10041Author: Lasse Collin <lasse.collin@tukaani.org> 10042Date: 2015-01-09 21:50:19 +0200 10043 10044 xz: Fix comments. 10045 10046 src/xz/file_io.c | 12 ++++++++---- 10047 1 file changed, 8 insertions(+), 4 deletions(-) 10048 10049commit 541aee6dd4aa97a809aba281475a21b641bb89e2 10050Author: Lasse Collin <lasse.collin@tukaani.org> 10051Date: 2015-01-09 21:35:06 +0200 10052 10053 Update THANKS. 10054 10055 THANKS | 1 + 10056 1 file changed, 1 insertion(+) 10057 10058commit 4170edc914655310d2363baccf5e615e09b04911 10059Author: Lasse Collin <lasse.collin@tukaani.org> 10060Date: 2015-01-09 21:34:06 +0200 10061 10062 xz: Don't fail if stdout doesn't support O_NONBLOCK. 10063 10064 This is similar to the case with stdin. 10065 10066 Thanks to Brad Smith for the bug report and testing 10067 on OpenBSD. 10068 10069 src/xz/file_io.c | 36 +++++++++++++++--------------------- 10070 1 file changed, 15 insertions(+), 21 deletions(-) 10071 10072commit 04bbc0c2843c50c8ad1cba42b937118e38b0508d 10073Author: Lasse Collin <lasse.collin@tukaani.org> 10074Date: 2015-01-07 19:18:20 +0200 10075 10076 xz: Fix a memory leak in DOS-specific code. 10077 10078 src/xz/file_io.c | 2 ++ 10079 1 file changed, 2 insertions(+) 10080 10081commit f0f1f6c7235ffa901cf76fe18e33749e200b3eea 10082Author: Lasse Collin <lasse.collin@tukaani.org> 10083Date: 2015-01-07 19:08:06 +0200 10084 10085 xz: Don't fail if stdin doesn't support O_NONBLOCK. 10086 10087 It's a problem at least on OpenBSD which doesn't support 10088 O_NONBLOCK on e.g. /dev/null. I'm not surprised if it's 10089 a problem on other OSes too since this behavior is allowed 10090 in POSIX-1.2008. 10091 10092 The code relying on this behavior was committed in June 2013 10093 and included in 5.1.3alpha released on 2013-10-26. Clearly 10094 the development releases only get limited testing. 10095 10096 src/xz/file_io.c | 18 +++++++----------- 10097 1 file changed, 7 insertions(+), 11 deletions(-) 10098 10099commit d2d484647d9d9d679f03c75abb0404f67069271c 10100Author: Lasse Collin <lasse.collin@tukaani.org> 10101Date: 2015-01-06 20:30:15 +0200 10102 10103 Tests: Don't hide unexpected error messages in test_files.sh. 10104 10105 Hiding them makes no sense since normally there's no error 10106 when testing the "good" files. With "bad" files errors are 10107 expected and then it makes sense to keep the messages hidden. 10108 10109 tests/test_files.sh | 4 ++-- 10110 1 file changed, 2 insertions(+), 2 deletions(-) 10111 10112commit aae6a6aeda51cf94a47e39ad624728f9bee75e30 10113Author: Lasse Collin <lasse.collin@tukaani.org> 10114Date: 2014-12-30 11:17:16 +0200 10115 10116 Update Solaris notes in INSTALL. 10117 10118 Mention the possible "make check" failure on Solaris in the 10119 Solaris-specific section of INSTALL. It was already in 10120 section 4.5 but it is better mention it in the OS-specific 10121 section too. 10122 10123 INSTALL | 4 ++++ 10124 1 file changed, 4 insertions(+) 10125 10126commit 7815112153178800a3521b9f31960e7cdc26cfba 10127Author: Lasse Collin <lasse.collin@tukaani.org> 10128Date: 2014-12-26 12:00:05 +0200 10129 10130 Build: POSIX shell isn't required if scripts are disabled. 10131 10132 INSTALL | 3 ++- 10133 configure.ac | 2 +- 10134 2 files changed, 3 insertions(+), 2 deletions(-) 10135 10136commit a0cd05ee71d330b79ead6eb9222e1b24e1559d3a 10137Author: Lasse Collin <lasse.collin@tukaani.org> 10138Date: 2014-12-21 20:48:37 +0200 10139 10140 DOS: Update Makefile. 10141 10142 dos/Makefile | 1 + 10143 1 file changed, 1 insertion(+) 10144 10145commit b85ee0905ec4ab7656d22e63519fdd3bedb21f2e 10146Author: Lasse Collin <lasse.collin@tukaani.org> 10147Date: 2014-12-21 19:50:38 +0200 10148 10149 Windows: Fix bin_i486 to bin_i686 in build.bash. 10150 10151 windows/build.bash | 2 +- 10152 1 file changed, 1 insertion(+), 1 deletion(-) 10153 10154commit cbafa710918195dbba3db02c3fab4f0538235206 10155Author: Lasse Collin <lasse.collin@tukaani.org> 10156Date: 2014-12-21 18:58:44 +0200 10157 10158 Docs: Use lzma_cputhreads() in 04_compress_easy_mt.c. 10159 10160 doc/examples/04_compress_easy_mt.c | 30 ++++++++++++++++++++++++++---- 10161 1 file changed, 26 insertions(+), 4 deletions(-) 10162 10163commit 8dbb57238d372c7263cfeb3e7f7fd9a73173156a 10164Author: Lasse Collin <lasse.collin@tukaani.org> 10165Date: 2014-12-21 18:56:44 +0200 10166 10167 Docs: Update docs/examples/00_README.txt. 10168 10169 doc/examples/00_README.txt | 4 ++++ 10170 1 file changed, 4 insertions(+) 10171 10172commit 6060f7dc76fd6c2a8a1f8e85d0e4d86bb78273e6 10173Author: Lasse Collin <lasse.collin@tukaani.org> 10174Date: 2014-12-21 18:11:17 +0200 10175 10176 Bump version and soname for 5.2.0. 10177 10178 I know that soname != app version, but I skip AGE=1 10179 in -version-info to make the soname match the liblzma 10180 version anyway. It doesn't hurt anything as long as 10181 it doesn't conflict with library versioning rules. 10182 10183 src/liblzma/Makefile.am | 2 +- 10184 src/liblzma/api/lzma/version.h | 6 +++--- 10185 src/liblzma/liblzma.map | 2 +- 10186 3 files changed, 5 insertions(+), 5 deletions(-) 10187