1commit 6ca8046ecbc7a1c81ee08f544bfd1414819fb2e8 2Author: Jia Tan <jiat0218@gmail.com> 3Date: 2023-03-18 23:22:06 +0800 4 5 Bump version and soname for 5.4.2. 6 7 src/liblzma/Makefile.am | 2 +- 8 src/liblzma/api/lzma/version.h | 2 +- 9 2 files changed, 2 insertions(+), 2 deletions(-) 10 11commit ce4f246600db10e77fc93d492ea045b4c9830bc6 12Author: Jia Tan <jiat0218@gmail.com> 13Date: 2023-03-18 22:10:57 +0800 14 15 Add NEWS for 5.4.2. 16 17 NEWS | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 18 1 file changed, 48 insertions(+) 19 20commit 3634fe330788fc0df217acdb6581031a851600a3 21Author: Lasse Collin <lasse.collin@tukaani.org> 22Date: 2023-03-18 16:00:54 +0200 23 24 Update the copy of GNU GPLv3 from gnu.org to COPYING.GPLv3. 25 26 COPYING.GPLv3 | 8 ++++---- 27 1 file changed, 4 insertions(+), 4 deletions(-) 28 29commit 97679d25ce7cb014328f1455bb338903c003d54f 30Author: Lasse Collin <lasse.collin@tukaani.org> 31Date: 2023-03-18 15:51:57 +0200 32 33 Change a few HTTP URLs to HTTPS. 34 35 The xz man page timestamp was intentionally left unchanged. 36 37 INSTALL | 2 +- 38 README | 8 ++++---- 39 configure.ac | 2 +- 40 dos/INSTALL.txt | 4 ++-- 41 src/liblzma/api/lzma.h | 8 ++++---- 42 src/liblzma/check/sha256.c | 2 +- 43 src/xz/xz.1 | 2 +- 44 windows/INSTALL-MinGW.txt | 10 +++++----- 45 8 files changed, 19 insertions(+), 19 deletions(-) 46 47commit 01a67e89a56c3ebf5f6681bd06f0edc22a1ae594 48Author: Jia Tan <jiat0218@gmail.com> 49Date: 2023-03-18 00:40:28 +0800 50 51 CMake: Fix typo in a comment. 52 53 CMakeLists.txt | 2 +- 54 1 file changed, 1 insertion(+), 1 deletion(-) 55 56commit 5dca3f5cbab31105196c89cd6df0a9bbc3307c05 57Author: Lasse Collin <lasse.collin@tukaani.org> 58Date: 2023-03-17 18:36:22 +0200 59 60 Windows: build.bash: Copy liblzma API docs to the output package. 61 62 windows/build.bash | 3 ++- 63 1 file changed, 2 insertions(+), 1 deletion(-) 64 65commit ae252862b30b509ab88b2bbcaa08e8d51b57e928 66Author: Lasse Collin <lasse.collin@tukaani.org> 67Date: 2023-03-17 08:53:38 +0200 68 69 Windows: Add microlzma_*.c to the VS project files. 70 71 These should have been included in 5.3.2alpha already. 72 73 windows/vs2013/liblzma.vcxproj | 2 ++ 74 windows/vs2013/liblzma_dll.vcxproj | 2 ++ 75 windows/vs2017/liblzma.vcxproj | 2 ++ 76 windows/vs2017/liblzma_dll.vcxproj | 2 ++ 77 windows/vs2019/liblzma.vcxproj | 2 ++ 78 windows/vs2019/liblzma_dll.vcxproj | 2 ++ 79 6 files changed, 12 insertions(+) 80 81commit 147d282cc3733e2723df82622b6540ddfb52635e 82Author: Lasse Collin <lasse.collin@tukaani.org> 83Date: 2023-03-17 08:43:51 +0200 84 85 CMake: Add microlzma_*.c to the build. 86 87 These should have been included in 5.3.2alpha already. 88 89 CMakeLists.txt | 2 ++ 90 1 file changed, 2 insertions(+) 91 92commit 4523a5ee29f45c0256af67a15771bc8bbd25ba53 93Author: Lasse Collin <lasse.collin@tukaani.org> 94Date: 2023-03-17 08:41:36 +0200 95 96 Build: Update comments about unaligned access to mention 64-bit. 97 98 cmake/tuklib_integer.cmake | 7 +++---- 99 m4/tuklib_integer.m4 | 4 ++-- 100 2 files changed, 5 insertions(+), 6 deletions(-) 101 102commit 82aacb40367dc580b09c5a7b270f6c98b63e49b9 103Author: Lasse Collin <lasse.collin@tukaani.org> 104Date: 2023-03-17 00:02:30 +0200 105 106 Tests: Update .gitignore. 107 108 .gitignore | 3 ++- 109 1 file changed, 2 insertions(+), 1 deletion(-) 110 111commit 5d022c24921eec938604a8cb10d70aa08dbd8575 112Author: Lasse Collin <lasse.collin@tukaani.org> 113Date: 2023-03-14 20:04:03 +0200 114 115 po4a/update-po: Display the script name consistently in error messages. 116 117 po4a/update-po | 2 +- 118 1 file changed, 1 insertion(+), 1 deletion(-) 119 120commit 896295117324f323c0b8db6a31ad6ebfaa88793d 121Author: Jia Tan <jiat0218@gmail.com> 122Date: 2023-03-17 01:30:36 +0800 123 124 Doc: Rename Doxygen HTML doc directory name liblzma => api. 125 126 When the docs are installed, calling the directory "liblzma" is 127 confusing since multiple other files in the doc directory are for 128 liblzma. This should also make it more natural for distros when they 129 package the documentation. 130 131 .gitignore | 2 +- 132 Makefile.am | 18 +++++++++--------- 133 PACKAGERS | 4 ++-- 134 doxygen/Doxyfile | 2 +- 135 doxygen/update-doxygen | 18 +++++++++--------- 136 5 files changed, 22 insertions(+), 22 deletions(-) 137 138commit 94097157fae308b2c1a5edb4e8597c68b45eeaea 139Author: Jia Tan <jiat0218@gmail.com> 140Date: 2023-03-16 22:07:15 +0800 141 142 liblzma: Remove note from lzma_options_bcj about the ARM64 exception. 143 144 This was left in by mistake since an early version of the ARM64 filter 145 used a different struct for its options. 146 147 src/liblzma/api/lzma/bcj.h | 2 +- 148 1 file changed, 1 insertion(+), 1 deletion(-) 149 150commit da16d0b73b79d7785ece6f78a577fadd1fb59d0e 151Author: Lasse Collin <lasse.collin@tukaani.org> 152Date: 2023-03-15 19:19:13 +0200 153 154 COPYING: Add a note about the included Doxygen-generated HTML. 155 156 COPYING | 11 +++++++++++ 157 1 file changed, 11 insertions(+) 158 159commit e57c74f9ef19201f72c106f2c347596f40229936 160Author: Jia Tan <jiat0218@gmail.com> 161Date: 2023-03-16 21:41:09 +0800 162 163 Doc: Update PACKAGERS with details about liblzma API docs install. 164 165 PACKAGERS | 22 ++++++++++++++++------ 166 1 file changed, 16 insertions(+), 6 deletions(-) 167 168commit 7e2fa48bb73edb25457232e2e62a4f81c6b95281 169Author: Jia Tan <jiat0218@gmail.com> 170Date: 2023-03-16 21:38:32 +0800 171 172 liblzma: Add set lzma.h as the main page for Doxygen documentation. 173 174 The \mainpage command is used in the first block of comments in lzma.h. 175 This changes the previously nearly empty index.html to use the first 176 comment block in lzma.h for its contents. 177 178 lzma.h is no longer documented separately, but this is for the better 179 since lzma.h only defined a few macros that users do not need to use. 180 The individual API header files all have a disclaimer that they should 181 not be #included directly, so there should be no confusion on the fact 182 that lzma.h should be the only header used by applications. 183 184 Additionally, the note "See ../lzma.h for information about liblzma as 185 a whole." was removed since lzma.h is now the main page of the 186 generated HTML and does not have its own page anymore. So it would be 187 confusing in the HTML version and was only a "nice to have" when 188 browsing the source files. 189 190 src/liblzma/api/lzma.h | 1 + 191 src/liblzma/api/lzma/base.h | 2 -- 192 src/liblzma/api/lzma/bcj.h | 2 -- 193 src/liblzma/api/lzma/block.h | 2 -- 194 src/liblzma/api/lzma/check.h | 2 -- 195 src/liblzma/api/lzma/container.h | 2 -- 196 src/liblzma/api/lzma/delta.h | 2 -- 197 src/liblzma/api/lzma/filter.h | 2 -- 198 src/liblzma/api/lzma/hardware.h | 2 -- 199 src/liblzma/api/lzma/index.h | 2 -- 200 src/liblzma/api/lzma/index_hash.h | 4 +--- 201 src/liblzma/api/lzma/lzma12.h | 2 -- 202 src/liblzma/api/lzma/stream_flags.h | 2 -- 203 src/liblzma/api/lzma/version.h | 2 -- 204 src/liblzma/api/lzma/vli.h | 2 -- 205 15 files changed, 2 insertions(+), 29 deletions(-) 206 207commit d42977c7acfdf7fd9acc8803cf411eca7dc10478 208Author: Jia Tan <jiat0218@gmail.com> 209Date: 2023-03-16 21:37:32 +0800 210 211 Build: Generate doxygen documentation in autogen.sh. 212 213 Another command line option (--no-doxygen) was added to disable 214 creating the doxygen documenation in cases where it not wanted or 215 if the doxygen tool is not installed. 216 217 autogen.sh | 35 +++++++++++++++++++++++++++++------ 218 1 file changed, 29 insertions(+), 6 deletions(-) 219 220commit 8fc712fcf41d821069c670f22b8bf628e7a4a877 221Author: Jia Tan <jiat0218@gmail.com> 222Date: 2023-03-16 21:35:55 +0800 223 224 Build: Create doxygen/update-doxygen script. 225 226 This is a helper script to generate the Doxygen documentation. It can be 227 run in 'liblzma' or 'internal' mode by setting the first argument. It 228 will default to 'liblzma' mode and only generate documentation for the 229 liblzma API header files. 230 231 The helper script will be run during the custom mydist hook when we 232 create releases. This hook already alters the source directory, so its 233 fine to do it here too. This way, we can include the Doxygen generated 234 files in the distrubtion and when installing. 235 236 In 'liblzma' mode, the JavaScript is stripped from the .html files and 237 the .js files are removed. This avoids license hassle from jQuery and 238 other libraries that Doxygen 1.9.6 puts into jquery.js in minified form. 239 240 Makefile.am | 1 + 241 doxygen/update-doxygen | 111 +++++++++++++++++++++++++++++++++++++++++++++++++ 242 2 files changed, 112 insertions(+) 243 244commit 77d2c025d19fbac7277c63239cfb1338f02c66c0 245Author: Jia Tan <jiat0218@gmail.com> 246Date: 2023-03-16 21:34:36 +0800 247 248 Build: Install Doxygen docs and include in distribution if generated. 249 250 Added a install-data-local target to install the Doxygen documentation 251 only when it has been generated. In order to correctly remove the docs, 252 a corresponding uninstall-local target was added. 253 254 If the doxygen docs exist in the source tree, they will also be included 255 in the distribution now too. 256 257 Makefile.am | 18 ++++++++++++++++++ 258 1 file changed, 18 insertions(+) 259 260commit 9af8f6f947a43974a4ff025f4c896f2fb4c91b4f 261Author: Jia Tan <jiat0218@gmail.com> 262Date: 2023-01-03 20:37:30 +0800 263 264 Doxygen: Refactor Doxyfile.in to doxygen/Doxyfile. 265 266 Instead of having Doxyfile.in configured by Autoconf, the Doxyfile 267 can have the tags that need to be configured piped into the doxygen 268 command through stdin with the overrides after Doxyfile's contents. 269 270 Going forward, the documentation should be generated in two different 271 modes: liblzma or internal. 272 273 liblzma is useful for most users. It is the documentation for just 274 the liblzma API header files. This is the default. 275 276 internal is for people who want to understand how xz and liblzma work. 277 It might be useful for people who want to contribute to the project. 278 279 .gitignore | 3 +- 280 Doxyfile.in | 1234 ------------------------- 281 Makefile.am | 1 - 282 configure.ac | 1 - 283 doxygen/Doxyfile | 2684 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 284 5 files changed, 2686 insertions(+), 1237 deletions(-) 285 286commit 1c558a26928b753fcf1c0d4bce9c0643285edd86 287Author: Jia Tan <jiat0218@gmail.com> 288Date: 2023-02-28 23:22:36 +0800 289 290 Tests: Remove unused macros and functions. 291 292 tests/tests.h | 75 ----------------------------------------------------------- 293 1 file changed, 75 deletions(-) 294 295commit 7479a69a45a1b8fdb9a209e11f247dce11ac1ba0 296Author: Jia Tan <jiat0218@gmail.com> 297Date: 2023-01-12 22:29:07 +0800 298 299 Tests: Refactors existing lzma_index tests. 300 301 Converts the existing lzma_index tests into tuktests and covers every 302 API function from index.h except for lzma_file_info_decoder, which can 303 be tested in the future. 304 305 tests/test_index.c | 2036 ++++++++++++++++++++++++++++++++++++++-------------- 306 1 file changed, 1492 insertions(+), 544 deletions(-) 307 308commit fd56d5353360279c10e8e5e05f5bc6ea03f64584 309Author: Lasse Collin <lasse.collin@tukaani.org> 310Date: 2023-03-07 19:59:23 +0200 311 312 xz: Make Capsicum sandbox more strict with stdin and stdout. 313 314 src/xz/file_io.c | 8 ++++++++ 315 1 file changed, 8 insertions(+) 316 317commit d1bdaaebc68cae7f0ba457fa990b520df2186fd1 318Author: Lasse Collin <lasse.collin@tukaani.org> 319Date: 2023-03-11 19:31:40 +0200 320 321 xz: Don't fail if Capsicum is enabled but kernel doesn't support it. 322 323 (This commit combines related commits from the master branch.) 324 325 If Capsicum support is missing from the kernel or xz is being run 326 in an emulator that lacks Capsicum suport, the syscalls will fail 327 and set errno to ENOSYS. Previously xz would display and error and 328 exit, making xz unusable. Now it will check for ENOSYS and run 329 without sandbox support. Other tools like ssh behave similarly. 330 331 Displaying a warning for missing Capsicum support was considered 332 but such extra output would quickly become annoying. It would also 333 break test_scripts.sh in "make check". 334 335 Also move cap_enter() to be the first step instead of the last one. 336 This matches the example in the cap_rights_limit(2) man page. With 337 the current code it shouldn't make any practical difference though. 338 339 Thanks to Xin Li for the bug report, suggesting a fix, and testing: 340 https://github.com/tukaani-project/xz/pull/43 341 342 Thanks to Jia Tan for most of the original commits. 343 344 src/xz/file_io.c | 15 ++++++++++++--- 345 1 file changed, 12 insertions(+), 3 deletions(-) 346 347commit 5d351c69c19d212ddd2cf1f3bdb24900820c6776 348Author: Jia Tan <jiat0218@gmail.com> 349Date: 2023-02-04 21:06:35 +0800 350 351 Build: Adjust CMake version search regex. 352 353 Now, the LZMA_VERSION_MAJOR, LZMA_VERSION_MINOR, and LZMA_VERSION_PATCH 354 macros do not need to be on consecutive lines in version.h. They can be 355 separated by more whitespace, comments, or even other content, as long 356 as they appear in the proper order (major, minor, patch). 357 358 CMakeLists.txt | 2 ++ 359 1 file changed, 2 insertions(+) 360 361commit b82d4831e3f2339c4cdbc47776c99462088c11b7 362Author: Jia Tan <jiat0218@gmail.com> 363Date: 2023-01-26 09:50:21 +0800 364 365 liblzma: Improve documentation for version.h. 366 367 Specified parameter and return values for API functions and documented 368 a few more of the macros. 369 370 src/liblzma/api/lzma/version.h | 29 ++++++++++++++++++++++------- 371 1 file changed, 22 insertions(+), 7 deletions(-) 372 373commit 2caba3efe3e0c2d7c6dca00e22c56812326a34e6 374Author: Jia Tan <jiat0218@gmail.com> 375Date: 2023-02-24 23:46:23 +0800 376 377 liblzma: Clarify lzma_lzma_preset() documentation in lzma12.h. 378 379 lzma_lzma_preset() does not guarentee that the lzma_options_lzma are 380 usable in an encoder even if it returns false (success). If liblzma 381 is built with default configurations, then the options will always be 382 usable. However if the match finders hc3, hc4, or bt4 are disabled, then 383 the options may not be usable depending on the preset level requested. 384 385 The documentation was updated to reflect this complexity, since this 386 behavior was unclear before. 387 388 src/liblzma/api/lzma/lzma12.h | 5 +++++ 389 1 file changed, 5 insertions(+) 390 391commit 594f904673ba55a833adfa60bbab6b60d4902d08 392Author: Lasse Collin <lasse.collin@tukaani.org> 393Date: 2023-02-27 18:38:35 +0200 394 395 CMake: Require that the C compiler supports C99 or a newer standard. 396 397 Thanks to autoantwort for reporting the issue and suggesting 398 a different patch: 399 https://github.com/tukaani-project/xz/pull/42 400 401 CMakeLists.txt | 8 ++++++++ 402 1 file changed, 8 insertions(+) 403 404commit 88101143cb774bca6b7006c8335b09dc3f334140 405Author: Jia Tan <jiat0218@gmail.com> 406Date: 2023-02-24 18:10:37 +0800 407 408 Tests: Small tweak to test-vli.c. 409 410 The static global variables can be disabled if encoders and decoders 411 are not built. If they are not disabled and -Werror is used, it will 412 cause an usused warning as an error. 413 414 tests/test_vli.c | 2 ++ 415 1 file changed, 2 insertions(+) 416 417commit 4042dbf03a06e019ccdd1e9d1b94cf613d62d5a9 418Author: Jia Tan <jiat0218@gmail.com> 419Date: 2023-02-06 21:46:43 +0800 420 421 liblzma: Replace '\n' -> newline in filter.h documentation. 422 423 The '\n' renders as a newline when the comments are converted to html 424 by Doxygen. 425 426 src/liblzma/api/lzma/filter.h | 2 +- 427 1 file changed, 1 insertion(+), 1 deletion(-) 428 429commit 3971f5c5024750ce8286891c6f79ae1661047483 430Author: Jia Tan <jiat0218@gmail.com> 431Date: 2023-02-06 21:45:37 +0800 432 433 liblzma: Shorten return description for two functions in filter.h. 434 435 Shorten the description for lzma_raw_encoder_memusage() and 436 lzma_raw_decoder_memusage(). 437 438 src/liblzma/api/lzma/filter.h | 8 ++------ 439 1 file changed, 2 insertions(+), 6 deletions(-) 440 441commit 5e61b39432752b6cd1a7b518f0f9e4f0c3f0f242 442Author: Jia Tan <jiat0218@gmail.com> 443Date: 2023-02-06 21:44:45 +0800 444 445 liblzma: Reword a few lines in filter.h 446 447 src/liblzma/api/lzma/filter.h | 10 +++++----- 448 1 file changed, 5 insertions(+), 5 deletions(-) 449 450commit 8a53533869defa1191b41f176a0312cb53a139e2 451Author: Jia Tan <jiat0218@gmail.com> 452Date: 2023-02-06 21:35:06 +0800 453 454 liblzma: Improve documentation in filter.h. 455 456 All functions now explicitly specify parameter and return values. 457 The notes and code annotations were moved before the parameter and 458 return value descriptions for consistency. 459 460 Also, the description above lzma_filter_encoder_is_supported() about 461 not being able to list available filters was removed since 462 lzma_str_list_filters() will do this. 463 464 src/liblzma/api/lzma/filter.h | 226 ++++++++++++++++++++++++++---------------- 465 1 file changed, 143 insertions(+), 83 deletions(-) 466 467commit 6d05b08b17ac8cb93165ee8f310fdd925b0b258f 468Author: Lasse Collin <lasse.collin@tukaani.org> 469Date: 2023-02-23 20:46:16 +0200 470 471 Update THANKS. 472 473 THANKS | 1 + 474 1 file changed, 1 insertion(+) 475 476commit dfc9a54082e0fc7b3b796ea15336b5075acc79d5 477Author: Lasse Collin <lasse.collin@tukaani.org> 478Date: 2023-02-21 22:57:10 +0200 479 480 liblzma: Avoid null pointer + 0 (undefined behavior in C). 481 482 In the C99 and C17 standards, section 6.5.6 paragraph 8 means that 483 adding 0 to a null pointer is undefined behavior. As of writing, 484 "clang -fsanitize=undefined" (Clang 15) diagnoses this. However, 485 I'm not aware of any compiler that would take advantage of this 486 when optimizing (Clang 15 included). It's good to avoid this anyway 487 since compilers might some day infer that pointer arithmetic implies 488 that the pointer is not NULL. That is, the following foo() would then 489 unconditionally return 0, even for foo(NULL, 0): 490 491 void bar(char *a, char *b); 492 493 int foo(char *a, size_t n) 494 { 495 bar(a, a + n); 496 return a == NULL; 497 } 498 499 In contrast to C, C++ explicitly allows null pointer + 0. So if 500 the above is compiled as C++ then there is no undefined behavior 501 in the foo(NULL, 0) call. 502 503 To me it seems that changing the C standard would be the sane 504 thing to do (just add one sentence) as it would ensure that a huge 505 amount of old code won't break in the future. Based on web searches 506 it seems that a large number of codebases (where null pointer + 0 507 occurs) are being fixed instead to be future-proof in case compilers 508 will some day optimize based on it (like making the above foo(NULL, 0) 509 return 0) which in the worst case will cause security bugs. 510 511 Some projects don't plan to change it. For example, gnulib and thus 512 many GNU tools currently require that null pointer + 0 is defined: 513 514 https://lists.gnu.org/archive/html/bug-gnulib/2021-11/msg00000.html 515 516 https://www.gnu.org/software/gnulib/manual/html_node/Other-portability-assumptions.html 517 518 In XZ Utils null pointer + 0 issue should be fixed after this 519 commit. This adds a few if-statements and thus branches to avoid 520 null pointer + 0. These check for size > 0 instead of ptr != NULL 521 because this way bugs where size > 0 && ptr == NULL will likely 522 get caught quickly. None of them are in hot spots so it shouldn't 523 matter for performance. 524 525 A little less readable version would be replacing 526 527 ptr + offset 528 529 with 530 531 offset != 0 ? ptr + offset : ptr 532 533 or creating a macro for it: 534 535 #define my_ptr_add(ptr, offset) \ 536 ((offset) != 0 ? ((ptr) + (offset)) : (ptr)) 537 538 Checking for offset != 0 instead of ptr != NULL allows GCC >= 8.1, 539 Clang >= 7, and Clang-based ICX to optimize it to the very same code 540 as ptr + offset. That is, it won't create a branch. So for hot code 541 this could be a good solution to avoid null pointer + 0. Unfortunately 542 other compilers like ICC 2021 or MSVC 19.33 (VS2022) will create a 543 branch from my_ptr_add(). 544 545 Thanks to Marcin Kowalczyk for reporting the problem: 546 https://github.com/tukaani-project/xz/issues/36 547 548 src/liblzma/common/block_decoder.c | 5 ++++- 549 src/liblzma/common/block_encoder.c | 7 +++++-- 550 src/liblzma/common/common.c | 20 ++++++++++++++------ 551 src/liblzma/common/index_decoder.c | 13 ++++++++++--- 552 src/liblzma/common/index_encoder.c | 11 +++++++++-- 553 src/liblzma/common/index_hash.c | 13 ++++++++++--- 554 src/liblzma/common/lzip_decoder.c | 6 +++++- 555 src/liblzma/delta/delta_decoder.c | 7 ++++++- 556 src/liblzma/delta/delta_encoder.c | 12 ++++++++++-- 557 src/liblzma/simple/simple_coder.c | 6 ++++-- 558 10 files changed, 77 insertions(+), 23 deletions(-) 559 560commit f6dce49cb656b358e2fb2a3032e35e20af34dc84 561Author: Jia Tan <jiat0218@gmail.com> 562Date: 2023-02-07 00:00:44 +0800 563 564 liblzma: Adjust container.h for consistency with filter.h. 565 566 src/liblzma/api/lzma/container.h | 20 +++++++++----------- 567 1 file changed, 9 insertions(+), 11 deletions(-) 568 569commit 173d240bb4763aedc8c01df4d9c83e311d954c33 570Author: Jia Tan <jiat0218@gmail.com> 571Date: 2023-02-07 00:00:09 +0800 572 573 liblzma: Fix small typos and reword a few things in filter.h. 574 575 src/liblzma/api/lzma/container.h | 13 ++++++------- 576 1 file changed, 6 insertions(+), 7 deletions(-) 577 578commit 17797bacde3f7264048ef0976c137a600148d6cf 579Author: Jia Tan <jiat0218@gmail.com> 580Date: 2023-02-06 23:42:08 +0800 581 582 liblzma: Convert list of flags in lzma_mt to bulleted list. 583 584 src/liblzma/api/lzma/container.h | 9 ++++++--- 585 1 file changed, 6 insertions(+), 3 deletions(-) 586 587commit 37da0e727161b401b8bfd8dccf163a4b2fc0460b 588Author: Jia Tan <jiat0218@gmail.com> 589Date: 2023-01-26 23:17:41 +0800 590 591 liblzma: Fix typo in documentation in container.h 592 593 lzma_microlzma_decoder -> lzma_microlzma_encoder 594 595 src/liblzma/api/lzma/container.h | 2 +- 596 1 file changed, 1 insertion(+), 1 deletion(-) 597 598commit b8331077c626e6bf14f4671d09b561146eaf816a 599Author: Jia Tan <jiat0218@gmail.com> 600Date: 2023-01-26 23:16:34 +0800 601 602 liblzma: Improve documentation for container.h 603 604 Standardizing each function to always specify parameters and return 605 values. Also moved the parameters and return values to the end of each 606 function description. 607 608 src/liblzma/api/lzma/container.h | 146 +++++++++++++++++++++++++-------------- 609 1 file changed, 93 insertions(+), 53 deletions(-) 610 611commit b9a3511bb61d3b6ce49abd33dce6155a573f5272 612Author: Jia Tan <jiat0218@gmail.com> 613Date: 2023-02-22 20:59:41 +0800 614 615 CMake: Add LZIP decoder test to list of tests. 616 617 CMakeLists.txt | 1 + 618 1 file changed, 1 insertion(+) 619 620commit cd82ef2fb48b174c57cd03b84a9a0f978772cb89 621Author: Lasse Collin <lasse.collin@tukaani.org> 622Date: 2023-02-17 20:56:49 +0200 623 624 Update THANKS. 625 626 THANKS | 1 + 627 1 file changed, 1 insertion(+) 628 629commit 076e911ba25cadf2cbdfbd0f65991a002e210c0b 630Author: Lasse Collin <lasse.collin@tukaani.org> 631Date: 2023-02-17 20:48:28 +0200 632 633 Build: Use only the generic symbol versioning on MicroBlaze. 634 635 On MicroBlaze, GCC 12 is broken in sense that 636 __has_attribute(__symver__) returns true but it still doesn't 637 support the __symver__ attribute even though the platform is ELF 638 and symbol versioning is supported if using the traditional 639 __asm__(".symver ...") method. Avoiding the traditional method is 640 good because it breaks LTO (-flto) builds with GCC. 641 642 See also: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101766 643 644 For now the only extra symbols in liblzma_linux.map are the 645 compatibility symbols with the patch that spread from RHEL/CentOS 7. 646 These require the use of __symver__ attribute or __asm__(".symver ...") 647 in the C code. Compatibility with the patch from CentOS 7 doesn't 648 seem valuable on MicroBlaze so use liblzma_generic.map on MicroBlaze 649 instead. It doesn't require anything special in the C code and thus 650 no LTO issues either. 651 652 An alternative would be to detect support for __symver__ 653 attribute in configure.ac and CMakeLists.txt and fall back 654 to __asm__(".symver ...") but then LTO would be silently broken 655 on MicroBlaze. It sounds likely that MicroBlaze is a special 656 case so let's treat it as a such because that is simpler. If 657 a similar issue exists on some other platform too then hopefully 658 someone will report it and this can be reconsidered. 659 660 (This doesn't do the same fix in CMakeLists.txt. Perhaps it should 661 but perhaps CMake build of liblzma doesn't matter much on MicroBlaze. 662 The problem breaks the build so it's easy to notice and can be fixed 663 later.) 664 665 Thanks to Vincent Fazio for reporting the problem and proposing 666 a patch (in the end that solution wasn't used): 667 https://github.com/tukaani-project/xz/pull/32 668 669 configure.ac | 12 ++++++++++-- 670 1 file changed, 10 insertions(+), 2 deletions(-) 671 672commit bc34e5ac9996667d2c1ec9a7895ec5931ac4caea 673Author: Lasse Collin <lasse.collin@tukaani.org> 674Date: 2023-02-16 21:09:00 +0200 675 676 liblzma: Very minor API doc tweaks. 677 678 Use "member" to refer to struct members as that's the term used 679 by the C standard. 680 681 Use lzma_options_delta.dist and such in docs so that in Doxygen's 682 HTML output they will link to the doc of the struct member. 683 684 Clean up a few trailing white spaces too. 685 686 src/liblzma/api/lzma/block.h | 6 +++--- 687 src/liblzma/api/lzma/delta.h | 6 +++--- 688 src/liblzma/api/lzma/index.h | 10 +++++----- 689 src/liblzma/api/lzma/stream_flags.h | 6 +++--- 690 4 files changed, 14 insertions(+), 14 deletions(-) 691 692commit d31fbd28be5b79eb682db50004b0fb7aad5299ec 693Author: Jia Tan <jiat0218@gmail.com> 694Date: 2023-02-17 00:54:33 +0800 695 696 liblzma: Adjust spacing in doc headers in bcj.h. 697 698 src/liblzma/api/lzma/bcj.h | 14 +++++++------- 699 1 file changed, 7 insertions(+), 7 deletions(-) 700 701commit 701e9be6bede19771895f756082db0c017f86f07 702Author: Jia Tan <jiat0218@gmail.com> 703Date: 2023-02-17 00:44:44 +0800 704 705 liblzma: Adjust documentation in bcj.h for consistent style. 706 707 src/liblzma/api/lzma/bcj.h | 43 ++++++++++++++++++++++--------------------- 708 1 file changed, 22 insertions(+), 21 deletions(-) 709 710commit 762c4d0b62d2694cf3a01e030fdfe68e09e7b503 711Author: Jia Tan <jiat0218@gmail.com> 712Date: 2023-02-17 00:36:05 +0800 713 714 liblzma: Rename field => member in documentation. 715 716 Also adjusted preset value => preset level. 717 718 src/liblzma/api/lzma/base.h | 18 +++++++-------- 719 src/liblzma/api/lzma/block.h | 44 ++++++++++++++++++------------------- 720 src/liblzma/api/lzma/container.h | 26 +++++++++++----------- 721 src/liblzma/api/lzma/delta.h | 12 +++++----- 722 src/liblzma/api/lzma/index.h | 30 ++++++++++++------------- 723 src/liblzma/api/lzma/lzma12.h | 28 +++++++++++------------ 724 src/liblzma/api/lzma/stream_flags.h | 32 +++++++++++++-------------- 725 7 files changed, 95 insertions(+), 95 deletions(-) 726 727commit 0ce1db0223854d94b4a0d17737ac0486a75d9e6a 728Author: Lasse Collin <lasse.collin@tukaani.org> 729Date: 2023-02-16 17:59:50 +0200 730 731 liblzma: Silence a warning from MSVC. 732 733 It gives C4146 here since unary minus with unsigned integer 734 is still unsigned (which is the intention here). Doing it 735 with substraction makes it clearer and avoids the warning. 736 737 Thanks to Nathan Moinvaziri for reporting this. 738 739 src/liblzma/check/crc64_fast.c | 2 +- 740 1 file changed, 1 insertion(+), 1 deletion(-) 741 742commit d83da006b3e8dbad9112e6cde6b27049d193c9ec 743Author: Jia Tan <jiat0218@gmail.com> 744Date: 2023-02-16 21:04:54 +0800 745 746 liblzma: Improve documentation for stream_flags.h 747 748 Standardizing each function to always specify parameters and return 749 values. Also moved the parameters and return values to the end of each 750 function description. 751 752 A few small things were reworded and long sentences broken up. 753 754 src/liblzma/api/lzma/stream_flags.h | 76 ++++++++++++++++++++++--------------- 755 1 file changed, 46 insertions(+), 30 deletions(-) 756 757commit 2796bb4736f645d34939b5d62d5958f534e41e69 758Author: Jia Tan <jiat0218@gmail.com> 759Date: 2023-02-14 21:50:16 +0800 760 761 liblzma: Improve documentation in lzma12.h. 762 763 All functions now explicitly specify parameter and return values. 764 765 src/liblzma/api/lzma/lzma12.h | 32 +++++++++++++++++++++++--------- 766 1 file changed, 23 insertions(+), 9 deletions(-) 767 768commit ebebaa8d9381afea440eb1b01917117551adf68f 769Author: Jia Tan <jiat0218@gmail.com> 770Date: 2023-01-27 22:44:06 +0800 771 772 liblzma: Improve documentation in check.h. 773 774 All functions now explicitly specify parameter and return values. 775 Also moved the note about SHA-256 functions not being exported to the 776 top of the file. 777 778 src/liblzma/api/lzma/check.h | 41 ++++++++++++++++++++++++++++------------- 779 1 file changed, 28 insertions(+), 13 deletions(-) 780 781commit 765fa2865aab97ea713c1715922e322b3cf599a7 782Author: Jia Tan <jiat0218@gmail.com> 783Date: 2023-02-08 21:33:52 +0800 784 785 liblzma: Improve documentation in index.h 786 787 All functions now explicitly specify parameter and return values. 788 789 src/liblzma/api/lzma/index.h | 177 ++++++++++++++++++++++++++++++------------- 790 1 file changed, 126 insertions(+), 51 deletions(-) 791 792commit 918e208af5960728b6def01e692b395f7d8e3701 793Author: Jia Tan <jiat0218@gmail.com> 794Date: 2023-02-08 20:35:32 +0800 795 796 liblzma: Reword a comment in index.h. 797 798 src/liblzma/api/lzma/index.h | 4 ++-- 799 1 file changed, 2 insertions(+), 2 deletions(-) 800 801commit 1f157d214bc09338876d2467b549935679abc0bf 802Author: Jia Tan <jiat0218@gmail.com> 803Date: 2023-02-08 20:30:23 +0800 804 805 liblzma: Omit lzma_index_iter's internal field from Doxygen docs. 806 807 Add \private above this field and its sub-fields since it is not meant 808 to be modified by users. 809 810 src/liblzma/api/lzma/index.h | 9 ++++++++- 811 1 file changed, 8 insertions(+), 1 deletion(-) 812 813commit 28757fa46d8e0f0a9c17628b2b6af9bcb3cd96fc 814Author: Jia Tan <jiat0218@gmail.com> 815Date: 2023-01-21 21:32:03 +0800 816 817 liblzma: Fix documentation for LZMA_MEMLIMIT_ERROR. 818 819 LZMA_MEMLIMIT_ERROR was missing the "<" character needed to put 820 documentation after a member. 821 822 src/liblzma/api/lzma/base.h | 2 +- 823 1 file changed, 1 insertion(+), 1 deletion(-) 824 825commit 135d5a1a65a9e199b9a5550c1f788cf43cd81018 826Author: Jia Tan <jiat0218@gmail.com> 827Date: 2023-01-21 00:29:38 +0800 828 829 liblzma: Improve documentation for base.h. 830 831 Standardizing each function to always specify params and return values. 832 Also fixed a small grammar mistake. 833 834 src/liblzma/api/lzma/base.h | 30 +++++++++++++++++++++++++----- 835 1 file changed, 25 insertions(+), 5 deletions(-) 836 837commit 2287d5668384e289d51e72724997dc920483768e 838Author: Jia Tan <jiat0218@gmail.com> 839Date: 2023-02-14 00:08:33 +0800 840 841 liblzma: Minor improvements to vli.h. 842 843 Added [out] annotations to parameters that are pointers and can have 844 their value changed. Also added a clarification to lzma_vli_is_valid. 845 846 src/liblzma/api/lzma/vli.h | 15 ++++++++------- 847 1 file changed, 8 insertions(+), 7 deletions(-) 848 849commit 7124b8a16ae60cb2e93218ff531868eebd673bde 850Author: Jia Tan <jiat0218@gmail.com> 851Date: 2023-02-10 21:38:02 +0800 852 853 liblzma: Add comments for macros in delta.h. 854 855 Document LZMA_DELTA_DIST_MIN and LZMA_DELTA_DIST_MAX for completeness 856 and to avoid Doxygen warnings. 857 858 src/liblzma/api/lzma/delta.h | 8 ++++++++ 859 1 file changed, 8 insertions(+) 860 861commit 59c7bb8931159fdb1a31bbbeaed0e6984e2d3c81 862Author: Jia Tan <jiat0218@gmail.com> 863Date: 2023-02-10 21:35:23 +0800 864 865 liblzma: Improve documentation in index_hash.h. 866 867 All functions now explicitly specify parameter and return values. 868 Also reworded the description of lzma_index_hash_init() for readability. 869 870 src/liblzma/api/lzma/index_hash.h | 36 +++++++++++++++++++++++++++--------- 871 1 file changed, 27 insertions(+), 9 deletions(-) 872 873commit e970c28ac3cb2e8051925f81db2fe953664c2645 874Author: Jia Tan <jiat0218@gmail.com> 875Date: 2023-02-03 00:33:32 +0800 876 877 liblzma: Fix bug in lzma_str_from_filters() not checking filters[] length. 878 879 The bug is only a problem in applications that do not properly terminate 880 the filters[] array with LZMA_VLI_UNKNOWN or have more than 881 LZMA_FILTERS_MAX filters. This bug does not affect xz. 882 883 src/liblzma/common/string_conversion.c | 7 +++++++ 884 1 file changed, 7 insertions(+) 885 886commit 85e01266a96689448abb249da6c6abc3afcd4a4e 887Author: Jia Tan <jiat0218@gmail.com> 888Date: 2023-02-03 00:32:47 +0800 889 890 Tests: Create test_filter_str.c. 891 892 Tests lzma_str_to_filters(), lzma_str_from_filters(), and 893 lzma_str_list_filters() API functions. 894 895 CMakeLists.txt | 1 + 896 tests/Makefile.am | 2 + 897 tests/test_filter_str.c | 593 ++++++++++++++++++++++++++++++++++++++++++++++++ 898 3 files changed, 596 insertions(+) 899 900commit 3fa0f3ba12dd3383f62dbfa18a864f9b4217fa0a 901Author: Jia Tan <jiat0218@gmail.com> 902Date: 2023-01-22 08:49:00 +0800 903 904 liblzma: Fix typos in comments in string_conversion.c. 905 906 src/liblzma/common/string_conversion.c | 4 ++-- 907 1 file changed, 2 insertions(+), 2 deletions(-) 908 909commit 32dbe045d74e94f75c53236fa2a6c0454d7b6d9e 910Author: Jia Tan <jiat0218@gmail.com> 911Date: 2023-02-03 00:20:20 +0800 912 913 liblzma: Clarify block encoder and decoder documentation. 914 915 Added a few sentences to the description for lzma_block_encoder() and 916 lzma_block_decoder() to highlight that the Block Header must be coded 917 before calling these functions. 918 919 src/liblzma/api/lzma/block.h | 15 +++++++++++---- 920 1 file changed, 11 insertions(+), 4 deletions(-) 921 922commit ccf12acbfa7331b1bbb99ec55879186eb35f879f 923Author: Jia Tan <jiat0218@gmail.com> 924Date: 2023-02-03 00:12:24 +0800 925 926 Update lzma_block documentation for lzma_block_uncomp_encode(). 927 928 src/liblzma/api/lzma/block.h | 3 +++ 929 1 file changed, 3 insertions(+) 930 931commit 6a0b168dd9dc1ef437255c4bfdc6eff8b96fdb24 932Author: Jia Tan <jiat0218@gmail.com> 933Date: 2023-02-03 00:11:37 +0800 934 935 liblzma: Minor edits to lzma_block header_size documentation. 936 937 src/liblzma/api/lzma/block.h | 3 ++- 938 1 file changed, 2 insertions(+), 1 deletion(-) 939 940commit 84ce36f90e68471fec1f0e61cd93ac7ed9ab4883 941Author: Jia Tan <jiat0218@gmail.com> 942Date: 2023-02-03 00:11:07 +0800 943 944 liblzma: Enumerate functions that read version in lzma_block. 945 946 src/liblzma/api/lzma/block.h | 13 +++++++++++-- 947 1 file changed, 11 insertions(+), 2 deletions(-) 948 949commit d6620774682830d606f57109861b6763805b3492 950Author: Jia Tan <jiat0218@gmail.com> 951Date: 2023-02-03 00:10:34 +0800 952 953 liblzma: Clarify comment in block.h. 954 955 src/liblzma/api/lzma/block.h | 3 ++- 956 1 file changed, 2 insertions(+), 1 deletion(-) 957 958commit 880adb5aa25f66a53d81c2f3acc716f7a4d373d1 959Author: Jia Tan <jiat0218@gmail.com> 960Date: 2023-02-03 00:07:23 +0800 961 962 liblzma: Improve documentation for block.h. 963 964 Standardizing each function to always specify params and return values. 965 Output pointer parameters are also marked with doxygen style [out] to 966 make it clear. Any note sections were also moved above the parameter and 967 return sections for consistency. 968 969 src/liblzma/api/lzma/block.h | 96 ++++++++++++++++++++++++++++++++++---------- 970 1 file changed, 75 insertions(+), 21 deletions(-) 971 972commit b5b1b1f061c342271e4977ce5cba604a19c0ca52 973Author: Jia Tan <jiat0218@gmail.com> 974Date: 2023-02-01 23:38:30 +0800 975 976 liblzma: Clarify a comment about LZMA_STR_NO_VALIDATION. 977 978 The flag description for LZMA_STR_NO_VALIDATION was previously confusing 979 about the treatment for filters than cannot be used with .xz format 980 (lzma1) without using LZMA_STR_ALL_FILTERS. Now, it is clear that 981 LZMA_STR_NO_VALIDATION is not a super set of LZMA_STR_ALL_FILTERS. 982 983 src/liblzma/api/lzma/filter.h | 5 +++-- 984 1 file changed, 3 insertions(+), 2 deletions(-) 985 986commit e904e778b82b14f2779aab80d6c8f3c01a3fc54b 987Author: Jia Tan <jiat0218@gmail.com> 988Date: 2023-01-27 20:14:51 +0800 989 990 Translations: Add Brazilian Portuguese translation of man pages. 991 992 Thanks to Rafael Fontenelle. 993 994 po4a/po4a.conf | 2 +- 995 po4a/pt_BR.po | 3677 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 996 2 files changed, 3678 insertions(+), 1 deletion(-) 997 998commit e9c47e79c9584ba1126f5fa0dbe6c96e67411aa6 999Author: Jia Tan <jiat0218@gmail.com> 1000Date: 2023-01-24 20:48:50 +0800 1001 1002 liblzma: Fix documentation in filter.h for lzma_str_to_filters() 1003 1004 The previous documentation for lzma_str_to_filters() was technically 1005 correct, but misleading. lzma_str_to_filters() returns NULL on success, 1006 which is in practice always defined to 0. This is the same value as 1007 LZMA_OK, but lzma_str_to_filters() does not return lzma_ret so we should 1008 be more clear. 1009 1010 src/liblzma/api/lzma/filter.h | 2 +- 1011 1 file changed, 1 insertion(+), 1 deletion(-) 1012 1013commit 99575947a58a60416c570eb78038d18a1ea4cef4 1014Author: Jia Tan <jiat0218@gmail.com> 1015Date: 2023-01-07 21:55:06 +0800 1016 1017 xz: Refactor duplicated check for custom suffix when using --format=raw 1018 1019 src/xz/args.c | 8 ++++++++ 1020 src/xz/suffix.c | 26 ++++++++------------------ 1021 src/xz/suffix.h | 8 ++++++++ 1022 3 files changed, 24 insertions(+), 18 deletions(-) 1023 1024commit 76dec92fcca4a9ccd2063ed6d5d9e3474665baad 1025Author: Jia Tan <jiat0218@gmail.com> 1026Date: 2023-01-20 21:53:14 +0800 1027 1028 liblzma: Set documentation on all reserved fields to private. 1029 1030 This prevents the reserved fields from being part of the generated 1031 Doxygen documentation. 1032 1033 src/liblzma/api/lzma/base.h | 17 +++++++++++++++ 1034 src/liblzma/api/lzma/block.h | 43 +++++++++++++++++++++++++++++++++++++ 1035 src/liblzma/api/lzma/container.h | 24 +++++++++++++++++++++ 1036 src/liblzma/api/lzma/delta.h | 12 +++++++++++ 1037 src/liblzma/api/lzma/index.h | 27 +++++++++++++++++++++++ 1038 src/liblzma/api/lzma/lzma12.h | 22 +++++++++++++++++++ 1039 src/liblzma/api/lzma/stream_flags.h | 28 ++++++++++++++++++++++++ 1040 7 files changed, 173 insertions(+) 1041 1042commit bd213d06ebf92cf42eeb97e7c578bddc857f8ea8 1043Author: Jia Tan <jiat0218@gmail.com> 1044Date: 2022-12-21 23:59:43 +0800 1045 1046 liblzma: Highlight liblzma API headers should not be included directly. 1047 1048 This improves the generated Doxygen HTML files to better highlight 1049 how to properly use the liblzma API header files. 1050 1051 src/liblzma/api/lzma/base.h | 5 +++-- 1052 src/liblzma/api/lzma/bcj.h | 5 +++-- 1053 src/liblzma/api/lzma/block.h | 5 +++-- 1054 src/liblzma/api/lzma/check.h | 5 +++-- 1055 src/liblzma/api/lzma/container.h | 5 +++-- 1056 src/liblzma/api/lzma/delta.h | 5 +++-- 1057 src/liblzma/api/lzma/filter.h | 5 +++-- 1058 src/liblzma/api/lzma/hardware.h | 5 +++-- 1059 src/liblzma/api/lzma/index.h | 5 +++-- 1060 src/liblzma/api/lzma/index_hash.h | 5 +++-- 1061 src/liblzma/api/lzma/lzma12.h | 5 +++-- 1062 src/liblzma/api/lzma/stream_flags.h | 5 +++-- 1063 src/liblzma/api/lzma/version.h | 5 +++-- 1064 src/liblzma/api/lzma/vli.h | 5 +++-- 1065 14 files changed, 42 insertions(+), 28 deletions(-) 1066 1067commit 257dbff0ba1a7bc45a74d203ece015c9f70c88cd 1068Author: Jia Tan <jiat0218@gmail.com> 1069Date: 2023-01-19 20:35:09 +0800 1070 1071 tuklib_physmem: Silence warning from -Wcast-function-type on MinGW-w64. 1072 1073 tuklib_physmem depends on GetProcAddress() for both MSVC and MinGW-w64 1074 to retrieve a function address. The proper way to do this is to cast the 1075 return value to the type of function pointer retrieved. Unfortunately, 1076 this causes a cast-function-type warning, so the best solution is to 1077 simply ignore the warning. 1078 1079 src/common/tuklib_physmem.c | 18 ++++++++++++++++++ 1080 1 file changed, 18 insertions(+) 1081 1082commit 720ad4a44282a7ee59aa9920eaf495d85d245d97 1083Author: Jia Tan <jiat0218@gmail.com> 1084Date: 2023-01-16 21:35:45 +0800 1085 1086 xz: Add missing comment for coder_set_compression_settings() 1087 1088 src/xz/coder.h | 3 ++- 1089 1 file changed, 2 insertions(+), 1 deletion(-) 1090 1091commit 88dc19163421282369c0989e997c05f9a447edc6 1092Author: Jia Tan <jiat0218@gmail.com> 1093Date: 2023-01-16 20:55:10 +0800 1094 1095 xz: Do not set compression settings with raw format in list mode. 1096 1097 Calling coder_set_compression_settings() in list mode with verbose mode 1098 on caused the filter chain and memory requirements to print. This was 1099 unnecessary since the command results in an error and not consistent 1100 with other formats like lzma and alone. 1101 1102 src/xz/args.c | 3 ++- 1103 1 file changed, 2 insertions(+), 1 deletion(-) 1104 1105commit 039e0ab13efb144642f9d99eeeb9c668e76bb430 1106Author: Jia Tan <jiat0218@gmail.com> 1107Date: 2023-01-13 20:37:06 +0800 1108 1109 Translations: Update the Brazilian Portuguese translation. 1110 1111 po/pt_BR.po | 603 ++++++++++++++++++++++++++++++++++-------------------------- 1112 1 file changed, 344 insertions(+), 259 deletions(-) 1113 1114commit 718f7a60e740b26b8353965edaaddc7d4deb4d85 1115Author: Lasse Collin <lasse.collin@tukaani.org> 1116Date: 2023-01-12 13:04:05 +0200 1117 1118 Build: Omit -Wmissing-noreturn from the default warnings. 1119 1120 It's not that important. It can be annoying in builds that 1121 disable many features since in those cases the tests programs 1122 will correctly trigger this warning with Clang. 1123 1124 configure.ac | 1 - 1125 1 file changed, 1 deletion(-) 1126 1127commit 3ccedb09724c998c39d708c945f6da5852c39e13 1128Author: Lasse Collin <lasse.collin@tukaani.org> 1129Date: 2023-01-12 06:05:58 +0200 1130 1131 xz: Use ssize_t for the to-be-ignored return value from write(fd, ptr, 1). 1132 1133 It makes no difference here as the return value fits into an int 1134 too and it then gets ignored but this looks better. 1135 1136 src/xz/file_io.c | 2 +- 1137 1 file changed, 1 insertion(+), 1 deletion(-) 1138 1139commit 09fbd2f0527def89e839c8907de4fe7ef6bc5019 1140Author: Lasse Collin <lasse.collin@tukaani.org> 1141Date: 2023-01-12 06:01:12 +0200 1142 1143 xz: Silence warnings from -Wsign-conversion in a 32-bit build. 1144 1145 src/common/tuklib_mbstr_fw.c | 2 +- 1146 src/xz/list.c | 4 ++-- 1147 2 files changed, 3 insertions(+), 3 deletions(-) 1148 1149commit 683d3f178ef1487b5418be49f331b0131a101b40 1150Author: Lasse Collin <lasse.collin@tukaani.org> 1151Date: 2023-01-12 05:38:48 +0200 1152 1153 liblzma: Silence another warning from -Wsign-conversion in a 32-bit build. 1154 1155 It doesn't warn on a 64-bit system because truncating 1156 a ptrdiff_t (signed long) to uint32_t is diagnosed under 1157 -Wconversion by GCC and -Wshorten-64-to-32 by Clang. 1158 1159 src/liblzma/lz/lz_encoder_mf.c | 7 ++++--- 1160 1 file changed, 4 insertions(+), 3 deletions(-) 1161 1162commit 2b8062ef94a38d0f9ad0d1b309e8748db52f5c15 1163Author: Lasse Collin <lasse.collin@tukaani.org> 1164Date: 2023-01-12 04:46:45 +0200 1165 1166 liblzma: Silence a warning from -Wsign-conversion in a 32-bit build. 1167 1168 src/common/mythread.h | 4 ++-- 1169 1 file changed, 2 insertions(+), 2 deletions(-) 1170 1171commit b16b9c0d22227012518595c2222facc73bd833a8 1172Author: Lasse Collin <lasse.collin@tukaani.org> 1173Date: 2023-01-12 04:17:24 +0200 1174 1175 Build: Make configure add more warning flags for GCC and Clang. 1176 1177 -Wstrict-aliasing was removed from the list since it is enabled 1178 by -Wall already. 1179 1180 A normal build is clean with these on GNU/Linux x86-64 with 1181 GCC 12.2.0 and Clang 14.0.6. 1182 1183 configure.ac | 36 +++++++++++++++++++++++++++++++----- 1184 1 file changed, 31 insertions(+), 5 deletions(-) 1185 1186commit c47ecd6d3909d0d3ff48dfd6e2ee41e7c7130b94 1187Author: Lasse Collin <lasse.collin@tukaani.org> 1188Date: 2023-01-12 04:14:18 +0200 1189 1190 Tests: Fix warnings from clang --Wassign-enum. 1191 1192 Explicitly casting the integer to lzma_check silences the warning. 1193 Since such an invalid value is needed in multiple tests, a constant 1194 INVALID_LZMA_CHECK_ID was added to tests.h. 1195 1196 The use of 0x1000 for lzma_block.check wasn't optimal as if 1197 the underlying type is a char then 0x1000 will be truncated to 0. 1198 However, in these test cases the value is ignored, thus even with 1199 such truncation the test would have passed. 1200 1201 tests/test_block_header.c | 6 +++--- 1202 tests/test_check.c | 2 +- 1203 tests/test_stream_flags.c | 8 ++++---- 1204 tests/tests.h | 9 +++++++++ 1205 4 files changed, 17 insertions(+), 8 deletions(-) 1206 1207commit 34e13ce015232968731de2a9ec3440a08b0084b1 1208Author: Lasse Collin <lasse.collin@tukaani.org> 1209Date: 2023-01-12 03:51:07 +0200 1210 1211 Tests: Silence warnings from -Wsign-conversion. 1212 1213 Note that assigning an unsigned int to lzma_check doesn't warn 1214 on GNU/Linux x86-64 since the enum type is unsigned on that 1215 platform. The enum can be signed on some other platform though 1216 so it's best to use enumeration type lzma_check in these situations. 1217 1218 tests/test_check.c | 6 +++--- 1219 tests/test_stream_flags.c | 10 +++++----- 1220 2 files changed, 8 insertions(+), 8 deletions(-) 1221 1222commit 6671d0fe46b77f0fafce860836b7a12dc3cda14a 1223Author: Lasse Collin <lasse.collin@tukaani.org> 1224Date: 2023-01-12 03:19:59 +0200 1225 1226 liblzma: Silence warnings from clang -Wconditional-uninitialized. 1227 1228 This is similar to 2ce4f36f179a81d0c6e182a409f363df759d1ad0. 1229 The actual initialization of the variables is done inside 1230 mythread_sync() macro. Clang doesn't seem to see that 1231 the initialization code inside the macro is always executed. 1232 1233 src/liblzma/common/stream_decoder_mt.c | 8 +++++--- 1234 src/liblzma/common/stream_encoder_mt.c | 2 +- 1235 2 files changed, 6 insertions(+), 4 deletions(-) 1236 1237commit d3e833ca1d2abda54648494c33aca73a40a47efe 1238Author: Lasse Collin <lasse.collin@tukaani.org> 1239Date: 2023-01-12 03:11:40 +0200 1240 1241 Fix warnings from clang -Wdocumentation. 1242 1243 src/liblzma/check/check.h | 4 ---- 1244 src/liblzma/lz/lz_encoder_mf.c | 4 ++-- 1245 src/xz/options.c | 4 ++-- 1246 3 files changed, 4 insertions(+), 8 deletions(-) 1247 1248commit 977dd2e26bc50efec8d30fb90380394042d24558 1249Author: Lasse Collin <lasse.collin@tukaani.org> 1250Date: 2023-01-12 03:04:28 +0200 1251 1252 Tests: test_lzip_decoder: Remove trailing white-space. 1253 1254 tests/test_lzip_decoder.c | 4 ++-- 1255 1 file changed, 2 insertions(+), 2 deletions(-) 1256 1257commit c55157ed7437ab14f2afb7fecf331e321f2edf9a 1258Author: Lasse Collin <lasse.collin@tukaani.org> 1259Date: 2023-01-12 03:03:55 +0200 1260 1261 Tests: test_lzip_decoder: Silence warnings from -Wsign-conversion. 1262 1263 tests/test_lzip_decoder.c | 13 +++++++------ 1264 1 file changed, 7 insertions(+), 6 deletions(-) 1265 1266commit 18b845e69752c975dfeda418ec00eda22605c2ee 1267Author: Lasse Collin <lasse.collin@tukaani.org> 1268Date: 2023-01-11 18:52:54 +0200 1269 1270 Bump version and soname for 5.4.1. 1271 1272 src/liblzma/Makefile.am | 2 +- 1273 src/liblzma/api/lzma/version.h | 2 +- 1274 2 files changed, 2 insertions(+), 2 deletions(-) 1275 1276commit 4080bbb844fb36701ffb978f0c41ea2c2c9f8960 1277Author: Jia Tan <jiat0218@gmail.com> 1278Date: 2023-01-11 23:58:16 +0800 1279 1280 Add NEWS for 5.4.1. 1281 1282 NEWS | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1283 1 file changed, 70 insertions(+) 1284 1285commit 674c89fdb8c457ebc3a0652e235d8b6cd7b7dee2 1286Author: Lasse Collin <lasse.collin@tukaani.org> 1287Date: 2023-01-10 11:56:11 +0200 1288 1289 sysdefs.h: Don't include strings.h anymore. 1290 1291 On some platforms src/xz/suffix.c may need <strings.h> for 1292 strcasecmp() but suffix.c includes the header when it needs it. 1293 1294 Unless there is an old system that otherwise supports enough C99 1295 to build XZ Utils but doesn't have C89/C90-compatible <string.h>, 1296 there should be no need to include <strings.h> in sysdefs.h. 1297 1298 src/common/sysdefs.h | 6 ------ 1299 1 file changed, 6 deletions(-) 1300 1301commit 2a6b938084fac9ddb39cd69c9beeed15c3b6f6f6 1302Author: Lasse Collin <lasse.collin@tukaani.org> 1303Date: 2023-01-10 11:23:41 +0200 1304 1305 xz: Include <strings.h> in suffix.c if needed for strcasecmp(). 1306 1307 SUSv2 and POSIX.1‐2017 declare only a few functions in <strings.h>. 1308 Of these, strcasecmp() is used on some platforms in suffix.c. 1309 Nothing else in the project needs <strings.h> (at least if 1310 building on a modern system). 1311 1312 sysdefs.h currently includes <strings.h> if HAVE_STRINGS_H is 1313 defined and suffix.c relied on this. 1314 1315 Note that dos/config.h doesn't #define HAVE_STRINGS_H even though 1316 DJGPP does have strings.h. It isn't needed with DJGPP as strcasecmp() 1317 is also in <string.h> in DJGPP. 1318 1319 src/xz/suffix.c | 3 +++ 1320 1 file changed, 3 insertions(+) 1321 1322commit aea639e81beb548e3114c74b6d9a894d6e036189 1323Author: Jia Tan <jiat0218@gmail.com> 1324Date: 2023-01-11 22:46:48 +0800 1325 1326 xz: Fix warning -Wformat-nonliteral on clang in message.c. 1327 1328 clang and gcc differ in how they handle -Wformat-nonliteral. gcc will 1329 allow a non-literal format string as long as the function takes its 1330 format arguments as a va_list. 1331 1332 src/xz/message.c | 9 +++++++++ 1333 1 file changed, 9 insertions(+) 1334 1335commit e3b42bfcb0f67988beee7c7022fed0361282be45 1336Author: Jia Tan <jiat0218@gmail.com> 1337Date: 2023-01-11 20:58:31 +0800 1338 1339 Tests: Fix test_filter_flags copy/paste error. 1340 1341 tests/test_filter_flags.c | 4 ++-- 1342 1 file changed, 2 insertions(+), 2 deletions(-) 1343 1344commit 21625b7e11d004788e40eb5eb88d9d89f65fe347 1345Author: Jia Tan <jiat0218@gmail.com> 1346Date: 2023-01-11 20:42:29 +0800 1347 1348 Tests: Fix type-limits warning in test_filter_flags. 1349 1350 This only occurs in test_filter_flags when the BCJ filters are not 1351 configured and built. In this case, ARRAY_SIZE() returns 0 and causes a 1352 type-limits warning with the loop variable since an unsigned number will 1353 always be >= 0. 1354 1355 tests/test_filter_flags.c | 13 ++++++++++--- 1356 1 file changed, 10 insertions(+), 3 deletions(-) 1357 1358commit c337983e928682d56ce3470b286a8d5b8646e0ad 1359Author: Lasse Collin <lasse.collin@tukaani.org> 1360Date: 2023-01-10 22:14:03 +0200 1361 1362 liblzma: CLMUL CRC64: Work around a bug in MSVC, second attempt. 1363 1364 This affects only 32-bit x86 builds. x86-64 is OK as is. 1365 1366 I still cannot easily test this myself. The reporter has tested 1367 this and it passes the tests included in the CMake build and 1368 performance is good: raw CRC64 is 2-3 times faster than the 1369 C version of the slice-by-four method. (Note that liblzma doesn't 1370 include a MSVC-compatible version of the 32-bit x86 assembly code 1371 for the slice-by-four method.) 1372 1373 Thanks to Iouri Kharon for figuring out a fix, testing, and 1374 benchmarking. 1375 1376 src/liblzma/check/crc64_fast.c | 18 ++++++++++++++++++ 1377 1 file changed, 18 insertions(+) 1378 1379commit b7fb438ea0e3ee02e3a164f3b72fae456cbe34d7 1380Author: Jia Tan <jiat0218@gmail.com> 1381Date: 2023-01-11 01:18:50 +0800 1382 1383 Tests: Fix unused function warning in test_block_header. 1384 1385 One of the global arrays of filters was only used in a test that 1386 required both encoders and decoders to be configured in the build. 1387 1388 tests/test_block_header.c | 4 ++++ 1389 1 file changed, 4 insertions(+) 1390 1391commit 68e9ef036d18d7c3952bff0b391d5989b86934da 1392Author: Jia Tan <jiat0218@gmail.com> 1393Date: 2023-01-11 01:08:03 +0800 1394 1395 Tests: Fix unused function warning in test_index_hash. 1396 1397 test_index_hash does not use fill_index_hash() unless both encoders 1398 and decoders are configured in the build. 1399 1400 tests/test_index_hash.c | 4 +--- 1401 1 file changed, 1 insertion(+), 3 deletions(-) 1402 1403commit a387707cd8cdefbffb5b7429bda4b7fcc192954a 1404Author: Lasse Collin <lasse.collin@tukaani.org> 1405Date: 2023-01-10 00:33:14 +0200 1406 1407 Windows: Update INSTALL-MSVC.txt to recommend CMake over project files. 1408 1409 windows/INSTALL-MSVC.txt | 19 ++++++++++++------- 1410 1 file changed, 12 insertions(+), 7 deletions(-) 1411 1412commit 52902ad69518255a14b0144f0a2379e06fde5b6e 1413Author: Lasse Collin <lasse.collin@tukaani.org> 1414Date: 2023-01-10 12:47:16 +0200 1415 1416 Revert "liblzma: CLMUL CRC64: Workaround a bug in MSVC (VS2015-2022)." 1417 1418 This reverts commit 36edc65ab4cf10a131f239acbd423b4510ba52d5. 1419 1420 It was reported that it wasn't a good enough fix and MSVC 1421 still produced (different kind of) bad code when building 1422 for 32-bit x86 if optimizations are enabled. 1423 1424 Thanks to Iouri Kharon. 1425 1426 src/liblzma/check/crc64_fast.c | 6 ------ 1427 1 file changed, 6 deletions(-) 1428 1429commit e81b9fc48ca70f9228308d3f1871cd81f9a5a496 1430Author: Lasse Collin <lasse.collin@tukaani.org> 1431Date: 2023-01-10 10:05:13 +0200 1432 1433 sysdefs.h: Fix a comment. 1434 1435 src/common/sysdefs.h | 2 +- 1436 1 file changed, 1 insertion(+), 1 deletion(-) 1437 1438commit 6e89ab58b031aa046308a0b3504ff0a5be042571 1439Author: Lasse Collin <lasse.collin@tukaani.org> 1440Date: 2023-01-10 10:04:06 +0200 1441 1442 sysdefs.h: Don't include memory.h anymore even if it were available. 1443 1444 It quite probably was never needed, that is, any system where memory.h 1445 was required likely couldn't compile XZ Utils for other reasons anyway. 1446 1447 XZ Utils 5.2.6 and later source packages were generated using 1448 Autoconf 2.71 which no longer defines HAVE_MEMORY_H. So the code 1449 being removed is no longer used anyway. 1450 1451 src/common/sysdefs.h | 8 ++------ 1452 1 file changed, 2 insertions(+), 6 deletions(-) 1453 1454commit 65c59ad429aa59f9df0326d9fc82931ba4a9d123 1455Author: Lasse Collin <lasse.collin@tukaani.org> 1456Date: 2023-01-10 08:50:26 +0200 1457 1458 CMake/Windows: Add a workaround for windres from GNU binutils. 1459 1460 This is combined from the following commits in the master branch: 1461 443dfebced041adc88f10d824188eeef5b5821a9 1462 6b117d3b1fe91eb26d533ab16a2e552f84148d47 1463 5e34774c31d1b7509b5cb77a3be9973adec59ea0 1464 1465 Thanks to Iouri Kharon for the bug report, the original patch, 1466 and testing. 1467 1468 CMakeLists.txt | 32 +++++++++++++++++++++++++++++++- 1469 1 file changed, 31 insertions(+), 1 deletion(-) 1470 1471commit 43521e77acc907863fa4f94aae276366172cb9ee 1472Author: Lasse Collin <lasse.collin@tukaani.org> 1473Date: 2023-01-06 22:53:38 +0200 1474 1475 Tests: test_filter_flags: Clean up minor issues. 1476 1477 Here are the list of the most significant issues addressed: 1478 - Avoid using internal common.h header. It's not good to copy the 1479 constants like this but common.h cannot be included for use outside 1480 of liblzma. This is the quickest thing to do that could be fixed later. 1481 1482 - Omit the INIT_FILTER macro. Initialization should be done with just 1483 regular designated initializers. 1484 1485 - Use start_offset = 257 for BCJ tests. It demonstrates that Filter 1486 Flags encoder and decoder don't validate the options thoroughly. 1487 257 is valid only for the x86 filter. This is a bit silly but 1488 not a significant problem in practice because the encoder and 1489 decoder initialization functions will catch bad alignment still. 1490 Perhaps this should be fixed but it's not urgent and doesn't need 1491 to be in 5.4.x. 1492 1493 - Various tweaks to comments such as filter id -> Filter ID 1494 1495 tests/test_filter_flags.c | 153 +++++++++++++++++++++++----------------------- 1496 1 file changed, 78 insertions(+), 75 deletions(-) 1497 1498commit 6b44cead95d767414272dc3a67898a36bfdf95b3 1499Author: Jia Tan <jiat0218@gmail.com> 1500Date: 2022-12-29 23:33:33 +0800 1501 1502 Tests: Refactors existing filter flags tests. 1503 1504 Converts the existing filter flags tests into tuktests. 1505 1506 tests/test_filter_flags.c | 655 ++++++++++++++++++++++++++++++++-------------- 1507 1 file changed, 457 insertions(+), 198 deletions(-) 1508 1509commit 1bbefa9659b202ba31bd244a9d0e4f0d37ff3ed7 1510Author: Lasse Collin <lasse.collin@tukaani.org> 1511Date: 2023-01-08 00:32:29 +0200 1512 1513 Tests: tuktest.h: Support tuktest_malloc(0). 1514 1515 It's not needed in XZ Utils at least for now. It's good to support 1516 it still because if such use is needed later, it wouldn't be 1517 caught on GNU/Linux since malloc(0) from glibc returns non-NULL. 1518 1519 tests/tuktest.h | 4 ++-- 1520 1 file changed, 2 insertions(+), 2 deletions(-) 1521 1522commit ce3a3fbc7c2c399aeed644d54f3bd56ac914dfee 1523Author: Lasse Collin <lasse.collin@tukaani.org> 1524Date: 2023-01-07 21:57:11 +0200 1525 1526 CMake: Update cmake_minimum_required from 3.13...3.16 to 3.13...3.25. 1527 1528 The changes listed on cmake-policies(7) for versions 3.17 to 3.25 1529 shouldn't affect this project. 1530 1531 CMakeLists.txt | 2 +- 1532 1 file changed, 1 insertion(+), 1 deletion(-) 1533 1534commit 99fcd57f2ea35eaa94e09f674d5364329c880fa2 1535Author: Lasse Collin <lasse.collin@tukaani.org> 1536Date: 2023-01-08 00:24:23 +0200 1537 1538 Update THANKS. 1539 1540 THANKS | 1 + 1541 1 file changed, 1 insertion(+) 1542 1543commit c0c13d9d82eb8a4302c8bbb8b4c5178d285fe9ab 1544Author: Lasse Collin <lasse.collin@tukaani.org> 1545Date: 2023-01-07 19:50:35 +0200 1546 1547 Update THANKS. 1548 1549 THANKS | 1 + 1550 1 file changed, 1 insertion(+) 1551 1552commit 3d45987451b1c3bb42697b29341824c0e5484cba 1553Author: Lasse Collin <lasse.collin@tukaani.org> 1554Date: 2023-01-09 11:27:24 +0200 1555 1556 CMake: Fix a copypaste error in xzdec Windows resource file handling. 1557 1558 It was my mistake. Thanks to Iouri Kharon for the bug report. 1559 1560 CMakeLists.txt | 4 ++-- 1561 1 file changed, 2 insertions(+), 2 deletions(-) 1562 1563commit 706bce5018d7cf83094e13454a0731169ec119b5 1564Author: Lasse Collin <lasse.collin@tukaani.org> 1565Date: 2023-01-07 19:50:03 +0200 1566 1567 CMake/Windows: Add resource files to xz.exe and xzdec.exe. 1568 1569 The command line tools cannot be built with MSVC for now but 1570 they can be built with MinGW-w64. 1571 1572 Thanks to Iouri Kharon for the bug report and the original patch. 1573 1574 CMakeLists.txt | 16 ++++++++++++++++ 1575 1 file changed, 16 insertions(+) 1576 1577commit e96dee55df04113c33b387ccdb6cb70935422d91 1578Author: Lasse Collin <lasse.collin@tukaani.org> 1579Date: 2023-01-09 12:22:05 +0200 1580 1581 liblzma: CLMUL CRC64: Workaround a bug in MSVC (VS2015-2022). 1582 1583 I haven't tested with MSVC myself and there doesn't seem to be 1584 information about the problem online, so I'm relying on the bug report. 1585 1586 Thanks to Iouri Kharon for the bug report and the patch. 1587 1588 src/liblzma/check/crc64_fast.c | 6 ++++++ 1589 1 file changed, 6 insertions(+) 1590 1591commit 52bc1ee34dda9bb6fb40175e5952863066681b77 1592Author: Lasse Collin <lasse.collin@tukaani.org> 1593Date: 2023-01-07 19:31:15 +0200 1594 1595 Build: Require that _mm_set_epi64x() is usable to enable CLMUL support. 1596 1597 VS2013 doesn't have _mm_set_epi64x() so this way CLMUL gets 1598 disabled with VS2013. 1599 1600 Thanks to Iouri Kharon for the bug report. 1601 1602 CMakeLists.txt | 3 ++- 1603 configure.ac | 8 ++++++-- 1604 2 files changed, 8 insertions(+), 3 deletions(-) 1605 1606commit bad44cfe19e8be8ae76755369be2a34abcd2b4fa 1607Author: Jia Tan <jiat0218@gmail.com> 1608Date: 2022-12-29 00:25:18 +0800 1609 1610 Tests: Creates test_index_hash.c 1611 1612 Tests all API functions exported from index_hash.h. Does not have a 1613 dedicated test for lzma_index_hash_end. 1614 1615 [Minor edits were made by Lasse Collin.] 1616 1617 .gitignore | 1 + 1618 CMakeLists.txt | 2 + 1619 tests/Makefile.am | 3 + 1620 tests/test_index_hash.c | 388 ++++++++++++++++++++++++++++++++++++++++++++++++ 1621 4 files changed, 394 insertions(+) 1622 1623commit 692ccdf5516dfe55fb6e9c5cdfb31f4c02c1ecd1 1624Author: Jia Tan <jiat0218@gmail.com> 1625Date: 2023-01-05 20:57:25 +0800 1626 1627 liblzma: Remove common.h include from common/index.h. 1628 1629 common/index.h is needed by liblzma internally and tests. common.h will 1630 include and define many things that are not needed by the tests. 1631 1632 Also, this prevents include order problems because both common.h and 1633 lzma.h define LZMA_API. On most platforms it results only in a warning 1634 but on Windows it would break the build as the definition in common.h 1635 must be used only for building liblzma itself. 1636 1637 src/liblzma/common/index.c | 1 + 1638 src/liblzma/common/index.h | 9 +++++++-- 1639 src/liblzma/common/index_decoder.h | 1 + 1640 src/liblzma/common/stream_buffer_encoder.c | 1 + 1641 4 files changed, 10 insertions(+), 2 deletions(-) 1642 1643commit 2ac7bafc8f07c1edefe96a4a7a040ddfff0eb5bb 1644Author: Jia Tan <jiat0218@gmail.com> 1645Date: 2022-08-17 20:20:16 +0800 1646 1647 liblzma: Add NULL check to lzma_index_hash_append. 1648 1649 This is for consistency with lzma_index_append. 1650 1651 src/liblzma/common/index_hash.c | 2 +- 1652 1 file changed, 1 insertion(+), 1 deletion(-) 1653 1654commit db714d30e0c74d1dd4af1a23ed62b44e0e8e4efc 1655Author: Jia Tan <jiat0218@gmail.com> 1656Date: 2022-08-17 17:59:51 +0800 1657 1658 liblzma: Replaced hardcoded 0x0 index indicator byte with macro 1659 1660 src/liblzma/common/index.h | 3 +++ 1661 src/liblzma/common/index_decoder.c | 2 +- 1662 src/liblzma/common/index_encoder.c | 2 +- 1663 src/liblzma/common/index_hash.c | 2 +- 1664 src/liblzma/common/stream_decoder.c | 3 ++- 1665 src/liblzma/common/stream_decoder_mt.c | 2 +- 1666 6 files changed, 9 insertions(+), 5 deletions(-) 1667 1668commit 39d2585dcd3e827cfc3c46025ab6708c4aeb36c6 1669Author: Jia Tan <jiat0218@gmail.com> 1670Date: 2023-01-06 20:43:31 +0800 1671 1672 Style: Change #if !defined() to #ifndef in mythread.h. 1673 1674 src/common/mythread.h | 2 +- 1675 1 file changed, 1 insertion(+), 1 deletion(-) 1676 1677commit 3f0130aa288e4ed57ace609517db9700a41223af 1678Author: Jia Tan <jiat0218@gmail.com> 1679Date: 2023-01-06 20:35:55 +0800 1680 1681 Build: Add missing stream_decoder_mt.c to .vcxproj files. 1682 1683 The line in the .vcxproj files for building with was missing in 5.4.0. 1684 Thank to Hajin Jang for reporting the issue. 1685 1686 windows/vs2013/liblzma.vcxproj | 1 + 1687 windows/vs2013/liblzma_dll.vcxproj | 1 + 1688 windows/vs2017/liblzma.vcxproj | 1 + 1689 windows/vs2017/liblzma_dll.vcxproj | 1 + 1690 windows/vs2019/liblzma.vcxproj | 1 + 1691 windows/vs2019/liblzma_dll.vcxproj | 1 + 1692 6 files changed, 6 insertions(+) 1693 1694commit f204d1050a515d17851eed9049862ce5a9c729c1 1695Author: Lasse Collin <lasse.collin@tukaani.org> 1696Date: 2023-01-04 22:40:54 +0200 1697 1698 Update THANKS. 1699 1700 THANKS | 1 + 1701 1 file changed, 1 insertion(+) 1702 1703commit 34a9c2d650d6c30bd88e1b21910dd863209aa884 1704Author: Lasse Collin <lasse.collin@tukaani.org> 1705Date: 2023-01-04 18:40:28 +0200 1706 1707 Tests: Adjust style in test_compress.sh. 1708 1709 tests/test_compress.sh | 12 +++++++----- 1710 1 file changed, 7 insertions(+), 5 deletions(-) 1711 1712commit 761c208d58e0c3daa0f46e68b406adfc318d2a46 1713Author: Jia Tan <jiat0218@gmail.com> 1714Date: 2023-01-04 23:58:58 +0800 1715 1716 Tests: Replace non portable shell parameter expansion 1717 1718 The shell parameter expansion using # and ## is not supported in 1719 Solaris 10 Bourne shell (/bin/sh). Even though this is POSIX, it is not fully 1720 portable, so we should avoid it. 1721 1722 tests/create_compress_files.c | 2 +- 1723 tests/test_compress.sh | 20 +++++++++++++------- 1724 tests/test_compress_prepared_bcj_sparc | 2 +- 1725 tests/test_compress_prepared_bcj_x86 | 2 +- 1726 4 files changed, 16 insertions(+), 10 deletions(-) 1727 1728commit 8a7cbc074547e55e57f4f3696f69bedeb05e14c4 1729Author: Jia Tan <jiat0218@gmail.com> 1730Date: 2023-01-03 21:02:38 +0800 1731 1732 Translations: Add Korean translation of man pages. 1733 1734 Thanks to Seong-ho Cho 1735 1736 po4a/ko.po | 5552 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1737 po4a/po4a.conf | 2 +- 1738 2 files changed, 5553 insertions(+), 1 deletion(-) 1739 1740commit ca2af49bb8be5995eb0e6a3abf457622626d49a7 1741Author: Jia Tan <jiat0218@gmail.com> 1742Date: 2023-01-03 20:47:27 +0800 1743 1744 Translations: Update the Esperanto translation. 1745 1746 po/eo.po | 620 ++++++++++++++++++++++++++++++++++----------------------------- 1747 1 file changed, 332 insertions(+), 288 deletions(-) 1748 1749commit bfba3394aed03311fe9a746d3141b2e16d8b9325 1750Author: Lasse Collin <lasse.collin@tukaani.org> 1751Date: 2023-01-02 17:05:07 +0200 1752 1753 Build: Fix config.h comments. 1754 1755 configure.ac | 2 +- 1756 m4/tuklib_progname.m4 | 2 +- 1757 2 files changed, 2 insertions(+), 2 deletions(-) 1758 1759commit 507648ad114c2ae0cd6d181063e1ac07e8106718 1760Author: Jia Tan <jiat0218@gmail.com> 1761Date: 2023-01-02 22:33:48 +0800 1762 1763 Build: Only define HAVE_PROGRAM_INVOCATION_NAME if it is set to 1. 1764 1765 HAVE_DECL_PROGRAM_INVOCATION_NAME is renamed to 1766 HAVE_PROGRAM_INVOCATION_NAME. Previously, 1767 HAVE_DECL_PROGRAM_INVOCATION_NAME was always set when 1768 building with autotools. CMake would only set this when it was 1, and the 1769 dos/config.h did not define it. The new macro definition is consistent 1770 across build systems. 1771 1772 cmake/tuklib_progname.cmake | 5 ++--- 1773 m4/tuklib_progname.m4 | 5 ++++- 1774 src/common/tuklib_progname.c | 2 +- 1775 src/common/tuklib_progname.h | 2 +- 1776 4 files changed, 8 insertions(+), 6 deletions(-) 1777 1778commit ab5229d32adfec1f3fbc95228d9dd6f560732ab5 1779Author: Lasse Collin <lasse.collin@tukaani.org> 1780Date: 2022-12-30 20:10:08 +0200 1781 1782 Tests: test_check: Test corner cases of CLMUL CRC64. 1783 1784 tests/test_check.c | 27 +++++++++++++++++++++++++++ 1785 1 file changed, 27 insertions(+) 1786 1787commit 8791826f31733fda0a13b411c2ed930faaeb25aa 1788Author: Lasse Collin <lasse.collin@tukaani.org> 1789Date: 2022-12-30 19:36:49 +0200 1790 1791 Tests: Clarify a comment in test_lzip_decoder.c. 1792 1793 tests/test_lzip_decoder.c | 8 ++++++-- 1794 1 file changed, 6 insertions(+), 2 deletions(-) 1795 1796commit c410d812ea12bfc74f6b727c1a799478c79f19ca 1797Author: Jia Tan <jiat0218@gmail.com> 1798Date: 2022-12-29 01:55:19 +0800 1799 1800 xz: Includes <time.h> and <sys/time.h> conditionally in mytime.c. 1801 1802 Previously, mytime.c depended on mythread.h for <time.h> to be included. 1803 1804 src/xz/mytime.c | 4 +++- 1805 1 file changed, 3 insertions(+), 1 deletion(-) 1806 1807commit 501c6013d4a59fae5d4368e9657c4885493db809 1808Author: Jia Tan <jiat0218@gmail.com> 1809Date: 2022-12-29 01:15:27 +0800 1810 1811 liblzma: Includes sys/time.h conditionally in mythread 1812 1813 Previously, <sys/time.h> was always included, even if mythread only used 1814 clock_gettime. <time.h> is still needed even if clock_gettime is not used 1815 though because struct timespec is needed for mythread_condtime. 1816 1817 src/common/mythread.h | 8 +++++++- 1818 1 file changed, 7 insertions(+), 1 deletion(-) 1819 1820commit 9e3cb514b5b95bd235dcdff3db4436f57444ee4f 1821Author: Jia Tan <jiat0218@gmail.com> 1822Date: 2022-12-29 01:10:53 +0800 1823 1824 Build: No longer require HAVE_DECL_CLOCK_MONOTONIC to always be set. 1825 1826 Previously, if threading was enabled HAVE_DECL_CLOCK_MONOTONIC would always 1827 be set to 0 or 1. However, this macro was needed in xz so if xz was not 1828 built with threading and HAVE_DECL_CLOCK_MONOTONIC was not defined but 1829 HAVE_CLOCK_GETTIME was, it caused a warning during build. Now, 1830 HAVE_DECL_CLOCK_MONOTONIC has been renamed to HAVE_CLOCK_MONOTONIC and 1831 will only be set if it is 1. 1832 1833 CMakeLists.txt | 8 +++----- 1834 configure.ac | 5 ++++- 1835 src/common/mythread.h | 4 ++-- 1836 src/xz/mytime.c | 5 ++--- 1837 4 files changed, 11 insertions(+), 11 deletions(-) 1838 1839commit 6fc3e5467911572fa9af4021ea46396261aae796 1840Author: Jia Tan <jiat0218@gmail.com> 1841Date: 2022-12-28 01:14:07 +0800 1842 1843 Translations: Add Ukrainian translations of man pages. 1844 1845 Thanks to Yuri Chornoivan 1846 1847 po4a/po4a.conf | 2 +- 1848 po4a/uk.po | 3676 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1849 2 files changed, 3677 insertions(+), 1 deletion(-) 1850 1851commit e84f2ab7f8bc38cd8f8befa0bb398656c3c11f8e 1852Author: Jia Tan <jiat0218@gmail.com> 1853Date: 2022-12-22 23:14:53 +0800 1854 1855 liblzma: Update documentation for lzma_filter_encoder. 1856 1857 src/liblzma/common/filter_encoder.c | 7 +++++-- 1858 1 file changed, 5 insertions(+), 2 deletions(-) 1859 1860commit b14b8dbba9a3b232787ae218b46430b9246383dd 1861Author: Jia Tan <jiat0218@gmail.com> 1862Date: 2022-12-21 21:12:03 +0800 1863 1864 Tests: Adds lzip decoder tests 1865 1866 .gitignore | 1 + 1867 tests/Makefile.am | 2 + 1868 tests/test_lzip_decoder.c | 471 ++++++++++++++++++++++++++++++++++++++++++++++ 1869 3 files changed, 474 insertions(+) 1870 1871commit 09a114805e1d4f9a02a06cee7dbf2f5014d1f710 1872Author: Jia Cheong Tan <jiat0218@gmail.com> 1873Date: 2022-12-20 22:05:21 +0800 1874 1875 Doxygen: Update .gitignore for generating docs for in source build. 1876 1877 In source builds are not recommended, but we should still ignore 1878 the generated artifacts. 1879 1880 .gitignore | 2 ++ 1881 1 file changed, 2 insertions(+) 1882 1883commit d3e6fe44196bf9478ad193522e2b48febf2eca6b 1884Author: Jia Tan <jiat0218@gmail.com> 1885Date: 2022-12-20 20:46:44 +0800 1886 1887 liblzma: Fix lzma_microlzma_encoder() return value. 1888 1889 Using return_if_error on lzma_lzma_lclppb_encode was improper because 1890 return_if_error is expecting an lzma_ret value, but 1891 lzma_lzma_lclppb_encode returns a boolean. This could result in 1892 lzma_microlzma_encoder, which would be misleading for applications. 1893 1894 src/liblzma/common/microlzma_encoder.c | 3 ++- 1895 1 file changed, 2 insertions(+), 1 deletion(-) 1896 1897commit b55a27b46f52524a4a8d9cdef03e6689cefc1375 1898Author: Lasse Collin <lasse.collin@tukaani.org> 1899Date: 2022-12-16 18:30:02 +0200 1900 1901 liblzma: Update authors list in arm64.c. 1902 1903 src/liblzma/simple/arm64.c | 1 + 1904 1 file changed, 1 insertion(+) 1905 1906commit 2fd28d2b7cec3468324a6f15eff7e73c285b1d7d 1907Author: Jia Tan <jiat0218@gmail.com> 1908Date: 2022-12-16 20:58:55 +0800 1909 1910 CMake: Update .gitignore for CMake artifacts from in source build. 1911 1912 In source builds are not recommended, but we can make it easier 1913 by ignoring the generated artifacts from CMake. 1914 1915 .gitignore | 23 +++++++++++++++++++++++ 1916 1 file changed, 23 insertions(+) 1917 1918commit b69da6d4bb6bb11fc0cf066920791990d2b22a06 1919Author: Lasse Collin <lasse.collin@tukaani.org> 1920Date: 2022-12-13 20:37:17 +0200 1921 1922 Bump version to 5.4.0 and soname to 5.4.0. 1923 1924 src/liblzma/Makefile.am | 2 +- 1925 src/liblzma/api/lzma/version.h | 6 +++--- 1926 src/liblzma/liblzma_generic.map | 2 +- 1927 src/liblzma/liblzma_linux.map | 2 +- 1928 4 files changed, 6 insertions(+), 6 deletions(-) 1929 1930commit 20869eb3fb280ff4f271ef527b12b6bf68b05e19 1931Author: Lasse Collin <lasse.collin@tukaani.org> 1932Date: 2022-12-13 20:29:39 +0200 1933 1934 Update INSTALL: CMake on Windows isn't experimental anymore. 1935 1936 Using CMake to build liblzma should work on a few other OSes 1937 but building the command line tools is still subtly broken. 1938 1939 It is known that shared library versioning may differ between 1940 CMake and Libtool builds on some OSes, most notably Darwin. 1941 1942 INSTALL | 10 ++++------ 1943 1 file changed, 4 insertions(+), 6 deletions(-) 1944 1945commit cbbd84451944e3e8c63acfaa3c923f6d8aff7852 1946Author: Lasse Collin <lasse.collin@tukaani.org> 1947Date: 2022-12-13 19:47:53 +0200 1948 1949 Add NEWS for 5.4.0. 1950 1951 NEWS | 202 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1952 1 file changed, 202 insertions(+) 1953 1954commit c3e94d37e8d10a3e96019864b6f5d7b578db2c14 1955Author: Lasse Collin <lasse.collin@tukaani.org> 1956Date: 2022-12-13 17:41:20 +0200 1957 1958 Fix a typo in NEWS. 1959 1960 NEWS | 2 +- 1961 1 file changed, 1 insertion(+), 1 deletion(-) 1962 1963commit 0d2a2e0a545c3da2b3e9500f1e531eb903087245 1964Author: Lasse Collin <lasse.collin@tukaani.org> 1965Date: 2022-12-13 17:41:03 +0200 1966 1967 Add NEWS for 5.2.10. 1968 1969 NEWS | 12 ++++++++++++ 1970 1 file changed, 12 insertions(+) 1971 1972commit 177ece1c8eb007188fb1b04eff09ca2193fbdea6 1973Author: Lasse Collin <lasse.collin@tukaani.org> 1974Date: 2022-12-13 12:30:45 +0200 1975 1976 Tests: Fix a typo in tests/files/README. 1977 1978 tests/files/README | 2 +- 1979 1 file changed, 1 insertion(+), 1 deletion(-) 1980 1981commit 60f45bdbaa6b07558b3f4baac285739b0c6342f5 1982Author: Lasse Collin <lasse.collin@tukaani.org> 1983Date: 2022-12-13 12:30:09 +0200 1984 1985 Tests: Add two ARM64 test files. 1986 1987 tests/files/README | 7 +++++++ 1988 tests/files/good-1-arm64-lzma2-1.xz | Bin 0 -> 512 bytes 1989 tests/files/good-1-arm64-lzma2-2.xz | Bin 0 -> 488 bytes 1990 tests/test_files.sh | 5 +++++ 1991 4 files changed, 12 insertions(+) 1992 1993commit f5e419550619c548c7c35d7e367cf00580a56521 1994Author: Lasse Collin <lasse.collin@tukaani.org> 1995Date: 2022-12-12 22:44:21 +0200 1996 1997 Translations: Update the Catalan translation. 1998 1999 po/ca.po | 657 +++++++++++++++++++++++++++++---------------------------------- 2000 1 file changed, 306 insertions(+), 351 deletions(-) 2001 2002commit 0fb9d355da3789b1757040af475b4e6bbc8b8af8 2003Author: Lasse Collin <lasse.collin@tukaani.org> 2004Date: 2022-12-12 19:18:12 +0200 2005 2006 Update THANKS. 2007 2008 THANKS | 1 + 2009 1 file changed, 1 insertion(+) 2010 2011commit e5b6c161c61a37c54dcb76a99bbb83ac4abe02dc 2012Author: Lasse Collin <lasse.collin@tukaani.org> 2013Date: 2022-12-12 19:07:58 +0200 2014 2015 Update AUTHORS. 2016 2017 AUTHORS | 12 ++++++++++++ 2018 1 file changed, 12 insertions(+) 2019 2020commit f2d98e691099d82054d5f3071ef6f5e809932e44 2021Author: Lasse Collin <lasse.collin@tukaani.org> 2022Date: 2022-12-12 15:31:14 +0200 2023 2024 Docs: Omit multi-threaded decompress from TODO. 2025 2026 The TODO file outdated still. 2027 2028 TODO | 2 -- 2029 1 file changed, 2 deletions(-) 2030 2031commit b42908c42a4cc091db45a7e5ba0e0ecceaa3f6da 2032Author: Lasse Collin <lasse.collin@tukaani.org> 2033Date: 2022-12-11 21:16:09 +0200 2034 2035 Docs: Update xz-file-format.txt to 1.1.0 for ARM64 filter. 2036 2037 doc/xz-file-format.txt | 29 ++++++++++++++++++++++------- 2038 1 file changed, 22 insertions(+), 7 deletions(-) 2039 2040commit 854f2f5946b353cb0963fd6dfd54d363adc89b9f 2041Author: Lasse Collin <lasse.collin@tukaani.org> 2042Date: 2022-12-11 21:13:57 +0200 2043 2044 xz: Rename --experimental-arm64 to --arm64. 2045 2046 src/xz/args.c | 2 +- 2047 1 file changed, 1 insertion(+), 1 deletion(-) 2048 2049commit 31dbd1e5fb65831915a7bbb531c3f19aea8d57a5 2050Author: Lasse Collin <lasse.collin@tukaani.org> 2051Date: 2022-12-11 21:13:06 +0200 2052 2053 liblzma: Change LZMA_FILTER_ARM64 to the official Filter ID 0x0A. 2054 2055 src/liblzma/api/lzma/bcj.h | 6 +----- 2056 1 file changed, 1 insertion(+), 5 deletions(-) 2057 2058commit 01b3549e523edac899ec4925b282ceddd20da116 2059Author: Lasse Collin <lasse.collin@tukaani.org> 2060Date: 2022-12-08 19:24:22 +0200 2061 2062 xz: Make args_info.files_name a const pointer. 2063 2064 src/xz/args.c | 2 +- 2065 src/xz/args.h | 2 +- 2066 2 files changed, 2 insertions(+), 2 deletions(-) 2067 2068commit bc665b84ea6bf7946394a08122177efe41b26a5f 2069Author: Lasse Collin <lasse.collin@tukaani.org> 2070Date: 2022-12-08 19:18:16 +0200 2071 2072 xz: Don't modify argv[]. 2073 2074 The code that parses --memlimit options and --block-list modified 2075 the argv[] when parsing the option string from optarg. This was 2076 visible in "ps auxf" and such and could be confusing. I didn't 2077 understand it back in the day when I wrote that code. Now a copy 2078 is allocated when modifiable strings are needed. 2079 2080 src/xz/args.c | 23 +++++++++++++++++++---- 2081 1 file changed, 19 insertions(+), 4 deletions(-) 2082 2083commit a13064e1c290de7933db72b6dffbd65cfce59c9f 2084Author: Lasse Collin <lasse.collin@tukaani.org> 2085Date: 2022-12-08 18:18:57 +0200 2086 2087 Translations: Update the German man page translations. 2088 2089 po4a/de.po | 4570 ++++++++++++++++++------------------------------------------ 2090 1 file changed, 1374 insertions(+), 3196 deletions(-) 2091 2092commit 8bdbe42a8d0d75dff70206b923fc4bce5c69a40a 2093Author: Jia Tan <jiat0218@gmail.com> 2094Date: 2022-12-06 23:05:56 +0800 2095 2096 Translations: Update the German translation. 2097 2098 po/de.po | 586 ++++++++++++++++++++++++++++++++++----------------------------- 2099 1 file changed, 315 insertions(+), 271 deletions(-) 2100 2101commit 5c304b57c24ef40ff57f864301065f0244c05bde 2102Author: Jia Tan <jiat0218@gmail.com> 2103Date: 2022-12-06 23:04:25 +0800 2104 2105 Translations: Update the Turkish translation. 2106 2107 po/tr.po | 221 +++++++++++++++++++++++++++++++-------------------------------- 2108 1 file changed, 108 insertions(+), 113 deletions(-) 2109 2110commit 6d86781fdb937970486500447ebb49b98244235b 2111Author: Jia Tan <jiat0218@gmail.com> 2112Date: 2022-12-06 23:02:11 +0800 2113 2114 Translations: Update the Croatian translation. 2115 2116 po/hr.po | 228 +++++++++++++++++++++++++++++++-------------------------------- 2117 1 file changed, 113 insertions(+), 115 deletions(-) 2118 2119commit 7a5b4b8075eb36026b1796f04ffed5830c42396a 2120Author: Jia Tan <jiat0218@gmail.com> 2121Date: 2022-12-06 22:56:30 +0800 2122 2123 Translations: Add Romanian translation of man pages. 2124 2125 Thanks to Remus-Gabriel Chelu. 2126 2127 po4a/po4a.conf | 2 +- 2128 po4a/ro.po | 3692 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2129 2 files changed, 3693 insertions(+), 1 deletion(-) 2130 2131commit c6977e7400088177556e8771bcb839eb7d90caa3 2132Author: Jia Tan <jiat0218@gmail.com> 2133Date: 2022-12-06 22:52:13 +0800 2134 2135 Translations: Update the Romanian translation. 2136 2137 po/ro.po | 294 +++++++++++++++++++++++++++++++-------------------------------- 2138 1 file changed, 147 insertions(+), 147 deletions(-) 2139 2140commit ac2a747e939c2cbccff7a49c399769af5e02d2ab 2141Author: Lasse Collin <lasse.collin@tukaani.org> 2142Date: 2022-12-08 17:30:09 +0200 2143 2144 liblzma: Check for unexpected NULL pointers in block_header_decode(). 2145 2146 The API docs gave an impression that such checks are done 2147 but they actually weren't done. In practice it made little 2148 difference since the calling code has a bug if these are NULL. 2149 2150 Thanks to Jia Tan for the original patch that checked for 2151 block->filters == NULL. 2152 2153 src/liblzma/common/block_header_decoder.c | 4 ++++ 2154 1 file changed, 4 insertions(+) 2155 2156commit 24790f49ae66938c1c7574315e1c0aba1ed5ed25 2157Author: Lasse Collin <lasse.collin@tukaani.org> 2158Date: 2022-12-01 20:59:32 +0200 2159 2160 Bump version number for 5.3.5beta. 2161 2162 This also sorts the symbol names alphabetically in liblzma_*.map. 2163 2164 src/liblzma/api/lzma/version.h | 4 ++-- 2165 src/liblzma/liblzma_generic.map | 10 +++++----- 2166 src/liblzma/liblzma_linux.map | 10 +++++----- 2167 3 files changed, 12 insertions(+), 12 deletions(-) 2168 2169commit 7e53c5bcb3c2c17f47c096c06ff6b1481e6ecafa 2170Author: Lasse Collin <lasse.collin@tukaani.org> 2171Date: 2022-12-01 20:57:26 +0200 2172 2173 Add NEWS for 5.3.5beta. 2174 2175 NEWS | 43 +++++++++++++++++++++++++++++++++++++++++++ 2176 1 file changed, 43 insertions(+) 2177 2178commit 5865f2aaac326fcbd9f8a7d62defa230e4cb644e 2179Author: Lasse Collin <lasse.collin@tukaani.org> 2180Date: 2022-12-01 20:57:09 +0200 2181 2182 Update THANKS. 2183 2184 THANKS | 3 +++ 2185 1 file changed, 3 insertions(+) 2186 2187commit 62b270988ec67314d69976df484d2974c6eacfda 2188Author: Lasse Collin <lasse.collin@tukaani.org> 2189Date: 2022-12-01 20:04:17 +0200 2190 2191 liblzma: Use __has_attribute(__symver__) to fix Clang detection. 2192 2193 If someone sets up Clang to define __GNUC__ to 10 or greater 2194 then symvers broke. __has_attribute is supported by such GCC 2195 and Clang versions that don't support __symver__ so this should 2196 be much better and simpler way to detect if __symver__ is 2197 actually supported. 2198 2199 Thanks to Tomasz Gajc for the bug report. 2200 2201 src/liblzma/common/common.h | 15 ++++++++++++++- 2202 1 file changed, 14 insertions(+), 1 deletion(-) 2203 2204commit f9ca7d45162664ddd9fb70e19335c2426e5d75bb 2205Author: Lasse Collin <lasse.collin@tukaani.org> 2206Date: 2022-12-01 18:51:52 +0200 2207 2208 liblzma: Omit zero-skipping from ARM64 filter. 2209 2210 It has some complicated downsides and its usefulness is more limited 2211 than I originally thought. So this change is bad for certain very 2212 specific situations but a generic solution that works for other 2213 filters (and is otherwise better too) is planned anyway. And this 2214 way 7-Zip can use the same compatible filter for the .7z format. 2215 2216 This is still marked as experimental with a new temporary Filter ID. 2217 2218 src/liblzma/api/lzma/bcj.h | 2 +- 2219 src/liblzma/simple/arm64.c | 81 +++++++++++++--------------------------------- 2220 2 files changed, 24 insertions(+), 59 deletions(-) 2221 2222commit 5baec3f0a9c85e6abf45c0f652f699b074129a8b 2223Author: Lasse Collin <lasse.collin@tukaani.org> 2224Date: 2022-12-01 18:13:27 +0200 2225 2226 xz: Omit the special notes about ARM64 filter on the man page. 2227 2228 src/xz/xz.1 | 5 ++--- 2229 1 file changed, 2 insertions(+), 3 deletions(-) 2230 2231commit 0c3627b51862eb0dcdd4fc283d046250571991c6 2232Author: Lasse Collin <lasse.collin@tukaani.org> 2233Date: 2022-12-01 18:12:03 +0200 2234 2235 liblzma: Don't be over-specific in lzma_str_to_filters API doc. 2236 2237 src/liblzma/api/lzma/filter.h | 3 +-- 2238 1 file changed, 1 insertion(+), 2 deletions(-) 2239 2240commit 94adf057f27b1970f493dc99cd166407d7255639 2241Author: Lasse Collin <lasse.collin@tukaani.org> 2242Date: 2022-12-01 17:54:23 +0200 2243 2244 liblzma: Silence unused variable warning when BCJ filters are disabled. 2245 2246 Thanks to Jia Tan for the original patch. 2247 2248 src/liblzma/common/string_conversion.c | 15 +++++++++++++++ 2249 1 file changed, 15 insertions(+) 2250 2251commit c68af4441744e5ffc41a472e1be9c9d53a1d9780 2252Author: Lasse Collin <lasse.collin@tukaani.org> 2253Date: 2022-12-01 17:38:03 +0200 2254 2255 Translations: Update the Chinese (simplified) translation. 2256 2257 po/zh_CN.po | 608 ++++++++++++++++++++++++++++++++++-------------------------- 2258 1 file changed, 348 insertions(+), 260 deletions(-) 2259 2260commit 3be6942e5c27d29995d41da52fbe274e4ce4a537 2261Author: Lasse Collin <lasse.collin@tukaani.org> 2262Date: 2022-11-30 18:55:03 +0200 2263 2264 Add NEWS for 5.2.9. 2265 2266 NEWS | 34 ++++++++++++++++++++++++++++++++++ 2267 1 file changed, 34 insertions(+) 2268 2269commit 7c16e312cb2f40b81154c0e5be13a3c6b8da485d 2270Author: Jia Tan <jiat0218@gmail.com> 2271Date: 2022-11-30 23:33:08 +0800 2272 2273 xz: Remove message_filters_to_str function prototype from message.h. 2274 2275 This was forgotten from 7484744af6cbabe81e92af7d9e061dfd597fff7b. 2276 2277 src/xz/message.h | 16 ---------------- 2278 1 file changed, 16 deletions(-) 2279 2280commit 764955e2d4f2a5e8d6d6fec63af694f799e050e7 2281Author: Lasse Collin <lasse.collin@tukaani.org> 2282Date: 2022-11-30 18:08:34 +0200 2283 2284 Change the bug report address. 2285 2286 It forwards to me and Jia Tan. 2287 2288 Also update the IRC reference in README as #tukaani was moved 2289 to Libera Chat long ago. 2290 2291 CMakeLists.txt | 2 +- 2292 README | 11 +++++------ 2293 configure.ac | 2 +- 2294 dos/config.h | 2 +- 2295 windows/README-Windows.txt | 2 +- 2296 5 files changed, 9 insertions(+), 10 deletions(-) 2297 2298commit c21983c76031e01da01ad3c6cc716fe4b8a75070 2299Author: Lasse Collin <lasse.collin@tukaani.org> 2300Date: 2022-11-30 17:50:17 +0200 2301 2302 Build: Add string_conversion.c to CMake, DOS, and VS files. 2303 2304 CMakeLists.txt | 1 + 2305 dos/Makefile | 1 + 2306 windows/vs2013/liblzma.vcxproj | 1 + 2307 windows/vs2013/liblzma_dll.vcxproj | 1 + 2308 windows/vs2017/liblzma.vcxproj | 1 + 2309 windows/vs2017/liblzma_dll.vcxproj | 1 + 2310 windows/vs2019/liblzma.vcxproj | 1 + 2311 windows/vs2019/liblzma_dll.vcxproj | 1 + 2312 8 files changed, 8 insertions(+) 2313 2314commit 30be0c35d24eb5175459d69dbf7d92e2b087ef82 2315Author: Lasse Collin <lasse.collin@tukaani.org> 2316Date: 2022-11-30 17:38:32 +0200 2317 2318 Update to HTTPS URLs in AUTHORS. 2319 2320 AUTHORS | 6 +++--- 2321 1 file changed, 3 insertions(+), 3 deletions(-) 2322 2323commit 0a72b9ca2fe20082da9b7128fe0d908af947a851 2324Author: Jia Tan <jiat0218@gmail.com> 2325Date: 2022-11-30 00:52:06 +0800 2326 2327 liblzma: Improve documentation for string to filter functions. 2328 2329 src/liblzma/api/lzma/filter.h | 17 +++++++++-------- 2330 1 file changed, 9 insertions(+), 8 deletions(-) 2331 2332commit a6e21fcede3b196160a52dd294d965c508a4bb33 2333Author: Lasse Collin <lasse.collin@tukaani.org> 2334Date: 2022-11-29 22:27:42 +0200 2335 2336 liblzma: Two fixes to lzma_str_list_filters() API docs. 2337 2338 Thanks to Jia Tan. 2339 2340 src/liblzma/api/lzma/filter.h | 6 +++--- 2341 1 file changed, 3 insertions(+), 3 deletions(-) 2342 2343commit 7484744af6cbabe81e92af7d9e061dfd597fff7b 2344Author: Lasse Collin <lasse.collin@tukaani.org> 2345Date: 2022-11-28 21:57:47 +0200 2346 2347 xz: Use lzma_str_from_filters(). 2348 2349 Two uses: Displaying encoder filter chain when compressing with -vv, 2350 and displaying the decoder filter chain in --list -vv. 2351 2352 src/xz/list.c | 28 ++++++--- 2353 src/xz/message.c | 175 +++---------------------------------------------------- 2354 2 files changed, 28 insertions(+), 175 deletions(-) 2355 2356commit cedeeca2ea6ada5b0411b2ae10d7a859e837f203 2357Author: Lasse Collin <lasse.collin@tukaani.org> 2358Date: 2022-11-28 21:37:48 +0200 2359 2360 liblzma: Add lzma_str_to_filters, _from_filters, and _list_filters. 2361 2362 lzma_str_to_filters() uses static error messages which makes 2363 them not very precise. It tells the position in the string 2364 where an error occurred though which helps quite a bit if 2365 applications take advantage of it. Dynamic error messages can 2366 be added later with a new flag if it seems important enough. 2367 2368 src/liblzma/api/lzma/filter.h | 258 +++++++ 2369 src/liblzma/common/Makefile.inc | 1 + 2370 src/liblzma/common/string_conversion.c | 1302 ++++++++++++++++++++++++++++++++ 2371 src/liblzma/liblzma_generic.map | 3 + 2372 src/liblzma/liblzma_linux.map | 3 + 2373 5 files changed, 1567 insertions(+) 2374 2375commit 072ebf7b1335421193ffa9d4a70d5533786b8995 2376Author: Lasse Collin <lasse.collin@tukaani.org> 2377Date: 2022-11-28 21:02:19 +0200 2378 2379 liblzma: Make lzma_validate_chain() available outside filter_common.c. 2380 2381 src/liblzma/common/filter_common.c | 8 ++++---- 2382 src/liblzma/common/filter_common.h | 3 +++ 2383 2 files changed, 7 insertions(+), 4 deletions(-) 2384 2385commit 5f22bd2d37e3bd01a5d701b51750eb51f09c11bf 2386Author: Lasse Collin <lasse.collin@tukaani.org> 2387Date: 2022-11-28 10:51:03 +0200 2388 2389 liblzma: Remove lzma_lz_decoder_uncompressed() as it's now unused. 2390 2391 src/liblzma/lz/lz_decoder.c | 14 -------------- 2392 src/liblzma/lz/lz_decoder.h | 3 --- 2393 2 files changed, 17 deletions(-) 2394 2395commit cee83206465b95729ab649aa2f57fdbde8dcaf89 2396Author: Lasse Collin <lasse.collin@tukaani.org> 2397Date: 2022-11-28 10:48:53 +0200 2398 2399 liblzma: Use LZMA1EXT feature in lzma_microlzma_decoder(). 2400 2401 Here too this avoids the slightly ugly method to set 2402 the uncompressed size. 2403 2404 Also moved the setting of dict_size to the struct initializer. 2405 2406 src/liblzma/common/microlzma_decoder.c | 15 ++++++++------- 2407 1 file changed, 8 insertions(+), 7 deletions(-) 2408 2409commit e310e8b6a490dfb468f4ed68feff246d776b323c 2410Author: Lasse Collin <lasse.collin@tukaani.org> 2411Date: 2022-11-28 10:28:20 +0200 2412 2413 liblzma: Use LZMA1EXT feature in lzma_alone_decoder(). 2414 2415 This avoids the need to use the slightly ugly method to 2416 set the uncompressed size. 2417 2418 src/liblzma/common/alone_decoder.c | 18 +++++++++++++----- 2419 1 file changed, 13 insertions(+), 5 deletions(-) 2420 2421commit 33b8a24b6646a9dbfd8358405aec466b13078559 2422Author: Lasse Collin <lasse.collin@tukaani.org> 2423Date: 2022-11-27 23:16:21 +0200 2424 2425 liblzma: Add LZMA_FILTER_LZMA1EXT to support LZMA1 without end marker. 2426 2427 Some file formats need support for LZMA1 streams that don't use 2428 the end of payload marker (EOPM) alias end of stream (EOS) marker. 2429 So far liblzma API has supported decompressing such streams via 2430 lzma_alone_decoder() when .lzma header specifies a known 2431 uncompressed size. Encoding support hasn't been available in the API. 2432 2433 Instead of adding a new LZMA1-only API for this purpose, this commit 2434 adds a new filter ID for use with raw encoder and decoder. The main 2435 benefit of this approach is that then also filter chains are possible, 2436 for example, if someone wants to implement support for .7z files that 2437 use the x86 BCJ filter with LZMA1 (not BCJ2 as that isn't supported 2438 in liblzma). 2439 2440 src/liblzma/api/lzma/lzma12.h | 123 ++++++++++++++++++++++++++++++-- 2441 src/liblzma/common/filter_common.c | 7 ++ 2442 src/liblzma/common/filter_decoder.c | 6 ++ 2443 src/liblzma/common/filter_encoder.c | 9 +++ 2444 src/liblzma/lzma/lzma2_encoder.c | 2 +- 2445 src/liblzma/lzma/lzma_decoder.c | 26 ++++++- 2446 src/liblzma/lzma/lzma_encoder.c | 40 +++++++++-- 2447 src/liblzma/lzma/lzma_encoder.h | 3 +- 2448 src/liblzma/lzma/lzma_encoder_private.h | 3 + 2449 9 files changed, 204 insertions(+), 15 deletions(-) 2450 2451commit 9a304bf1e45b3ddf61aaeaa7c764915b34618ede 2452Author: Lasse Collin <lasse.collin@tukaani.org> 2453Date: 2022-11-27 18:43:07 +0200 2454 2455 liblzma: Avoid unneeded use of void pointer in LZMA decoder. 2456 2457 src/liblzma/lzma/lzma_decoder.c | 3 +-- 2458 src/liblzma/lzma/lzma_decoder.h | 2 +- 2459 2 files changed, 2 insertions(+), 3 deletions(-) 2460 2461commit 218394958c7683f892275bb40eae880620feebcc 2462Author: Lasse Collin <lasse.collin@tukaani.org> 2463Date: 2022-11-27 18:20:33 +0200 2464 2465 liblzma: Pass the Filter ID to LZ encoder and decoder. 2466 2467 This allows using two Filter IDs with the same 2468 initialization function and data structures. 2469 2470 src/liblzma/common/alone_decoder.c | 1 + 2471 src/liblzma/common/alone_encoder.c | 1 + 2472 src/liblzma/common/common.h | 7 +++++-- 2473 src/liblzma/common/lzip_decoder.c | 1 + 2474 src/liblzma/common/microlzma_decoder.c | 1 + 2475 src/liblzma/common/microlzma_encoder.c | 1 + 2476 src/liblzma/lz/lz_decoder.c | 5 +++-- 2477 src/liblzma/lz/lz_decoder.h | 3 ++- 2478 src/liblzma/lz/lz_encoder.c | 5 +++-- 2479 src/liblzma/lz/lz_encoder.h | 3 ++- 2480 src/liblzma/lzma/lzma2_decoder.c | 3 ++- 2481 src/liblzma/lzma/lzma2_encoder.c | 3 ++- 2482 src/liblzma/lzma/lzma_decoder.c | 2 +- 2483 src/liblzma/lzma/lzma_encoder.c | 2 +- 2484 14 files changed, 26 insertions(+), 12 deletions(-) 2485 2486commit 1663c7676b76f4c514031797f3db1896e8100f7f 2487Author: Lasse Collin <lasse.collin@tukaani.org> 2488Date: 2022-11-27 01:03:16 +0200 2489 2490 liblzma: Remove two FIXME comments. 2491 2492 src/liblzma/common/filter_encoder.c | 4 ++-- 2493 1 file changed, 2 insertions(+), 2 deletions(-) 2494 2495commit 11fe708db783ac36ebeeb85da164e29e8c300910 2496Author: Lasse Collin <lasse.collin@tukaani.org> 2497Date: 2022-11-26 22:25:30 +0200 2498 2499 xz: Use lzma_filters_free(). 2500 2501 src/xz/list.c | 8 ++------ 2502 1 file changed, 2 insertions(+), 6 deletions(-) 2503 2504commit e782af9110d8499c7ac2929bc871540eefea5ea1 2505Author: Lasse Collin <lasse.collin@tukaani.org> 2506Date: 2022-11-26 22:21:13 +0200 2507 2508 liblzma: Use lzma_filters_free() in more places. 2509 2510 src/liblzma/common/block_header_decoder.c | 20 ++------------------ 2511 src/liblzma/common/stream_decoder.c | 4 +--- 2512 src/liblzma/common/stream_decoder_mt.c | 22 +++++----------------- 2513 3 files changed, 8 insertions(+), 38 deletions(-) 2514 2515commit 90caaded2dc6db1d6a55b01160d7e87f4a423628 2516Author: Lasse Collin <lasse.collin@tukaani.org> 2517Date: 2022-11-25 18:04:37 +0200 2518 2519 liblzma: Omit simple coder init functions if they are disabled. 2520 2521 src/liblzma/simple/arm.c | 4 ++++ 2522 src/liblzma/simple/armthumb.c | 4 ++++ 2523 src/liblzma/simple/ia64.c | 4 ++++ 2524 src/liblzma/simple/powerpc.c | 4 ++++ 2525 src/liblzma/simple/sparc.c | 4 ++++ 2526 src/liblzma/simple/x86.c | 4 ++++ 2527 6 files changed, 24 insertions(+) 2528 2529commit 5cd9f0df78cc4f8a7807bf6104adea13034fbb45 2530Author: Lasse Collin <lasse.collin@tukaani.org> 2531Date: 2022-11-24 23:24:59 +0200 2532 2533 xz: Allow nice_len 2 and 3 even if match finder requires 3 or 4. 2534 2535 Now that liblzma accepts these, we avoid the extra check and 2536 there's one message less for translators too. 2537 2538 src/xz/options.c | 5 ----- 2539 1 file changed, 5 deletions(-) 2540 2541commit 3be88ae071371caa279b44e13f4836fb178fe4ae 2542Author: Lasse Collin <lasse.collin@tukaani.org> 2543Date: 2022-11-24 23:23:55 +0200 2544 2545 liblzma: Allow nice_len 2 and 3 even if match finder requires 3 or 4. 2546 2547 That is, if the specified nice_len is smaller than the minimum 2548 of the match finder, silently use the match finder's minimum value 2549 instead of reporting an error. The old behavior is annoying to users 2550 and it complicates xz options handling too. 2551 2552 src/liblzma/lz/lz_encoder.c | 14 +++++++++----- 2553 src/liblzma/lz/lz_encoder.h | 9 +++++++++ 2554 src/liblzma/lzma/lzma_encoder.c | 11 ++++++++--- 2555 3 files changed, 26 insertions(+), 8 deletions(-) 2556 2557commit 93439cfafe1768b3b18d67d2356ef7e7559bba59 2558Author: Lasse Collin <lasse.collin@tukaani.org> 2559Date: 2022-11-24 16:25:10 +0200 2560 2561 liblzma: Add lzma_filters_update() support to the multi-threaded encoder. 2562 2563 A tiny downside of this is that now a 1-4 tiny allocations are made 2564 for every Block because each worker thread needs its own copy of 2565 the filter chain. 2566 2567 src/liblzma/api/lzma/filter.h | 36 +++++++------ 2568 src/liblzma/common/stream_encoder_mt.c | 96 +++++++++++++++++++++++++++++++--- 2569 2 files changed, 109 insertions(+), 23 deletions(-) 2570 2571commit 17ac51e689794eb41cab3e80946fec689caea2d2 2572Author: Lasse Collin <lasse.collin@tukaani.org> 2573Date: 2022-11-24 14:53:22 +0200 2574 2575 Update THANKS. 2576 2577 THANKS | 1 + 2578 1 file changed, 1 insertion(+) 2579 2580commit 06824396b2b6c84f3a235cb7c19c2a9701167797 2581Author: Lasse Collin <lasse.collin@tukaani.org> 2582Date: 2022-11-24 14:52:44 +0200 2583 2584 Build: Don't put GNU/Linux-specific symbol versions into static liblzma. 2585 2586 It not only makes no sense to put symbol versions into a static library 2587 but it can also cause breakage. 2588 2589 By default Libtool #defines PIC if building a shared library and 2590 doesn't define it for static libraries. This is documented in the 2591 Libtool manual. It can be overriden using --with-pic or --without-pic. 2592 configure.ac detects if --with-pic or --without-pic is used and then 2593 gives an error if neither --disable-shared nor --disable-static was 2594 used at the same time. Thus, in normal situations it works to build 2595 both shared and static library at the same time on GNU/Linux, 2596 only --with-pic or --without-pic requires that only one type of 2597 library is built. 2598 2599 Thanks to John Paul Adrian Glaubitz from Debian for reporting 2600 the problem that occurred on ia64: 2601 https://www.mail-archive.com/xz-devel@tukaani.org/msg00610.html 2602 2603 CMakeLists.txt | 5 +- 2604 configure.ac | 143 +++++++++++++++++++++++++++++--------------- 2605 src/liblzma/common/common.h | 12 ++++ 2606 3 files changed, 111 insertions(+), 49 deletions(-) 2607 2608commit e1acf7107291f8b3d6d609a7133331ff36d35d14 2609Author: Lasse Collin <lasse.collin@tukaani.org> 2610Date: 2022-11-24 01:32:16 +0200 2611 2612 liblzma: Refactor to use lzma_filters_free(). 2613 2614 lzma_filters_free() sets the options to NULL and ids to 2615 LZMA_VLI_UNKNOWN so there is no need to do it by caller; 2616 the filter arrays will always be left in a safe state. 2617 2618 Also use memcpy() instead of a loop to copy a filter chain 2619 when it is known to be safe to copy LZMA_FILTERS_MAX + 1 2620 (even if the elements past the terminator might be uninitialized). 2621 2622 src/liblzma/common/stream_encoder.c | 16 ++++------------ 2623 src/liblzma/common/stream_encoder_mt.c | 11 ++--------- 2624 2 files changed, 6 insertions(+), 21 deletions(-) 2625 2626commit cb05dbcf8b868441ec805016222f3fd77f1c5caa 2627Author: Lasse Collin <lasse.collin@tukaani.org> 2628Date: 2022-11-24 01:26:37 +0200 2629 2630 liblzma: Fix another invalid free() after memory allocation failure. 2631 2632 This time it can happen when lzma_stream_encoder_mt() is used 2633 to reinitialize an existing multi-threaded Stream encoder 2634 and one of 1-4 tiny allocations in lzma_filters_copy() fail. 2635 2636 It's very similar to the previous bug 2637 10430fbf3820dafd4eafd38ec8be161a6978ed2b, happening with 2638 an array of lzma_filter structures whose old options are freed 2639 but the replacement never arrives due to a memory allocation 2640 failure in lzma_filters_copy(). 2641 2642 src/liblzma/common/stream_encoder_mt.c | 4 ++++ 2643 1 file changed, 4 insertions(+) 2644 2645commit 75f1a6c26df4ce329da0882786403e3ccf5cd898 2646Author: Jia Tan <jiat0218@gmail.com> 2647Date: 2022-05-05 20:53:42 +0800 2648 2649 liblzma: Add support for LZMA_SYNC_FLUSH in the Block encoder. 2650 2651 The documentation mentions that lzma_block_encoder() supports 2652 LZMA_SYNC_FLUSH but it was never added to supported_actions[] 2653 in the internal structure. Because of this, LZMA_SYNC_FLUSH could 2654 not be used with the Block encoder unless it was the next coder 2655 after something like stream_encoder() or stream_encoder_mt(). 2656 2657 src/liblzma/common/block_encoder.c | 1 + 2658 1 file changed, 1 insertion(+) 2659 2660commit d0901645170b638c517f5c50866b6ef48f491c65 2661Author: Lasse Collin <lasse.collin@tukaani.org> 2662Date: 2022-11-24 01:02:50 +0200 2663 2664 liblzma: Add new API function lzma_filters_free(). 2665 2666 This is small but convenient and should have been added 2667 a long time ago. 2668 2669 src/liblzma/api/lzma/filter.h | 21 +++++++++++++++++++++ 2670 src/liblzma/common/filter_common.c | 26 ++++++++++++++++++++++++++ 2671 src/liblzma/liblzma_generic.map | 1 + 2672 src/liblzma/liblzma_linux.map | 1 + 2673 4 files changed, 49 insertions(+) 2674 2675commit ae1f8a723dcde2f2c5cf444bcbb5fc5026b3c3c5 2676Author: Lasse Collin <lasse.collin@tukaani.org> 2677Date: 2022-11-24 00:02:31 +0200 2678 2679 CMake: Don't use symbol versioning with static library. 2680 2681 CMakeLists.txt | 10 +++++++--- 2682 1 file changed, 7 insertions(+), 3 deletions(-) 2683 2684commit 48c1b99dc537a27e1ca929d8837e778e5ba32191 2685Author: Lasse Collin <lasse.collin@tukaani.org> 2686Date: 2022-11-23 21:55:22 +0200 2687 2688 liblzma: Add lzma_attr_warn_unused_result to lzma_filters_copy(). 2689 2690 src/liblzma/api/lzma/filter.h | 3 ++- 2691 1 file changed, 2 insertions(+), 1 deletion(-) 2692 2693commit 10430fbf3820dafd4eafd38ec8be161a6978ed2b 2694Author: Lasse Collin <lasse.collin@tukaani.org> 2695Date: 2022-11-23 21:26:21 +0200 2696 2697 liblzma: Fix invalid free() after memory allocation failure. 2698 2699 The bug was in the single-threaded .xz Stream encoder 2700 in the code that is used for both re-initialization and for 2701 lzma_filters_update(). To trigger it, an application had 2702 to either re-initialize an existing encoder instance with 2703 lzma_stream_encoder() or use lzma_filters_update(), and 2704 then one of the 1-4 tiny allocations in lzma_filters_copy() 2705 (called from stream_encoder_update()) must fail. An error 2706 was correctly reported but the encoder state was corrupted. 2707 2708 This is related to the recent fix in 2709 f8ee61e74eb40600445fdb601c374d582e1e9c8a which is good but 2710 it wasn't enough to fix the main problem in stream_encoder.c. 2711 2712 src/liblzma/common/stream_encoder.c | 39 +++++++++++++++++++++++++++++-------- 2713 1 file changed, 31 insertions(+), 8 deletions(-) 2714 2715commit cafd6dc397ca8b5b5f7775e8d6876b8fe70f8e70 2716Author: Lasse Collin <lasse.collin@tukaani.org> 2717Date: 2022-11-22 16:37:15 +0200 2718 2719 liblzma: Fix language in a comment. 2720 2721 src/liblzma/common/stream_encoder.c | 2 +- 2722 1 file changed, 1 insertion(+), 1 deletion(-) 2723 2724commit c392bf8ccba857baaf50399c4b460119befacd54 2725Author: Lasse Collin <lasse.collin@tukaani.org> 2726Date: 2022-11-22 11:20:17 +0200 2727 2728 liblzma: Fix infinite loop in LZMA encoder init with dict_size >= 2 GiB. 2729 2730 The encoder doesn't support dictionary sizes larger than 1536 MiB. 2731 This is validated, for example, when calculating the memory usage 2732 via lzma_raw_encoder_memusage(). It is also enforced by the LZ 2733 part of the encoder initialization. However, LZMA encoder with 2734 LZMA_MODE_NORMAL did an unsafe calculation with dict_size before 2735 such validation and that results in an infinite loop if dict_size 2736 was 2 << 30 or greater. 2737 2738 src/liblzma/lzma/lzma_encoder.c | 19 +++++++++++++++---- 2739 1 file changed, 15 insertions(+), 4 deletions(-) 2740 2741commit f50534c973a591ccf65485adfc827a8a7126ca6c 2742Author: Lasse Collin <lasse.collin@tukaani.org> 2743Date: 2022-11-21 13:02:33 +0200 2744 2745 liblzma: Fix two Doxygen commands in the API headers. 2746 2747 These were caught by clang -Wdocumentation. 2748 2749 src/liblzma/api/lzma/hardware.h | 2 +- 2750 src/liblzma/api/lzma/index_hash.h | 2 +- 2751 2 files changed, 2 insertions(+), 2 deletions(-) 2752 2753commit 649d4872ed2f55196114a061d45b416fc4353569 2754Author: Lasse Collin <lasse.collin@tukaani.org> 2755Date: 2022-11-19 19:09:55 +0200 2756 2757 xz: Refactor duplicate code from hardware_memlimit_mtenc_get(). 2758 2759 src/xz/hardware.c | 2 +- 2760 1 file changed, 1 insertion(+), 1 deletion(-) 2761 2762commit d327743bb547a53364e5951a16e5f1663fe4b9ff 2763Author: Lasse Collin <lasse.collin@tukaani.org> 2764Date: 2022-11-19 19:06:13 +0200 2765 2766 xz: Add support --threads=+N so that -T+1 gives threaded mode. 2767 2768 src/xz/args.c | 18 +++++++++++++++--- 2769 src/xz/hardware.c | 17 +++++++++++++++-- 2770 src/xz/hardware.h | 1 + 2771 src/xz/xz.1 | 21 ++++++++++++++++++++- 2772 4 files changed, 51 insertions(+), 6 deletions(-) 2773 2774commit a11a2b8b5e830ba682c1d81aaa7078842b296995 2775Author: Jia Tan <jiat0218@gmail.com> 2776Date: 2022-11-19 23:18:04 +0800 2777 2778 CMake: Adds test_memlimit to CMake tests 2779 2780 CMakeLists.txt | 1 + 2781 1 file changed, 1 insertion(+) 2782 2783commit 2af8d9e9b3f44f62d19e7c39297ec63af2e8c64f 2784Author: Lasse Collin <lasse.collin@tukaani.org> 2785Date: 2022-11-15 19:10:21 +0200 2786 2787 Translations: Update the Korean translation. 2788 2789 po/ko.po | 652 ++++++++++++++++++++++++++++++++++++--------------------------- 2790 1 file changed, 371 insertions(+), 281 deletions(-) 2791 2792commit 16ac05677292f7e21a4feaddcfb2ab062ea5f385 2793Author: Lasse Collin <lasse.collin@tukaani.org> 2794Date: 2022-11-15 19:09:28 +0200 2795 2796 Translations: Update the Turkish translation. 2797 2798 po/tr.po | 568 ++++++++++++++++++++++++++++++++++----------------------------- 2799 1 file changed, 310 insertions(+), 258 deletions(-) 2800 2801commit b9a67d9a5fa207062d4aa8a01639234609315d31 2802Author: Lasse Collin <lasse.collin@tukaani.org> 2803Date: 2022-11-15 10:58:39 +0200 2804 2805 Bump version number for 5.3.4alpha. 2806 2807 src/liblzma/api/lzma/version.h | 2 +- 2808 src/liblzma/liblzma_generic.map | 2 +- 2809 src/liblzma/liblzma_linux.map | 2 +- 2810 3 files changed, 3 insertions(+), 3 deletions(-) 2811 2812commit 5b999ba289b3280457b7386b9ac65dbbdf1575a5 2813Author: Lasse Collin <lasse.collin@tukaani.org> 2814Date: 2022-11-15 10:54:40 +0200 2815 2816 Add NEWS for 5.3.4alpha. 2817 2818 NEWS | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2819 1 file changed, 96 insertions(+) 2820 2821commit ce8db9e37da4f6c87691c5066f51f91f2411c44a 2822Author: Lasse Collin <lasse.collin@tukaani.org> 2823Date: 2022-11-15 10:54:08 +0200 2824 2825 Add NEWS for 5.2.8. 2826 2827 NEWS | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2828 1 file changed, 79 insertions(+) 2829 2830commit b56bc8251d2736224af6bdaaae734ceb8926a879 2831Author: Lasse Collin <lasse.collin@tukaani.org> 2832Date: 2022-11-14 23:19:57 +0200 2833 2834 Revert "liblzma: Simple/BCJ filters: Allow disabling generic BCJ options." 2835 2836 This reverts commit 177bdc922cb17bd0fd831ab8139dfae912a5c2b8 2837 and also does equivalent change to arm64.c. 2838 2839 Now that ARM64 filter will use lzma_options_bcj, this change 2840 is not needed anymore. 2841 2842 src/liblzma/simple/arm.c | 2 +- 2843 src/liblzma/simple/arm64.c | 2 +- 2844 src/liblzma/simple/armthumb.c | 2 +- 2845 src/liblzma/simple/ia64.c | 2 +- 2846 src/liblzma/simple/powerpc.c | 2 +- 2847 src/liblzma/simple/simple_coder.c | 4 ++-- 2848 src/liblzma/simple/simple_private.h | 2 +- 2849 src/liblzma/simple/sparc.c | 2 +- 2850 src/liblzma/simple/x86.c | 3 +-- 2851 9 files changed, 10 insertions(+), 11 deletions(-) 2852 2853commit 8370ec8edf9ddf8d1d9fef03d8d1027503ec4c35 2854Author: Lasse Collin <lasse.collin@tukaani.org> 2855Date: 2022-11-14 23:14:41 +0200 2856 2857 Replace the experimental ARM64 filter with a new experimental version. 2858 2859 This is incompatible with the previous version. 2860 2861 This has space/tab fixes in filter_*.c and bcj.h too. 2862 2863 src/liblzma/api/lzma/bcj.h | 41 +----- 2864 src/liblzma/common/filter_common.c | 14 +- 2865 src/liblzma/common/filter_decoder.c | 12 +- 2866 src/liblzma/common/filter_encoder.c | 17 +-- 2867 src/liblzma/simple/arm64.c | 283 ++++++++++++++---------------------- 2868 src/liblzma/simple/simple_decoder.h | 4 - 2869 src/liblzma/simple/simple_encoder.h | 2 - 2870 src/xz/args.c | 2 +- 2871 src/xz/message.c | 13 +- 2872 src/xz/options.c | 39 ----- 2873 src/xz/options.h | 7 - 2874 11 files changed, 147 insertions(+), 287 deletions(-) 2875 2876commit f644473a211394447824ea00518d0a214ff3f7f2 2877Author: Lasse Collin <lasse.collin@tukaani.org> 2878Date: 2022-11-14 21:34:57 +0200 2879 2880 liblzma: Add fast CRC64 for 32/64-bit x86 using SSSE3 + SSE4.1 + CLMUL. 2881 2882 It also works on E2K as it supports these intrinsics. 2883 2884 On x86-64 runtime detection is used so the code keeps working on 2885 older processors too. A CLMUL-only build can be done by using 2886 -msse4.1 -mpclmul in CFLAGS and this will reduce the library 2887 size since the generic implementation and its 8 KiB lookup table 2888 will be omitted. 2889 2890 On 32-bit x86 this isn't used by default for now because by default 2891 on 32-bit x86 the separate assembly file crc64_x86.S is used. 2892 If --disable-assembler is used then this new CLMUL code is used 2893 the same way as on 64-bit x86. However, a CLMUL-only build 2894 (-msse4.1 -mpclmul) won't omit the 8 KiB lookup table on 2895 32-bit x86 due to a currently-missing check for disabled 2896 assembler usage. 2897 2898 The configure.ac check should be such that the code won't be 2899 built if something in the toolchain doesn't support it but 2900 --disable-clmul-crc option can be used to unconditionally 2901 disable this feature. 2902 2903 CLMUL speeds up decompression of files that have compressed very 2904 well (assuming CRC64 is used as a check type). It is know that 2905 the CLMUL code is significantly slower than the generic code for 2906 tiny inputs (especially 1-8 bytes but up to 16 bytes). If that 2907 is a real-world problem then there is already a commented-out 2908 variant that uses the generic version for small inputs. 2909 2910 Thanks to Ilya Kurdyukov for the original patch which was 2911 derived from a white paper from Intel [1] (published in 2009) 2912 and public domain code from [2] (released in 2016). 2913 2914 [1] https://www.intel.com/content/dam/www/public/us/en/documents/white-papers/fast-crc-computation-generic-polynomials-pclmulqdq-paper.pdf 2915 [2] https://github.com/rawrunprotected/crc 2916 2917 CMakeLists.txt | 26 ++- 2918 INSTALL | 12 ++ 2919 configure.ac | 59 +++++- 2920 src/liblzma/check/crc64_fast.c | 449 +++++++++++++++++++++++++++++++++++++++- 2921 src/liblzma/check/crc64_table.c | 21 +- 2922 5 files changed, 554 insertions(+), 13 deletions(-) 2923 2924commit 3b466bc79672bb2b06d1245a500588e6026e0ba0 2925Author: Lasse Collin <lasse.collin@tukaani.org> 2926Date: 2022-11-14 20:14:34 +0200 2927 2928 Translations: Update the Swedish translation one more time. 2929 2930 po/sv.po | 6 +++--- 2931 1 file changed, 3 insertions(+), 3 deletions(-) 2932 2933commit e963379a8622ebdff6ce78e76b803bcd1e1d16d6 2934Author: Lasse Collin <lasse.collin@tukaani.org> 2935Date: 2022-11-14 19:34:15 +0200 2936 2937 Translations: Update the Swedish translation again. 2938 2939 po/sv.po | 16 ++++++++-------- 2940 1 file changed, 8 insertions(+), 8 deletions(-) 2941 2942commit a4bc689a823a2254f29ac9d233170add5121b307 2943Author: Lasse Collin <lasse.collin@tukaani.org> 2944Date: 2022-11-14 19:07:45 +0200 2945 2946 Translations: Update the Swedish translation. 2947 2948 po/sv.po | 671 ++++++++++++++++++++++++++++++++++++--------------------------- 2949 1 file changed, 382 insertions(+), 289 deletions(-) 2950 2951commit bbf2073d824ab4ba33bed4b77f467435abd333a5 2952Author: Lasse Collin <lasse.collin@tukaani.org> 2953Date: 2022-11-14 18:58:09 +0200 2954 2955 Translations: Update the Ukrainian translation. 2956 2957 po/uk.po | 618 ++++++++++++++++++++++++++++++++++++--------------------------- 2958 1 file changed, 354 insertions(+), 264 deletions(-) 2959 2960commit ac10b1b3622e70881595586edfb8a3ebdcd76bb6 2961Author: Lasse Collin <lasse.collin@tukaani.org> 2962Date: 2022-11-14 17:58:07 +0200 2963 2964 Build: Omit x86_64 from --enable-assembler. 2965 2966 It didn't do anything. There are only 32-bit x86 assembly files 2967 and it feels likely that new files won't be added as intrinsics 2968 in C are more portable across toolchains and OSes. 2969 2970 configure.ac | 6 ++---- 2971 1 file changed, 2 insertions(+), 4 deletions(-) 2972 2973commit eb0f1450ad9f23dac03050d9c8375980240aee21 2974Author: Lasse Collin <lasse.collin@tukaani.org> 2975Date: 2022-11-14 16:00:52 +0200 2976 2977 liblzma: Use __attribute__((__constructor__)) if available. 2978 2979 This uses it for CRC table initializations when using --disable-small. 2980 It avoids mythread_once() overhead. It also means that then 2981 --disable-small --disable-threads is thread-safe if this attribute 2982 is supported. 2983 2984 CMakeLists.txt | 15 +++++++++++++++ 2985 INSTALL | 4 +++- 2986 configure.ac | 31 ++++++++++++++++++++++++++++--- 2987 src/liblzma/check/crc32_small.c | 7 +++++++ 2988 src/liblzma/check/crc64_small.c | 5 +++++ 2989 src/liblzma/lz/lz_encoder.c | 2 +- 2990 6 files changed, 59 insertions(+), 5 deletions(-) 2991 2992commit 6553f49b11dafad35c73b05f12e14865ea1fd8a1 2993Author: Lasse Collin <lasse.collin@tukaani.org> 2994Date: 2022-11-12 21:19:52 +0200 2995 2996 Translations: Update the Romanian translation. 2997 2998 po/ro.po | 651 +++++++++++++++++++++++++++++++++++++-------------------------- 2999 1 file changed, 380 insertions(+), 271 deletions(-) 3000 3001commit db97e69e12393becc29f8febd53133d0d36989bd 3002Author: Lasse Collin <lasse.collin@tukaani.org> 3003Date: 2022-11-12 21:17:45 +0200 3004 3005 Translations: Update the Hungarian translation. 3006 3007 po/hu.po | 625 ++++++++++++++++++++++++++++++++++++--------------------------- 3008 1 file changed, 357 insertions(+), 268 deletions(-) 3009 3010commit 2bbb9c0f3829a8b121b36998d273a6c6f92000f4 3011Author: Lasse Collin <lasse.collin@tukaani.org> 3012Date: 2022-11-11 17:58:57 +0200 3013 3014 Translations: Update the Finnish translation. 3015 3016 po/fi.po | 610 ++++++++++++++++++++++++++++++++++++--------------------------- 3017 1 file changed, 348 insertions(+), 262 deletions(-) 3018 3019commit 3c8cbb8137b6f8ed9416c1209d73cdbcb015251f 3020Author: Lasse Collin <lasse.collin@tukaani.org> 3021Date: 2022-11-11 17:58:18 +0200 3022 3023 Translations: Update the Croatian translation. 3024 3025 po/hr.po | 680 +++++++++++++++++++++++++++++++++++---------------------------- 3026 1 file changed, 381 insertions(+), 299 deletions(-) 3027 3028commit 26c3359eac0988d6f3986735cd1363bec1678e8e 3029Author: Lasse Collin <lasse.collin@tukaani.org> 3030Date: 2022-11-11 17:57:18 +0200 3031 3032 Translations: Update the Polish translation. 3033 3034 po/pl.po | 569 ++++++++++++++++++++++++++++++++++----------------------------- 3035 1 file changed, 309 insertions(+), 260 deletions(-) 3036 3037commit 577e467b137c735afb8de6ae71ac7a73c2960cc4 3038Author: Lasse Collin <lasse.collin@tukaani.org> 3039Date: 2022-11-11 17:56:44 +0200 3040 3041 Translations: Update the Spanish translation. 3042 3043 po/es.po | 598 ++++++++++++++++++++++++++++++++++++--------------------------- 3044 1 file changed, 344 insertions(+), 254 deletions(-) 3045 3046commit f9b4ff6e9a0f1678650775582d3e4fe782abce97 3047Author: Lasse Collin <lasse.collin@tukaani.org> 3048Date: 2022-11-11 17:16:03 +0200 3049 3050 Update THANKS. 3051 3052 THANKS | 1 + 3053 1 file changed, 1 insertion(+) 3054 3055commit a39961ef211e1bf030b17edeea3cff29fe263b67 3056Author: Lasse Collin <lasse.collin@tukaani.org> 3057Date: 2022-11-11 17:15:25 +0200 3058 3059 liblzma: Fix building with Intel ICC (the classic compiler). 3060 3061 It claims __GNUC__ >= 10 but doesn't support __symver__ attribute. 3062 3063 Thanks to Stephen Sachs. 3064 3065 src/liblzma/common/common.h | 2 +- 3066 1 file changed, 1 insertion(+), 1 deletion(-) 3067 3068commit c715f683dcb1a817d565da292cddfbceda643e12 3069Author: Lasse Collin <lasse.collin@tukaani.org> 3070Date: 2022-11-11 14:35:58 +0200 3071 3072 liblzma: Fix incorrect #ifdef for x86 SSE2 support. 3073 3074 __SSE2__ is the correct macro for SSE2 support with GCC, Clang, 3075 and ICC. __SSE2_MATH__ means doing floating point math with SSE2 3076 instead of 387. Often the latter macro is defined if the first 3077 one is but it was still a bug. 3078 3079 src/liblzma/common/memcmplen.h | 3 +-- 3080 1 file changed, 1 insertion(+), 2 deletions(-) 3081 3082commit bd334ae56afe7f642ad4d0f1ac19e74e82daa1ce 3083Author: Lasse Collin <lasse.collin@tukaani.org> 3084Date: 2022-11-11 13:27:06 +0200 3085 3086 Add NEWS for 5.2.7 (forgotten cherry-pick from v5.2). 3087 3088 NEWS | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3089 1 file changed, 74 insertions(+) 3090 3091commit 3c7860cf49de6f81046b3a4034a89f3a4803a576 3092Author: Lasse Collin <lasse.collin@tukaani.org> 3093Date: 2022-11-11 13:16:21 +0200 3094 3095 xzdiff: Add support for .lz files. 3096 3097 The other scripts don't need changes for .lz support because 3098 in those scripts it is enough that xz supports .lz. 3099 3100 src/scripts/xzdiff.in | 10 +++++----- 3101 1 file changed, 5 insertions(+), 5 deletions(-) 3102 3103commit d76c752a6d77052e5ad57ade555082585f7ac5d8 3104Author: Lasse Collin <lasse.collin@tukaani.org> 3105Date: 2022-11-11 12:23:58 +0200 3106 3107 Scripts: Ignore warnings from xz. 3108 3109 In practice this means making the scripts work when 3110 the input files have an unsupported check type which 3111 isn't a problem in practice unless support for 3112 some check types has been disabled at build time. 3113 3114 src/scripts/xzdiff.in | 5 +++-- 3115 src/scripts/xzgrep.in | 2 +- 3116 src/scripts/xzless.in | 4 ++-- 3117 src/scripts/xzmore.in | 4 ++-- 3118 4 files changed, 8 insertions(+), 7 deletions(-) 3119 3120commit 6552535afd1fe29d726ab6e68cf14ce3624fd48c 3121Author: Lasse Collin <lasse.collin@tukaani.org> 3122Date: 2022-11-10 12:34:43 +0200 3123 3124 Translations: Rename poa4/fr_FR.po to po4a/fr.po. 3125 3126 That's how it is preferred at the Translation Project. 3127 On my system /usr/share/man/fr_FR doesn't contain any 3128 other man pages than XZ Utils while /usr/share/man/fr 3129 has quite a few, so this will fix that too. 3130 3131 Thanks to Benno Schulenberg from the Translation Project. 3132 3133 po4a/{fr_FR.po => fr.po} | 0 3134 po4a/po4a.conf | 2 +- 3135 2 files changed, 1 insertion(+), 1 deletion(-) 3136 3137commit 0918159ce4c75bfb60aff0193b559f8a9f41d25a 3138Author: Lasse Collin <lasse.collin@tukaani.org> 3139Date: 2022-11-09 18:48:50 +0200 3140 3141 xz: Update the man page about BCJ filters, including upcoming --arm64. 3142 3143 The --arm64 isn't actually implemented yet in the form 3144 described in this commit. 3145 3146 Thanks to Jia Tan. 3147 3148 src/xz/xz.1 | 66 +++++++++++++++++++++++++++---------------------------------- 3149 1 file changed, 29 insertions(+), 37 deletions(-) 3150 3151commit ba2ae3596f6be1587495f33b367488f6e00e56f1 3152Author: Lasse Collin <lasse.collin@tukaani.org> 3153Date: 2022-11-09 18:14:14 +0200 3154 3155 xz: Add --arm64 to --long-help and omit endianness from ARM(-Thumb). 3156 3157 Modern 32-bit ARM in big endian mode use little endian for 3158 instruction encoding still, so the filters work on such 3159 executables too. It's likely less confusing for users this way. 3160 3161 The --arm64 option hasn't been implemented yet (there is 3162 --experimental-arm64 but it's different). The --arm64 option 3163 is added now anyway because this is the likely result and the 3164 strings need to be ready for translators. 3165 3166 Thanks to Jia Tan. 3167 3168 src/xz/message.c | 5 +++-- 3169 1 file changed, 3 insertions(+), 2 deletions(-) 3170 3171commit 802d57d9215d9c81dbee86edb43c9e93a7f7ec55 3172Author: Lasse Collin <lasse.collin@tukaani.org> 3173Date: 2022-11-09 15:12:13 +0200 3174 3175 Windows: Update the VS project files for ARM64 and .lz support. 3176 3177 windows/vs2013/config.h | 9 +++++++++ 3178 windows/vs2013/liblzma.vcxproj | 5 ++++- 3179 windows/vs2013/liblzma_dll.vcxproj | 5 ++++- 3180 windows/vs2017/config.h | 9 +++++++++ 3181 windows/vs2017/liblzma.vcxproj | 3 +++ 3182 windows/vs2017/liblzma_dll.vcxproj | 3 +++ 3183 windows/vs2019/config.h | 9 +++++++++ 3184 windows/vs2019/liblzma.vcxproj | 5 ++++- 3185 windows/vs2019/liblzma_dll.vcxproj | 5 ++++- 3186 9 files changed, 49 insertions(+), 4 deletions(-) 3187 3188commit 5846aeda05972bc803c6094821ae836229ebe691 3189Author: Lasse Collin <lasse.collin@tukaani.org> 3190Date: 2022-11-09 14:57:48 +0200 3191 3192 DOS: Update Makefile and config.h to include ARM64 and .lz support. 3193 3194 dos/Makefile | 2 ++ 3195 dos/config.h | 9 +++++++++ 3196 2 files changed, 11 insertions(+) 3197 3198commit 781da8d6c44de6aa278c916375250668a0b107f2 3199Author: Lasse Collin <lasse.collin@tukaani.org> 3200Date: 2022-11-09 14:45:05 +0200 3201 3202 CMake: Add lzip decoder files and #define to the build. 3203 3204 CMakeLists.txt | 3 +++ 3205 1 file changed, 3 insertions(+) 3206 3207commit df8ad4af65a9c4846b108550d0083770a69dee64 3208Author: Lasse Collin <lasse.collin@tukaani.org> 3209Date: 2022-11-09 14:41:56 +0200 3210 3211 Docs: Update INSTALL and also add new prohibited options to PACKAGERS. 3212 3213 INSTALL | 49 +++++++++++++++++++++++++++++++++++++++++-------- 3214 PACKAGERS | 2 ++ 3215 2 files changed, 43 insertions(+), 8 deletions(-) 3216 3217commit c8ef089c149afaab413c3a51be827dd1d11afe0e 3218Author: Lasse Collin <lasse.collin@tukaani.org> 3219Date: 2022-10-20 17:39:06 +0300 3220 3221 Tests: Test the .lz files in test_files.sh. 3222 3223 tests/test_files.sh | 25 +++++++++++++++++++++++++ 3224 1 file changed, 25 insertions(+) 3225 3226commit c8f70ebb4628ceb6cb29cc9195d9deadf69d2bd7 3227Author: Lasse Collin <lasse.collin@tukaani.org> 3228Date: 2022-10-20 15:35:59 +0300 3229 3230 Tests: Add .lz (lzip) test files. 3231 3232 tests/files/README | 109 +++++++++++++++++++++++++++++---- 3233 tests/files/bad-1-v0-uncomp-size.lz | Bin 0 -> 42 bytes 3234 tests/files/bad-1-v1-crc32.lz | Bin 0 -> 50 bytes 3235 tests/files/bad-1-v1-dict-1.lz | Bin 0 -> 50 bytes 3236 tests/files/bad-1-v1-dict-2.lz | Bin 0 -> 50 bytes 3237 tests/files/bad-1-v1-magic-1.lz | Bin 0 -> 50 bytes 3238 tests/files/bad-1-v1-magic-2.lz | Bin 0 -> 50 bytes 3239 tests/files/bad-1-v1-member-size.lz | Bin 0 -> 50 bytes 3240 tests/files/bad-1-v1-trailing-magic.lz | Bin 0 -> 54 bytes 3241 tests/files/bad-1-v1-uncomp-size.lz | Bin 0 -> 50 bytes 3242 tests/files/good-1-v0-trailing-1.lz | Bin 0 -> 59 bytes 3243 tests/files/good-1-v0.lz | Bin 0 -> 42 bytes 3244 tests/files/good-1-v1-trailing-1.lz | Bin 0 -> 67 bytes 3245 tests/files/good-1-v1-trailing-2.lz | Bin 0 -> 70 bytes 3246 tests/files/good-1-v1.lz | Bin 0 -> 50 bytes 3247 tests/files/good-2-v0-v1.lz | Bin 0 -> 78 bytes 3248 tests/files/good-2-v1-v0.lz | Bin 0 -> 78 bytes 3249 tests/files/good-2-v1-v1.lz | Bin 0 -> 86 bytes 3250 tests/files/unsupported-1-v234.lz | Bin 0 -> 50 bytes 3251 19 files changed, 98 insertions(+), 11 deletions(-) 3252 3253commit 731db13e6fa3ad3e3fc786c0ccf6eac4cce6865f 3254Author: Lasse Collin <lasse.collin@tukaani.org> 3255Date: 2022-10-19 22:32:51 +0300 3256 3257 xz: Remove the commented-out FORMAT_GZIP, gzip, .gz, and .tgz. 3258 3259 src/xz/args.c | 2 -- 3260 src/xz/coder.h | 1 - 3261 src/xz/suffix.c | 9 --------- 3262 3 files changed, 12 deletions(-) 3263 3264commit 3176f992c55b8d788c4633809aaf9447376a5a12 3265Author: Lasse Collin <lasse.collin@tukaani.org> 3266Date: 2022-10-08 21:28:15 +0300 3267 3268 xz: Add .lz (lzip) decompression support. 3269 3270 If configured with --disable-lzip-decoder then --long-help will 3271 still list `lzip' in --format but I left it like that since 3272 due to translations it would be messy to have two help strings. 3273 Features are disabled only in special situations so wrong help 3274 in such a situation shouldn't matter much. 3275 3276 Thanks to Michał Górny for the original patch. 3277 3278 src/xz/args.c | 9 ++++++++ 3279 src/xz/coder.c | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++--- 3280 src/xz/coder.h | 3 +++ 3281 src/xz/message.c | 2 +- 3282 src/xz/suffix.c | 26 ++++++++++++++++++---- 3283 src/xz/xz.1 | 46 +++++++++++++++++++++++++++++++++----- 3284 6 files changed, 141 insertions(+), 13 deletions(-) 3285 3286commit 034086e1ae1459210837a24e04878435c86dc41b 3287Author: Lasse Collin <lasse.collin@tukaani.org> 3288Date: 2022-10-08 00:29:20 +0300 3289 3290 liblzma: Add .lz support to lzma_auto_decoder(). 3291 3292 Thanks to Michał Górny for the original patch. 3293 3294 src/liblzma/api/lzma/container.h | 10 ++++++---- 3295 src/liblzma/common/Makefile.inc | 3 ++- 3296 src/liblzma/common/auto_decoder.c | 23 +++++++++++++++++------ 3297 src/liblzma/common/lzip_decoder.h | 22 ++++++++++++++++++++++ 3298 4 files changed, 47 insertions(+), 11 deletions(-) 3299 3300commit 0538db038f3cdc352007dacb42454aa1806b8e40 3301Author: Lasse Collin <lasse.collin@tukaani.org> 3302Date: 2022-10-06 15:50:20 +0300 3303 3304 liblzma: Add .lz (lzip) decompression support (format versions 0 and 1). 3305 3306 Support for format version 0 was removed from lzip 1.18 for some 3307 reason. .lz format version 0 files are rare (and old) but some 3308 source packages were released in this format, and some people might 3309 have personal files in this format too. It's very little extra code 3310 to support it along side format version 1 so this commits adds 3311 support for both. 3312 3313 The Sync Flush marker extentension to the original .lz format 3314 version 1 isn't supported. It would require changes to the 3315 LZMA decoder itself. Such files are very rare anyway. 3316 3317 See the API doc for lzma_lzip_decoder() for more details about 3318 the .lz format support. 3319 3320 Thanks to Michał Górny for the original patch. 3321 3322 configure.ac | 21 ++ 3323 src/liblzma/api/lzma/container.h | 62 +++++- 3324 src/liblzma/common/Makefile.inc | 5 + 3325 src/liblzma/common/lzip_decoder.c | 413 ++++++++++++++++++++++++++++++++++++++ 3326 src/liblzma/liblzma_generic.map | 1 + 3327 src/liblzma/liblzma_linux.map | 1 + 3328 6 files changed, 501 insertions(+), 2 deletions(-) 3329 3330commit 633d48a075b9ce4b9c08a7a56a7eb4cabc18100c 3331Author: Lasse Collin <lasse.collin@tukaani.org> 3332Date: 2022-11-09 14:17:23 +0200 3333 3334 liblzma: Add the missing Makefile.inc change for --disable-microlzma. 3335 3336 This was forgotten from commit 59c4d6e1390f6f4176f43ac1dad1f7ac03c449b8. 3337 3338 src/liblzma/common/Makefile.inc | 12 ++++++++++-- 3339 1 file changed, 10 insertions(+), 2 deletions(-) 3340 3341commit 724285dadbdc88765c8fb83eab9816575a260966 3342Author: Lasse Collin <lasse.collin@tukaani.org> 3343Date: 2022-11-09 14:10:52 +0200 3344 3345 xz: Add comments about stdin and src_st.st_size. 3346 3347 "xz -v < regular_file > out.xz" doesn't display the percentage 3348 and estimated remaining time because it doesn't even try to 3349 check the input file size when input is read from stdin. 3350 This could be improved but for now there's just a comment 3351 to remind about it. 3352 3353 src/xz/coder.c | 9 +++++++++ 3354 src/xz/file_io.c | 4 ++++ 3355 2 files changed, 13 insertions(+) 3356 3357commit f723eec68b0e44234910f669a29119de33018967 3358Author: Lasse Collin <lasse.collin@tukaani.org> 3359Date: 2022-11-09 12:48:22 +0200 3360 3361 xz: Fix displaying of file sizes in progress indicator in passthru mode. 3362 3363 It worked for one input file since the counters are zero when 3364 xz starts but they weren't reset when starting a new file in 3365 passthru mode. For example, if files A, B, and C are one byte each, 3366 then "xz -dcvf A B C" would show file sizes as 1, 2, and 3 bytes 3367 instead of 1, 1, and 1 byte. 3368 3369 src/xz/coder.c | 6 +++++- 3370 1 file changed, 5 insertions(+), 1 deletion(-) 3371 3372commit 69265d0f223ddf1d66f799b8b047df22923e376f 3373Author: Lasse Collin <lasse.collin@tukaani.org> 3374Date: 2022-11-09 11:27:20 +0200 3375 3376 xz: Add a comment why --to-stdout is not in --help. 3377 3378 It is on the man page still. 3379 3380 src/xz/message.c | 3 +++ 3381 1 file changed, 3 insertions(+) 3382 3383commit fe6b8852a3c6a0eb5a3c33512e0a69af257d3bc7 3384Author: Lasse Collin <lasse.collin@tukaani.org> 3385Date: 2022-11-08 23:05:37 +0200 3386 3387 xz: Make xz -lvv show that the upcoming --arm64 needs 5.4.0 to decompress. 3388 3389 src/xz/list.c | 20 +++++++++++++++----- 3390 1 file changed, 15 insertions(+), 5 deletions(-) 3391 3392commit fb3f05ac9f2b4b0e3643401960fbeab31997ac7a 3393Author: Lasse Collin <lasse.collin@tukaani.org> 3394Date: 2022-11-08 22:26:54 +0200 3395 3396 Docs: Update faq.txt a little. 3397 3398 doc/faq.txt | 66 ++++++++++++++++++++++++++++++++++++++++--------------------- 3399 1 file changed, 43 insertions(+), 23 deletions(-) 3400 3401commit 05331f091ec3b68eccbfb2a9a7a576072768fb4b 3402Author: Lasse Collin <lasse.collin@tukaani.org> 3403Date: 2022-11-08 16:57:17 +0200 3404 3405 Translations: Update Turkish translation. 3406 3407 po/tr.po | 2 +- 3408 1 file changed, 1 insertion(+), 1 deletion(-) 3409 3410commit ed3a4822963b4940d84e6f44d47277c394fc046d 3411Author: Lasse Collin <lasse.collin@tukaani.org> 3412Date: 2022-11-08 14:55:32 +0200 3413 3414 Translations: Update Croatian translation. 3415 3416 po/hr.po | 190 ++++++++++++++++++++++++++++++++------------------------------- 3417 1 file changed, 96 insertions(+), 94 deletions(-) 3418 3419commit 4746f5ec721316bc4c6fec9905b2902e0360e0af 3420Author: Lasse Collin <lasse.collin@tukaani.org> 3421Date: 2022-11-08 14:13:03 +0200 3422 3423 liblzma: Update API docs about decoder flags. 3424 3425 src/liblzma/api/lzma/container.h | 21 +++++++++++++++++---- 3426 1 file changed, 17 insertions(+), 4 deletions(-) 3427 3428commit 8779a9db5d0cec00c9dc9e9965dd2dda04f9d80d 3429Author: Lasse Collin <lasse.collin@tukaani.org> 3430Date: 2022-11-08 14:01:50 +0200 3431 3432 liblzma: Use the return_if_error() macro in alone_decoder.c. 3433 3434 src/liblzma/common/alone_decoder.c | 6 ++---- 3435 1 file changed, 2 insertions(+), 4 deletions(-) 3436 3437commit 3f4990b6822961e75cd9b4e2e82b1df63f6f8fcc 3438Author: Lasse Collin <lasse.collin@tukaani.org> 3439Date: 2022-11-08 14:00:58 +0200 3440 3441 liblzma: Fix a comment in auto_decoder.c. 3442 3443 src/liblzma/common/auto_decoder.c | 4 ++-- 3444 1 file changed, 2 insertions(+), 2 deletions(-) 3445 3446commit 026a5897c72a2041ae08ceec54ce8b1cdeb51334 3447Author: Lasse Collin <lasse.collin@tukaani.org> 3448Date: 2022-11-08 13:43:19 +0200 3449 3450 xz: Initialize the pledge(2) sandbox at the very beginning of main(). 3451 3452 It feels better that the initializations are sandboxed too. 3453 They don't do anything that the pledge() call wouldn't allow. 3454 3455 src/xz/main.c | 27 ++++++++++++++------------- 3456 1 file changed, 14 insertions(+), 13 deletions(-) 3457 3458commit 49a59f6ca001c3ce9affa2c162b437aad021b4d5 3459Author: Lasse Collin <lasse.collin@tukaani.org> 3460Date: 2022-11-07 22:51:16 +0200 3461 3462 xz: Extend --robot --info-memory output. 3463 3464 Now it includes everything that the human-readable --info-memory shows. 3465 3466 src/xz/hardware.c | 24 +++++++++++++++--------- 3467 src/xz/xz.1 | 47 +++++++++++++++++++++++++++++++++++++++++------ 3468 2 files changed, 56 insertions(+), 15 deletions(-) 3469 3470commit 5e2450c75cbac966c62cf2231c824f2cc91ddba8 3471Author: Lasse Collin <lasse.collin@tukaani.org> 3472Date: 2022-11-07 17:22:04 +0200 3473 3474 liblzma: Include cached memory in reported memusage in threaded decoder. 3475 3476 This affects lzma_memusage() and lzma_memlimit_set() when used 3477 with the threaded decompressor. Now all allocations are reported 3478 by lzma_memusage() (so it's not misleading) and lzma_memlimit_set() 3479 cannot lower the limit below that value. 3480 3481 The alternative would have been to allow lowering the limit if 3482 doing so is possible by freeing the cached memory but since 3483 the primary use case of lzma_memlimit_set() is to increase 3484 memlimit after LZMA_MEMLIMIT_ERROR this simple approach 3485 was selected. 3486 3487 The cached memory was always included when enforcing 3488 the memory usage limit while decoding. 3489 3490 Thanks to Jia Tan. 3491 3492 src/liblzma/common/stream_decoder_mt.c | 22 +++++++++++++++++++--- 3493 1 file changed, 19 insertions(+), 3 deletions(-) 3494 3495commit 1fc6e7dd1fabdb60124d449b99273330ccab3ff1 3496Author: Jia Tan <jiat0218@gmail.com> 3497Date: 2022-11-07 16:24:14 +0200 3498 3499 xz: Avoid a compiler warning in progress_speed() in message.c. 3500 3501 This should be smaller too since it avoids the string constants. 3502 3503 src/xz/message.c | 9 +++------ 3504 1 file changed, 3 insertions(+), 6 deletions(-) 3505 3506commit cf118c014683069b5dbe91898acdc40f2f0a1f5d 3507Author: Lasse Collin <lasse.collin@tukaani.org> 3508Date: 2022-10-31 16:26:05 +0200 3509 3510 Build: Clarify comment in configure.ac about SSE2. 3511 3512 configure.ac | 5 ++++- 3513 1 file changed, 4 insertions(+), 1 deletion(-) 3514 3515commit aad3c609ffb72f581a7a2b67be3ad70b2b327840 3516Author: Lasse Collin <lasse.collin@tukaani.org> 3517Date: 2022-10-31 16:16:37 +0200 3518 3519 Build: Remove obsolete commented-out lines from configure.ac. 3520 3521 configure.ac | 4 ---- 3522 1 file changed, 4 deletions(-) 3523 3524commit e53e0e2186c6b8ce866bd19aec52f1c318ed31ba 3525Author: Lasse Collin <lasse.collin@tukaani.org> 3526Date: 2022-10-31 13:31:58 +0200 3527 3528 Windows: Fix mythread_once() macro with Vista threads. 3529 3530 Don't call InitOnceComplete() if initialization was already done. 3531 3532 So far mythread_once() has been needed only when building 3533 with --enable-small. windows/build.bash does this together 3534 with --disable-threads so the Vista-specific mythread_once() 3535 is never needed by those builds. VS project files or 3536 CMake-builds don't support HAVE_SMALL builds at all. 3537 3538 src/common/mythread.h | 7 ++++--- 3539 1 file changed, 4 insertions(+), 3 deletions(-) 3540 3541commit 48dde3bab9dc04081acb5aa7cf7c5044b8a49f58 3542Author: Lasse Collin <lasse.collin@tukaani.org> 3543Date: 2022-10-31 11:54:44 +0200 3544 3545 liblzma: Silence -Wconversion warning from crc64_fast.c. 3546 3547 src/liblzma/check/crc64_fast.c | 5 +++-- 3548 1 file changed, 3 insertions(+), 2 deletions(-) 3549 3550commit a243c617ff249d915ac123de4f536b80322c1fdb 3551Author: Lasse Collin <lasse.collin@tukaani.org> 3552Date: 2022-10-31 11:49:47 +0200 3553 3554 CMake: Sync tuklib_cpucores.cmake with tuklib_cpucores.m4. 3555 3556 This was forgotten from commit 2611c4d90535652d3eb7ef4a026a6691276fab43. 3557 3558 cmake/tuklib_cpucores.cmake | 5 +++++ 3559 1 file changed, 5 insertions(+) 3560 3561commit 05c72de06fcaaedc78f8abba7d5ec568ddcf1e75 3562Author: Lasse Collin <lasse.collin@tukaani.org> 3563Date: 2022-10-27 15:49:18 +0300 3564 3565 Tests: test_files.sh: Make it not fail if features were disabled at build. 3566 3567 It now tries to test as many files as easily possible. 3568 The exit status indicates skipping if any of the files were 3569 skipped. This way it is easy to notice if something is being 3570 skipped when it isn't expected. 3571 3572 tests/test_files.sh | 50 ++++++++++++++++++++++++++++++++++++++++++++++---- 3573 1 file changed, 46 insertions(+), 4 deletions(-) 3574 3575commit b3459327a51f4b8239d19e6c34b4e0c6bc2d81de 3576Author: Lasse Collin <lasse.collin@tukaani.org> 3577Date: 2022-10-27 15:30:13 +0300 3578 3579 Tests: test_files.sh: Suppress an expected warning from the log. 3580 3581 xz (but not xzdec) will normally warn about unsupported check 3582 but since we are testing specifically such a file, it's better 3583 to silence that warning so that it doesn't look suspicious in 3584 test_files.sh.log. 3585 3586 The use of -q and -Q in xzdec is just for consistency and 3587 doesn't affect the result at least for now. 3588 3589 tests/test_files.sh | 4 ++-- 3590 1 file changed, 2 insertions(+), 2 deletions(-) 3591 3592commit 798c86e4231e0835ab76ccd0810c8ea30833b2ce 3593Author: Lasse Collin <lasse.collin@tukaani.org> 3594Date: 2022-10-27 15:27:50 +0300 3595 3596 Tests: test_files.sh: Print the reason for skipping if xz & xzdec missing. 3597 3598 tests/test_files.sh | 1 + 3599 1 file changed, 1 insertion(+) 3600 3601commit c1dd8524e1af07f16b790463899de06a6a5fcc08 3602Author: Lasse Collin <lasse.collin@tukaani.org> 3603Date: 2022-10-27 01:12:40 +0300 3604 3605 Tests: Keep test_compress_* working when some filters are unavailable. 3606 3607 tests/test_compress.sh | 34 ++++++++++++++++++++-------------- 3608 1 file changed, 20 insertions(+), 14 deletions(-) 3609 3610commit ce30ada91951d0746879ae438da11f1ee8a90aa0 3611Author: Jia Tan <jiat0218@gmail.com> 3612Date: 2022-10-23 21:01:08 +0800 3613 3614 Tests: test_bcj_exact_size skips properly now if PowerPC filter disabled. 3615 3616 tests/test_bcj_exact_size.c | 3 +++ 3617 1 file changed, 3 insertions(+) 3618 3619commit 89c5cfcacaca7130509fac836e2f30c46b824502 3620Author: Lasse Collin <lasse.collin@tukaani.org> 3621Date: 2022-10-26 00:05:57 +0300 3622 3623 Tests: Test also unsupported-*.xz. 3624 3625 tests/test_files.sh | 37 +++++++++++++++++++++++++++++++++++++ 3626 1 file changed, 37 insertions(+) 3627 3628commit a4b214b93ac741edef9c41e55865b0b867ca2587 3629Author: Lasse Collin <lasse.collin@tukaani.org> 3630Date: 2022-10-25 23:45:03 +0300 3631 3632 Build: Use AC_CONFIG_HEADERS instead of the ancient AC_CONFIG_HEADER. 3633 3634 We require Autoconf >= 2.69 and that has AC_CONFIG_HEADERS. 3635 3636 There is a warning about AC_PROG_CC_C99 being obsolete but 3637 it cannot be removed because it is needed with Autoconf 2.69. 3638 3639 configure.ac | 2 +- 3640 1 file changed, 1 insertion(+), 1 deletion(-) 3641 3642commit 04f299b64e73f50afc188c2590ebebc6b73ed744 3643Author: Lasse Collin <lasse.collin@tukaani.org> 3644Date: 2022-10-25 23:31:44 +0300 3645 3646 Build: Update m4/ax_pthread.m4 from Autoconf Archive. 3647 3648 m4/ax_pthread.m4 | 29 ++++++++++++++++++++++------- 3649 1 file changed, 22 insertions(+), 7 deletions(-) 3650 3651commit 59c4d6e1390f6f4176f43ac1dad1f7ac03c449b8 3652Author: Lasse Collin <lasse.collin@tukaani.org> 3653Date: 2022-10-25 23:28:34 +0300 3654 3655 Build: Add configure option --disable-microlzma. 3656 3657 MicroLZMA was made for EROFS and used by erofs-utils. 3658 It might be used by something else in the future but 3659 those wanting a smaller build for specific situations 3660 can now disable this rarely-needed feature. 3661 3662 configure.ac | 22 ++++++++++++++++++++++ 3663 1 file changed, 22 insertions(+) 3664 3665commit 054ccd6d14b2cc6eddc56897af280d3221414150 3666Author: Lasse Collin <lasse.collin@tukaani.org> 3667Date: 2022-10-25 23:09:11 +0300 3668 3669 xz: Fix --single-stream with an empty .xz Stream. 3670 3671 Example: 3672 3673 $ xz -dc --single-stream good-0-empty.xz 3674 xz: good-0-empty.xz: Internal error (bug) 3675 3676 The code, that is tries to catch some input file issues early, 3677 didn't anticipate LZMA_STREAM_END which is possible in that 3678 code only when --single-stream is used. 3679 3680 src/xz/coder.c | 9 +++++++++ 3681 1 file changed, 9 insertions(+) 3682 3683commit 563288ea705e83ff5cb292adf794650c263bca1d 3684Author: Lasse Collin <lasse.collin@tukaani.org> 3685Date: 2022-10-25 21:11:58 +0300 3686 3687 xz: Add support for OpenBSD's pledge() sandbox. 3688 3689 configure.ac | 12 +++++++++--- 3690 src/xz/file_io.c | 11 +++++++++++ 3691 src/xz/main.c | 13 +++++++++++++ 3692 src/xz/private.h | 2 +- 3693 4 files changed, 34 insertions(+), 4 deletions(-) 3694 3695commit f9913e8ee2ba0b1e4ff4d0aa4c001aae305ed944 3696Author: Lasse Collin <lasse.collin@tukaani.org> 3697Date: 2022-10-25 19:07:17 +0300 3698 3699 xz: Fix decompressor behavior if input uses an unsupported check type. 3700 3701 Now files with unsupported check will make xz display 3702 a warning, set the exit status to 2 (unless --no-warn is used), 3703 and then decompress the file normally. This is how it was 3704 supposed to work since the beginning but this was broken by 3705 the commit 231c3c7098f1099a56abb8afece76fc9b8699f05, that is, 3706 a little before 5.0.0 was released. The buggy behavior displayed 3707 a message, set exit status 1 (error), and xz didn't attempt to 3708 to decompress the file. 3709 3710 This doesn't matter today except for special builds that disable 3711 CRC64 or SHA-256 at build time (but such builds should be used 3712 in special situations only). The bug matters if new check type 3713 is added in the future and an old xz version is used to decompress 3714 such a file; however, it's likely that such files would use a new 3715 filter too and an old xz wouldn't be able to decompress the file 3716 anyway. 3717 3718 The first hunk in the commit is the actual fix. The second hunk 3719 is a cleanup since LZMA_TELL_ANY_CHECK isn't used in xz. 3720 3721 There is a test file for unsupported check type but it wasn't 3722 used by test_files.sh, perhaps due to different behavior between 3723 xz and the simpler xzdec. 3724 3725 src/xz/coder.c | 19 +++++++++++++++---- 3726 1 file changed, 15 insertions(+), 4 deletions(-) 3727 3728commit aa4fe145b9486adc454f44fd3e09be9add808a0f 3729Author: Lasse Collin <lasse.collin@tukaani.org> 3730Date: 2022-10-25 18:36:19 +0300 3731 3732 xz: Clarify the man page: input file isn't removed if an error occurs. 3733 3734 src/xz/xz.1 | 5 +++-- 3735 1 file changed, 3 insertions(+), 2 deletions(-) 3736 3737commit 8b46ae8cdeddfd7dc01fec92971b8696e9a96c5d 3738Author: Lasse Collin <lasse.collin@tukaani.org> 3739Date: 2022-10-25 18:30:55 +0300 3740 3741 xz: Refactor to remove is_empty_filename(). 3742 3743 Long ago it was used in list.c too but nowadays it's needed 3744 only in io_open_src() so it's nicer to avoid a separate function. 3745 3746 src/xz/file_io.c | 4 +++- 3747 src/xz/util.c | 12 ------------ 3748 src/xz/util.h | 4 ---- 3749 3 files changed, 3 insertions(+), 17 deletions(-) 3750 3751commit 85624015978b0de294cff3df79006df987c552b1 3752Author: Lasse Collin <lasse.collin@tukaani.org> 3753Date: 2022-10-25 18:23:54 +0300 3754 3755 xz: If input file cannot be removed, treat it as a warning, not error. 3756 3757 Treating it as a warning (message + exit status 2) matches gzip 3758 and it seems more logical as at that point the output file has 3759 already been successfully closed. When it's a warning it is 3760 possible to suppress it with --no-warn. 3761 3762 src/xz/file_io.c | 4 ++-- 3763 1 file changed, 2 insertions(+), 2 deletions(-) 3764 3765commit fda9f85f52c546f7ca0313cf89481da4707fecb3 3766Author: Lasse Collin <lasse.collin@tukaani.org> 3767Date: 2022-10-24 16:25:09 +0300 3768 3769 liblzma: Threaded decoder: Stop the worker threads on errors. 3770 3771 It's waste of CPU time and electricity to leave the unfinished 3772 worker threads running when it is known that their output will 3773 get ignored. 3774 3775 src/liblzma/common/stream_decoder_mt.c | 33 ++++++++++++++++++++++++++------- 3776 1 file changed, 26 insertions(+), 7 deletions(-) 3777 3778commit 2611c4d90535652d3eb7ef4a026a6691276fab43 3779Author: Lasse Collin <lasse.collin@tukaani.org> 3780Date: 2022-10-20 20:22:50 +0300 3781 3782 tuklib_cpucores: Use HW_NCPUONLINE on OpenBSD. 3783 3784 On OpenBSD the number of cores online is often less 3785 than what HW_NCPU would return because OpenBSD disables 3786 simultaneous multi-threading (SMT) by default. 3787 3788 Thanks to Christian Weisgerber. 3789 3790 m4/tuklib_cpucores.m4 | 5 +++++ 3791 src/common/tuklib_cpucores.c | 9 +++++++++ 3792 2 files changed, 14 insertions(+) 3793 3794commit 424ac91c7e0419393ff2bde4f62e21fa611c776d 3795Author: Lasse Collin <lasse.collin@tukaani.org> 3796Date: 2022-10-19 19:39:35 +0300 3797 3798 Tests: Skip tests in test_*.sh if encoders and/or decoders are disabled. 3799 3800 This isn't perfect as the scripts can still fail if only 3801 certain filters are disabled. This is still an improvement 3802 as now "make check" has better behavior when all encoders 3803 or decoders are disabled. 3804 3805 Grepping ../config.h is simple and fairly clean but it only 3806 works if config.h was created. CMake builds don't create 3807 config.h but they don't use these test scripts either. 3808 3809 Thanks to Sebastian Andrzej Siewior for reporting the problem. 3810 Thanks to Jia Tan for the original patch which grepped xz 3811 error messages instead of config.h. 3812 3813 tests/test_compress.sh | 12 ++++++++++++ 3814 tests/test_files.sh | 11 +++++++++++ 3815 tests/test_scripts.sh | 11 +++++++++++ 3816 3 files changed, 34 insertions(+) 3817 3818commit ca8bf9d7c5a30be8ba1eeb106fd892f19e83ed09 3819Author: Lasse Collin <lasse.collin@tukaani.org> 3820Date: 2022-10-19 18:54:34 +0300 3821 3822 Test: Remove the (exit 1) lines. 3823 3824 I suspect that I used these in the original version because 3825 Autoconf's manual describes that such a trick is needed in 3826 some specific situations for portability reasons. None of those 3827 situations listed on Autoconf 2.71 manual apply to these test 3828 scripts though so this cleans them up. 3829 3830 tests/test_compress.sh | 10 ---------- 3831 tests/test_files.sh | 9 --------- 3832 tests/test_scripts.sh | 6 ------ 3833 3 files changed, 25 deletions(-) 3834 3835commit 82fcb7cfc17ce62f79ebc7ca2374e1daca5e4d5e 3836Author: Lasse Collin <lasse.collin@tukaani.org> 3837Date: 2022-10-19 17:14:57 +0300 3838 3839 Tests: Fix a warning in test_memlimit.c when decoders are disabled. 3840 3841 tests/test_memlimit.c | 3 +++ 3842 1 file changed, 3 insertions(+) 3843 3844commit b5f8271b45b9b0e59485ffba3640ca3418835ec4 3845Author: Lasse Collin <lasse.collin@tukaani.org> 3846Date: 2022-10-19 17:11:46 +0300 3847 3848 Tests: Add test_memlimit to .gitignore. 3849 3850 Thanks to Jia Tan. 3851 3852 .gitignore | 1 + 3853 1 file changed, 1 insertion(+) 3854 3855commit 6a86e81cab202d0a812a7b2e9efacaf70c58ba38 3856Author: Jia Tan <jiat0218@gmail.com> 3857Date: 2022-10-06 21:53:09 +0300 3858 3859 Tests: Refactor test_stream_flags.c. 3860 3861 Converts test_stream_flags to tuktest. Also the test will now 3862 compile and skip properly if encoders or decoders are disabled. 3863 3864 Thanks to Sebastian Andrzej Siewior. 3865 3866 tests/test_stream_flags.c | 533 ++++++++++++++++++++++++++++++++++++---------- 3867 1 file changed, 416 insertions(+), 117 deletions(-) 3868 3869commit 827ac5b4821491fd3afe0d0e1ddac326253aeb66 3870Author: Jia Tan <jiat0218@gmail.com> 3871Date: 2022-10-06 17:00:38 +0800 3872 3873 Tests: Refactor test_block_header.c. 3874 3875 test_block_header now achieves higher test coverage. Also the 3876 test will now compile and skip properly if encoders or decoders 3877 are disabled. 3878 3879 Thanks to Sebastian Andrzej Siewior. 3880 3881 tests/test_block_header.c | 486 +++++++++++++++++++++++++++++++++++----------- 3882 1 file changed, 370 insertions(+), 116 deletions(-) 3883 3884commit 84963318952064a93bfc52edd6b0ef70593384ee 3885Author: Jia Tan <jiat0218@gmail.com> 3886Date: 2022-10-05 23:54:12 +0800 3887 3888 Tests: Fix compilation issues. 3889 3890 test_bcj_exact_size, test_check, test_hardware, and test_index will 3891 all now compile and skip properly if encoders or decoders are disabled. 3892 3893 Also fixed a small typo (disabed -> disabled). 3894 3895 Thanks to Sebastian Andrzej Siewior. 3896 3897 tests/test_bcj_exact_size.c | 20 ++++++++++++++------ 3898 tests/test_check.c | 8 +++++++- 3899 tests/test_hardware.c | 2 +- 3900 tests/test_index.c | 6 ++++++ 3901 tests/test_memlimit.c | 16 +++++++++++++++- 3902 tests/test_vli.c | 13 +++++++++++++ 3903 6 files changed, 56 insertions(+), 9 deletions(-) 3904 3905commit 7dcabeec63d46b436fa5f043c3d1f09d0e15be16 3906Author: Lasse Collin <lasse.collin@tukaani.org> 3907Date: 2022-10-05 16:20:47 +0300 3908 3909 Tests: Include mythread.h in the tests that use MYTHREAD_ENABLED. 3910 3911 tests/test_check.c | 1 + 3912 tests/test_hardware.c | 1 + 3913 tests/test_memlimit.c | 1 + 3914 3 files changed, 3 insertions(+) 3915 3916commit 14af758a770c7781af18fb66d6d21ee5b1c27f04 3917Author: Jia Tan <jiat0218@gmail.com> 3918Date: 2022-10-05 20:57:16 +0800 3919 3920 liblzma: Fix a compilation issue when encoders are disabled. 3921 3922 When encoders were disabled and threading enabled, outqueue.c and 3923 outqueue.h were not compiled. The multi threaded decoder required 3924 these files, so compilation failed. 3925 3926 src/liblzma/common/Makefile.inc | 7 ++++--- 3927 1 file changed, 4 insertions(+), 3 deletions(-) 3928 3929commit 6ca5c354bd4620aa7f81da68870eef1b1f26288f 3930Author: Jia Tan <jiat0218@gmail.com> 3931Date: 2022-10-05 16:41:38 +0800 3932 3933 Tests: Fix compilation error when threading support has been disabled. 3934 3935 Now tests that require threading are skipped when threading 3936 support has been disabled. 3937 3938 Thanks to Sebastian Andrzej Siewior. 3939 3940 tests/test_check.c | 4 ++++ 3941 tests/test_hardware.c | 4 ++++ 3942 tests/test_memlimit.c | 4 ++++ 3943 3 files changed, 12 insertions(+) 3944 3945commit fae37ad2affd8fe8871f4ff93d5cab5ec14d5e58 3946Author: Lasse Collin <lasse.collin@tukaani.org> 3947Date: 2022-10-05 14:26:00 +0300 3948 3949 tuklib_integer: Add 64-bit endianness-converting reads and writes. 3950 3951 Also update the comment in liblzma's memcmplen.h. 3952 3953 Thanks to Michał Górny for the original patch for the reads. 3954 3955 m4/tuklib_integer.m4 | 8 ++++---- 3956 src/common/tuklib_integer.h | 46 ++++++++++++++++++++++++++++++++++++++++-- 3957 src/liblzma/common/memcmplen.h | 9 +++------ 3958 3 files changed, 51 insertions(+), 12 deletions(-) 3959 3960commit 508a44372c5b0dede8863fd0d358d4a9d8645c95 3961Author: Lasse Collin <lasse.collin@tukaani.org> 3962Date: 2022-09-30 12:06:13 +0300 3963 3964 liblzma: Add API doc note about the .xz decoder LZMA_MEMLIMIT_ERROR bug. 3965 3966 The bug was fixed in 660739f99ab211edec4071de98889fb32ed04e98. 3967 3968 src/liblzma/api/lzma/base.h | 11 +++++++++++ 3969 1 file changed, 11 insertions(+) 3970 3971commit 8cc9874a7974cd575aee44f218836f7acdbeb0ed 3972Author: Jia Tan <jiat0218@gmail.com> 3973Date: 2022-09-21 16:15:50 +0800 3974 3975 liblzma: Add dest and src NULL checks to lzma_index_cat. 3976 3977 The documentation states LZMA_PROG_ERROR can be returned from 3978 lzma_index_cat. Previously, lzma_index_cat could not return 3979 LZMA_PROG_ERROR. Now, the validation is similar to 3980 lzma_index_append, which does a NULL check on the index 3981 parameter. 3982 3983 src/liblzma/common/index.c | 3 +++ 3984 1 file changed, 3 insertions(+) 3985 3986commit afd5a8bf5374eba82804a999e1ea7af680784086 3987Author: Jia Tan <jiat0218@gmail.com> 3988Date: 2022-09-21 20:29:28 +0800 3989 3990 Tests: Create a test for the lzma_index_cat bug. 3991 3992 tests/test_index.c | 43 ++++++++++++++++++++++++++++++++++++++++++- 3993 1 file changed, 42 insertions(+), 1 deletion(-) 3994 3995commit 3d5a99ca373a4e86faf671226ca6487febb9eeac 3996Author: Jia Tan <jiat0218@gmail.com> 3997Date: 2022-09-21 19:28:53 +0800 3998 3999 liblzma: Fix copying of check type statistics in lzma_index_cat(). 4000 4001 The check type of the last Stream in dest was never copied to 4002 dest->checks (the code tried to copy it but it was done too late). 4003 This meant that the value returned by lzma_index_checks() would 4004 only include the check type of the last Stream when multiple 4005 lzma_indexes had been concatenated. 4006 4007 In xz --list this meant that the summary would only list the 4008 check type of the last Stream, so in this sense this was only 4009 a visual bug. However, it's possible that some applications 4010 use this information for purposes other than merely showing 4011 it to the users in an informational message. I'm not aware of 4012 such applications though and it's quite possible that such 4013 applications don't exist. 4014 4015 Regular streamed decompression in xz or any other application 4016 doesn't use lzma_index_cat() and so this bug cannot affect them. 4017 4018 src/liblzma/common/index.c | 7 ++++++- 4019 1 file changed, 6 insertions(+), 1 deletion(-) 4020 4021commit a61d32172789735350a941e23baf6b587c49e5d9 4022Author: Lasse Collin <lasse.collin@tukaani.org> 4023Date: 2022-09-28 12:20:41 +0300 4024 4025 tuklib_physmem: Fix Unicode builds on Windows. 4026 4027 Thanks to ArSaCiA Game. 4028 4029 src/common/tuklib_physmem.c | 2 +- 4030 1 file changed, 1 insertion(+), 1 deletion(-) 4031 4032commit 5a4d3548ab214fdca364d5c734baf1d1fab47308 4033Author: Lasse Collin <lasse.collin@tukaani.org> 4034Date: 2022-09-28 11:12:07 +0300 4035 4036 Tests: Add test_memlimit.c to test restarting after LZMA_MEMLIMIT_ERROR. 4037 4038 tests/Makefile.am | 2 + 4039 tests/test_memlimit.c | 151 ++++++++++++++++++++++++++++++++++++++++++++++++++ 4040 2 files changed, 153 insertions(+) 4041 4042commit 660739f99ab211edec4071de98889fb32ed04e98 4043Author: Lasse Collin <lasse.collin@tukaani.org> 4044Date: 2022-09-28 11:05:15 +0300 4045 4046 liblzma: Stream decoder: Fix restarting after LZMA_MEMLIMIT_ERROR. 4047 4048 If lzma_code() returns LZMA_MEMLIMIT_ERROR it is now possible 4049 to use lzma_memlimit_set() to increase the limit and continue 4050 decoding. This was supposed to work from the beginning but 4051 there was a bug. With other decoders (.lzma or threaded .xz) 4052 this already worked correctly. 4053 4054 src/liblzma/common/stream_decoder.c | 16 +++++++++++++--- 4055 1 file changed, 13 insertions(+), 3 deletions(-) 4056 4057commit 7e68fda58c74ad9e5b876cc22fcbe80fc0e4747b 4058Author: Lasse Collin <lasse.collin@tukaani.org> 4059Date: 2022-09-28 11:00:23 +0300 4060 4061 liblzma: Stream decoder: Fix comments. 4062 4063 src/liblzma/common/stream_decoder.c | 12 +++++------- 4064 1 file changed, 5 insertions(+), 7 deletions(-) 4065 4066commit f664cb25841fc1c478b819034a224a558e2ac6e7 4067Author: Lasse Collin <lasse.collin@tukaani.org> 4068Date: 2022-09-20 16:58:22 +0300 4069 4070 liblzma: ARM64: Add comments. 4071 4072 src/liblzma/simple/arm64.c | 13 +++++++++++++ 4073 1 file changed, 13 insertions(+) 4074 4075commit b557b4a0eea05470fae8ba5ef4ad5a6dfb36ac41 4076Author: Lasse Collin <lasse.collin@tukaani.org> 4077Date: 2022-09-20 16:27:50 +0300 4078 4079 liblzma: ARM64: Fix wrong comment in API doc. 4080 4081 Thanks to Jia Tan. 4082 4083 src/liblzma/api/lzma/bcj.h | 4 ++-- 4084 1 file changed, 2 insertions(+), 2 deletions(-) 4085 4086commit d5b0906fa55157f48c200188a3951d80df9cb308 4087Author: Lasse Collin <lasse.collin@tukaani.org> 4088Date: 2022-09-19 20:24:26 +0300 4089 4090 xz: Add --experimental-arm64[=width=WIDTH]. 4091 4092 It will be renamed to --arm64 once it is stable. 4093 4094 Man page or --long-help weren't updated yet. 4095 4096 src/xz/args.c | 7 +++++++ 4097 src/xz/message.c | 7 +++++++ 4098 src/xz/options.c | 39 +++++++++++++++++++++++++++++++++++++++ 4099 src/xz/options.h | 7 +++++++ 4100 4 files changed, 60 insertions(+) 4101 4102commit ecb966de308c255bb4735a7307ef9901c643a9de 4103Author: Lasse Collin <lasse.collin@tukaani.org> 4104Date: 2022-09-19 19:34:56 +0300 4105 4106 liblzma: Add experimental ARM64 BCJ filter with a temporary Filter ID. 4107 4108 That is, the Filter ID will be changed once the design is final. 4109 The current version will be removed. So files created with the 4110 tempoary Filter ID won't be supported in the future. 4111 4112 CMakeLists.txt | 3 + 4113 configure.ac | 4 +- 4114 src/liblzma/api/lzma/bcj.h | 35 +++++- 4115 src/liblzma/common/filter_common.c | 9 ++ 4116 src/liblzma/common/filter_decoder.c | 8 ++ 4117 src/liblzma/common/filter_encoder.c | 11 ++ 4118 src/liblzma/simple/Makefile.inc | 4 + 4119 src/liblzma/simple/arm64.c | 227 ++++++++++++++++++++++++++++++++++++ 4120 src/liblzma/simple/simple_coder.h | 9 ++ 4121 src/liblzma/simple/simple_decoder.h | 4 + 4122 src/liblzma/simple/simple_encoder.h | 2 + 4123 11 files changed, 313 insertions(+), 3 deletions(-) 4124 4125commit 177bdc922cb17bd0fd831ab8139dfae912a5c2b8 4126Author: Lasse Collin <lasse.collin@tukaani.org> 4127Date: 2022-09-17 22:42:18 +0300 4128 4129 liblzma: Simple/BCJ filters: Allow disabling generic BCJ options. 4130 4131 This will be needed for the ARM64 BCJ filter as it will use 4132 its own options struct. 4133 4134 src/liblzma/simple/arm.c | 2 +- 4135 src/liblzma/simple/armthumb.c | 2 +- 4136 src/liblzma/simple/ia64.c | 2 +- 4137 src/liblzma/simple/powerpc.c | 2 +- 4138 src/liblzma/simple/simple_coder.c | 4 ++-- 4139 src/liblzma/simple/simple_private.h | 2 +- 4140 src/liblzma/simple/sparc.c | 2 +- 4141 src/liblzma/simple/x86.c | 3 ++- 4142 8 files changed, 10 insertions(+), 9 deletions(-) 4143 4144commit c3592d0a55114144686ecf960cb516d6b31c98e9 4145Author: Lasse Collin <lasse.collin@tukaani.org> 4146Date: 2022-09-16 17:08:53 +0300 4147 4148 Tests: Add a test file for lzma_index_append() integer overflow bug. 4149 4150 This test fails before commit 18d7facd3802b55c287581405c4d49c98708c136. 4151 4152 test_files.sh now runs xz -l for bad-3-index-uncomp-overflow.xz 4153 because only then the previously-buggy code path gets tested. 4154 Normal decompression doesn't use lzma_index_append() at all. 4155 Instead, lzma_index_hash functions are used and those already 4156 did the overflow check. 4157 4158 tests/files/README | 10 ++++++++++ 4159 tests/files/bad-3-index-uncomp-overflow.xz | Bin 0 -> 132 bytes 4160 tests/test_files.sh | 8 ++++++++ 4161 3 files changed, 18 insertions(+) 4162 4163commit 982b29f828079a2a26253a40e975127a40a7d2bd 4164Author: Lasse Collin <lasse.collin@tukaani.org> 4165Date: 2022-09-16 15:10:07 +0300 4166 4167 Translations: Add Turkish translation. 4168 4169 po/LINGUAS | 1 + 4170 po/tr.po | 977 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4171 2 files changed, 978 insertions(+) 4172 4173commit 1fc088d9f6d1697924aaeac8cd1fb9918d1532e2 4174Author: Lasse Collin <lasse.collin@tukaani.org> 4175Date: 2022-09-16 14:09:07 +0300 4176 4177 Update THANKS. 4178 4179 THANKS | 1 + 4180 1 file changed, 1 insertion(+) 4181 4182commit 097c7b67ce86ff16a7cef7631b39e5ca4ee3d420 4183Author: Lasse Collin <lasse.collin@tukaani.org> 4184Date: 2022-09-16 14:07:03 +0300 4185 4186 xzgrep: Fix compatibility with old shells. 4187 4188 Running the current xzgrep on Slackware 10.1 with GNU bash 3.00.15: 4189 4190 xzgrep: line 231: syntax error near unexpected token `;;' 4191 4192 On SCO OpenServer 5.0.7 with Korn Shell 93r: 4193 4194 syntax error at line 231 : `;;' unexpected 4195 4196 Turns out that some old shells don't like apostrophes (') inside 4197 command substitutions. For example, the following fails: 4198 4199 x=$(echo foo 4200 # asdf'zxcv 4201 echo bar) 4202 printf '%s\n' "$x" 4203 4204 The problem was introduced by commits 4205 69d1b3fc29677af8ade8dc15dba83f0589cb63d6 (2022-03-29), 4206 bd7b290f3fe4faeceb7d3497ed9bf2e6ed5e7dc5 (2022-07-18), and 4207 a648978b20495b7aa4a8b029c5a810b5ad9d08ff (2022-07-19). 4208 5.2.6 is the only stable release that included 4209 this problem. 4210 4211 Thanks to Kevin R. Bulgrien for reporting the problem 4212 on SCO OpenServer 5.0.7 and for providing the fix. 4213 4214 src/scripts/xzgrep.in | 6 +++--- 4215 1 file changed, 3 insertions(+), 3 deletions(-) 4216 4217commit f2d084fe3f0d6d71488bfc6987f26542f67bfd99 4218Author: Lasse Collin <lasse.collin@tukaani.org> 4219Date: 2022-09-09 14:12:30 +0300 4220 4221 Tests: Silence warnings about unused functions from tuktest.h. 4222 4223 Warnings about unused tuktest_run_test conveniently tell which 4224 test programs haven't been converted to tuktest.h yet but I 4225 silenced that warning too for now anyway. 4226 4227 It is fine to use __attribute__((__unused__)) even when the 4228 function is actually used because the attribute only means 4229 that the function might be unused. 4230 4231 tests/tuktest.h | 10 ++++++++++ 4232 1 file changed, 10 insertions(+) 4233 4234commit f8ee61e74eb40600445fdb601c374d582e1e9c8a 4235Author: Lasse Collin <lasse.collin@tukaani.org> 4236Date: 2022-09-09 13:51:57 +0300 4237 4238 liblzma: lzma_filters_copy: Keep dest[] unmodified if an error occurs. 4239 4240 lzma_stream_encoder() and lzma_stream_encoder_mt() always assumed 4241 this. Before this patch, failing lzma_filters_copy() could result 4242 in free(invalid_pointer) or invalid memory reads in stream_encoder.c 4243 or stream_encoder_mt.c. 4244 4245 To trigger this, allocating memory for a filter options structure 4246 has to fail. These are tiny allocations so in practice they very 4247 rarely fail. 4248 4249 Certain badness in the filter chain array could also make 4250 lzma_filters_copy() fail but both stream_encoder.c and 4251 stream_encoder_mt.c validate the filter chain before 4252 trying to copy it, so the crash cannot occur this way. 4253 4254 src/liblzma/api/lzma/filter.h | 4 +++- 4255 src/liblzma/common/filter_common.c | 18 ++++++++++++------ 4256 2 files changed, 15 insertions(+), 7 deletions(-) 4257 4258commit 18d7facd3802b55c287581405c4d49c98708c136 4259Author: Jia Tan <jiat0218@gmail.com> 4260Date: 2022-09-02 20:18:55 +0800 4261 4262 liblzma: lzma_index_append: Add missing integer overflow check. 4263 4264 The documentation in src/liblzma/api/lzma/index.h suggests that 4265 both the unpadded (compressed) size and the uncompressed size 4266 are checked for overflow, but only the unpadded size was checked. 4267 The uncompressed check is done first since that is more likely to 4268 occur than the unpadded or index field size overflows. 4269 4270 src/liblzma/common/index.c | 4 ++++ 4271 1 file changed, 4 insertions(+) 4272 4273commit 9ac06cb5b85274d18f9f70d82cf2d8c9c1151bd4 4274Author: Lasse Collin <lasse.collin@tukaani.org> 4275Date: 2022-09-08 15:11:08 +0300 4276 4277 Update THANKS. 4278 4279 THANKS | 1 + 4280 1 file changed, 1 insertion(+) 4281 4282commit ba3e4ba2de034ae93a513f9c3a0823b80cdb66dc 4283Author: Jia Tan <jiat0218@gmail.com> 4284Date: 2022-09-08 15:07:00 +0300 4285 4286 CMake: Clarify a comment about Windows symlinks without file extension. 4287 4288 CMakeLists.txt | 7 +++---- 4289 1 file changed, 3 insertions(+), 4 deletions(-) 4290 4291commit 17485e884ce5c74315f29a8a1507bc706cd5cd1d 4292Author: Lasse Collin <lasse.collin@tukaani.org> 4293Date: 2022-09-08 15:02:41 +0300 4294 4295 CMake: Update for liblzma_*.map files and fix wrong common_w32res.rc dep. 4296 4297 The previous commit split liblzma.map into liblzma_linux.map and 4298 liblzma_generic.map. This commit updates the CMake build for those. 4299 4300 common_w32res.rc dependency was listed under Linux/FreeBSD while 4301 obviously it belongs to Windows when building a DLL. 4302 4303 CMakeLists.txt | 24 +++++++++++++++++++----- 4304 1 file changed, 19 insertions(+), 5 deletions(-) 4305 4306commit 913ddc5572b9455fa0cf299be2e35c708840e922 4307Author: Lasse Collin <lasse.collin@tukaani.org> 4308Date: 2022-09-04 23:23:00 +0300 4309 4310 liblzma: Vaccinate against an ill patch from RHEL/CentOS 7. 4311 4312 RHEL/CentOS 7 shipped with 5.1.2alpha, including the threaded 4313 encoder that is behind #ifdef LZMA_UNSTABLE in the API headers. 4314 In 5.1.2alpha these symbols are under XZ_5.1.2alpha in liblzma.map. 4315 API/ABI compatibility tracking isn't done between development 4316 releases so newer releases didn't have XZ_5.1.2alpha anymore. 4317 4318 Later RHEL/CentOS 7 updated xz to 5.2.2 but they wanted to keep 4319 the exported symbols compatible with 5.1.2alpha. After checking 4320 the ABI changes it turned out that >= 5.2.0 ABI is backward 4321 compatible with the threaded encoder functions from 5.1.2alpha 4322 (but not vice versa as fixes and extensions to these functions 4323 were made between 5.1.2alpha and 5.2.0). 4324 4325 In RHEL/CentOS 7, XZ Utils 5.2.2 was patched with 4326 xz-5.2.2-compat-libs.patch to modify liblzma.map: 4327 4328 - XZ_5.1.2alpha was added with lzma_stream_encoder_mt and 4329 lzma_stream_encoder_mt_memusage. This matched XZ Utils 5.1.2alpha. 4330 4331 - XZ_5.2 was replaced with XZ_5.2.2. It is clear that this was 4332 an error; the intention was to keep using XZ_5.2 (XZ_5.2.2 4333 has never been used in XZ Utils). So XZ_5.2.2 lists all 4334 symbols that were listed under XZ_5.2 before the patch. 4335 lzma_stream_encoder_mt and _mt_memusage are included too so 4336 they are listed both here and under XZ_5.1.2alpha. 4337 4338 The patch didn't add any __asm__(".symver ...") lines to the .c 4339 files. Thus the resulting liblzma.so exports the threaded encoder 4340 functions under XZ_5.1.2alpha only. Listing the two functions 4341 also under XZ_5.2.2 in liblzma.map has no effect without 4342 matching .symver lines. 4343 4344 The lack of XZ_5.2 in RHEL/CentOS 7 means that binaries linked 4345 against unpatched XZ Utils 5.2.x won't run on RHEL/CentOS 7. 4346 This is unfortunate but this alone isn't too bad as the problem 4347 is contained within RHEL/CentOS 7 and doesn't affect users 4348 of other distributions. It could also be fixed internally in 4349 RHEL/CentOS 7. 4350 4351 The second problem is more serious: In XZ Utils 5.2.2 the API 4352 headers don't have #ifdef LZMA_UNSTABLE for obvious reasons. 4353 This is true in RHEL/CentOS 7 version too. Thus now programs 4354 using new APIs can be compiled without an extra #define. However, 4355 the programs end up depending on symbol version XZ_5.1.2alpha 4356 (and possibly also XZ_5.2.2) instead of XZ_5.2 as they would 4357 with an unpatched XZ Utils 5.2.2. This means that such binaries 4358 won't run on other distributions shipping XZ Utils >= 5.2.0 as 4359 they don't provide XZ_5.1.2alpha or XZ_5.2.2; they only provide 4360 XZ_5.2 (and XZ_5.0). (This includes RHEL/CentOS 8 as the patch 4361 luckily isn't included there anymore with XZ Utils 5.2.4.) 4362 4363 Binaries built by RHEL/CentOS 7 users get distributed and then 4364 people wonder why they don't run on some other distribution. 4365 Seems that people have found out about the patch and been copying 4366 it to some build scripts, seemingly curing the symptoms but 4367 actually spreading the illness further and outside RHEL/CentOS 7. 4368 4369 The ill patch seems to be from late 2016 (RHEL 7.3) and in 2017 it 4370 had spread at least to EasyBuild. I heard about the events only 4371 recently. :-( 4372 4373 This commit splits liblzma.map into two versions: one for 4374 GNU/Linux and another for other OSes that can use symbol versioning 4375 (FreeBSD, Solaris, maybe others). The Linux-specific file and the 4376 matching additions to .c files add full compatibility with binaries 4377 that have been built against a RHEL/CentOS-patched liblzma. Builds 4378 for OSes other than GNU/Linux won't get the vaccine as they should 4379 be immune to the problem (I really hope that no build script uses 4380 the RHEL/CentOS 7 patch outside GNU/Linux). 4381 4382 The RHEL/CentOS compatibility symbols XZ_5.1.2alpha and XZ_5.2.2 4383 are intentionally put *after* XZ_5.2 in liblzma_linux.map. This way 4384 if one forgets to #define HAVE_SYMBOL_VERSIONS_LINUX when building, 4385 the resulting liblzma.so.5 will have lzma_stream_encoder_mt@@XZ_5.2 4386 since XZ_5.2 {...} is the first one that lists that function. 4387 Without HAVE_SYMBOL_VERSIONS_LINUX @XZ_5.1.2alpha and @XZ_5.2.2 4388 will be missing but that's still a minor problem compared to 4389 only having lzma_stream_encoder_mt@@XZ_5.1.2alpha! 4390 4391 The "local: *;" line was moved to XZ_5.0 so that it doesn't need 4392 to be moved around. It doesn't matter where it is put. 4393 4394 Having two similar liblzma_*.map files is a bit silly as it is, 4395 at least for now, easily possible to generate the generic one 4396 from the Linux-specific file. But that adds extra steps and 4397 increases the risk of mistakes when supporting more than one 4398 build system. So I rather maintain two files in parallel and let 4399 validate_map.sh check that they are in sync when "make mydist" 4400 is run. 4401 4402 This adds .symver lines for lzma_stream_encoder_mt@XZ_5.2.2 and 4403 lzma_stream_encoder_mt_memusage@XZ_5.2.2 even though these 4404 weren't exported by RHEL/CentOS 7 (only @@XZ_5.1.2alpha was 4405 for these two). I added these anyway because someone might 4406 misunderstand the RHEL/CentOS 7 patch and think that @XZ_5.2.2 4407 (@@XZ_5.2.2) versions were exported too. 4408 4409 At glance one could suggest using __typeof__ to copy the function 4410 prototypes when making aliases. However, this doesn't work trivially 4411 because __typeof__ won't copy attributes (lzma_nothrow, lzma_pure) 4412 and it won't change symbol visibility from hidden to default (done 4413 by LZMA_API()). Attributes could be copied with __copy__ attribute 4414 but that needs GCC 9 and a fallback method would be needed anyway. 4415 4416 This uses __symver__ attribute with GCC >= 10 and 4417 __asm__(".symver ...") with everything else. The attribute method 4418 is required for LTO (-flto) support with GCC. Using -flto with 4419 GCC older than 10 is now broken on GNU/Linux and will not be fixed 4420 (can silently result in a broken liblzma build that has dangerously 4421 incorrect symbol versions). LTO builds with Clang seem to work 4422 with the traditional __asm__(".symver ...") method. 4423 4424 Thanks to Boud Roukema for reporting the problem and discussing 4425 the details and testing the fix. 4426 4427 configure.ac | 23 +++- 4428 src/liblzma/Makefile.am | 10 +- 4429 src/liblzma/common/block_buffer_encoder.c | 18 ++++ 4430 src/liblzma/common/common.c | 14 +++ 4431 src/liblzma/common/common.h | 28 +++++ 4432 src/liblzma/common/hardware_cputhreads.c | 12 +++ 4433 src/liblzma/common/stream_encoder_mt.c | 42 ++++++++ 4434 src/liblzma/{liblzma.map => liblzma_generic.map} | 6 +- 4435 src/liblzma/liblzma_linux.map | 131 +++++++++++++++++++++++ 4436 src/liblzma/validate_map.sh | 113 +++++++++++++++++-- 4437 10 files changed, 382 insertions(+), 15 deletions(-) 4438 4439commit 80a1a8bb838842a2be343bd88ad1462c21c5e2c9 4440Author: Lasse Collin <lasse.collin@tukaani.org> 4441Date: 2022-08-31 16:42:04 +0300 4442 4443 CMake: Add xz symlinks. 4444 4445 These are a minor thing especially since the xz build has 4446 some real problems still like lack of large file support 4447 on 32-bit systems but I'll commit this since the code exists. 4448 4449 Thanks to Jia Tan. 4450 4451 CMakeLists.txt | 38 +++++++++++++++++++++++++++++++++++++- 4452 1 file changed, 37 insertions(+), 1 deletion(-) 4453 4454commit a4193bb6d85d7765b1b87faeab3e50106d3ab2e9 4455Author: Lasse Collin <lasse.collin@tukaani.org> 4456Date: 2022-08-31 16:29:38 +0300 4457 4458 CMake: Put xz man page install under if(UNIX) like is for xzdec. 4459 4460 Thanks to Jia Tan. 4461 4462 CMakeLists.txt | 8 +++++--- 4463 1 file changed, 5 insertions(+), 3 deletions(-) 4464 4465commit c1555b1a221a1427d4d650647531016d754bc4da 4466Author: Lasse Collin <lasse.collin@tukaani.org> 4467Date: 2022-08-22 18:16:40 +0300 4468 4469 Bump version number for 5.3.3alpha. 4470 4471 src/liblzma/api/lzma/version.h | 2 +- 4472 src/liblzma/liblzma.map | 2 +- 4473 2 files changed, 2 insertions(+), 2 deletions(-) 4474 4475commit 44fedddc11c3f6ec2f7fe35a3e38f15ca93f90eb 4476Author: Lasse Collin <lasse.collin@tukaani.org> 4477Date: 2022-08-22 18:13:56 +0300 4478 4479 Add NEWS for 5.3.3alpha. 4480 4481 NEWS | 119 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4482 1 file changed, 119 insertions(+) 4483 4484commit a93e235d7ca764cc19f8f9f9063b40ff361c3cfa 4485Author: Lasse Collin <lasse.collin@tukaani.org> 4486Date: 2022-07-12 17:59:41 +0300 4487 4488 Translations: Add Portuguese translation. 4489 4490 Jia Tan made white-space changes and also changed "Language: pt_BR\n" 4491 to pt. The translator wasn't reached so I'm hoping these changes 4492 are OK and will commit it without translator's approval. 4493 4494 Thanks to Pedro Albuquerque and Jia Tan. 4495 4496 po/LINGUAS | 1 + 4497 po/pt.po | 1001 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4498 2 files changed, 1002 insertions(+) 4499 4500commit e7cf5a946f25e40d77f45e41f0dee7d42a04e9ae 4501Author: Lasse Collin <lasse.collin@tukaani.org> 4502Date: 2022-07-10 21:16:40 +0300 4503 4504 Translations: Add Serbian translation. 4505 4506 Quite a few white-space changes were made by Jia Tan to make 4507 this look good. Contacting the translator didn't succeed so 4508 I'm committing this without getting translator's approval. 4509 4510 Thanks to Мирослав Николић (Miroslav Nikolic) and Jia Tan. 4511 4512 po/LINGUAS | 1 + 4513 po/sr.po | 987 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4514 2 files changed, 988 insertions(+) 4515 4516commit cc8617ab53b1f2a4da212fa76c92fe538269c5de 4517Author: Lasse Collin <lasse.collin@tukaani.org> 4518Date: 2022-07-04 23:51:36 +0300 4519 4520 Translations: Add Swedish translation. 4521 4522 Thanks to Sebastian Rasmussen and Jia Tan. 4523 4524 po/LINGUAS | 1 + 4525 po/sv.po | 983 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4526 2 files changed, 984 insertions(+) 4527 4528commit c613598c358b640682d0ca2aed38fa7df763e8c7 4529Author: Lasse Collin <lasse.collin@tukaani.org> 4530Date: 2022-07-04 23:40:27 +0300 4531 4532 Translations: Add Esperanto translation. 4533 4534 Thanks to Keith Bowes and Jia Tan. 4535 4536 po/LINGUAS | 1 + 4537 po/eo.po | 984 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4538 2 files changed, 985 insertions(+) 4539 4540commit 659a587d678f21e98e91d2751c31d4ce050c081a 4541Author: Lasse Collin <lasse.collin@tukaani.org> 4542Date: 2022-07-01 00:22:33 +0300 4543 4544 Translations: Add Catalan translation. 4545 4546 Thanks to Jordi Mas and Jia Tan. 4547 4548 po/LINGUAS | 1 + 4549 po/ca.po | 1076 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4550 2 files changed, 1077 insertions(+) 4551 4552commit 739fd8c9bdf1d85f57d56642aad87148d4779530 4553Author: Lasse Collin <lasse.collin@tukaani.org> 4554Date: 2022-06-30 17:47:08 +0300 4555 4556 Translations: Add Ukrainian translation. 4557 4558 Thanks to Yuri Chornoivan and Jia Tan. 4559 4560 po/LINGUAS | 1 + 4561 po/uk.po | 996 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4562 2 files changed, 997 insertions(+) 4563 4564commit 73280550b111930c62a667e56add8fd574f80bc8 4565Author: Lasse Collin <lasse.collin@tukaani.org> 4566Date: 2022-06-30 17:45:26 +0300 4567 4568 Translators: Add Romanian translation. 4569 4570 Thanks to Remus-Gabriel Chelu and Jia Tan. 4571 4572 po/LINGUAS | 1 + 4573 po/ro.po | 1016 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4574 2 files changed, 1017 insertions(+) 4575 4576commit 2465f5b825152714b2c357d96c2422c31109d320 4577Author: Lasse Collin <lasse.collin@tukaani.org> 4578Date: 2022-06-29 18:33:32 +0300 4579 4580 Translations: Update Brazilian Portuguese translation. 4581 4582 One msgstr was changed. The diff is long due to changes 4583 in the source code line numbers in the comments. 4584 4585 Thanks to Rafael Fontenelle. 4586 4587 po/pt_BR.po | 186 ++++++++++++++++++++++++++++++------------------------------ 4588 1 file changed, 92 insertions(+), 94 deletions(-) 4589 4590commit 434e1ffd3e62719d509da10b646216f5ef53fe4d 4591Author: Lasse Collin <lasse.collin@tukaani.org> 4592Date: 2022-06-29 18:04:44 +0300 4593 4594 Translations: Add Croatian translation. 4595 4596 Thanks to Božidar Putanec and Jia Tan. 4597 4598 po/LINGUAS | 1 + 4599 po/hr.po | 987 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4600 2 files changed, 988 insertions(+) 4601 4602commit 0732d0f7065c9bd48bfe4f5983144ae970c4a499 4603Author: Lasse Collin <lasse.collin@tukaani.org> 4604Date: 2022-06-29 17:58:48 +0300 4605 4606 Translations: Add Spanish translation. 4607 4608 Thanks to Cristian Othón Martínez Vera and Jia Tan. 4609 4610 po/LINGUAS | 1 + 4611 po/es.po | 984 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4612 2 files changed, 985 insertions(+) 4613 4614commit 9899b0f82bc130998d1f1f618a6ab805b73f2696 4615Author: Lasse Collin <lasse.collin@tukaani.org> 4616Date: 2022-06-29 17:49:43 +0300 4617 4618 Translations: Add Korean translation. 4619 4620 Thanks to Seong-ho Cho and Jia Tan. 4621 4622 po/LINGUAS | 1 + 4623 po/ko.po | 972 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4624 2 files changed, 973 insertions(+) 4625 4626commit 65217eaf6bd195f3ef027d4ac55d57b7d133d69f 4627Author: Lasse Collin <lasse.collin@tukaani.org> 4628Date: 2020-03-16 21:57:21 +0200 4629 4630 Translations: Rebuild cs.po to avoid incorrect fuzzy strings. 4631 4632 "make dist" updates the .po files and the fuzzy strings would 4633 result in multiple very wrong translations. 4634 4635 po/cs.po | 592 ++++++++++++++++++++++++++++++++++----------------------------- 4636 1 file changed, 322 insertions(+), 270 deletions(-) 4637 4638commit e56ff423ee7af9e648e16b132f0d835d2cb4db26 4639Author: Lasse Collin <lasse.collin@tukaani.org> 4640Date: 2020-03-16 17:30:39 +0200 4641 4642 Translations: Add partial Danish translation. 4643 4644 I made a few minor white space changes without getting them 4645 approved by the Danish translation team. 4646 4647 po/LINGUAS | 1 + 4648 po/da.po | 896 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4649 2 files changed, 897 insertions(+) 4650 4651commit 43e09c62e77cb8807d932c81de4decbdb956e184 4652Author: Lasse Collin <lasse.collin@tukaani.org> 4653Date: 2020-03-11 22:37:54 +0200 4654 4655 Translations: Add hu, zh_CN, and zh_TW. 4656 4657 I made a few white space changes to these without getting them 4658 approved by the translation teams. (I tried to contact the hu and 4659 zh_TW teams but didn't succeed. I didn't contact the zh_CN team.) 4660 4661 po/LINGUAS | 3 + 4662 po/hu.po | 985 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4663 po/zh_CN.po | 963 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4664 po/zh_TW.po | 956 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4665 4 files changed, 2907 insertions(+) 4666 4667commit 982b6b198ae1ffe6093236dd8a3d03d1415b912b 4668Author: Lasse Collin <lasse.collin@tukaani.org> 4669Date: 2020-03-11 14:33:30 +0200 4670 4671 Translations: Update vi.po to match the file from the TP. 4672 4673 The translated strings haven't been updated but word wrapping 4674 is different. 4675 4676 po/vi.po | 407 ++++++++++++++++++++++++++++----------------------------------- 4677 1 file changed, 179 insertions(+), 228 deletions(-) 4678 4679commit 801f39691fc4abc6dd33d7653d498781b593f3eb 4680Author: Lasse Collin <lasse.collin@tukaani.org> 4681Date: 2020-03-11 14:18:03 +0200 4682 4683 Translations: Add fi and pt_BR, and update de, fr, it, and pl. 4684 4685 The German translation isn't identical to the file in 4686 the Translation Project but the changes (white space changes 4687 only) were approved by the translator Mario Blättermann. 4688 4689 po/LINGUAS | 2 + 4690 po/de.po | 476 ++++++++++++++-------------- 4691 po/fi.po | 974 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4692 po/fr.po | 272 ++++++++-------- 4693 po/it.po | 479 ++++++++++++---------------- 4694 po/pl.po | 239 +++++++------- 4695 po/pt_BR.po | 1001 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4696 7 files changed, 2697 insertions(+), 746 deletions(-) 4697 4698commit 311e4f85ede5d2f0bb71f3ad70b5b7db1b5adf33 4699Author: Lasse Collin <lasse.collin@tukaani.org> 4700Date: 2022-08-22 17:27:19 +0300 4701 4702 xz: Try to clarify --memlimit-mt-decompress vs. --memlimit-compress. 4703 4704 src/xz/xz.1 | 31 +++++++++++++++++++------------ 4705 1 file changed, 19 insertions(+), 12 deletions(-) 4706 4707commit df23c31000283c00e5ef1ca32a0bc3bb757bd707 4708Author: Lasse Collin <lasse.collin@tukaani.org> 4709Date: 2022-08-22 16:46:18 +0300 4710 4711 CMake: Add liblzma tests. 4712 4713 Thanks to Jia Tan for the patch. 4714 4715 CMakeLists.txt | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 4716 1 file changed, 52 insertions(+), 1 deletion(-) 4717 4718commit 02a777f9c422d3b5ec895078530bb1a2b6f7bdf5 4719Author: Lasse Collin <lasse.collin@tukaani.org> 4720Date: 2022-08-19 23:32:22 +0300 4721 4722 xz: Revise --info-memory output. 4723 4724 The strings could be more descriptive but it's good 4725 to have some version of this committed now. 4726 4727 --robot mode wasn't changed yet. 4728 4729 src/xz/hardware.c | 32 ++++++++++++++++++++++++++------ 4730 src/xz/xz.1 | 1 + 4731 2 files changed, 27 insertions(+), 6 deletions(-) 4732 4733commit f864f6d42eab57ea8ed82cc2dd19a03b51377442 4734Author: Lasse Collin <lasse.collin@tukaani.org> 4735Date: 2022-08-19 23:12:02 +0300 4736 4737 xz: Update the man page for threaded decompression and memlimits. 4738 4739 This documents the changes made in commits 4740 6c6da57ae2aa962aabde6892442227063d87e88c, 4741 cad299008cf73ec566f0662a9cf2b94f86a99659, and 4742 898faa97287a756231c663a3ed5165672b417207. 4743 4744 The --info-memory bit hasn't been finished yet 4745 even though it's already mentioned in this commit 4746 under --memlimit-mt-decompress and --threads. 4747 4748 src/xz/xz.1 | 148 +++++++++++++++++++++++++++++++++++++++++++++++++----------- 4749 1 file changed, 121 insertions(+), 27 deletions(-) 4750 4751commit d13bfcc0056617dd648f655a01653932fad7067f 4752Author: Lasse Collin <lasse.collin@tukaani.org> 4753Date: 2022-08-18 17:49:16 +0300 4754 4755 Build: Include the CMake files in the distribution. 4756 4757 This was supposed to be done in 2020 with 5.2.5 release 4758 already but it was noticed only today. 5.2.5 and 5.2.6 4759 even mention experiemental CMake support in the NEWS entries. 4760 4761 Thanks to Olivier B. for reporting the problem. 4762 4763 Makefile.am | 2 ++ 4764 1 file changed, 2 insertions(+) 4765 4766commit e66787bcfefdb93f19c974f895f65969a77937b0 4767Author: Lasse Collin <lasse.collin@tukaani.org> 4768Date: 2022-08-18 17:38:05 +0300 4769 4770 Windows: Fix broken liblzma.dll build with Visual Studio project files. 4771 4772 The bug was introduced in 352ba2d69af2136bc814aa1df1a132559d445616 4773 "Windows: Fix building of resource files when config.h isn't used." 4774 4775 That commit fixed liblzma.dll build with CMake while keeping it 4776 working with Autotools on Windows but the VS project files were 4777 forgotten. 4778 4779 I haven't tested these changes. 4780 4781 Thanks to Olivier B. for reporting the bug and for the initial patch. 4782 4783 windows/vs2013/liblzma_dll.vcxproj | 6 ++++++ 4784 windows/vs2017/liblzma_dll.vcxproj | 6 ++++++ 4785 windows/vs2019/liblzma_dll.vcxproj | 6 ++++++ 4786 3 files changed, 18 insertions(+) 4787 4788commit c4e8e5fb311225b8b48d34157891a640b2535e0c 4789Author: Lasse Collin <lasse.collin@tukaani.org> 4790Date: 2022-08-18 17:16:49 +0300 4791 4792 liblzma: Threaded decoder: Improve LZMA_FAIL_FAST when LZMA_FINISH is used. 4793 4794 It will now return LZMA_DATA_ERROR (not LZMA_OK or LZMA_BUF_ERROR) 4795 if LZMA_FINISH is used and there isn't enough input to finish 4796 decoding the Block Header or the Block. The use of LZMA_DATA_ERROR 4797 is simpler and the less risky than LZMA_BUF_ERROR but this might 4798 be changed before 5.4.0. 4799 4800 src/liblzma/api/lzma/container.h | 6 +++++ 4801 src/liblzma/common/stream_decoder_mt.c | 42 ++++++++++++++++++++++++++++++++++ 4802 2 files changed, 48 insertions(+) 4803 4804commit 6dcf606e7efa2b259f0262f9e2f61e00116842d3 4805Author: Lasse Collin <lasse.collin@tukaani.org> 4806Date: 2022-08-12 18:31:47 +0300 4807 4808 Add NEWS for 5.2.6. 4809 4810 NEWS | 121 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4811 1 file changed, 121 insertions(+) 4812 4813commit 413b86fcf8934fae5a004f378a9483d37d8fcaab 4814Author: Lasse Collin <lasse.collin@tukaani.org> 4815Date: 2022-08-12 14:28:41 +0300 4816 4817 Add Jia Tan to AUTHORS. 4818 4819 AUTHORS | 2 +- 4820 1 file changed, 1 insertion(+), 1 deletion(-) 4821 4822commit 352672732c346c546ff3c26d0605bc0ed1c8b7c7 4823Author: Lasse Collin <lasse.collin@tukaani.org> 4824Date: 2022-07-25 19:28:26 +0300 4825 4826 Build: Start the generated ChangeLog from around 5.2.0 instead of 5.0.0. 4827 4828 This makes ChangeLog smaller. 4829 4830 Makefile.am | 2 +- 4831 1 file changed, 1 insertion(+), 1 deletion(-) 4832 4833commit 6f6d11225d6016be2bbb55d845b66f6b04d048df 4834Author: Lasse Collin <lasse.collin@tukaani.org> 4835Date: 2022-07-25 19:11:05 +0300 4836 4837 Translations: Change the copyright comment string to use with po4a. 4838 4839 This affects the second line in po4a/xz-man.pot. The man pages of 4840 xzdiff, xzgrep, and xzmore are from GNU gzip and under GNU GPLv2+ 4841 while the rest of the man pages are in the public domain. 4842 4843 po4a/update-po | 2 +- 4844 1 file changed, 1 insertion(+), 1 deletion(-) 4845 4846commit 61f8ec804abdb4c5dac01e8ae9b90c7be58a5c24 4847Author: Jia Tan <jiat0218@gmail.com> 4848Date: 2022-07-25 18:30:05 +0300 4849 4850 liblzma: Refactor lzma_mf_is_supported() to use a switch-statement. 4851 4852 src/liblzma/lz/lz_encoder.c | 32 ++++++++++++++------------------ 4853 1 file changed, 14 insertions(+), 18 deletions(-) 4854 4855commit 4d80b463a1251aa22eabc87d2732fec13b1adda6 4856Author: Jia Tan <jiat0218@gmail.com> 4857Date: 2022-07-25 18:20:01 +0300 4858 4859 Build: Don't allow empty LIST in --enable-match-finders=LIST. 4860 4861 It's enforced only when a match finder is needed, that is, 4862 when LZMA1 or LZMA2 encoder is enabled. 4863 4864 configure.ac | 4 ++++ 4865 1 file changed, 4 insertions(+) 4866 4867commit 9cc721af5436908f2d5a828aebbc4050a32a3487 4868Author: Lasse Collin <lasse.collin@tukaani.org> 4869Date: 2022-07-24 13:27:48 +0300 4870 4871 xz: Update the man page that change to --keep will be in 5.2.6. 4872 4873 src/xz/xz.1 | 4 ++-- 4874 1 file changed, 2 insertions(+), 2 deletions(-) 4875 4876commit b81bf0c7d1873e52a4086a9abb494471d652cb55 4877Author: Lasse Collin <lasse.collin@tukaani.org> 4878Date: 2022-07-19 23:23:54 +0300 4879 4880 Update THANKS. 4881 4882 THANKS | 1 + 4883 1 file changed, 1 insertion(+) 4884 4885commit 340cf1ec3927767046b8293a49da3db4e393f426 4886Author: Nicholas Jackson <nickajacks1@gmail.com> 4887Date: 2022-07-17 17:39:23 -0700 4888 4889 CMake: Add missing source file to liblzma build 4890 4891 CMakeLists.txt | 1 + 4892 1 file changed, 1 insertion(+) 4893 4894commit d796b6d7fdb8b7238b277056cf9146cce25db604 4895Author: Lasse Collin <lasse.collin@tukaani.org> 4896Date: 2022-07-19 23:19:49 +0300 4897 4898 xzgrep man page: Document exit statuses. 4899 4900 src/scripts/xzgrep.1 | 15 ++++++++++++++- 4901 1 file changed, 14 insertions(+), 1 deletion(-) 4902 4903commit 923bf96b55e5216a6c8df9d8331934f54784390e 4904Author: Lasse Collin <lasse.collin@tukaani.org> 4905Date: 2022-07-19 23:13:24 +0300 4906 4907 xzgrep: Improve error handling, especially signals. 4908 4909 xzgrep wouldn't exit on SIGPIPE or SIGQUIT when it clearly 4910 should have. It's quite possible that it's not perfect still 4911 but at least it's much better. 4912 4913 If multiple exit statuses compete, now it tries to pick 4914 the largest of value. 4915 4916 Some comments were added. 4917 4918 The exit status handling of signals is still broken if the shell 4919 uses values larger than 255 in $? to indicate that a process 4920 died due to a signal ***and*** their "exit" command doesn't take 4921 this into account. This seems to work well with the ksh and yash 4922 versions I tried. However, there is a report in gzip/zgrep that 4923 OpenSolaris 5.11 (not 5.10) has a problem with "exit" truncating 4924 the argument to 8 bits: 4925 4926 https://debbugs.gnu.org/cgi/bugreport.cgi?bug=22900#25 4927 4928 Such a bug would break xzgrep but I didn't add a workaround 4929 at least for now. 5.11 is old and I don't know if the problem 4930 exists in modern descendants, or if the problem exists in other 4931 ksh implementations in use. 4932 4933 src/scripts/xzgrep.in | 72 +++++++++++++++++++++++++++++++++++++-------------- 4934 1 file changed, 53 insertions(+), 19 deletions(-) 4935 4936commit a648978b20495b7aa4a8b029c5a810b5ad9d08ff 4937Author: Lasse Collin <lasse.collin@tukaani.org> 4938Date: 2022-07-19 00:10:55 +0300 4939 4940 xzgrep: Make the fix for ZDI-CAN-16587 more robust. 4941 4942 I don't know if this can make a difference in the real world 4943 but it looked kind of suspicious (what happens with sed 4944 implementations that cannot process very long lines?). 4945 At least this commit shouldn't make it worse. 4946 4947 src/scripts/xzgrep.in | 5 ++++- 4948 1 file changed, 4 insertions(+), 1 deletion(-) 4949 4950commit bd7b290f3fe4faeceb7d3497ed9bf2e6ed5e7dc5 4951Author: Lasse Collin <lasse.collin@tukaani.org> 4952Date: 2022-07-18 21:52:31 +0300 4953 4954 xzgrep: Use grep -H --label when available (GNU, *BSDs). 4955 4956 It avoids the use of sed for prefixing filenames to output lines. 4957 Using sed for that is slower and prone to security bugs so now 4958 the sed method is only used as a fallback. 4959 4960 This also fixes an actual bug: When grepping a binary file, 4961 GNU grep nowadays prints its diagnostics to stderr instead of 4962 stdout and thus the sed-method for prefixing the filename doesn't 4963 work. So with this commit grepping binary files gives reasonable 4964 output with GNU grep now. 4965 4966 This was inspired by zgrep but the implementation is different. 4967 4968 src/scripts/xzgrep.in | 21 +++++++++++++++++++++ 4969 1 file changed, 21 insertions(+) 4970 4971commit b56729af9f1a596e57aeefd7570d8d7dce5c9f52 4972Author: Lasse Collin <lasse.collin@tukaani.org> 4973Date: 2022-07-18 21:10:25 +0300 4974 4975 xzgrep: Use -e to specify the pattern to grep. 4976 4977 Now we don't need the separate test for adding the -q option 4978 as it can be added directly in the two places where it's needed. 4979 4980 src/scripts/xzgrep.in | 12 ++++-------- 4981 1 file changed, 4 insertions(+), 8 deletions(-) 4982 4983commit bad61b5997e6647911974022bfb72f3d4818a594 4984Author: Lasse Collin <lasse.collin@tukaani.org> 4985Date: 2022-07-18 19:18:48 +0300 4986 4987 Scripts: Use printf instead of echo in a few places. 4988 4989 It's a good habbit as echo has some portability corner cases 4990 when the string contents can be anything. 4991 4992 src/scripts/xzdiff.in | 6 +++--- 4993 src/scripts/xzgrep.in | 4 ++-- 4994 src/scripts/xzless.in | 4 ++-- 4995 src/scripts/xzmore.in | 8 ++++---- 4996 4 files changed, 11 insertions(+), 11 deletions(-) 4997 4998commit 6a4a4a7d2667837dc824c26fcb19ed6ca5aff645 4999Author: Lasse Collin <lasse.collin@tukaani.org> 5000Date: 2022-07-17 21:36:25 +0300 5001 5002 xzgrep: Add more LC_ALL=C to avoid bugs with multibyte characters. 5003 5004 Also replace one use of expr with printf. 5005 5006 The rationale for LC_ALL=C was already mentioned in 5007 69d1b3fc29677af8ade8dc15dba83f0589cb63d6 that fixed a security 5008 issue. However, unrelated uses weren't changed in that commit yet. 5009 5010 POSIX says that with sed and such tools one should use LC_ALL=C 5011 to ensure predictable behavior when strings contain byte sequences 5012 that aren't valid multibyte characters in the current locale. See 5013 under "Application usage" in here: 5014 5015 https://pubs.opengroup.org/onlinepubs/9699919799/utilities/sed.html 5016 5017 With GNU sed invalid multibyte strings would work without this; 5018 it's documented in its Texinfo manual. Some other implementations 5019 aren't so forgiving. 5020 5021 src/scripts/xzgrep.in | 14 ++++++++------ 5022 1 file changed, 8 insertions(+), 6 deletions(-) 5023 5024commit b48f9d615f2c2e8d2f6e253d0e48ee66d0652b68 5025Author: Lasse Collin <lasse.collin@tukaani.org> 5026Date: 2022-07-17 20:55:16 +0300 5027 5028 xzgrep: Fix parsing of certain options. 5029 5030 Fix handling of "xzgrep -25 foo" (in GNU grep "grep -25 foo" is 5031 an alias for "grep -C25 foo"). xzgrep would treat "foo" as filename 5032 instead of as a pattern. This bug was fixed in zgrep in gzip in 2012. 5033 5034 Add -E, -F, -G, and -P to the "no argument required" list. 5035 5036 Add -X to "argument required" list. It is an 5037 intentionally-undocumented GNU grep option so this isn't 5038 an important option for xzgrep but it seems that other grep 5039 implementations (well, those that I checked) don't support -X 5040 so I hope this change is an improvement still. 5041 5042 grep -d (grep --directories=ACTION) requires an argument. In 5043 contrast to zgrep, I kept -d in the "no argument required" list 5044 because it's not supported in xzgrep (or zgrep). This way 5045 "xzgrep -d" gives an error about option being unsupported instead 5046 of telling that it requires an argument. Both zgrep and xzgrep 5047 tell that it's unsupported if an argument is specified. 5048 5049 Add comments. 5050 5051 src/scripts/xzgrep.in | 19 +++++++++++++++++-- 5052 1 file changed, 17 insertions(+), 2 deletions(-) 5053 5054commit 2d2201bc6315deda4d43625aa510972467bd51d4 5055Author: Lasse Collin <lasse.collin@tukaani.org> 5056Date: 2022-07-14 20:33:05 +0300 5057 5058 Tests: Add the .lzma files to test_files.sh. 5059 5060 tests/test_files.sh | 20 ++++++++++++++++++++ 5061 1 file changed, 20 insertions(+) 5062 5063commit ce5549a591bf126300618879f5b24023351baff6 5064Author: Lasse Collin <lasse.collin@tukaani.org> 5065Date: 2022-07-14 19:37:42 +0300 5066 5067 Tests: Add .lzma test files. 5068 5069 tests/files/README | 63 ++++++++++++++++----- 5070 tests/files/bad-too_big_size-with_eopm.lzma | Bin 0 -> 37 bytes 5071 tests/files/bad-too_small_size-without_eopm-1.lzma | Bin 0 -> 31 bytes 5072 tests/files/bad-too_small_size-without_eopm-2.lzma | Bin 0 -> 31 bytes 5073 tests/files/bad-too_small_size-without_eopm-3.lzma | Bin 0 -> 36 bytes 5074 tests/files/bad-unknown_size-without_eopm.lzma | Bin 0 -> 31 bytes 5075 tests/files/good-known_size-with_eopm.lzma | Bin 0 -> 37 bytes 5076 tests/files/good-known_size-without_eopm.lzma | Bin 0 -> 31 bytes 5077 tests/files/good-unknown_size-with_eopm.lzma | Bin 0 -> 37 bytes 5078 9 files changed, 50 insertions(+), 13 deletions(-) 5079 5080commit 107c93ee5cad51a6ea0cee471209bfe8d76deaa3 5081Author: Lasse Collin <lasse.collin@tukaani.org> 5082Date: 2022-07-14 18:12:38 +0300 5083 5084 liblzma: Rename a variable and improve a comment. 5085 5086 src/liblzma/lzma/lzma_decoder.c | 13 +++++++++---- 5087 1 file changed, 9 insertions(+), 4 deletions(-) 5088 5089commit 511feb5eadb988d641b025d597f4fac7502003b8 5090Author: Lasse Collin <lasse.collin@tukaani.org> 5091Date: 2022-07-13 22:24:41 +0300 5092 5093 Update THANKS. 5094 5095 THANKS | 1 + 5096 1 file changed, 1 insertion(+) 5097 5098commit 9595a3119b9faf0ce01375329cad8bbf85c35ea2 5099Author: Lasse Collin <lasse.collin@tukaani.org> 5100Date: 2022-07-13 22:24:07 +0300 5101 5102 liblzma: Add optional autodetection of LZMA end marker. 5103 5104 Turns out that this is needed for .lzma files as the spec in 5105 LZMA SDK says that end marker may be present even if the size 5106 is stored in the header. Such files are rare but exist in the 5107 real world. The code in liblzma is so old that the spec didn't 5108 exist in LZMA SDK back then and I had understood that such 5109 files weren't possible (the lzma tool in LZMA SDK didn't 5110 create such files). 5111 5112 This modifies the internal API so that LZMA decoder can be told 5113 if EOPM is allowed even when the uncompressed size is known. 5114 It's allowed with .lzma and not with other uses. 5115 5116 Thanks to Karl Beldan for reporting the problem. 5117 5118 doc/lzma-file-format.txt | 11 +++- 5119 src/liblzma/common/alone_decoder.c | 2 +- 5120 src/liblzma/common/microlzma_decoder.c | 2 +- 5121 src/liblzma/lz/lz_decoder.c | 10 +++- 5122 src/liblzma/lz/lz_decoder.h | 8 +-- 5123 src/liblzma/lzma/lzma2_decoder.c | 2 +- 5124 src/liblzma/lzma/lzma_decoder.c | 99 ++++++++++++++++++++++++---------- 5125 7 files changed, 95 insertions(+), 39 deletions(-) 5126 5127commit 0c0f8e9761eb6eaf199082cf144db7ac5f9d8cb2 5128Author: Lasse Collin <lasse.collin@tukaani.org> 5129Date: 2022-07-12 18:53:04 +0300 5130 5131 xz: Document the special memlimit case of 2000 MiB on MIPS32. 5132 5133 See commit fc3d3a7296ef58bb799a73943636b8bfd95339f7. 5134 5135 src/xz/xz.1 | 8 ++++++-- 5136 1 file changed, 6 insertions(+), 2 deletions(-) 5137 5138commit d1bfa3dc703325ecd974167e864a8712fdfe936e 5139Author: Jia Tan <jiat0218@gmail.com> 5140Date: 2022-07-01 21:19:26 +0800 5141 5142 Created script to generate code coverage reports. 5143 5144 The script uses lcov and genhtml after running the tests 5145 to show the code coverage statistics. The script will create 5146 a coverage directory where it is run. It can be run both in 5147 and out of the source directory. 5148 5149 .gitignore | 4 +++ 5150 tests/code_coverage.sh | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++ 5151 2 files changed, 83 insertions(+) 5152 5153commit 86a30b0255d8064169fabfd213d907016d2f9f2a 5154Author: Jia Tan <jiat0218@gmail.com> 5155Date: 2022-06-16 17:32:19 +0300 5156 5157 Tests: Add more tests into test_check. 5158 5159 tests/test_check.c | 279 +++++++++++++++++++++++++++++++++++++++++++++++++++-- 5160 tests/tests.h | 23 +++++ 5161 2 files changed, 295 insertions(+), 7 deletions(-) 5162 5163commit 82e30fed66a89706388a8c15dc954d84e63f38fa 5164Author: Lasse Collin <lasse.collin@tukaani.org> 5165Date: 2022-06-16 15:02:57 +0300 5166 5167 Tests: Use char[][24] array for enum_strings_lzma_ret. 5168 5169 Array of pointers to short strings is a bit pointless here 5170 and now it's fully const. 5171 5172 tests/tests.h | 2 +- 5173 1 file changed, 1 insertion(+), 1 deletion(-) 5174 5175commit 5ba9459e6c4a29f6870ca78ce8ac6e519d59c41e 5176Author: Lasse Collin <lasse.collin@tukaani.org> 5177Date: 2022-06-16 14:12:14 +0300 5178 5179 Tests: tuktest.h: Add tuktest_error_impl to help with error conditions. 5180 5181 tests/tuktest.h | 72 +++++++++++++++++++++++++-------------------------------- 5182 1 file changed, 32 insertions(+), 40 deletions(-) 5183 5184commit b339892668da20aea22a93668c82b87a38e4a97f 5185Author: Lasse Collin <lasse.collin@tukaani.org> 5186Date: 2022-06-16 13:29:59 +0300 5187 5188 Tests: tuktest.h: Rename file_from_* and use tuktest_malloc there. 5189 5190 tests/test_bcj_exact_size.c | 4 +--- 5191 tests/tuktest.h | 52 +++++++++++++++++++++------------------------ 5192 2 files changed, 25 insertions(+), 31 deletions(-) 5193 5194commit d8b63a0ad68d1c461eb373466679ebc41fbc207d 5195Author: Lasse Collin <lasse.collin@tukaani.org> 5196Date: 2022-06-16 13:08:19 +0300 5197 5198 Tests: tuktest.h: Add malloc wrapper with automatic freeing. 5199 5200 tests/tuktest.h | 124 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 5201 1 file changed, 124 insertions(+) 5202 5203commit 1d51536a4b19a8fae768f8eb462fc2238cb36d53 5204Author: Lasse Collin <lasse.collin@tukaani.org> 5205Date: 2022-06-16 11:47:37 +0300 5206 5207 Tests: tuktest.h: Move a function. 5208 5209 tests/tuktest.h | 44 ++++++++++++++++++++++---------------------- 5210 1 file changed, 22 insertions(+), 22 deletions(-) 5211 5212commit 70c7555f6403553ee35539e869de0025592d8564 5213Author: Lasse Collin <lasse.collin@tukaani.org> 5214Date: 2022-06-14 22:21:15 +0300 5215 5216 Tests: test_vli: Remove an invalid test-assertion. 5217 5218 lzma_vli is unsigned so trying a signed value results in 5219 a compiler warning from -Wsign-conversion. (lzma_vli)-1 5220 equals to LZMA_VLI_UNKNOWN anyway which is the next assertion. 5221 5222 tests/test_vli.c | 2 -- 5223 1 file changed, 2 deletions(-) 5224 5225commit 154b73c5a1092c3f785e01666b564ad7ff1be555 5226Author: Lasse Collin <lasse.collin@tukaani.org> 5227Date: 2022-06-14 22:10:10 +0300 5228 5229 Tests: test_vli: Add const where appropriate. 5230 5231 tests/test_vli.c | 53 ++++++++++++++++++++++++++++------------------------- 5232 1 file changed, 28 insertions(+), 25 deletions(-) 5233 5234commit 0354d6cce3ff98ea6f927107baf216253f6ce2bb 5235Author: Jia Tan <jiat75@gmail.com> 5236Date: 2022-06-13 20:27:03 +0800 5237 5238 Added vli tests to .gitignore 5239 5240 .gitignore | 1 + 5241 1 file changed, 1 insertion(+) 5242 5243commit a08f5ccf6bdc20ef70e41f6f3321618ef146f96e 5244Author: Jia Tan <jiat0218@gmail.com> 5245Date: 2022-06-12 11:31:40 +0800 5246 5247 Created tests for all functions exported in vli.h 5248 5249 Achieved 100% code coverage vli_encoder.c, vli_decoder.c, and vli_size.c 5250 5251 tests/Makefile.am | 4 +- 5252 tests/test_vli.c | 308 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 5253 2 files changed, 311 insertions(+), 1 deletion(-) 5254 5255commit 1e3eb61815a91c0a1bfbb802e2d95593f523491f 5256Author: jiat75 <jiat0218@gmail.com> 5257Date: 2022-06-03 21:24:54 +0800 5258 5259 Added parallel test artifacts to .gitignore 5260 5261 .gitignore | 2 ++ 5262 1 file changed, 2 insertions(+) 5263 5264commit 00e3613f1212eaa84e721585fdb4de6967cf2476 5265Author: Lasse Collin <lasse.collin@tukaani.org> 5266Date: 2022-06-14 21:29:21 +0300 5267 5268 Tests: Use good-1-empty-bcj-lzma2.xz in test_bcj_exact_size. 5269 5270 It's much nicer this way so that the test data isn't a hardcoded 5271 table inside the C file. 5272 5273 tests/test_bcj_exact_size.c | 19 +++++++------------ 5274 1 file changed, 7 insertions(+), 12 deletions(-) 5275 5276commit 86bab755be252bfd3e0a9aee8e7b83a9bbb23ed0 5277Author: Lasse Collin <lasse.collin@tukaani.org> 5278Date: 2022-06-14 21:26:13 +0300 5279 5280 Tests: Add file reading helpers to tuktest.h. 5281 5282 tests/tuktest.h | 183 +++++++++++++++++++++++++++++++++++++++++++++++++++++--- 5283 1 file changed, 176 insertions(+), 7 deletions(-) 5284 5285commit 83d2337b72dbf391c6f3b41889eea99e51679105 5286Author: Lasse Collin <lasse.collin@tukaani.org> 5287Date: 2022-06-14 18:21:57 +0300 5288 5289 Tests: tuktest.h: Move a printf from a macro to a helper function. 5290 5291 tests/tuktest.h | 26 ++++++++++++++++++-------- 5292 1 file changed, 18 insertions(+), 8 deletions(-) 5293 5294commit f9e8176ea7d520797a2db2d49a5a632c285674a8 5295Author: Lasse Collin <lasse.collin@tukaani.org> 5296Date: 2022-06-14 17:20:49 +0300 5297 5298 Tests: Add test file good-1-empty-bcj-lzma2.xz. 5299 5300 This is from test_bcj_exact_size.c. 5301 It's good to have it as a standalone file. 5302 5303 tests/files/README | 5 +++++ 5304 tests/files/good-1-empty-bcj-lzma2.xz | Bin 0 -> 52 bytes 5305 2 files changed, 5 insertions(+) 5306 5307commit aa75c5563a760aea3aa23d997d519e702e82726b 5308Author: Jia Tan <jiat0218@gmail.com> 5309Date: 2022-06-10 21:35:18 +0800 5310 5311 Tests: Created tests for hardware functions. 5312 5313 Created tests for all API functions exported in 5314 src/liblzma/api/lzma/hardware.h. The tests are fairly trivial 5315 but are helpful because they will inform users if their machines 5316 cannot support these functions. They also improve the code 5317 coverage metrics. 5318 5319 .gitignore | 1 + 5320 tests/Makefile.am | 2 ++ 5321 tests/test_hardware.c | 45 +++++++++++++++++++++++++++++++++++++++++++++ 5322 3 files changed, 48 insertions(+) 5323 5324commit 5c8ffdca20813939818843476fb212dfae8838a3 5325Author: Lasse Collin <lasse.collin@tukaani.org> 5326Date: 2022-06-02 21:01:45 +0300 5327 5328 Tests: Convert test_check to tuktest. 5329 5330 Thanks to Jia Tan for help with all the tests. 5331 5332 tests/test_check.c | 67 +++++++++++++++++++++++++++--------------------------- 5333 1 file changed, 33 insertions(+), 34 deletions(-) 5334 5335commit faf5ff8899d539b4dcd2a7e5280cb820a4746c86 5336Author: Lasse Collin <lasse.collin@tukaani.org> 5337Date: 2022-06-02 20:31:03 +0300 5338 5339 Tests: Convert test_block_header to tuktest. 5340 5341 tests/test_block_header.c | 89 +++++++++++++++++++++++++++-------------------- 5342 1 file changed, 52 insertions(+), 37 deletions(-) 5343 5344commit 754d39fbebee3782258d42f154a223d3c5770ec7 5345Author: Lasse Collin <lasse.collin@tukaani.org> 5346Date: 2022-06-02 20:28:23 +0300 5347 5348 Tests: Convert test_bcj_exact_size to tuktest. 5349 5350 The compress() and decompress() functions were merged because 5351 the later depends on the former so they need to be a single 5352 test case. 5353 5354 tests/test_bcj_exact_size.c | 75 +++++++++++++++++++++++++-------------------- 5355 1 file changed, 41 insertions(+), 34 deletions(-) 5356 5357commit 96da21470f9570cd08286906a050a7c22631775b 5358Author: Lasse Collin <lasse.collin@tukaani.org> 5359Date: 2022-06-02 20:27:00 +0300 5360 5361 Tests: Include tuktest.h in tests.h. 5362 5363 This breaks -Werror because none of the tests so far use 5364 tuktest.h and thus there are warnings about unused variables 5365 and functions. 5366 5367 tests/tests.h | 47 +++++++++++++++++++++++------------------------ 5368 1 file changed, 23 insertions(+), 24 deletions(-) 5369 5370commit df71ba1c991f60c3269aaadd398247e632714626 5371Author: Lasse Collin <lasse.collin@tukaani.org> 5372Date: 2022-06-02 20:25:21 +0300 5373 5374 Tests: Add tuktest.h mini-test-framework. 5375 5376 tests/Makefile.am | 1 + 5377 tests/tuktest.h | 752 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 5378 2 files changed, 753 insertions(+) 5379 5380commit 4773608554d1b684a05ff9c1d879cf5c42266d33 5381Author: Lasse Collin <lasse.collin@tukaani.org> 5382Date: 2022-05-23 21:31:36 +0300 5383 5384 Build: Enable Automake's parallel test harness. 5385 5386 It has been the default for quite some time already and 5387 the old serial harness isn't discouraged. The downside is 5388 that with parallel tests one cannot print progress info or 5389 other diagnostics to the terminal; all output from the tests 5390 will be in the log files only. But now that the compression 5391 tests are separated the parallel tests will speed things up. 5392 5393 configure.ac | 2 +- 5394 1 file changed, 1 insertion(+), 1 deletion(-) 5395 5396commit 9a6dd6d46f7f256a5573e5d874c1052033ed7b05 5397Author: Lasse Collin <lasse.collin@tukaani.org> 5398Date: 2022-05-23 21:17:47 +0300 5399 5400 Tests: Split test_compress.sh into separate test unit for each file. 5401 5402 test_compress.sh now takes one command line argument: 5403 a filename to be tested. If it begins with "compress_generated_" 5404 the file will be created with create_compress_files. 5405 5406 This will allow parallel execution of the slow tests. 5407 5408 tests/Makefile.am | 11 +++- 5409 tests/test_compress.sh | 91 +++++++++++++++++++--------------- 5410 tests/test_compress_generated_abc | 3 ++ 5411 tests/test_compress_generated_random | 3 ++ 5412 tests/test_compress_generated_text | 3 ++ 5413 tests/test_compress_prepared_bcj_sparc | 3 ++ 5414 tests/test_compress_prepared_bcj_x86 | 3 ++ 5415 7 files changed, 77 insertions(+), 40 deletions(-) 5416 5417commit c7758ac9c734707514dd34f254173ebac5eea7f8 5418Author: Lasse Collin <lasse.collin@tukaani.org> 5419Date: 2022-05-23 20:32:49 +0300 5420 5421 Test: Make create_compress_files.c a little more flexible. 5422 5423 If a command line argument is given, then only the test file 5424 of that type is created. It's quite dumb in sense that unknown 5425 names don't give an error but it's good enough here. 5426 5427 Also use EXIT_FAILURE instead of 1 as exit status for errors. 5428 5429 tests/create_compress_files.c | 25 +++++++++++++++---------- 5430 1 file changed, 15 insertions(+), 10 deletions(-) 5431 5432commit 4a8e4a7b0ad4b03c0ac6862716c3457452cdaf8c 5433Author: Lasse Collin <lasse.collin@tukaani.org> 5434Date: 2022-05-23 20:17:42 +0300 5435 5436 Tests: Remove unneeded commented lines from test_compress.sh. 5437 5438 tests/test_compress.sh | 13 ------------- 5439 1 file changed, 13 deletions(-) 5440 5441commit 2ee50d150ee009f36135540b459e6ff328549725 5442Author: Lasse Collin <lasse.collin@tukaani.org> 5443Date: 2022-05-23 20:16:00 +0300 5444 5445 Tests: Remove progress indicator from test_compress.sh. 5446 5447 It will be useless with Automake's parallel tests. 5448 5449 tests/test_compress.sh | 9 --------- 5450 1 file changed, 9 deletions(-) 5451 5452commit 2ce4f36f179a81d0c6e182a409f363df759d1ad0 5453Author: Lasse Collin <lasse.collin@tukaani.org> 5454Date: 2022-05-23 19:37:18 +0300 5455 5456 liblzma: Silence a warning. 5457 5458 The actual initialization is done via mythread_sync and seems 5459 that GCC doesn't necessarily see that it gets initialized there. 5460 5461 src/liblzma/common/stream_decoder_mt.c | 2 +- 5462 1 file changed, 1 insertion(+), 1 deletion(-) 5463 5464commit 5d8f3764ef43c35910e6d7003c0900a961ef6544 5465Author: Lasse Collin <lasse.collin@tukaani.org> 5466Date: 2022-04-14 20:53:16 +0300 5467 5468 xz: Fix build with --disable-threads. 5469 5470 src/xz/hardware.c | 4 ++++ 5471 1 file changed, 4 insertions(+) 5472 5473commit 1d592897278b172d8549aa29c3a1f3a4f432a9b9 5474Author: Lasse Collin <lasse.collin@tukaani.org> 5475Date: 2022-04-14 14:50:17 +0300 5476 5477 xz: Change the cap of the default -T0 memlimit for 32-bit xz. 5478 5479 The SIZE_MAX / 3 was 1365 MiB. 1400 MiB gives little more room 5480 and it looks like a round (artificial) number in --info-memory 5481 once --info-memory is made to display it. 5482 5483 Also, using #if avoids useless code on 64-bit builds. 5484 5485 src/xz/hardware.c | 4 +++- 5486 1 file changed, 3 insertions(+), 1 deletion(-) 5487 5488commit c77fe55ddb7752ed0fec46967c5ec9a72632ea0c 5489Author: Lasse Collin <lasse.collin@tukaani.org> 5490Date: 2022-04-14 14:20:46 +0300 5491 5492 xz: Add a default soft memory usage limit for --threads=0. 5493 5494 This is a soft limit in sense that it only affects the number of 5495 threads. It never makes xz fail and it never makes xz change 5496 settings that would affect the compressed output. 5497 5498 The idea is to make -T0 have more reasonable behavior when 5499 the system has very many cores or when a memory-hungry 5500 compression options are used. This also helps with 32-bit xz, 5501 preventing it from running out of address space. 5502 5503 The downside of this commit is that now the number of threads 5504 might become too low compared to what the user expected. I 5505 hope this to be an acceptable compromise as the old behavior 5506 has been a source of well-argued complaints for a long time. 5507 5508 src/xz/coder.c | 28 ++++++++++++++++++++++++++-- 5509 src/xz/hardware.c | 38 +++++++++++++++++++++++++++++--------- 5510 src/xz/hardware.h | 27 +++++++++++++++++++++++++++ 5511 3 files changed, 82 insertions(+), 11 deletions(-) 5512 5513commit 0adc13bfe32c14f3e4c6ce9f2d4fdf4112ab53f4 5514Author: Lasse Collin <lasse.collin@tukaani.org> 5515Date: 2022-04-14 12:59:09 +0300 5516 5517 xz: Make -T0 use multithreaded mode on single-core systems. 5518 5519 The main problem withi the old behavior is that the compressed 5520 output is different on single-core systems vs. multicore systems. 5521 This commit fixes it by making -T0 one thread in multithreaded mode 5522 on single-core systems. 5523 5524 The downside of this is that it uses more memory. However, if 5525 --memlimit-compress is used, xz can (thanks to the previous commit) 5526 drop to the single-threaded mode still. 5527 5528 src/xz/coder.c | 18 +++++++++--------- 5529 src/xz/hardware.c | 14 ++++++++++++++ 5530 src/xz/hardware.h | 4 ++++ 5531 3 files changed, 27 insertions(+), 9 deletions(-) 5532 5533commit 898faa97287a756231c663a3ed5165672b417207 5534Author: Lasse Collin <lasse.collin@tukaani.org> 5535Date: 2022-04-14 12:38:00 +0300 5536 5537 xz: Changes to --memlimit-compress and --no-adjust. 5538 5539 In single-threaded mode, --memlimit-compress can make xz scale down 5540 the LZMA2 dictionary size to meet the memory usage limit. This 5541 obviously affects the compressed output. However, if xz was in 5542 threaded mode, --memlimit-compress could make xz reduce the number 5543 of threads but it wouldn't make xz switch from multithreaded mode 5544 to single-threaded mode or scale down the LZMA2 dictionary size. 5545 This seemed illogical and there was even a "FIXME?" about it. 5546 5547 Now --memlimit-compress can make xz switch to single-threaded 5548 mode if one thread in multithreaded mode uses too much memory. 5549 If memory usage is still too high, then the LZMA2 dictionary 5550 size can be scaled down too. 5551 5552 The option --no-adjust was also changed so that it no longer 5553 prevents xz from scaling down the number of threads as that 5554 doesn't affect compressed output (only performance). After 5555 this commit --no-adjust only prevents adjustments that affect 5556 compressed output, that is, with --no-adjust xz won't switch 5557 from multithreaded mode to single-threaded mode and won't 5558 scale down the LZMA2 dictionary size. 5559 5560 The man page wasn't updated yet. 5561 5562 src/xz/coder.c | 63 +++++++++++++++++++++++++++++++++++++++------------------- 5563 1 file changed, 43 insertions(+), 20 deletions(-) 5564 5565commit cad299008cf73ec566f0662a9cf2b94f86a99659 5566Author: Lasse Collin <lasse.collin@tukaani.org> 5567Date: 2022-04-11 22:20:49 +0300 5568 5569 xz: Add --memlimit-mt-decompress along with a default limit value. 5570 5571 --memlimit-mt-decompress allows specifying the limit for 5572 multithreaded decompression. This matches memlimit_threading in 5573 liblzma. This limit can only affect the number of threads being 5574 used; it will never prevent xz from decompressing a file. The 5575 old --memlimit-decompress option is still used at the same time. 5576 5577 If the value of --memlimit-decompress (the default value or 5578 one specified by the user) is less than the value of 5579 --memlimit-mt-decompress , then --memlimit-mt-decompress is 5580 reduced to match --memlimit-decompress. 5581 5582 Man page wasn't updated yet. 5583 5584 src/xz/args.c | 24 +++++++++++++++------- 5585 src/xz/coder.c | 34 ++++++++++--------------------- 5586 src/xz/hardware.c | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++----- 5587 src/xz/hardware.h | 17 ++++++++++------ 5588 src/xz/message.c | 4 +++- 5589 5 files changed, 97 insertions(+), 42 deletions(-) 5590 5591commit fe87b4cd5364f5bbb6a75a0299f1500c852d7c9a 5592Author: Lasse Collin <lasse.collin@tukaani.org> 5593Date: 2022-04-06 23:11:59 +0300 5594 5595 liblzma: Threaded decoder: Improve setting of pending_error. 5596 5597 It doesn't need to be done conditionally. The comments try 5598 to explain it. 5599 5600 src/liblzma/common/stream_decoder_mt.c | 51 +++++++++++++++++++++++----------- 5601 1 file changed, 35 insertions(+), 16 deletions(-) 5602 5603commit 90621da7f6e1bfd6d91d60415eae04b2bca274c2 5604Author: Lasse Collin <lasse.collin@tukaani.org> 5605Date: 2022-04-06 12:39:49 +0300 5606 5607 liblzma: Add a new flag LZMA_FAIL_FAST for threaded decoder. 5608 5609 In most cases if the input file is corrupt the application won't 5610 care about the uncompressed content at all. With this new flag 5611 the threaded decoder will return an error as soon as any thread 5612 has detected an error; it won't wait to copy out the data before 5613 the location of the error. 5614 5615 I don't plan to use this in xz to keep the behavior consistent 5616 between single-threaded and multi-threaded modes. 5617 5618 src/liblzma/api/lzma/container.h | 25 ++++++++++++++++- 5619 src/liblzma/common/common.h | 7 +++-- 5620 src/liblzma/common/stream_decoder_mt.c | 50 +++++++++++++++++++--------------- 5621 3 files changed, 56 insertions(+), 26 deletions(-) 5622 5623commit 64b6d496dc815a176d8307f418f6834a26783484 5624Author: Lasse Collin <lasse.collin@tukaani.org> 5625Date: 2022-04-05 12:24:57 +0300 5626 5627 liblzma: Threaded decoder: Always wait for output if LZMA_FINISH is used. 5628 5629 This makes the behavior consistent with the single-threaded 5630 decoder when handling truncated .xz files. 5631 5632 Thanks to Jia Tan for finding this issue. 5633 5634 src/liblzma/common/stream_decoder_mt.c | 26 ++++++++++++++++++++++++-- 5635 1 file changed, 24 insertions(+), 2 deletions(-) 5636 5637commit e671bc8828b9c0c5406c3a22c541301d0eb54518 5638Author: Lasse Collin <lasse.collin@tukaani.org> 5639Date: 2022-04-02 21:49:59 +0300 5640 5641 liblzma: Threaded decoder: Support zpipe.c-style decoding loop. 5642 5643 This makes it possible to call lzma_code() in a loop that only 5644 reads new input when lzma_code() didn't fill the output buffer 5645 completely. That isn't the calling style suggested by the 5646 liblzma example program 02_decompress.c so perhaps the usefulness 5647 of this feature is limited. 5648 5649 Also, it is possible to write such a loop so that it works 5650 with the single-threaded decoder but not with the threaded 5651 decoder even after this commit, or so that it works only if 5652 lzma_mt.timeout = 0. 5653 5654 The zlib tutorial <https://zlib.net/zlib_how.html> is a well-known 5655 example of a loop where more input is read only when output isn't 5656 full. Porting this as is to liblzma would work with the 5657 single-threaded decoder (if LZMA_CONCATENATED isn't used) but it 5658 wouldn't work with threaded decoder even after this commit because 5659 the loop assumes that no more output is possible when it cannot 5660 read more input ("if (strm.avail_in == 0) break;"). This cannot 5661 be fixed at liblzma side; the loop has to be modified at least 5662 a little. 5663 5664 I'm adding this in any case because the actual code is simple 5665 and short and should have no harmful side-effects in other 5666 situations. 5667 5668 src/liblzma/common/stream_decoder_mt.c | 77 +++++++++++++++++++++++++++++----- 5669 1 file changed, 67 insertions(+), 10 deletions(-) 5670 5671commit 2ba8173e27be4793edb46497e499ac2ae753a316 5672Author: Lasse Collin <lasse.collin@tukaani.org> 5673Date: 2022-03-31 00:05:07 +0300 5674 5675 Update THANKS. 5676 5677 THANKS | 1 + 5678 1 file changed, 1 insertion(+) 5679 5680commit 69d1b3fc29677af8ade8dc15dba83f0589cb63d6 5681Author: Lasse Collin <lasse.collin@tukaani.org> 5682Date: 2022-03-29 19:19:12 +0300 5683 5684 xzgrep: Fix escaping of malicious filenames (ZDI-CAN-16587). 5685 5686 Malicious filenames can make xzgrep to write to arbitrary files 5687 or (with a GNU sed extension) lead to arbitrary code execution. 5688 5689 xzgrep from XZ Utils versions up to and including 5.2.5 are 5690 affected. 5.3.1alpha and 5.3.2alpha are affected as well. 5691 This patch works for all of them. 5692 5693 This bug was inherited from gzip's zgrep. gzip 1.12 includes 5694 a fix for zgrep. 5695 5696 The issue with the old sed script is that with multiple newlines, 5697 the N-command will read the second line of input, then the 5698 s-commands will be skipped because it's not the end of the 5699 file yet, then a new sed cycle starts and the pattern space 5700 is printed and emptied. So only the last line or two get escaped. 5701 5702 One way to fix this would be to read all lines into the pattern 5703 space first. However, the included fix is even simpler: All lines 5704 except the last line get a backslash appended at the end. To ensure 5705 that shell command substitution doesn't eat a possible trailing 5706 newline, a colon is appended to the filename before escaping. 5707 The colon is later used to separate the filename from the grep 5708 output so it is fine to add it here instead of a few lines later. 5709 5710 The old code also wasn't POSIX compliant as it used \n in the 5711 replacement section of the s-command. Using \<newline> is the 5712 POSIX compatible method. 5713 5714 LC_ALL=C was added to the two critical sed commands. POSIX sed 5715 manual recommends it when using sed to manipulate pathnames 5716 because in other locales invalid multibyte sequences might 5717 cause issues with some sed implementations. In case of GNU sed, 5718 these particular sed scripts wouldn't have such problems but some 5719 other scripts could have, see: 5720 5721 info '(sed)Locale Considerations' 5722 5723 This vulnerability was discovered by: 5724 cleemy desu wayo working with Trend Micro Zero Day Initiative 5725 5726 Thanks to Jim Meyering and Paul Eggert discussing the different 5727 ways to fix this and for coordinating the patch release schedule 5728 with gzip. 5729 5730 src/scripts/xzgrep.in | 20 ++++++++++++-------- 5731 1 file changed, 12 insertions(+), 8 deletions(-) 5732 5733commit bd93b776c1bd15e90661033c918cdeb354dbcc38 5734Author: Lasse Collin <lasse.collin@tukaani.org> 5735Date: 2022-03-26 01:02:44 +0200 5736 5737 liblzma: Fix a deadlock in threaded decoder. 5738 5739 If a worker thread has consumed all input so far and it's 5740 waiting on thr->cond and then the main thread enables 5741 partial update for that thread, the code used to deadlock. 5742 This commit allows one dummy decoding pass to occur in this 5743 situation which then also does the partial update. 5744 5745 As part of the fix, this moves thr->progress_* updates to 5746 avoid the second thr->mutex locking. 5747 5748 Thanks to Jia Tan for finding, debugging, and reporting the bug. 5749 5750 src/liblzma/common/stream_decoder_mt.c | 71 +++++++++++++++++++++++++--------- 5751 1 file changed, 52 insertions(+), 19 deletions(-) 5752 5753commit e0394e94230f208682ac1e1f4c41f22f9ad79916 5754Author: Lasse Collin <lasse.collin@tukaani.org> 5755Date: 2022-03-23 16:34:00 +0200 5756 5757 Update THANKS. 5758 5759 THANKS | 1 + 5760 1 file changed, 1 insertion(+) 5761 5762commit 487c77d48760564b1949c5067630b675b87be4de 5763Author: Lasse Collin <lasse.collin@tukaani.org> 5764Date: 2022-03-23 16:28:55 +0200 5765 5766 liblzma: Threaded decoder: Don't stop threads on LZMA_TIMED_OUT. 5767 5768 LZMA_TIMED_OUT is not an error and thus stopping threads on 5769 LZMA_TIMED_OUT breaks the decoder badly. 5770 5771 Thanks to Jia Tan for finding the bug and for the patch. 5772 5773 src/liblzma/common/stream_decoder_mt.c | 2 +- 5774 1 file changed, 1 insertion(+), 1 deletion(-) 5775 5776commit 6c6da57ae2aa962aabde6892442227063d87e88c 5777Author: Lasse Collin <lasse.collin@tukaani.org> 5778Date: 2022-03-07 00:36:16 +0200 5779 5780 xz: Add initial support for threaded decompression. 5781 5782 If threading support is enabled at build time, this will 5783 use lzma_stream_decoder_mt() even for single-threaded mode. 5784 With memlimit_threading=0 the behavior should be identical. 5785 5786 This needs some work like adding --memlimit-threading=LIMIT. 5787 5788 The original patch from Sebastian Andrzej Siewior included 5789 a method to get currently available RAM on Linux. It might 5790 be one way to go but as it is Linux-only, the available-RAM 5791 approach needs work for portability or using a fallback method 5792 on other OSes. 5793 5794 The man page wasn't updated yet. 5795 5796 src/xz/coder.c | 36 +++++++++++++++++++++++++++++++++++- 5797 1 file changed, 35 insertions(+), 1 deletion(-) 5798 5799commit 4cce3e27f529af33e0e7749a8cbcec59954946b5 5800Author: Lasse Collin <lasse.collin@tukaani.org> 5801Date: 2022-03-06 23:36:20 +0200 5802 5803 liblzma: Add threaded .xz decompressor. 5804 5805 I realize that this is about a decade late. 5806 5807 Big thanks to Sebastian Andrzej Siewior for the original patch. 5808 I made a bunch of smaller changes but after a while quite a few 5809 things got rewritten. So any bugs in the commit were created by me. 5810 5811 src/liblzma/api/lzma/container.h | 90 +- 5812 src/liblzma/common/Makefile.inc | 5 + 5813 src/liblzma/common/common.h | 4 + 5814 src/liblzma/common/stream_decoder_mt.c | 1814 ++++++++++++++++++++++++++++++++ 5815 src/liblzma/liblzma.map | 1 + 5816 5 files changed, 1907 insertions(+), 7 deletions(-) 5817 5818commit 717631b9788dc9c100ee0c87d3c14a2782638ff4 5819Author: Lasse Collin <lasse.collin@tukaani.org> 5820Date: 2022-03-06 16:54:23 +0200 5821 5822 liblzma: Fix docs: lzma_block_decoder() cannot return LZMA_UNSUPPORTED_CHECK. 5823 5824 If Check is unsupported, it will be silently ignored. 5825 It's the caller's job to handle it. 5826 5827 src/liblzma/api/lzma/block.h | 3 --- 5828 1 file changed, 3 deletions(-) 5829 5830commit 1a4bb97a00936535e30ac61945aeee38882b5d1a 5831Author: Lasse Collin <lasse.collin@tukaani.org> 5832Date: 2022-03-06 16:41:19 +0200 5833 5834 liblzma: Add new output queue (lzma_outq) features. 5835 5836 Add lzma_outq_clear_cache2() which may leave one buffer allocated 5837 in the cache. 5838 5839 Add lzma_outq_outbuf_memusage() to get the memory needed for 5840 a single lzma_outbuf. This is now used internally in outqueue.c too. 5841 5842 Track both the total amount of memory allocated and the amount of 5843 memory that is in active use (not in cache). 5844 5845 In lzma_outbuf, allow storing the current input position that 5846 matches the current output position. This way the main thread 5847 can notice when no more output is possible without first providing 5848 more input. 5849 5850 Allow specifying return code for lzma_outq_read() in a finished 5851 lzma_outbuf. 5852 5853 src/liblzma/common/outqueue.c | 43 +++++++++++++++++++++++++++++++++++------- 5854 src/liblzma/common/outqueue.h | 44 ++++++++++++++++++++++++++++++++++++++++++- 5855 2 files changed, 79 insertions(+), 8 deletions(-) 5856 5857commit ddbc6f58c2de388eed24cd7ea91b523d397da5f4 5858Author: Lasse Collin <lasse.collin@tukaani.org> 5859Date: 2022-03-06 15:18:58 +0200 5860 5861 liblzma: Index hash: Change return value type of hash_append() to void. 5862 5863 src/liblzma/common/index_hash.c | 11 +++++------ 5864 1 file changed, 5 insertions(+), 6 deletions(-) 5865 5866commit 20e7a33e2d59c6a814447d3991f21e2702174b20 5867Author: Lasse Collin <lasse.collin@tukaani.org> 5868Date: 2022-02-22 03:42:57 +0200 5869 5870 liblzma: Minor addition to lzma_vli_size() API doc. 5871 5872 Thanks to Jia Tan. 5873 5874 src/liblzma/api/lzma/vli.h | 2 ++ 5875 1 file changed, 2 insertions(+) 5876 5877commit 4f78f5fcf63592f2d77e921cfe0d5de300867374 5878Author: Lasse Collin <lasse.collin@tukaani.org> 5879Date: 2022-02-22 02:04:18 +0200 5880 5881 liblzma: Check the return value of lzma_index_append() in threaded encoder. 5882 5883 If lzma_index_append() failed (most likely memory allocation failure) 5884 it could have gone unnoticed and the resulting .xz file would have 5885 an incorrect Index. Decompressing such a file would produce the 5886 correct uncompressed data but then an error would occur when 5887 verifying the Index field. 5888 5889 src/liblzma/common/stream_encoder_mt.c | 7 +++++-- 5890 1 file changed, 5 insertions(+), 2 deletions(-) 5891 5892commit 5313ad66b40aab822ddca3e9905254cb99a4080d 5893Author: Lasse Collin <lasse.collin@tukaani.org> 5894Date: 2022-02-22 01:37:39 +0200 5895 5896 Update THANKS. 5897 5898 THANKS | 1 + 5899 1 file changed, 1 insertion(+) 5900 5901commit 865e0a3689a25a7ee8eecae1a34c1775e3aa676e 5902Author: Ed Maste <emaste@FreeBSD.org> 5903Date: 2022-02-11 15:25:46 +0000 5904 5905 liblzma: Use non-executable stack on FreeBSD as on Linux 5906 5907 src/liblzma/check/crc32_x86.S | 4 ++-- 5908 src/liblzma/check/crc64_x86.S | 4 ++-- 5909 2 files changed, 4 insertions(+), 4 deletions(-) 5910 5911commit 1c9a5786d206b4abc8e427326651c8174baea753 5912Author: Lasse Collin <lasse.collin@tukaani.org> 5913Date: 2022-02-20 20:36:27 +0200 5914 5915 liblzma: Make Block decoder catch certain types of errors better. 5916 5917 Now it limits the input and output buffer sizes that are 5918 passed to a raw decoder. This way there's no need to check 5919 if the sizes can grow too big or overflow when updating 5920 Compressed Size and Uncompressed Size counts. This also means 5921 that a corrupt file cannot cause the raw decoder to process 5922 useless extra input or output that would exceed the size info 5923 in Block Header (and thus cause LZMA_DATA_ERROR anyway). 5924 5925 More importantly, now the size information is verified more 5926 carefully in case raw decoder returns LZMA_OK. This doesn't 5927 really matter with the current single-threaded .xz decoder 5928 as the errors would be detected slightly later anyway. But 5929 this helps avoiding corner cases in the upcoming threaded 5930 decompressor, and it might help other Block decoder uses 5931 outside liblzma too. 5932 5933 The test files bad-1-lzma2-{9,10,11}.xz test these conditions. 5934 With the single-threaded .xz decoder the only difference is 5935 that LZMA_DATA_ERROR is detected in a difference place now. 5936 5937 src/liblzma/common/block_decoder.c | 79 ++++++++++++++++++++++++++------------ 5938 1 file changed, 54 insertions(+), 25 deletions(-) 5939 5940commit 555de11873eb00c9b94a8be70645db502e5a9dbd 5941Author: Lasse Collin <lasse.collin@tukaani.org> 5942Date: 2022-02-20 19:38:55 +0200 5943 5944 Tests: Add bad-1-lzma2-11.xz. 5945 5946 tests/files/README | 5 +++++ 5947 tests/files/bad-1-lzma2-11.xz | Bin 0 -> 64 bytes 5948 2 files changed, 5 insertions(+) 5949 5950commit f0da507f22e7f4e3edb75b45b74d344244ca03fb 5951Author: Lasse Collin <lasse.collin@tukaani.org> 5952Date: 2022-02-18 18:51:10 +0200 5953 5954 Translations: Fix po4a failure with the French man page translations. 5955 5956 Thanks to Mario Blättermann for the patch. 5957 5958 po4a/fr_FR.po | 6 ++++-- 5959 1 file changed, 4 insertions(+), 2 deletions(-) 5960 5961commit f7711d228c3c32395460c82498c60a9f730d0239 5962Author: Lasse Collin <lasse.collin@tukaani.org> 5963Date: 2022-02-07 01:14:37 +0200 5964 5965 Translations: Add French translation of man pages. 5966 5967 This matches xz-utils 5.2.5-2 in Debian. 5968 5969 The translation was done by "bubu", proofread by the debian-l10n-french 5970 mailing list contributors, and submitted to me on the xz-devel mailing 5971 list by Jean-Pierre Giraud. Thanks to everyone! 5972 5973 po4a/fr_FR.po | 3541 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 5974 po4a/po4a.conf | 2 +- 5975 2 files changed, 3542 insertions(+), 1 deletion(-) 5976 5977commit 6468f7e41a8e9c611e4ba8d34e2175c5dacdbeb4 5978Author: jiat75 <jiat0218@gmail.com> 5979Date: 2022-01-28 20:47:55 +0800 5980 5981 liblzma: Add NULL checks to LZMA and LZMA2 properties encoders. 5982 5983 Previously lzma_lzma_props_encode() and lzma_lzma2_props_encode() 5984 assumed that the options pointers must be non-NULL because the 5985 with these filters the API says it must never be NULL. It is 5986 good to do these checks anyway. 5987 5988 src/liblzma/lzma/lzma2_encoder.c | 3 +++ 5989 src/liblzma/lzma/lzma_encoder.c | 3 +++ 5990 2 files changed, 6 insertions(+) 5991 5992commit 2523c30705f49eabd27b854aa656ae87cc224808 5993Author: Lasse Collin <lasse.collin@tukaani.org> 5994Date: 2022-02-06 23:19:32 +0200 5995 5996 liblzma: Fix uint64_t vs. size_t confusion. 5997 5998 This broke 32-bit builds due to a pointer type mismatch. 5999 6000 This bug was introduced with the output-size-limited encoding 6001 in 625f4c7c99b2fcc4db9e7ab2deb4884790e2e17c. 6002 6003 Thanks to huangqinjin for the bug report. 6004 6005 src/liblzma/rangecoder/range_encoder.h | 11 +++++++---- 6006 1 file changed, 7 insertions(+), 4 deletions(-) 6007 6008commit 2bd36c91d03e03b31a4f12fd0afc100ae32d66e2 6009Author: huangqinjin <huangqinjin@gmail.com> 6010Date: 2021-12-13 20:49:21 +0800 6011 6012 CMake: Keep compatible with Windows 95 for 32-bit build. 6013 6014 CMakeLists.txt | 12 +++++++++++- 6015 1 file changed, 11 insertions(+), 1 deletion(-) 6016 6017commit 2024fbf2794885277d05378d40b2b8015a7c3b40 6018Author: Lasse Collin <lasse.collin@tukaani.org> 6019Date: 2021-11-13 21:04:05 +0200 6020 6021 xzgrep: Update man page timestamp. 6022 6023 src/scripts/xzgrep.1 | 2 +- 6024 1 file changed, 1 insertion(+), 1 deletion(-) 6025 6026commit 400e7a239a53282cedaad927a41f3463d7f542e5 6027Author: Lasse Collin <lasse.collin@tukaani.org> 6028Date: 2021-11-13 18:23:24 +0200 6029 6030 Update THANKS. 6031 6032 THANKS | 1 + 6033 1 file changed, 1 insertion(+) 6034 6035commit 3a512c7787b2642ca946f4adc6e9a0a5d9b0d5a0 6036Author: Ville Skyttä <ville.skytta@iki.fi> 6037Date: 2021-11-13 10:11:57 +0200 6038 6039 xzgrep: use `grep -E/-F` instead of `egrep` and `fgrep` 6040 6041 `egrep` and `fgrep` have been deprecated in GNU grep since 2007, and in 6042 current post 3.7 Git they have been made to emit obsolescence warnings: 6043 https://git.savannah.gnu.org/cgit/grep.git/commit/?id=a9515624709865d480e3142fd959bccd1c9372d1 6044 6045 src/scripts/xzgrep.1 | 8 ++++---- 6046 src/scripts/xzgrep.in | 4 ++-- 6047 2 files changed, 6 insertions(+), 6 deletions(-) 6048 6049commit edf525e2b1840dcaf377df472c67d8f11f8ace1b 6050Author: Lasse Collin <lasse.collin@tukaani.org> 6051Date: 2021-10-28 23:02:11 +0300 6052 6053 Bump the version number for 5.3.2alpha. 6054 6055 src/liblzma/api/lzma/version.h | 2 +- 6056 src/liblzma/liblzma.map | 2 +- 6057 2 files changed, 2 insertions(+), 2 deletions(-) 6058 6059commit ea8c948655a86290524efe59cff067e06a886709 6060Author: Lasse Collin <lasse.collin@tukaani.org> 6061Date: 2021-10-28 22:59:52 +0300 6062 6063 Add NEWS for 5.3.2alpha. 6064 6065 NEWS | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 6066 1 file changed, 86 insertions(+) 6067 6068commit 52435f302f4724157ec50b4210cbe42b285c3cbc 6069Author: Lasse Collin <lasse.collin@tukaani.org> 6070Date: 2021-10-27 23:27:48 +0300 6071 6072 Update THANKS. 6073 6074 THANKS | 1 + 6075 1 file changed, 1 insertion(+) 6076 6077commit f2aea1d5a504b2021bf47a238390e4f12bdd518d 6078Author: Lasse Collin <lasse.collin@tukaani.org> 6079Date: 2021-10-27 23:23:11 +0300 6080 6081 xz: Change the coding style of the previous commit. 6082 6083 It isn't any better now but it's consistent with 6084 the rest of the code base. 6085 6086 src/xz/file_io.c | 11 ++++++----- 6087 1 file changed, 6 insertions(+), 5 deletions(-) 6088 6089commit 892b16cc282f5b4e1c49871b326f4db25c5b4d81 6090Author: Alexander Bluhm <alexander.bluhm@gmx.net> 6091Date: 2021-10-05 23:33:16 +0200 6092 6093 xz: Avoid fchown(2) failure. 6094 6095 OpenBSD does not allow to change the group of a file if the user 6096 does not belong to this group. In contrast to Linux, OpenBSD also 6097 fails if the new group is the same as the old one. Do not call 6098 fchown(2) in this case, it would change nothing anyway. 6099 6100 This fixes an issue with Perl Alien::Build module. 6101 https://github.com/PerlAlien/Alien-Build/issues/62 6102 6103 src/xz/file_io.c | 8 +++++++- 6104 1 file changed, 7 insertions(+), 1 deletion(-) 6105 6106commit 2b509c868cae3988bf21cd693fbf9021cdc85628 6107Author: Lasse Collin <lasse.collin@tukaani.org> 6108Date: 2021-09-17 17:31:11 +0300 6109 6110 liblzma: Fix liblzma.map for the lzma_microlzma_* symbols. 6111 6112 This should have been part of d267d109c370a40b502e73f8664b154b15e4f253. 6113 6114 Thanks to Gao Xiang. 6115 6116 src/liblzma/liblzma.map | 4 ++-- 6117 1 file changed, 2 insertions(+), 2 deletions(-) 6118 6119commit cacb06a954b58255dfc084a0bc9708f43a0fd6d6 6120Author: Lasse Collin <lasse.collin@tukaani.org> 6121Date: 2021-09-09 22:21:07 +0300 6122 6123 Update THANKS. 6124 6125 THANKS | 1 + 6126 1 file changed, 1 insertion(+) 6127 6128commit 6928aac9da6ba612780b9f72ba1d6ecbe1e8b54e 6129Author: Lasse Collin <lasse.collin@tukaani.org> 6130Date: 2021-09-09 21:41:51 +0300 6131 6132 liblzma: Use _MSVC_LANG to detect when "noexcept" can be used with MSVC. 6133 6134 By default, MSVC always sets __cplusplus to 199711L. The real 6135 C++ standard version is available in _MSVC_LANG (or one could 6136 use /Zc:__cplusplus to set __cplusplus correctly). 6137 6138 Fixes <https://sourceforge.net/p/lzmautils/discussion/708858/thread/f6bc3b108a/>. 6139 6140 Thanks to Dan Weiss. 6141 6142 src/liblzma/api/lzma.h | 3 ++- 6143 1 file changed, 2 insertions(+), 1 deletion(-) 6144 6145commit d267d109c370a40b502e73f8664b154b15e4f253 6146Author: Lasse Collin <lasse.collin@tukaani.org> 6147Date: 2021-09-05 20:38:12 +0300 6148 6149 liblzma: Rename EROFS LZMA to MicroLZMA. 6150 6151 It still exists primarily for EROFS but MicroLZMA is 6152 a more generic name (that hopefully doesn't clash with 6153 something that already exists). 6154 6155 src/liblzma/api/lzma/container.h | 33 +++++++++++++--------- 6156 src/liblzma/common/Makefile.inc | 4 +-- 6157 .../{erofs_decoder.c => microlzma_decoder.c} | 32 ++++++++++----------- 6158 .../{erofs_encoder.c => microlzma_encoder.c} | 30 ++++++++++---------- 6159 4 files changed, 52 insertions(+), 47 deletions(-) 6160 6161commit 3247e95115acb95bc27f41e8cf4501db5b0b4309 6162Author: Lasse Collin <lasse.collin@tukaani.org> 6163Date: 2021-06-04 19:02:38 +0300 6164 6165 xzdiff: Update the man page about the exit status. 6166 6167 This was forgotten from 194029ffaf74282a81f0c299c07f73caca3232ca. 6168 6169 src/scripts/xzdiff.1 | 4 ++-- 6170 1 file changed, 2 insertions(+), 2 deletions(-) 6171 6172commit 96f5a28a46fc93ac4e296808ac0f8631d05498bc 6173Author: Lasse Collin <lasse.collin@tukaani.org> 6174Date: 2021-06-04 18:52:48 +0300 6175 6176 xzless: Fix less(1) version detection when it contains a dot. 6177 6178 Sometimes the version number from "less -V" contains a dot, 6179 sometimes not. xzless failed detect the version number when 6180 it does contain a dot. This fixes it. 6181 6182 Thanks to nick87720z for reporting this. Apparently it had been 6183 reported here <https://bugs.gentoo.org/489362> in 2013. 6184 6185 src/scripts/xzless.in | 2 +- 6186 1 file changed, 1 insertion(+), 1 deletion(-) 6187 6188commit 5fb5212d816addbc523d0798cb482fdd0484f8fa 6189Author: Lasse Collin <lasse.collin@tukaani.org> 6190Date: 2021-04-11 19:58:10 +0300 6191 6192 Update THANKS. 6193 6194 THANKS | 2 ++ 6195 1 file changed, 2 insertions(+) 6196 6197commit fc3d3a7296ef58bb799a73943636b8bfd95339f7 6198Author: Ivan A. Melnikov <iv@altlinux.org> 6199Date: 2021-04-09 11:45:10 +0300 6200 6201 Reduce maximum possible memory limit on MIPS32 6202 6203 Due to architectural limitations, address space available to a single 6204 userspace process on MIPS32 is limited to 2 GiB, not 4, even on systems 6205 that have more physical RAM -- e.g. 64-bit systems with 32-bit 6206 userspace, or systems that use XPA (an extension similar to x86's PAE). 6207 6208 So, for MIPS32, we have to impose stronger memory limits. I've chosen 6209 2000MiB to give the process some headroom. 6210 6211 src/xz/hardware.c | 6 ++++++ 6212 1 file changed, 6 insertions(+) 6213 6214commit e7da44d5151e21f153925781ad29334ae0786101 6215Author: Lasse Collin <lasse.collin@tukaani.org> 6216Date: 2021-02-13 23:31:27 +0200 6217 6218 CMake: Use interface library for better FindLibLZMA compatibility. 6219 6220 https://www.mail-archive.com/xz-devel@tukaani.org/msg00446.html 6221 6222 Thanks to Markus Rickert. 6223 6224 CMakeLists.txt | 11 +++++++++-- 6225 1 file changed, 9 insertions(+), 2 deletions(-) 6226 6227commit a61dd82ada39030f41b4ffca9ea551714908bedc 6228Author: Lasse Collin <lasse.collin@tukaani.org> 6229Date: 2021-01-30 18:36:04 +0200 6230 6231 CMake: Try to improve compatibility with the FindLibLZMA module. 6232 6233 The naming conflict with FindLibLZMA module gets worse. 6234 Not avoiding it in the first place was stupid. 6235 6236 Normally find_package(LibLZMA) will use the module and 6237 find_package(liblzma 5.2.5 REQUIRED CONFIG) will use the config 6238 file even with a case insensitive file system. However, if 6239 CMAKE_FIND_PACKAGE_PREFER_CONFIG is TRUE and the file system 6240 is case insensitive, find_package(LibLZMA) will find our liblzma 6241 config file instead of using FindLibLZMA module. 6242 6243 One big problem with this is that FindLibLZMA uses 6244 LibLZMA::LibLZMA and we use liblzma::liblzma as the target 6245 name. With target names CMake happens to be case sensitive. 6246 To workaround this, this commit adds 6247 6248 add_library(LibLZMA::LibLZMA ALIAS liblzma::liblzma) 6249 6250 to the config file. Then both spellings work. 6251 6252 To make the behavior consistent between case sensitive and 6253 insensitive file systems, the config and related files are 6254 renamed from liblzmaConfig.cmake to liblzma-config.cmake style. 6255 With this style CMake looks for lowercase version of the package 6256 name so find_package(LiBLzmA 5.2.5 REQUIRED CONFIG) will work 6257 to find our config file. 6258 6259 There are other differences between our config file and 6260 FindLibLZMA so it's still possible that things break for 6261 reasons other than the spelling of the target name. Hopefully 6262 those situations aren't too common. 6263 6264 When the config file is available, it should always give as good or 6265 better results as FindLibLZMA so this commit doesn't affect the 6266 recommendation to use find_package(liblzma 5.2.5 REQUIRED CONFIG) 6267 which explicitly avoids FindLibLZMA. 6268 6269 Thanks to Markus Rickert. 6270 6271 CMakeLists.txt | 21 +++++++++++++-------- 6272 1 file changed, 13 insertions(+), 8 deletions(-) 6273 6274commit 5b7bc1b8ae766a76710ca1b99f909cf52c697f05 6275Author: Lasse Collin <lasse.collin@tukaani.org> 6276Date: 2021-01-29 21:19:43 +0200 6277 6278 Update THANKS. 6279 6280 THANKS | 1 + 6281 1 file changed, 1 insertion(+) 6282 6283commit 6c6f0db340dcb8bb424411cedba713405d55f6b8 6284Author: Lasse Collin <lasse.collin@tukaani.org> 6285Date: 2021-01-29 21:19:08 +0200 6286 6287 liblzma: Fix unitialized variable. 6288 6289 This was introduced two weeks ago in the commit 6290 625f4c7c99b2fcc4db9e7ab2deb4884790e2e17c. 6291 6292 Thanks to Nathan Moinvaziri. 6293 6294 src/liblzma/lzma/lzma_encoder.c | 1 + 6295 1 file changed, 1 insertion(+) 6296 6297commit bb1d5c1fdd30550d4221ecd336e0be1206132a5c 6298Author: Lasse Collin <lasse.collin@tukaani.org> 6299Date: 2021-01-24 22:32:41 +0200 6300 6301 Tests: Add bad-1-lzma2-10.xz and also modify -9.xz. 6302 6303 tests/files/README | 11 +++++++++-- 6304 tests/files/bad-1-lzma2-10.xz | Bin 0 -> 60 bytes 6305 tests/files/bad-1-lzma2-9.xz | Bin 72 -> 72 bytes 6306 3 files changed, 9 insertions(+), 2 deletions(-) 6307 6308commit 6b8abc84a5469792e0355d0bfc0784d41cfdfef7 6309Author: Lasse Collin <lasse.collin@tukaani.org> 6310Date: 2021-01-24 19:22:35 +0200 6311 6312 liblzma: Fix a wrong comment in stream_encoder_mt.c. 6313 6314 src/liblzma/common/stream_encoder_mt.c | 10 +++++++--- 6315 1 file changed, 7 insertions(+), 3 deletions(-) 6316 6317commit 939fc5ed654aac25fe0c8684b2df8dbeadb2de1e 6318Author: Lasse Collin <lasse.collin@tukaani.org> 6319Date: 2021-01-24 18:51:51 +0200 6320 6321 Tests: Add bad-1-lzma2-9.xz. 6322 6323 tests/files/README | 4 ++++ 6324 tests/files/bad-1-lzma2-9.xz | Bin 0 -> 72 bytes 6325 2 files changed, 4 insertions(+) 6326 6327commit fdd30032f8531ac89519b48c21d810ecf06825f6 6328Author: Lasse Collin <lasse.collin@tukaani.org> 6329Date: 2021-01-24 17:02:00 +0200 6330 6331 Tests: Add bad-1-check-crc32-2.xz. 6332 6333 tests/files/README | 7 +++++++ 6334 tests/files/bad-1-check-crc32-2.xz | Bin 0 -> 72 bytes 6335 2 files changed, 7 insertions(+) 6336 6337commit db465419ae26ec7fb9b9472183911ff521620c77 6338Author: Lasse Collin <lasse.collin@tukaani.org> 6339Date: 2021-01-17 19:20:50 +0200 6340 6341 liblzma: In EROFS LZMA decoder, verify that comp_size matches at the end. 6342 6343 When the uncompressed size is known to be exact, after decompressing 6344 the stream exactly comp_size bytes of input must have been consumed. 6345 This is a minor improvement to error detection. 6346 6347 src/liblzma/common/erofs_decoder.c | 7 ++++++- 6348 1 file changed, 6 insertions(+), 1 deletion(-) 6349 6350commit 774cc0118ba2496581cb2621505a04bb6598cc75 6351Author: Lasse Collin <lasse.collin@tukaani.org> 6352Date: 2021-01-17 18:53:34 +0200 6353 6354 liblzma: Make EROFS LZMA decoder work when exact uncomp_size isn't known. 6355 6356 The caller must still not specify an uncompressed size bigger 6357 than the actual uncompressed size. 6358 6359 As a downside, this now needs the exact compressed size. 6360 6361 src/liblzma/api/lzma/container.h | 23 ++++++++--- 6362 src/liblzma/common/erofs_decoder.c | 80 ++++++++++++++++++++++++++++++++++---- 6363 2 files changed, 91 insertions(+), 12 deletions(-) 6364 6365commit 421b0aa352da244075db10205cf33712f91b9835 6366Author: Lasse Collin <lasse.collin@tukaani.org> 6367Date: 2021-01-14 20:57:11 +0200 6368 6369 liblzma: Fix missing normalization in rc_encode_dummy(). 6370 6371 Without this fix it could attempt to create too much output. 6372 6373 src/liblzma/rangecoder/range_encoder.h | 7 ++++++- 6374 1 file changed, 6 insertions(+), 1 deletion(-) 6375 6376commit 601ec0311e769fc704daaaa7dac0ca840aff080e 6377Author: Lasse Collin <lasse.collin@tukaani.org> 6378Date: 2021-01-14 20:07:01 +0200 6379 6380 liblzma: Add EROFS LZMA encoder and decoder. 6381 6382 Right now this is just a planned extra-compact format for use 6383 in the EROFS file system in Linux. At this point it's possible 6384 that the format will either change or be abandoned and removed 6385 completely. 6386 6387 The special thing about the encoder is that it uses the 6388 output-size-limited encoding added in the previous commit. 6389 EROFS uses fixed-sized blocks (e.g. 4 KiB) to hold compressed 6390 data so the compressors must be able to create valid streams 6391 that fill the given block size. 6392 6393 src/liblzma/api/lzma/container.h | 76 +++++++++++++++++++ 6394 src/liblzma/common/Makefile.inc | 2 + 6395 src/liblzma/common/erofs_decoder.c | 148 +++++++++++++++++++++++++++++++++++++ 6396 src/liblzma/common/erofs_encoder.c | 139 ++++++++++++++++++++++++++++++++++ 6397 src/liblzma/liblzma.map | 2 + 6398 5 files changed, 367 insertions(+) 6399 6400commit 625f4c7c99b2fcc4db9e7ab2deb4884790e2e17c 6401Author: Lasse Collin <lasse.collin@tukaani.org> 6402Date: 2021-01-13 19:16:32 +0200 6403 6404 liblzma: Add rough support for output-size-limited encoding in LZMA1. 6405 6406 With this it is possible to encode LZMA1 data without EOPM so that 6407 the encoder will encode as much input as it can without exceeding 6408 the specified output size limit. The resulting LZMA1 stream will 6409 be a normal LZMA1 stream without EOPM. The actual uncompressed size 6410 will be available to the caller via the uncomp_size pointer. 6411 6412 One missing thing is that the LZMA layer doesn't inform the LZ layer 6413 when the encoding is finished and thus the LZ may read more input 6414 when it won't be used. However, this doesn't matter if encoding is 6415 done with a single call (which is the planned use case for now). 6416 For proper multi-call encoding this should be improved. 6417 6418 This commit only adds the functionality for internal use. 6419 Nothing uses it yet. 6420 6421 src/liblzma/common/common.h | 11 +++ 6422 src/liblzma/lz/lz_encoder.c | 16 ++++ 6423 src/liblzma/lz/lz_encoder.h | 4 + 6424 src/liblzma/lzma/lzma_encoder.c | 127 +++++++++++++++++++++++--------- 6425 src/liblzma/lzma/lzma_encoder_private.h | 12 +++ 6426 src/liblzma/rangecoder/range_encoder.h | 111 ++++++++++++++++++++++++++++ 6427 6 files changed, 246 insertions(+), 35 deletions(-) 6428 6429commit 9cdabbeea891e8f1e7741b076f7db6ac05ae392a 6430Author: Lasse Collin <lasse.collin@tukaani.org> 6431Date: 2021-01-11 23:57:11 +0200 6432 6433 Scripts: Add zstd support to xzdiff. 6434 6435 src/scripts/xzdiff.1 | 6 ++++-- 6436 src/scripts/xzdiff.in | 16 +++++++++++----- 6437 2 files changed, 15 insertions(+), 7 deletions(-) 6438 6439commit d9ec3add97cf4c999a7f594c6529680227b6c274 6440Author: Lasse Collin <lasse.collin@tukaani.org> 6441Date: 2021-01-11 23:41:30 +0200 6442 6443 Update THANKS. 6444 6445 THANKS | 2 ++ 6446 1 file changed, 2 insertions(+) 6447 6448commit 074259f4f3966aeac6edb205fecbc1a8d2b58bb2 6449Author: Lasse Collin <lasse.collin@tukaani.org> 6450Date: 2021-01-11 23:41:16 +0200 6451 6452 xz: Make --keep accept symlinks, hardlinks, and setuid/setgid/sticky. 6453 6454 Previously this required using --force but that has other 6455 effects too which might be undesirable. Changing the behavior 6456 of --keep has a small risk of breaking existing scripts but 6457 since this is a fairly special corner case I expect the 6458 likehood of breakage to be low enough. 6459 6460 I think the new behavior is more logical. The only reason for 6461 the old behavior was to be consistent with gzip and bzip2. 6462 6463 Thanks to Vincent Lefevre and Sebastian Andrzej Siewior. 6464 6465 src/xz/file_io.c | 9 +++++---- 6466 src/xz/xz.1 | 16 +++++++++++++++- 6467 2 files changed, 20 insertions(+), 5 deletions(-) 6468 6469commit 73c555b3077c19dda29b6f4592ced2af876f8333 6470Author: Lasse Collin <lasse.collin@tukaani.org> 6471Date: 2021-01-11 23:28:52 +0200 6472 6473 Scripts: Fix exit status of xzgrep. 6474 6475 Omit the -q option from xz, gzip, and bzip2. With xz this shouldn't 6476 matter. With gzip it's important because -q makes gzip replace SIGPIPE 6477 with exit status 2. With bzip2 it's important because with -q bzip2 6478 is completely silent if input is corrupt while other decompressors 6479 still give an error message. 6480 6481 Avoiding exit status 2 from gzip is important because bzip2 uses 6482 exit status 2 to indicate corrupt input. Before this commit xzgrep 6483 didn't recognize corrupt .bz2 files because xzgrep was treating 6484 exit status 2 as SIGPIPE for gzip compatibility. 6485 6486 zstd still needs -q because otherwise it is noisy in normal 6487 operation. 6488 6489 The code to detect real SIGPIPE didn't check if the exit status 6490 was due to a signal (>= 128) and so could ignore some other exit 6491 status too. 6492 6493 src/scripts/xzgrep.in | 20 +++++++++++++------- 6494 1 file changed, 13 insertions(+), 7 deletions(-) 6495 6496commit 194029ffaf74282a81f0c299c07f73caca3232ca 6497Author: Lasse Collin <lasse.collin@tukaani.org> 6498Date: 2021-01-11 22:01:51 +0200 6499 6500 Scripts: Fix exit status of xzdiff/xzcmp. 6501 6502 This is a minor fix since this affects only the situation when 6503 the files differ and the exit status is something else than 0. 6504 In such case there could be SIGPIPE from a decompression tool 6505 and that would result in exit status of 2 from xzdiff/xzcmp 6506 while the correct behavior would be to return 1 or whatever 6507 else diff or cmp may have returned. 6508 6509 This commit omits the -q option from xz/gzip/bzip2/lzop arguments. 6510 I'm not sure why the -q was used in the first place, perhaps it 6511 hides warnings in some situation that I cannot see at the moment. 6512 Hopefully the removal won't introduce a new bug. 6513 6514 With gzip the -q option was harmful because it made gzip return 2 6515 instead of >= 128 with SIGPIPE. Ignoring exit status 2 (warning 6516 from gzip) isn't practical because bzip2 uses exit status 2 to 6517 indicate corrupt input file. It's better if SIGPIPE results in 6518 exit status >= 128. 6519 6520 With bzip2 the removal of -q seems to be good because with -q 6521 it prints nothing if input is corrupt. The other tools aren't 6522 silent in this situation even with -q. On the other hand, if 6523 zstd support is added, it will need -q since otherwise it's 6524 noisy in normal situations. 6525 6526 Thanks to Étienne Mollier and Sebastian Andrzej Siewior. 6527 6528 src/scripts/xzdiff.in | 35 +++++++++++++++++++++-------------- 6529 1 file changed, 21 insertions(+), 14 deletions(-) 6530 6531commit f7fa309e1f7178d04c7bedc03b73077639371e97 6532Author: Lasse Collin <lasse.collin@tukaani.org> 6533Date: 2021-01-09 21:14:36 +0200 6534 6535 liblzma: Make lzma_outq usable for threaded decompression too. 6536 6537 Before this commit all output queue buffers were allocated as 6538 a single big allocation. Now each buffer is allocated separately 6539 when needed. Used buffers are cached to avoid reallocation 6540 overhead but the cache will keep only one buffer size at a time. 6541 This should make things work OK in the decompression where most 6542 of the time the buffer sizes will be the same but with some less 6543 common files the buffer sizes may vary. 6544 6545 While this should work fine, it's still a bit preliminary 6546 and may even get reverted if it turns out to be useless for 6547 decompression. 6548 6549 src/liblzma/common/outqueue.c | 268 +++++++++++++++++++++------------ 6550 src/liblzma/common/outqueue.h | 138 ++++++++++++----- 6551 src/liblzma/common/stream_encoder_mt.c | 52 ++++--- 6552 3 files changed, 301 insertions(+), 157 deletions(-) 6553 6554commit a35a69d693ce37d4ba7c1855bda7d9cfa13d1778 6555Author: Lasse Collin <lasse.collin@tukaani.org> 6556Date: 2020-12-23 17:15:49 +0200 6557 6558 Update THANKS. 6559 6560 THANKS | 1 + 6561 1 file changed, 1 insertion(+) 6562 6563commit 4fd79b90c52396d70e0b1206ceb1a873a0ad2589 6564Author: H.J. Lu <hjl.tools@gmail.com> 6565Date: 2020-12-23 06:49:04 -0800 6566 6567 liblzma: Enable Intel CET in x86 CRC assembly codes 6568 6569 When Intel CET is enabled, we need to include <cet.h> in assembly codes 6570 to mark Intel CET support and add _CET_ENDBR to indirect jump targets. 6571 6572 Tested on Intel Tiger Lake under CET enabled Linux. 6573 6574 src/liblzma/check/crc32_x86.S | 9 +++++++++ 6575 src/liblzma/check/crc64_x86.S | 9 +++++++++ 6576 2 files changed, 18 insertions(+) 6577 6578commit bb3b8c6a23e25db79f862b1de325c56052e0354b 6579Author: Lasse Collin <lasse.collin@tukaani.org> 6580Date: 2020-12-16 18:33:29 +0200 6581 6582 Update THANKS. 6583 6584 THANKS | 1 + 6585 1 file changed, 1 insertion(+) 6586 6587commit 21588ca34af98738954fc12ded1b89d7294ef646 6588Author: Lasse Collin <lasse.collin@tukaani.org> 6589Date: 2020-12-16 18:30:14 +0200 6590 6591 Build: Don't build bundles on Apple OSes. 6592 6593 Thanks to Daniel Packard. 6594 6595 CMakeLists.txt | 3 +++ 6596 1 file changed, 3 insertions(+) 6597 6598commit d05b0c42dd8b38d8c6b8193c8af50e9bd3d16f28 6599Author: Lasse Collin <lasse.collin@tukaani.org> 6600Date: 2020-12-05 22:44:03 +0200 6601 6602 Update THANKS. 6603 6604 THANKS | 1 + 6605 1 file changed, 1 insertion(+) 6606 6607commit 1890351f3423627ba5c4c495402f32d7e9ed90b7 6608Author: Adam Borowski <kilobyte@angband.pl> 6609Date: 2020-09-25 03:35:18 +0200 6610 6611 Scripts: Add zstd support to xzgrep. 6612 6613 Thanks to Adam Borowski. 6614 6615 src/scripts/xzgrep.1 | 9 ++++++--- 6616 src/scripts/xzgrep.in | 1 + 6617 2 files changed, 7 insertions(+), 3 deletions(-) 6618 6619commit 2f108abb3d82e4e2313b438dae9c0c7c7a6366f2 6620Author: Lasse Collin <lasse.collin@tukaani.org> 6621Date: 2020-11-17 20:51:48 +0200 6622 6623 CMake: Fix compatibility with CMake 3.13. 6624 6625 The syntax "if(DEFINED CACHE{FOO})" requires CMake 3.14. 6626 In some other places the code treats the cache variables 6627 like normal variables already (${FOO} or if(FOO) is used, 6628 not ${CACHE{FOO}). 6629 6630 Thanks to ygrek for reporting the bug on IRC. 6631 6632 CMakeLists.txt | 2 +- 6633 cmake/tuklib_cpucores.cmake | 4 ++-- 6634 cmake/tuklib_physmem.cmake | 4 ++-- 6635 3 files changed, 5 insertions(+), 5 deletions(-) 6636 6637commit 5af726a79273fafa5de5745b117e567f21c90e49 6638Author: Lasse Collin <lasse.collin@tukaani.org> 6639Date: 2020-11-01 22:56:43 +0200 6640 6641 Update THANKS. 6642 6643 THANKS | 4 +++- 6644 1 file changed, 3 insertions(+), 1 deletion(-) 6645 6646commit 4575d9d365c756ec189899f9f743e0b3515ce72d 6647Author: Lasse Collin <lasse.collin@tukaani.org> 6648Date: 2020-11-01 22:34:25 +0200 6649 6650 xz: Avoid unneeded \f escapes on the man page. 6651 6652 I don't want to use \c in macro arguments but groff_man(7) 6653 suggests that \f has better portability. \f would be needed 6654 for the .TP strings for portability reasons anyway. 6655 6656 Thanks to Bjarni Ingi Gislason. 6657 6658 src/xz/xz.1 | 31 ++++++++++++++++++++++--------- 6659 1 file changed, 22 insertions(+), 9 deletions(-) 6660 6661commit 620b32f5339f86710cb4435e01ecdac972ccac73 6662Author: Lasse Collin <lasse.collin@tukaani.org> 6663Date: 2020-11-01 19:09:53 +0200 6664 6665 xz: Use non-breaking spaces when intentionally using more than one space. 6666 6667 This silences some style checker warnings. Seems that spaces 6668 in the beginning of a line don't need this treatment. 6669 6670 Thanks to Bjarni Ingi Gislason. 6671 6672 src/xz/xz.1 | 2 +- 6673 1 file changed, 1 insertion(+), 1 deletion(-) 6674 6675commit cb1f34988c8a4130485091b2f8b641303d8f701b 6676Author: Lasse Collin <lasse.collin@tukaani.org> 6677Date: 2020-11-01 18:49:37 +0200 6678 6679 xz: Protect the ellipsis (...) on the man page with \&. 6680 6681 This does it only when ... appears outside macro calls. 6682 6683 Thanks to Bjarni Ingi Gislason. 6684 6685 src/xz/xz.1 | 4 ++-- 6686 1 file changed, 2 insertions(+), 2 deletions(-) 6687 6688commit 5d224da3da87400f2fab313abbd7c710e7169ef9 6689Author: Lasse Collin <lasse.collin@tukaani.org> 6690Date: 2020-11-01 18:41:21 +0200 6691 6692 xz: Avoid the abbreviation "e.g." on the man page. 6693 6694 A few are simply omitted, most are converted to "for example" 6695 and surrounded with commas. Sounds like that this is better 6696 style, for example, man-pages(7) recommends avoiding such 6697 abbreviations except in parenthesis. 6698 6699 Thanks to Bjarni Ingi Gislason. 6700 6701 src/xz/xz.1 | 66 ++++++++++++++++++++++++++++++------------------------------- 6702 1 file changed, 33 insertions(+), 33 deletions(-) 6703 6704commit 90457dbe3e5717660f5b81f8c604860fc5137c0c 6705Author: Lasse Collin <lasse.collin@tukaani.org> 6706Date: 2020-07-12 23:10:03 +0300 6707 6708 xz man page: Change \- (minus) to \(en (en-dash) for a numeric range. 6709 6710 Docs of ancient troff/nroff mention \(em (em-dash) but not \(en 6711 and \- was used for both minus and en-dash. I don't know how 6712 portable \(en is nowadays but it can be changed back if someone 6713 complains. At least GNU groff and OpenBSD's mandoc support it. 6714 6715 Thanks to Bjarni Ingi Gislason for the patch. 6716 6717 src/xz/xz.1 | 16 ++++++++-------- 6718 1 file changed, 8 insertions(+), 8 deletions(-) 6719 6720commit 352ba2d69af2136bc814aa1df1a132559d445616 6721Author: Lasse Collin <lasse.collin@tukaani.org> 6722Date: 2020-07-12 20:46:24 +0300 6723 6724 Windows: Fix building of resource files when config.h isn't used. 6725 6726 Now CMake + Visual Studio works for building liblzma.dll. 6727 6728 Thanks to Markus Rickert. 6729 6730 src/common/common_w32res.rc | 4 +++- 6731 1 file changed, 3 insertions(+), 1 deletion(-) 6732 6733commit a9e2a87f1d61dcf684d809bf08c8ebea93f8a480 6734Author: Lasse Collin <lasse.collin@tukaani.org> 6735Date: 2020-04-06 19:31:50 +0300 6736 6737 src/scripts/xzgrep.1: Filenames to xzgrep are optional. 6738 6739 xzgrep --help was correct already. 6740 6741 src/scripts/xzgrep.1 | 2 +- 6742 1 file changed, 1 insertion(+), 1 deletion(-) 6743 6744commit a7ba275d9b855d186abb29eb7a4f4cb6d9ca6fe0 6745Author: Bjarni Ingi Gislason <bjarniig@rhi.hi.is> 6746Date: 2020-03-26 22:17:31 +0000 6747 6748 src/script/xzgrep.1: Remove superfluous '.RB' 6749 6750 Output is from: test-groff -b -e -mandoc -T utf8 -rF0 -t -w w -z 6751 6752 [ "test-groff" is a developmental version of "groff" ] 6753 6754 Input file is ./src/scripts/xzgrep.1 6755 6756 <src/scripts/xzgrep.1>:20 (macro RB): only 1 argument, but more are expected 6757 <src/scripts/xzgrep.1>:23 (macro RB): only 1 argument, but more are expected 6758 <src/scripts/xzgrep.1>:26 (macro RB): only 1 argument, but more are expected 6759 <src/scripts/xzgrep.1>:29 (macro RB): only 1 argument, but more are expected 6760 <src/scripts/xzgrep.1>:32 (macro RB): only 1 argument, but more are expected 6761 6762 "abc..." does not mean the same as "abc ...". 6763 6764 The output from nroff and troff is unchanged except for the space 6765 between "file" and "...". 6766 6767 Signed-off-by: Bjarni Ingi Gislason <bjarniig@rhi.hi.is> 6768 6769 src/scripts/xzgrep.1 | 12 ++++++------ 6770 1 file changed, 6 insertions(+), 6 deletions(-) 6771 6772commit 133d498db0f4b14f066d192d64dbcade45deae6b 6773Author: Bjarni Ingi Gislason <bjarniig@rhi.hi.is> 6774Date: 2020-03-30 21:56:36 +0000 6775 6776 xzgrep.1: Delete superfluous '.PP' 6777 6778 Summary: 6779 6780 mandoc -T lint xzgrep.1 : 6781 mandoc: xzgrep.1:79:2: WARNING: skipping paragraph macro: PP empty 6782 6783 There is no change in the output of "nroff" and "troff". 6784 6785 Signed-off-by: Bjarni Ingi Gislason <bjarniig@rhi.hi.is> 6786 6787 src/scripts/xzgrep.1 | 1 - 6788 1 file changed, 1 deletion(-) 6789 6790commit 057839ca982f886387b66746bffe749cb14fd8cd 6791Author: Bjarni Ingi Gislason <bjarniig@rhi.hi.is> 6792Date: 2020-03-26 21:16:18 +0000 6793 6794 src/xz/xz.1: Correct misused two-fonts macros 6795 6796 Output is from: test-groff -b -e -mandoc -T utf8 -rF0 -t -w w -z 6797 6798 [ "test-groff" is a developmental version of "groff" ] 6799 6800 Input file is ./src/xz/xz.1 6801 6802 <src/xz/xz.1>:408 (macro BR): only 1 argument, but more are expected 6803 <src/xz/xz.1>:1009 (macro BR): only 1 argument, but more are expected 6804 <src/xz/xz.1>:1743 (macro BR): only 1 argument, but more are expected 6805 <src/xz/xz.1>:1920 (macro BR): only 1 argument, but more are expected 6806 <src/xz/xz.1>:2213 (macro BR): only 1 argument, but more are expected 6807 6808 Output from nroff and troff is unchanged, except for a font change of a 6809 full stop (.). 6810 6811 Signed-off-by: Bjarni Ingi Gislason <bjarniig@rhi.hi.is> 6812 6813 src/xz/xz.1 | 10 +++++----- 6814 1 file changed, 5 insertions(+), 5 deletions(-) 6815 6816commit b8e12f5ab4c9fd3cb09a4330b2861f6b979ababd 6817Author: Lasse Collin <lasse.collin@tukaani.org> 6818Date: 2020-03-23 18:07:50 +0200 6819 6820 Typo fixes from fossies.org. 6821 6822 https://fossies.org/linux/misc/xz-5.2.5.tar.xz/codespell.html 6823 6824 Makefile.am | 2 +- 6825 doc/examples/01_compress_easy.c | 2 +- 6826 src/liblzma/api/lzma/base.h | 2 +- 6827 src/liblzma/check/crc32_x86.S | 2 +- 6828 src/liblzma/common/index.c | 2 +- 6829 src/xz/xz.1 | 4 ++-- 6830 6 files changed, 7 insertions(+), 7 deletions(-) 6831 6832commit 869b9d1b4edd6df07f819d360d306251f8147353 6833Author: Lasse Collin <lasse.collin@tukaani.org> 6834Date: 2020-03-17 16:24:28 +0200 6835 6836 Update NEWS for 5.2.5. 6837 6838 NEWS | 105 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 6839 1 file changed, 105 insertions(+) 6840 6841commit a048e3a92d238c65f050a765174d9c75417231d4 6842Author: Lasse Collin <lasse.collin@tukaani.org> 6843Date: 2020-03-16 20:01:37 +0200 6844 6845 README: Update outdated sections. 6846 6847 README | 21 +++++++++++---------- 6848 1 file changed, 11 insertions(+), 10 deletions(-) 6849 6850commit 29aed815ad4f98f3e4d355faa76a244ecd8ce716 6851Author: Lasse Collin <lasse.collin@tukaani.org> 6852Date: 2020-03-16 19:39:45 +0200 6853 6854 README: Mention that man pages can be translated. 6855 6856 README | 7 ++++--- 6857 1 file changed, 4 insertions(+), 3 deletions(-) 6858 6859commit 7fa7653940cc9dcfcbce2fbc5166ea343ad4e3c1 6860Author: Lasse Collin <lasse.collin@tukaani.org> 6861Date: 2020-03-16 16:43:29 +0200 6862 6863 Update INSTALL.generic from Automake 1.16.1. 6864 6865 INSTALL.generic | 321 ++++++++++++++++++++++++++++---------------------------- 6866 1 file changed, 162 insertions(+), 159 deletions(-) 6867 6868commit 9bd317ef03ab9b3e6a927c27c2e9c4ac041182f0 6869Author: Lasse Collin <lasse.collin@tukaani.org> 6870Date: 2020-03-15 15:27:22 +0200 6871 6872 Update INSTALL for Windows and DOS and add preliminary info for z/OS. 6873 6874 INSTALL | 51 +++++++++++++++++++++++++++++++++++++++++---------- 6875 1 file changed, 41 insertions(+), 10 deletions(-) 6876 6877commit a3148c0446dc7fa96363752df414d22539c9007b 6878Author: Lasse Collin <lasse.collin@tukaani.org> 6879Date: 2020-03-15 15:26:20 +0200 6880 6881 Build: Update m4/ax_pthread.m4 from Autoconf Archive (again). 6882 6883 m4/ax_pthread.m4 | 219 +++++++++++++++++++++++++++++-------------------------- 6884 1 file changed, 117 insertions(+), 102 deletions(-) 6885 6886commit 7812002dd3ed319e42a14662a8531802cca8ca67 6887Author: Lasse Collin <lasse.collin@tukaani.org> 6888Date: 2020-03-11 21:15:35 +0200 6889 6890 xz: Never use thousand separators in DJGPP builds. 6891 6892 DJGPP 2.05 added support for thousands separators but it's 6893 broken at least under WinXP with Finnish locale that uses 6894 a non-breaking space as the thousands separator. Workaround 6895 by disabling thousands separators for DJGPP builds. 6896 6897 src/xz/util.c | 14 ++++++++++++-- 6898 1 file changed, 12 insertions(+), 2 deletions(-) 6899 6900commit 7c8f688bf7fccd65d396e0130cbf4ea5dff5c56f 6901Author: Lasse Collin <lasse.collin@tukaani.org> 6902Date: 2020-03-11 19:38:08 +0200 6903 6904 DOS: Update dos/Makefile for DJGPP 2.05. 6905 6906 It doesn't need -fgnu89-inline like 2.04beta did. 6907 6908 dos/Makefile | 4 +--- 6909 1 file changed, 1 insertion(+), 3 deletions(-) 6910 6911commit 319ca928d73de87940c54e30bffe69f9fa65efdf 6912Author: Lasse Collin <lasse.collin@tukaani.org> 6913Date: 2020-03-11 19:36:07 +0200 6914 6915 DOS: Update instructions in dos/INSTALL.txt. 6916 6917 dos/INSTALL.txt | 59 ++++++++++++++++++++++++++++----------------------------- 6918 1 file changed, 29 insertions(+), 30 deletions(-) 6919 6920commit cb6b227ce39932824812ccd8a0647bd968de27d2 6921Author: Lasse Collin <lasse.collin@tukaani.org> 6922Date: 2020-03-11 17:58:51 +0200 6923 6924 DOS: Update config.h. 6925 6926 The added defines assume GCC >= 4.8. 6927 6928 dos/config.h | 8 ++++++++ 6929 1 file changed, 8 insertions(+) 6930 6931commit 4572d53e16e87eee375bc5624de2fd59bb0ae9cd 6932Author: Lasse Collin <lasse.collin@tukaani.org> 6933Date: 2020-03-02 13:54:33 +0200 6934 6935 liblzma: Fix a comment and RC_SYMBOLS_MAX. 6936 6937 The comment didn't match the value of RC_SYMBOLS_MAX and the value 6938 itself was slightly larger than actually needed. The only harm 6939 about this was that memory usage was a few bytes larger. 6940 6941 src/liblzma/rangecoder/range_encoder.h | 4 ++-- 6942 1 file changed, 2 insertions(+), 2 deletions(-) 6943 6944commit 265daa873c0d871f5f23f9b56e133a6f20045a0a 6945Author: Lasse Collin <lasse.collin@tukaani.org> 6946Date: 2020-02-27 20:58:52 +0200 6947 6948 Build: Make CMake build fail if tuklib_cpucores or tuklib_physmem fails. 6949 6950 CMakeLists.txt | 18 ++++++++++++++++++ 6951 1 file changed, 18 insertions(+) 6952 6953commit 7c8b904527cdbe61248c80edcc2e20d840c4fef9 6954Author: Lasse Collin <lasse.collin@tukaani.org> 6955Date: 2020-02-27 20:24:27 +0200 6956 6957 Build: Add support for --no-po4a option to autogen.sh. 6958 6959 Normally, if po4a isn't available, autogen.sh will return 6960 with non-zero exit status. The option --no-po4a can be useful 6961 when one knows that po4a isn't available but wants autogen.sh 6962 to still return with zero exit status. 6963 6964 autogen.sh | 11 ++++++++++- 6965 1 file changed, 10 insertions(+), 1 deletion(-) 6966 6967commit 292a5c0f9c9b3a66f5a5c652dc46381836d4537f 6968Author: Lasse Collin <lasse.collin@tukaani.org> 6969Date: 2020-02-25 21:35:14 +0200 6970 6971 Update THANKS. 6972 6973 THANKS | 1 + 6974 1 file changed, 1 insertion(+) 6975 6976commit 474320e9908786ba2021035f9013191e16cde08a 6977Author: Lasse Collin <lasse.collin@tukaani.org> 6978Date: 2020-02-25 20:42:31 +0200 6979 6980 Build: Fix bugs in the CMake files. 6981 6982 Seems that the phrase "add more quotes" from sh/bash scripting 6983 applies to CMake as well. E.g. passing an unquoted list ${FOO} 6984 to a function that expects one argument results in only the 6985 first element of the list being passed as an argument and 6986 the rest get ignored. Adding quotes helps ("${FOO}"). 6987 6988 list(INSERT ...) is weird. Inserting an empty string to an empty 6989 variable results in empty list, but inserting it to a non-empty 6990 variable does insert an empty element to the list. 6991 6992 Since INSERT requires at least one element, 6993 "${CMAKE_THREAD_LIBS_INIT}" needs to be quoted in CMakeLists.txt. 6994 It might result in an empty element in the list. It seems to not 6995 matter as empty elements consistently get ignored in that variable. 6996 In fact, calling cmake_check_push_state() and cmake_check_pop_state() 6997 will strip the empty elements from CMAKE_REQUIRED_LIBRARIES! 6998 6999 In addition to quoting fixes, this fixes checks for the cache 7000 variables in tuklib_cpucores.cmake and tuklib_physmem.cmake. 7001 7002 Thanks to Martin Matuška for testing and reporting the problems. 7003 These fixes aren't tested yet but hopefully they soon will be. 7004 7005 CMakeLists.txt | 52 ++++++++++++++++++++++----------------------- 7006 cmake/tuklib_common.cmake | 8 ++++--- 7007 cmake/tuklib_cpucores.cmake | 30 ++++++++++++++------------ 7008 cmake/tuklib_integer.cmake | 34 +++++++++++++++-------------- 7009 cmake/tuklib_mbstr.cmake | 6 +++--- 7010 cmake/tuklib_physmem.cmake | 29 +++++++++++++------------ 7011 cmake/tuklib_progname.cmake | 4 ++-- 7012 7 files changed, 85 insertions(+), 78 deletions(-) 7013 7014commit 7e3493d40eac0c3fa3d5124097745a70e15c41f6 7015Author: Lasse Collin <lasse.collin@tukaani.org> 7016Date: 2020-02-24 23:38:16 +0200 7017 7018 Build: Add very limited experimental CMake support. 7019 7020 This does *NOT* replace the Autotools-based build system in 7021 the foreseeable future. See the comment in the beginning 7022 of CMakeLists.txt. 7023 7024 So far this has been tested only on GNU/Linux but I commit 7025 it anyway to make it easier for others to test. Since I 7026 haven't played much with CMake before, it's likely that 7027 there are things that have been done in a silly or wrong 7028 way and need to be fixed. 7029 7030 CMakeLists.txt | 643 ++++++++++++++++++++++++++++++++++++++++++++ 7031 cmake/tuklib_common.cmake | 47 ++++ 7032 cmake/tuklib_cpucores.cmake | 173 ++++++++++++ 7033 cmake/tuklib_integer.cmake | 100 +++++++ 7034 cmake/tuklib_mbstr.cmake | 20 ++ 7035 cmake/tuklib_physmem.cmake | 149 ++++++++++ 7036 cmake/tuklib_progname.cmake | 19 ++ 7037 7 files changed, 1151 insertions(+) 7038 7039commit 21bd4701fca3e9002ce78bc135debca369ed8545 7040Author: Lasse Collin <lasse.collin@tukaani.org> 7041Date: 2020-02-24 23:37:07 +0200 7042 7043 Update m4/.gitignore. 7044 7045 m4/.gitignore | 1 + 7046 1 file changed, 1 insertion(+) 7047 7048commit e094d1d0f196a91ec703e8d0055948feef349ae8 7049Author: Lasse Collin <lasse.collin@tukaani.org> 7050Date: 2020-02-24 23:29:35 +0200 7051 7052 tuklib: Omit an unneeded <sys/types.h> from a tests. 7053 7054 tuklib_cpucores.c and tuklib_physmem.c don't include <sys/types.h> 7055 even via other files in this package, so clearly that header isn't 7056 needed in the tests either (no one has reported build problems due 7057 to a missing header in a .c file). 7058 7059 m4/tuklib_cpucores.m4 | 1 - 7060 m4/tuklib_physmem.m4 | 1 - 7061 2 files changed, 2 deletions(-) 7062 7063commit b3ed19a55fe99a45bd77614e149d39d18498075c 7064Author: Lasse Collin <lasse.collin@tukaani.org> 7065Date: 2020-02-24 23:01:00 +0200 7066 7067 liblzma: Remove unneeded <sys/types.h> from fastpos_tablegen.c. 7068 7069 This file only generates fastpos_table.c. 7070 It isn't built as a part of liblzma. 7071 7072 src/liblzma/lzma/fastpos_tablegen.c | 1 - 7073 1 file changed, 1 deletion(-) 7074 7075commit 7b8982b29179b3c586e0456dc9ecbd4f58dcea59 7076Author: Lasse Collin <lasse.collin@tukaani.org> 7077Date: 2020-02-22 14:15:07 +0200 7078 7079 Use defined(__GNUC__) before __GNUC__ in preprocessor lines. 7080 7081 This should silence the equivalent of -Wundef in compilers that 7082 don't define __GNUC__. 7083 7084 src/common/sysdefs.h | 3 ++- 7085 src/liblzma/api/lzma.h | 5 +++-- 7086 2 files changed, 5 insertions(+), 3 deletions(-) 7087 7088commit 43dfe04e6209c691cf4fbe3072d4ee91271748f1 7089Author: Lasse Collin <lasse.collin@tukaani.org> 7090Date: 2020-02-21 17:40:02 +0200 7091 7092 liblzma: Add more uses of lzma_memcmplen() to the normal mode of LZMA. 7093 7094 This gives a tiny encoder speed improvement. This could have been done 7095 in 2014 after the commit 544aaa3d13554e8640f9caf7db717a96360ec0f6 but 7096 it was forgotten. 7097 7098 src/liblzma/lzma/lzma_encoder_optimum_normal.c | 16 ++++++++++------ 7099 1 file changed, 10 insertions(+), 6 deletions(-) 7100 7101commit 59e6eb4840b9f52fa3a61544974017279b448216 7102Author: Lasse Collin <lasse.collin@tukaani.org> 7103Date: 2020-02-21 17:01:15 +0200 7104 7105 Build: Add visibility.m4 from gnulib. 7106 7107 Appears that this file used to get included as a side effect of 7108 gettext. After the change to gettext version requirements this file 7109 no longer got copied to the package and so the build was broken. 7110 7111 m4/.gitignore | 1 - 7112 m4/visibility.m4 | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 7113 2 files changed, 77 insertions(+), 1 deletion(-) 7114 7115commit 7fe3ef2eaa53d439cec043727ea1998f4ff0e22a 7116Author: Lasse Collin <lasse.collin@tukaani.org> 7117Date: 2020-02-21 16:10:44 +0200 7118 7119 xz: Silence a warning when sig_atomic_t is long int. 7120 7121 It can be true at least on z/OS. 7122 7123 src/xz/signals.c | 2 +- 7124 1 file changed, 1 insertion(+), 1 deletion(-) 7125 7126commit b0a2a77d10940c42b449d47a005bfc2e50ab5db8 7127Author: Lasse Collin <lasse.collin@tukaani.org> 7128Date: 2020-02-21 15:59:26 +0200 7129 7130 xz: Avoid unneeded access of a volatile variable. 7131 7132 src/xz/signals.c | 2 +- 7133 1 file changed, 1 insertion(+), 1 deletion(-) 7134 7135commit 524c2f12c762032b819757aeda8af7c47c4cabce 7136Author: Lasse Collin <lasse.collin@tukaani.org> 7137Date: 2020-02-21 01:24:18 +0200 7138 7139 tuklib_integer.m4: Optimize the check order. 7140 7141 The __builtin byteswapping is the preferred one so check for it first. 7142 7143 m4/tuklib_integer.m4 | 56 +++++++++++++++++++++++++++------------------------- 7144 1 file changed, 29 insertions(+), 27 deletions(-) 7145 7146commit 57360bb4fd79b358b36d2877db26ac828d1fdfcb 7147Author: Lasse Collin <lasse.collin@tukaani.org> 7148Date: 2020-02-20 18:54:04 +0200 7149 7150 tuklib_exit: Add missing header. 7151 7152 strerror() needs <string.h> which happened to be included via 7153 tuklib_common.h -> tuklib_config.h -> sysdefs.h if HAVE_CONFIG_H 7154 was defined. This wasn't tested without config.h before so it 7155 had worked fine. 7156 7157 src/common/tuklib_exit.c | 1 + 7158 1 file changed, 1 insertion(+) 7159 7160commit fddd31175e74a538997a939d930462fde17d2dd4 7161Author: Lasse Collin <lasse.collin@tukaani.org> 7162Date: 2020-02-18 19:12:35 +0200 7163 7164 Revert the previous commit and add a comment. 7165 7166 The previous commit broke crc32_tablegen.c. 7167 7168 If the whole package is built without config.h (with defines 7169 set on the compiler command line) this should still work fine 7170 as long as these headers conform to C99 well enough. 7171 7172 src/common/tuklib_config.h | 17 ++++++++++------- 7173 1 file changed, 10 insertions(+), 7 deletions(-) 7174 7175commit 4e4e9fbb7e66d45319525ac224bff48fbdd0cf6e 7176Author: Lasse Collin <lasse.collin@tukaani.org> 7177Date: 2020-02-17 23:37:20 +0200 7178 7179 Do not check for HAVE_CONFIG_H in tuklib_config.h. 7180 7181 In XZ Utils sysdefs.h takes care of it and the required headers. 7182 7183 src/common/tuklib_config.h | 15 +++++++-------- 7184 1 file changed, 7 insertions(+), 8 deletions(-) 7185 7186commit 2d4cef954feba82073951358466a1d614141cf33 7187Author: Lasse Collin <lasse.collin@tukaani.org> 7188Date: 2020-02-16 11:18:28 +0200 7189 7190 sysdefs.h: Omit the conditionals around string.h and limits.h. 7191 7192 string.h is used unconditionally elsewhere in the project and 7193 configure has always stopped if limits.h is missing, so these 7194 headers must have been always available even on the weirdest 7195 systems. 7196 7197 src/common/sysdefs.h | 8 ++------ 7198 1 file changed, 2 insertions(+), 6 deletions(-) 7199 7200commit feb9c1969bc3eb33d4ecb72cfa897f92dae84939 7201Author: Lasse Collin <lasse.collin@tukaani.org> 7202Date: 2020-02-15 15:07:11 +0200 7203 7204 Build: Bump Autoconf and Libtool version requirements. 7205 7206 There is no specific reason for this other than blocking 7207 the most ancient versions. These are still old: 7208 7209 Autoconf 2.69 (2012) 7210 Automake 1.12 (2012) 7211 gettext 0.19.6 (2015) 7212 Libtool 2.4 (2010) 7213 7214 configure.ac | 4 ++-- 7215 1 file changed, 2 insertions(+), 2 deletions(-) 7216 7217commit 3d576cf92158d62790017ad7f2dd6dc1dd6b42bb 7218Author: Lasse Collin <lasse.collin@tukaani.org> 7219Date: 2020-02-15 03:08:32 +0200 7220 7221 Build: Use AM_GNU_GETTEXT_REQUIRE_VERSION and require 0.19.6. 7222 7223 This bumps the version requirement from 0.19 (from 2014) to 7224 0.19.6 (2015). 7225 7226 Using only the old AM_GNU_GETTEXT_VERSION results in old 7227 gettext infrastructure being placed in the package. By using 7228 both macros we get the latest gettext files while the other 7229 programs in the Autotools family can still see the old macro. 7230 7231 configure.ac | 6 +++++- 7232 1 file changed, 5 insertions(+), 1 deletion(-) 7233 7234commit fa792b8befaf7cb3960b655e0a9410da866d756f 7235Author: Lasse Collin <lasse.collin@tukaani.org> 7236Date: 2020-02-14 20:42:06 +0200 7237 7238 Translations: Add German translation of the man pages. 7239 7240 Thanks to Mario Blättermann. 7241 7242 po4a/de.po | 5532 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 7243 po4a/po4a.conf | 2 +- 7244 2 files changed, 5533 insertions(+), 1 deletion(-) 7245 7246commit 6f7211b6bb47a895b47f533282dba9ee9a1b0c8b 7247Author: Lasse Collin <lasse.collin@tukaani.org> 7248Date: 2020-02-07 15:32:21 +0200 7249 7250 Build: Add support for translated man pages using po4a. 7251 7252 The dependency on po4a is optional. It's never required to install 7253 the translated man pages when xz is built from a release tarball. 7254 If po4a is missing when building from xz.git, the translated man 7255 pages won't be generated but otherwise the build will work normally. 7256 7257 The translations are only updated automatically by autogen.sh and 7258 by "make mydist". This makes it easy to keep po4a as an optional 7259 dependency and ensures that I won't forget to put updated 7260 translations to a release tarball. 7261 7262 The translated man pages aren't installed if --disable-nls is used. 7263 7264 The installation of translated man pages abuses Automake internals 7265 by calling "install-man" with redefined dist_man_MANS and man_MANS. 7266 This makes the hairy script code slightly less hairy. If it breaks 7267 some day, this code needs to be fixed; don't blame Automake developers. 7268 7269 Also, this adds more quotes to the existing shell script code in 7270 the Makefile.am "-hook"s. 7271 7272 Makefile.am | 4 ++++ 7273 autogen.sh | 8 ++++--- 7274 po4a/.gitignore | 2 ++ 7275 po4a/po4a.conf | 14 +++++++++++ 7276 po4a/update-po | 45 ++++++++++++++++++++++++++++++++++ 7277 src/scripts/Makefile.am | 64 +++++++++++++++++++++++++++++++++++++------------ 7278 src/xz/Makefile.am | 50 +++++++++++++++++++++++++++----------- 7279 src/xzdec/Makefile.am | 55 ++++++++++++++++++++++++++++++++---------- 7280 8 files changed, 197 insertions(+), 45 deletions(-) 7281 7282commit 426f9e5819ff7710a5ff573a96c02940be65d52f 7283Author: Lasse Collin <lasse.collin@tukaani.org> 7284Date: 2020-02-06 17:31:38 +0200 7285 7286 Update THANKS. 7287 7288 THANKS | 1 + 7289 1 file changed, 1 insertion(+) 7290 7291commit e3a4481d020e4de89efa037f335cf50f3ca55592 7292Author: Lasse Collin <lasse.collin@tukaani.org> 7293Date: 2020-02-05 22:35:06 +0200 7294 7295 Update tests/.gitignore. 7296 7297 .gitignore | 4 ++++ 7298 1 file changed, 4 insertions(+) 7299 7300commit 07208de92f2d5bca764f6d0ebe9d9866051dc4ef 7301Author: Lasse Collin <lasse.collin@tukaani.org> 7302Date: 2020-02-05 22:28:51 +0200 7303 7304 Update m4/.gitignore. 7305 7306 m4/.gitignore | 1 + 7307 1 file changed, 1 insertion(+) 7308 7309commit c91fbf223db46c3b3cb9df769863a1a60cd9c908 7310Author: Lasse Collin <lasse.collin@tukaani.org> 7311Date: 2020-02-05 20:47:38 +0200 7312 7313 Update THANKS. 7314 7315 THANKS | 1 + 7316 1 file changed, 1 insertion(+) 7317 7318commit 15a133b6d1a3eab4faf6eb52a71fdc56bd65846f 7319Author: Lasse Collin <lasse.collin@tukaani.org> 7320Date: 2020-02-05 20:40:14 +0200 7321 7322 xz: Make it a fatal error if enabling the sandbox fails. 7323 7324 Perhaps it's too drastic but on the other hand it will let me 7325 learn about possible problems if people report the errors. 7326 This won't be backported to the v5.2 branch. 7327 7328 src/xz/file_io.c | 2 +- 7329 1 file changed, 1 insertion(+), 1 deletion(-) 7330 7331commit af0fb386ef55db66654ae39e2deec6e04190c4ff 7332Author: Lasse Collin <lasse.collin@tukaani.org> 7333Date: 2020-02-05 20:33:50 +0200 7334 7335 xz: Comment out annoying sandboxing messages. 7336 7337 src/xz/file_io.c | 10 +++++++--- 7338 1 file changed, 7 insertions(+), 3 deletions(-) 7339 7340commit 986d8c9b52b824474088e5bb3b6940651660f0e2 7341Author: Lasse Collin <lasse.collin@tukaani.org> 7342Date: 2020-02-05 19:33:37 +0200 7343 7344 Build: Workaround a POSIX shell detection problem on Solaris. 7345 7346 I don't know if the problem is in gnulib's gl_POSIX_SHELL macro 7347 or if xzgrep does something that isn't in POSIX. The workaround 7348 adds a special case for Solaris: if /usr/xpg4/bin/sh exists and 7349 gl_cv_posix_shell wasn't overriden on the configure command line, 7350 use that shell for xzgrep and other scripts. That shell is known 7351 to work and exists on most Solaris systems. 7352 7353 configure.ac | 10 ++++++++++ 7354 1 file changed, 10 insertions(+) 7355 7356commit 6629ed929cc7d45a11e385f357ab58ec15e7e4ad 7357Author: Lasse Collin <lasse.collin@tukaani.org> 7358Date: 2020-02-03 22:03:50 +0200 7359 7360 Build: Update m4/ax_pthread.m4 from Autoconf Archive. 7361 7362 m4/ax_pthread.m4 | 398 ++++++++++++++++++++++++++++++++++++++----------------- 7363 1 file changed, 279 insertions(+), 119 deletions(-) 7364 7365commit 353970510895f6a80adfe60cf71b70a95adfa8bc 7366Author: Lasse Collin <lasse.collin@tukaani.org> 7367Date: 2020-02-01 19:56:18 +0200 7368 7369 xz: Limit --memlimit-compress to at most 4020 MiB for 32-bit xz. 7370 7371 See the code comment for reasoning. It's far from perfect but 7372 hopefully good enough for certain cases while hopefully doing 7373 nothing bad in other situations. 7374 7375 At presets -5 ... -9, 4020 MiB vs. 4096 MiB makes no difference 7376 on how xz scales down the number of threads. 7377 7378 The limit has to be a few MiB below 4096 MiB because otherwise 7379 things like "xz --lzma2=dict=500MiB" won't scale down the dict 7380 size enough and xz cannot allocate enough memory. With 7381 "ulimit -v $((4096 * 1024))" on x86-64, the limit in xz had 7382 to be no more than 4085 MiB. Some safety margin is good though. 7383 7384 This is hack but it should be useful when running 32-bit xz on 7385 a 64-bit kernel that gives full 4 GiB address space to xz. 7386 Hopefully this is enough to solve this: 7387 7388 https://bugzilla.redhat.com/show_bug.cgi?id=1196786 7389 7390 FreeBSD has a patch that limits the result in tuklib_physmem() 7391 to SIZE_MAX on 32-bit systems. While I think it's not the way 7392 to do it, the results on --memlimit-compress have been good. This 7393 commit should achieve practically identical results for compression 7394 while leaving decompression and tuklib_physmem() and thus 7395 lzma_physmem() unaffected. 7396 7397 src/xz/hardware.c | 32 +++++++++++++++++++++++++++++++- 7398 src/xz/xz.1 | 21 ++++++++++++++++++++- 7399 2 files changed, 51 insertions(+), 2 deletions(-) 7400 7401commit ba76d67585f88677af9f48b48e7bdc3bb7687def 7402Author: Lasse Collin <lasse.collin@tukaani.org> 7403Date: 2020-01-26 20:53:25 +0200 7404 7405 xz: Set the --flush-timeout deadline when the first input byte arrives. 7406 7407 xz --flush-timeout=2000, old version: 7408 7409 1. xz is started. The next flush will happen after two seconds. 7410 2. No input for one second. 7411 3. A burst of a few kilobytes of input. 7412 4. No input for one second. 7413 5. Two seconds have passed and flushing starts. 7414 7415 The first second counted towards the flush-timeout even though 7416 there was no pending data. This can cause flushing to occur more 7417 often than needed. 7418 7419 xz --flush-timeout=2000, after this commit: 7420 7421 1. xz is started. 7422 2. No input for one second. 7423 3. A burst of a few kilobytes of input. The next flush will 7424 happen after two seconds counted from the time when the 7425 first bytes of the burst were read. 7426 4. No input for one second. 7427 5. No input for another second. 7428 6. Two seconds have passed and flushing starts. 7429 7430 src/xz/coder.c | 6 +----- 7431 src/xz/file_io.c | 6 +++++- 7432 src/xz/mytime.c | 1 - 7433 3 files changed, 6 insertions(+), 7 deletions(-) 7434 7435commit fd47fd62bbb1bfd13ab63869137971d8b390025f 7436Author: Lasse Collin <lasse.collin@tukaani.org> 7437Date: 2020-01-26 20:19:19 +0200 7438 7439 xz: Move flush_needed from mytime.h to file_pair struct in file_io.h. 7440 7441 src/xz/coder.c | 3 ++- 7442 src/xz/file_io.c | 3 ++- 7443 src/xz/file_io.h | 3 +++ 7444 src/xz/mytime.c | 3 --- 7445 src/xz/mytime.h | 4 ---- 7446 5 files changed, 7 insertions(+), 9 deletions(-) 7447 7448commit 815035681063d5774d3640fc20b8ede783dd574e 7449Author: Lasse Collin <lasse.collin@tukaani.org> 7450Date: 2020-01-26 14:49:22 +0200 7451 7452 xz: coder.c: Make writing output a separate function. 7453 7454 The same code sequence repeats so it's nicer as a separate function. 7455 Note that in one case there was no test for opt_mode != MODE_TEST, 7456 but that was only because that condition would always be true, so 7457 this commit doesn't change the behavior there. 7458 7459 src/xz/coder.c | 30 +++++++++++++++++------------- 7460 1 file changed, 17 insertions(+), 13 deletions(-) 7461 7462commit 5a49e081a098455bcdbd95cefb90e9b18780fe58 7463Author: Lasse Collin <lasse.collin@tukaani.org> 7464Date: 2020-01-26 14:13:42 +0200 7465 7466 xz: Fix semi-busy-waiting in xz --flush-timeout. 7467 7468 When input blocked, xz --flush-timeout=1 would wake up every 7469 millisecond and initiate flushing which would have nothing to 7470 flush and thus would just waste CPU time. The fix disables the 7471 timeout when no input has been seen since the previous flush. 7472 7473 src/xz/coder.c | 4 ++++ 7474 src/xz/file_io.c | 15 +++++++++++---- 7475 src/xz/file_io.h | 4 ++++ 7476 3 files changed, 19 insertions(+), 4 deletions(-) 7477 7478commit dcca70fe9fa3c4bec56cf9c79e966166c9a9cf6a 7479Author: Lasse Collin <lasse.collin@tukaani.org> 7480Date: 2020-01-26 13:47:31 +0200 7481 7482 xz: Refactor io_read() a bit. 7483 7484 src/xz/file_io.c | 17 ++++++++--------- 7485 1 file changed, 8 insertions(+), 9 deletions(-) 7486 7487commit 4ae9ab70cd3214395756435d13d8d000368ca2cb 7488Author: Lasse Collin <lasse.collin@tukaani.org> 7489Date: 2020-01-26 13:37:08 +0200 7490 7491 xz: Update a comment in file_io.h. 7492 7493 src/xz/file_io.h | 5 ++++- 7494 1 file changed, 4 insertions(+), 1 deletion(-) 7495 7496commit 3333ba4a6795a55cf0375329ba08152bd7fcbd46 7497Author: Lasse Collin <lasse.collin@tukaani.org> 7498Date: 2020-01-26 13:27:51 +0200 7499 7500 xz: Move the setting of flush_needed in file_io.c to a nicer location. 7501 7502 src/xz/file_io.c | 6 ++---- 7503 1 file changed, 2 insertions(+), 4 deletions(-) 7504 7505commit cf2df0f05ac98c1158c6e48145900b773223605d 7506Author: Lasse Collin <lasse.collin@tukaani.org> 7507Date: 2020-01-19 21:54:33 +0200 7508 7509 Use $(LIB_FUZZING_ENGINE) in tests/ossfuzz/Makefile. 7510 7511 https://github.com/google/oss-fuzz/pull/3219#issuecomment-573751048 7512 7513 Thanks to Bhargava Shastry for sending the patch. 7514 7515 tests/ossfuzz/Makefile | 2 +- 7516 1 file changed, 1 insertion(+), 1 deletion(-) 7517 7518commit 7136f1735c60ac6967c4b8e277fcde53d485234f 7519Author: Lasse Collin <lasse.collin@tukaani.org> 7520Date: 2019-12-31 00:41:28 +0200 7521 7522 Rename unaligned_read32ne to read32ne, and similarly for the others. 7523 7524 src/common/tuklib_integer.h | 64 +++++++++++++++---------------- 7525 src/liblzma/common/alone_encoder.c | 2 +- 7526 src/liblzma/common/block_header_decoder.c | 2 +- 7527 src/liblzma/common/block_header_encoder.c | 2 +- 7528 src/liblzma/common/memcmplen.h | 9 ++--- 7529 src/liblzma/common/stream_flags_decoder.c | 6 +-- 7530 src/liblzma/common/stream_flags_encoder.c | 8 ++-- 7531 src/liblzma/lz/lz_encoder_hash.h | 2 +- 7532 src/liblzma/lzma/lzma_decoder.c | 2 +- 7533 src/liblzma/lzma/lzma_encoder.c | 2 +- 7534 src/liblzma/lzma/lzma_encoder_private.h | 3 +- 7535 src/liblzma/simple/simple_decoder.c | 2 +- 7536 src/liblzma/simple/simple_encoder.c | 2 +- 7537 tests/test_block_header.c | 4 +- 7538 tests/test_stream_flags.c | 6 +-- 7539 15 files changed, 54 insertions(+), 62 deletions(-) 7540 7541commit 5e78fcbf2eb21936022c9c5c3625d4da76f4b241 7542Author: Lasse Collin <lasse.collin@tukaani.org> 7543Date: 2019-12-31 00:29:48 +0200 7544 7545 Rename read32ne to aligned_read32ne, and similarly for the others. 7546 7547 Using the aligned methods requires more care to ensure that 7548 the address really is aligned, so it's nicer if the aligned 7549 methods are prefixed. The next commit will remove the unaligned_ 7550 prefix from the unaligned methods which in liblzma are used in 7551 more places than the aligned ones. 7552 7553 src/common/tuklib_integer.h | 56 +++++++++++++++++++++--------------------- 7554 src/liblzma/check/crc32_fast.c | 4 +-- 7555 src/liblzma/check/crc64_fast.c | 4 +-- 7556 3 files changed, 32 insertions(+), 32 deletions(-) 7557 7558commit 77bc5bc6dd67056cfd5888520ac930cfc57b4516 7559Author: Lasse Collin <lasse.collin@tukaani.org> 7560Date: 2019-12-31 00:18:24 +0200 7561 7562 Revise tuklib_integer.h and .m4. 7563 7564 Add a configure option --enable-unsafe-type-punning to get the 7565 old non-conforming memory access methods. It can be useful with 7566 old compilers or in some other less typical situations but 7567 shouldn't normally be used. 7568 7569 Omit the packed struct trick for unaligned access. While it's 7570 best in some cases, this is simpler. If the memcpy trick doesn't 7571 work, one can request unsafe type punning from configure. 7572 7573 Because CRC32/CRC64 code needs fast aligned reads, if no very 7574 safe way to do it is found, type punning is used as a fallback. 7575 This sucks but since it currently works in practice, it seems to 7576 be the least bad option. It's never needed with GCC >= 4.7 or 7577 Clang >= 3.6 since these support __builtin_assume_aligned and 7578 thus fast aligned access can be done with the memcpy trick. 7579 7580 Other things: 7581 - Support GCC/Clang __builtin_bswapXX 7582 - Cleaner bswap fallback macros 7583 - Minor cleanups 7584 7585 m4/tuklib_integer.m4 | 46 ++++- 7586 src/common/tuklib_integer.h | 488 ++++++++++++++++++++++++-------------------- 7587 2 files changed, 316 insertions(+), 218 deletions(-) 7588 7589commit 8b72950a6b2e2a36c2d8fdc8857564b57191b088 7590Author: Lasse Collin <lasse.collin@tukaani.org> 7591Date: 2019-12-29 22:51:58 +0200 7592 7593 Tests: Hopefully fix test_check.c to work on EBCDIC systems. 7594 7595 Thanks to Daniel Richard G. 7596 7597 tests/test_check.c | 9 +++++++-- 7598 1 file changed, 7 insertions(+), 2 deletions(-) 7599 7600commit 43ce4ea7c762238d3df9717b34126d3e0d7cd51c 7601Author: Lasse Collin <lasse.collin@tukaani.org> 7602Date: 2019-09-24 23:02:40 +0300 7603 7604 Scripts: Put /usr/xpg4/bin to the beginning of PATH on Solaris. 7605 7606 This adds a configure option --enable-path-for-scripts=PREFIX 7607 which defaults to empty except on Solaris it is /usr/xpg4/bin 7608 to make POSIX grep and others available. The Solaris case had 7609 been documented in INSTALL with a manual fix but it's better 7610 to do this automatically since it is needed on most Solaris 7611 systems anyway. 7612 7613 Thanks to Daniel Richard G. 7614 7615 INSTALL | 43 +++++++++++++++++++++++++++++++++++-------- 7616 configure.ac | 26 ++++++++++++++++++++++++++ 7617 src/scripts/xzdiff.in | 1 + 7618 src/scripts/xzgrep.in | 1 + 7619 src/scripts/xzless.in | 1 + 7620 src/scripts/xzmore.in | 1 + 7621 6 files changed, 65 insertions(+), 8 deletions(-) 7622 7623commit 6a89e656ebedd53a10cd1a063a32a9e4ade0da1f 7624Author: Lasse Collin <lasse.collin@tukaani.org> 7625Date: 2019-07-12 18:57:43 +0300 7626 7627 Fix comment typos in tuklib_mbstr* files. 7628 7629 src/common/tuklib_mbstr.h | 2 +- 7630 src/common/tuklib_mbstr_fw.c | 2 +- 7631 src/common/tuklib_mbstr_width.c | 2 +- 7632 3 files changed, 3 insertions(+), 3 deletions(-) 7633 7634commit ac0b4212656a48ef0c187c0c941d40ac9489ae36 7635Author: Lasse Collin <lasse.collin@tukaani.org> 7636Date: 2019-07-12 18:30:46 +0300 7637 7638 Add missing include to tuklib_mbstr_width.c. 7639 7640 It didn't matter in XZ Utils because sysdefs.h 7641 includes string.h anyway. 7642 7643 src/common/tuklib_mbstr_width.c | 1 + 7644 1 file changed, 1 insertion(+) 7645 7646commit 72a443281fb0b91aebf8cdff2ab1f7c07b081240 7647Author: Lasse Collin <lasse.collin@tukaani.org> 7648Date: 2019-07-12 18:10:57 +0300 7649 7650 Update tuklib base headers to include stdbool.h. 7651 7652 src/common/tuklib_common.h | 2 +- 7653 src/common/tuklib_config.h | 1 + 7654 2 files changed, 2 insertions(+), 1 deletion(-) 7655 7656commit de1f47b2b40e960b7bc3acba754f66dd19705921 7657Author: Lasse Collin <lasse.collin@tukaani.org> 7658Date: 2019-06-28 00:54:31 +0300 7659 7660 xz: Automatically align the strings in --info-memory. 7661 7662 This makes it easier to translate the strings. 7663 7664 Also, the string for amount of RAM was shortened. 7665 7666 src/xz/hardware.c | 45 ++++++++++++++++++++++++++++++++++----------- 7667 1 file changed, 34 insertions(+), 11 deletions(-) 7668 7669commit 8ce679125dbd0e2058d8f886e738d7f19a45cab5 7670Author: Lasse Collin <lasse.collin@tukaani.org> 7671Date: 2019-06-25 23:15:21 +0300 7672 7673 liblzma: Fix a buggy comment. 7674 7675 src/liblzma/lz/lz_encoder_mf.c | 2 +- 7676 1 file changed, 1 insertion(+), 1 deletion(-) 7677 7678commit fc77929e92e869f6869bf88931066103fd75f376 7679Author: Lasse Collin <lasse.collin@tukaani.org> 7680Date: 2019-06-25 00:16:06 +0300 7681 7682 configure.ac: Fix a typo in a comment. 7683 7684 configure.ac | 2 +- 7685 1 file changed, 1 insertion(+), 1 deletion(-) 7686 7687commit e873902641794210ad7db59743f98e3e1cd6139f 7688Author: Lasse Collin <lasse.collin@tukaani.org> 7689Date: 2019-06-25 00:08:13 +0300 7690 7691 Tests: Silence warnings from clang -Wassign-enum. 7692 7693 Also changed 999 to 99 so it fits even if lzma_check happened 7694 to be 8 bits wide. 7695 7696 tests/test_block_header.c | 3 ++- 7697 tests/test_stream_flags.c | 2 +- 7698 2 files changed, 3 insertions(+), 2 deletions(-) 7699 7700commit d499e467d99efeaae688564eedc4548837c1416a 7701Author: Lasse Collin <lasse.collin@tukaani.org> 7702Date: 2019-06-24 23:52:17 +0300 7703 7704 liblzma: Add a comment. 7705 7706 src/liblzma/common/stream_encoder_mt.c | 2 +- 7707 1 file changed, 1 insertion(+), 1 deletion(-) 7708 7709commit a12b13c5f0d54c684fa8446f93fdac08ab2a716b 7710Author: Lasse Collin <lasse.collin@tukaani.org> 7711Date: 2019-06-24 23:45:21 +0300 7712 7713 liblzma: Silence clang -Wmissing-variable-declarations. 7714 7715 src/liblzma/check/crc32_table.c | 3 +++ 7716 src/liblzma/check/crc64_table.c | 3 +++ 7717 2 files changed, 6 insertions(+) 7718 7719commit 1b4675cebf7471f7cc9b7072c950e3de97147063 7720Author: Lasse Collin <lasse.collin@tukaani.org> 7721Date: 2019-06-24 23:25:41 +0300 7722 7723 Add LZMA_RET_INTERNAL1..8 to lzma_ret and use one for LZMA_TIMED_OUT. 7724 7725 LZMA_TIMED_OUT is *internally* used as a value for lzma_ret 7726 enumeration. Previously it was #defined to 32 and cast to lzma_ret. 7727 That way it wasn't visible in the public API, but this was hackish. 7728 7729 Now the public API has eight LZMA_RET_INTERNALx members and 7730 LZMA_TIMED_OUT is #defined to LZMA_RET_INTERNAL1. This way 7731 the code is cleaner overall although the public API has a few 7732 extra mysterious enum members. 7733 7734 src/liblzma/api/lzma/base.h | 15 ++++++++++++++- 7735 src/liblzma/common/common.c | 4 +--- 7736 src/liblzma/common/common.h | 5 ++--- 7737 src/xz/message.c | 8 ++++++++ 7738 4 files changed, 25 insertions(+), 7 deletions(-) 7739 7740commit 159c43875eb25deea626ed651274464bae3e32ef 7741Author: Lasse Collin <lasse.collin@tukaani.org> 7742Date: 2019-06-24 22:57:43 +0300 7743 7744 xz: Silence a warning from clang -Wsign-conversion in main.c. 7745 7746 src/xz/main.c | 2 +- 7747 1 file changed, 1 insertion(+), 1 deletion(-) 7748 7749commit 466cfcd3e52f6750ce28a635997f3dd84fb18515 7750Author: Lasse Collin <lasse.collin@tukaani.org> 7751Date: 2019-06-24 22:52:20 +0300 7752 7753 xz: Make "headings" static in list.c. 7754 7755 Caught by clang -Wmissing-variable-declarations. 7756 7757 src/xz/list.c | 2 +- 7758 1 file changed, 1 insertion(+), 1 deletion(-) 7759 7760commit 608517b9b76c41fac6613dbda1193d6f41338e19 7761Author: Lasse Collin <lasse.collin@tukaani.org> 7762Date: 2019-06-24 22:47:39 +0300 7763 7764 liblzma: Remove incorrect uses of lzma_attribute((__unused__)). 7765 7766 Caught by clang -Wused-but-marked-unused. 7767 7768 src/liblzma/common/alone_decoder.c | 3 +-- 7769 src/liblzma/common/alone_encoder.c | 3 +-- 7770 src/liblzma/lz/lz_decoder.c | 3 +-- 7771 3 files changed, 3 insertions(+), 6 deletions(-) 7772 7773commit c2d2ab6a9d41a2b55d047c5b710aacf80d219255 7774Author: Lasse Collin <lasse.collin@tukaani.org> 7775Date: 2019-06-24 20:53:55 +0300 7776 7777 Tests: Silence a warning from -Wsign-conversion. 7778 7779 tests/create_compress_files.c | 8 ++++---- 7780 1 file changed, 4 insertions(+), 4 deletions(-) 7781 7782commit 2402f7873dcae719d0ebddd23bb579074519ac52 7783Author: Lasse Collin <lasse.collin@tukaani.org> 7784Date: 2019-06-24 20:45:49 +0300 7785 7786 xz: Fix an integer overflow with 32-bit off_t. 7787 7788 Or any off_t which isn't very big (like signed 64 bit integer 7789 that most system have). A small off_t could overflow if the 7790 file being decompressed had long enough run of zero bytes, 7791 which would result in corrupt output. 7792 7793 src/xz/file_io.c | 11 +++++++++-- 7794 1 file changed, 9 insertions(+), 2 deletions(-) 7795 7796commit 4fd3a8dd0b60f029e1c66a0ee634f9e9fda3caa9 7797Author: Lasse Collin <lasse.collin@tukaani.org> 7798Date: 2019-06-24 01:24:17 +0300 7799 7800 xz: Cleanup io_seek_src() a bit. 7801 7802 lseek() returns -1 on error and checking for -1 is nicer. 7803 7804 src/xz/file_io.c | 4 +--- 7805 1 file changed, 1 insertion(+), 3 deletions(-) 7806 7807commit dfda7cf6afa486e10df035327d68753896dfb48a 7808Author: Lasse Collin <lasse.collin@tukaani.org> 7809Date: 2019-06-24 00:57:23 +0300 7810 7811 Tests: Remove a duplicate branch from tests/tests.h. 7812 7813 The duplication was introduced about eleven years ago and 7814 should have been cleaned up back then already. 7815 7816 This was caught by -Wduplicated-branches. 7817 7818 tests/tests.h | 9 ++------- 7819 1 file changed, 2 insertions(+), 7 deletions(-) 7820 7821commit 1d4a904d8fb634bd5a04f7fbdd17d3739f3d8866 7822Author: Lasse Collin <lasse.collin@tukaani.org> 7823Date: 2019-06-24 00:40:45 +0300 7824 7825 xz: Change io_seek_src and io_pread arguments from off_t to uint64_t. 7826 7827 This helps fixing warnings from -Wsign-conversion and makes the 7828 code look better too. 7829 7830 src/xz/file_io.c | 16 ++++++++++++---- 7831 src/xz/file_io.h | 4 ++-- 7832 src/xz/list.c | 9 ++++----- 7833 3 files changed, 18 insertions(+), 11 deletions(-) 7834 7835commit 50120deb0159fcb53ee1a6caffb2bb81a1ecd990 7836Author: Lasse Collin <lasse.collin@tukaani.org> 7837Date: 2019-06-24 00:12:38 +0300 7838 7839 xz: list.c: Fix some warnings from -Wsign-conversion. 7840 7841 src/xz/list.c | 7 ++++--- 7842 1 file changed, 4 insertions(+), 3 deletions(-) 7843 7844commit d0a78751eb54fb1572002746c533936a118e4e42 7845Author: Lasse Collin <lasse.collin@tukaani.org> 7846Date: 2019-06-23 23:22:45 +0300 7847 7848 tuklib_mbstr_width: Fix a warning from -Wsign-conversion. 7849 7850 src/common/tuklib_mbstr_width.c | 2 +- 7851 1 file changed, 1 insertion(+), 1 deletion(-) 7852 7853commit 7883d73530b4b2a701ddd7d50c35676cbc158039 7854Author: Lasse Collin <lasse.collin@tukaani.org> 7855Date: 2019-06-23 23:19:34 +0300 7856 7857 xz: Fix some of the warnings from -Wsign-conversion. 7858 7859 src/xz/args.c | 4 ++-- 7860 src/xz/coder.c | 4 ++-- 7861 src/xz/file_io.c | 5 +++-- 7862 src/xz/message.c | 4 ++-- 7863 src/xz/mytime.c | 4 ++-- 7864 src/xz/options.c | 2 +- 7865 src/xz/util.c | 4 ++-- 7866 7 files changed, 14 insertions(+), 13 deletions(-) 7867 7868commit c2b994fe3d35e9e575c28869a2f7f534f2495d05 7869Author: Lasse Collin <lasse.collin@tukaani.org> 7870Date: 2019-06-23 22:27:45 +0300 7871 7872 tuklib_cpucores: Silence warnings from -Wsign-conversion. 7873 7874 src/common/tuklib_cpucores.c | 10 +++++----- 7875 1 file changed, 5 insertions(+), 5 deletions(-) 7876 7877commit 07c4fa9e1a195e0543f271380c8de22a3ab145ff 7878Author: Lasse Collin <lasse.collin@tukaani.org> 7879Date: 2019-06-23 21:40:47 +0300 7880 7881 xzdec: Fix warnings from -Wsign-conversion. 7882 7883 src/xzdec/xzdec.c | 2 +- 7884 1 file changed, 1 insertion(+), 1 deletion(-) 7885 7886commit dfac2c9a1d7d4a2b8a5d7c9c6d567dee48318bcf 7887Author: Lasse Collin <lasse.collin@tukaani.org> 7888Date: 2019-06-23 21:38:56 +0300 7889 7890 liblzma: Fix warnings from -Wsign-conversion. 7891 7892 Also, more parentheses were added to the literal_subcoder 7893 macro in lzma_comon.h (better style but no functional change 7894 in the current usage). 7895 7896 src/liblzma/common/block_header_decoder.c | 2 +- 7897 src/liblzma/delta/delta_decoder.c | 2 +- 7898 src/liblzma/lzma/fastpos.h | 2 +- 7899 src/liblzma/lzma/lzma2_decoder.c | 8 ++++---- 7900 src/liblzma/lzma/lzma_common.h | 3 ++- 7901 src/liblzma/lzma/lzma_decoder.c | 16 ++++++++-------- 7902 src/liblzma/simple/arm.c | 6 +++--- 7903 src/liblzma/simple/armthumb.c | 8 ++++---- 7904 src/liblzma/simple/ia64.c | 2 +- 7905 src/liblzma/simple/powerpc.c | 9 +++++---- 7906 src/liblzma/simple/x86.c | 2 +- 7907 11 files changed, 31 insertions(+), 29 deletions(-) 7908 7909commit 41838dcc26375f6aa393a63e4d81e2f4d223de07 7910Author: Lasse Collin <lasse.collin@tukaani.org> 7911Date: 2019-06-23 19:33:55 +0300 7912 7913 tuklib_integer: Silence warnings from -Wsign-conversion. 7914 7915 src/common/tuklib_integer.h | 6 +++--- 7916 1 file changed, 3 insertions(+), 3 deletions(-) 7917 7918commit 3ce05d235f736d392347a05086b8033416874b87 7919Author: Lasse Collin <lasse.collin@tukaani.org> 7920Date: 2019-06-20 19:40:30 +0300 7921 7922 tuklib_integer: Fix usage of conv macros. 7923 7924 Use a temporary variable instead of e.g. 7925 conv32le(unaligned_read32ne(buf)) because the macro can 7926 evaluate its argument multiple times. 7927 7928 src/common/tuklib_integer.h | 12 ++++++++---- 7929 1 file changed, 8 insertions(+), 4 deletions(-) 7930 7931commit b525b0c0ef40cd89b69294c9b8d57f4a8db58e1f 7932Author: Lasse Collin <lasse.collin@tukaani.org> 7933Date: 2019-06-03 20:44:19 +0300 7934 7935 Update THANKS. 7936 7937 THANKS | 1 + 7938 1 file changed, 1 insertion(+) 7939 7940commit 039a168e8cf201d5104a25ec41f0cf25eda6cc53 7941Author: Lasse Collin <lasse.collin@tukaani.org> 7942Date: 2019-06-03 20:41:54 +0300 7943 7944 liblzma: Fix comments. 7945 7946 Thanks to Bruce Stark. 7947 7948 src/liblzma/common/alone_encoder.c | 4 ++-- 7949 src/liblzma/common/block_util.c | 2 +- 7950 src/liblzma/common/common.c | 2 +- 7951 src/liblzma/common/filter_common.h | 2 +- 7952 src/liblzma/common/filter_decoder.h | 2 +- 7953 src/liblzma/common/filter_flags_encoder.c | 2 +- 7954 6 files changed, 7 insertions(+), 7 deletions(-) 7955 7956commit c460f6defebc5a81bbca90adc2476154ca244f69 7957Author: Lasse Collin <lasse.collin@tukaani.org> 7958Date: 2019-06-02 00:50:59 +0300 7959 7960 liblzma: Fix one more unaligned read to use unaligned_read16ne(). 7961 7962 src/liblzma/lz/lz_encoder_hash.h | 2 +- 7963 1 file changed, 1 insertion(+), 1 deletion(-) 7964 7965commit c81d77c537f0b8c8672868e1dc6cf7290ce4a25b 7966Author: Lasse Collin <lasse.collin@tukaani.org> 7967Date: 2019-06-01 21:41:55 +0300 7968 7969 Update THANKS. 7970 7971 THANKS | 1 + 7972 1 file changed, 1 insertion(+) 7973 7974commit 386394fc9fcde2615391f804eaa466749f96f4ef 7975Author: Lasse Collin <lasse.collin@tukaani.org> 7976Date: 2019-06-01 21:36:13 +0300 7977 7978 liblzma: memcmplen: Use ctz32() from tuklib_integer.h. 7979 7980 The same compiler-specific #ifdefs are already in tuklib_integer.h 7981 7982 src/liblzma/common/memcmplen.h | 10 +--------- 7983 1 file changed, 1 insertion(+), 9 deletions(-) 7984 7985commit 264ab971ce2994baac41b1579c9c35aba7743fc8 7986Author: Lasse Collin <lasse.collin@tukaani.org> 7987Date: 2019-06-01 21:30:03 +0300 7988 7989 tuklib_integer: Cleanup MSVC-specific code. 7990 7991 src/common/tuklib_integer.h | 20 +++++++++----------- 7992 1 file changed, 9 insertions(+), 11 deletions(-) 7993 7994commit 33773c6f2a8711d4aa6656795db52c59a28580ec 7995Author: Lasse Collin <lasse.collin@tukaani.org> 7996Date: 2019-06-01 19:01:21 +0300 7997 7998 liblzma: Use unaligned_readXXne functions instead of type punning. 7999 8000 Now gcc -fsanitize=undefined should be clean. 8001 8002 Thanks to Jeffrey Walton. 8003 8004 src/liblzma/common/memcmplen.h | 12 ++++++------ 8005 src/liblzma/lzma/lzma_encoder_private.h | 2 +- 8006 2 files changed, 7 insertions(+), 7 deletions(-) 8007 8008commit e5f13a66567b1987e0aae42c6fdcd277bb5810ba 8009Author: Lasse Collin <lasse.collin@tukaani.org> 8010Date: 2019-06-01 18:46:54 +0300 8011 8012 tuklib_integer: Autodetect support for unaligned access on ARM. 8013 8014 The result is used as the default for --enable-unaligned-access. 8015 The test should work with GCC and Clang. 8016 8017 m4/tuklib_integer.m4 | 11 +++++++++++ 8018 1 file changed, 11 insertions(+) 8019 8020commit 3bc112c2d38d5f348bce7bc2422286b1692c7490 8021Author: Lasse Collin <lasse.collin@tukaani.org> 8022Date: 2019-06-01 18:41:16 +0300 8023 8024 tuklib_integer: Improve unaligned memory access. 8025 8026 Now memcpy() or GNU C packed structs for unaligned access instead 8027 of type punning. See the comment in this commit for details. 8028 8029 Avoiding type punning with unaligned access is needed to 8030 silence gcc -fsanitize=undefined. 8031 8032 New functions: unaliged_readXXne and unaligned_writeXXne where 8033 XX is 16, 32, or 64. 8034 8035 src/common/tuklib_integer.h | 180 +++++++++++++++++++++++++++++++++++++++++--- 8036 1 file changed, 168 insertions(+), 12 deletions(-) 8037 8038commit 2a22de439ec63da1927b640eda309296a1e8dce5 8039Author: Lasse Collin <lasse.collin@tukaani.org> 8040Date: 2019-05-13 20:05:17 +0300 8041 8042 liblzma: Avoid memcpy(NULL, foo, 0) because it is undefined behavior. 8043 8044 I should have always known this but I didn't. Here is an example 8045 as a reminder to myself: 8046 8047 int mycopy(void *dest, void *src, size_t n) 8048 { 8049 memcpy(dest, src, n); 8050 return dest == NULL; 8051 } 8052 8053 In the example, a compiler may assume that dest != NULL because 8054 passing NULL to memcpy() would be undefined behavior. Testing 8055 with GCC 8.2.1, mycopy(NULL, NULL, 0) returns 1 with -O0 and -O1. 8056 With -O2 the return value is 0 because the compiler infers that 8057 dest cannot be NULL because it was already used with memcpy() 8058 and thus the test for NULL gets optimized out. 8059 8060 In liblzma, if a null-pointer was passed to memcpy(), there were 8061 no checks for NULL *after* the memcpy() call, so I cautiously 8062 suspect that it shouldn't have caused bad behavior in practice, 8063 but it's hard to be sure, and the problematic cases had to be 8064 fixed anyway. 8065 8066 Thanks to Jeffrey Walton. 8067 8068 src/liblzma/common/common.c | 6 +++++- 8069 src/liblzma/lz/lz_decoder.c | 12 +++++++++--- 8070 src/liblzma/simple/simple_coder.c | 10 +++++++++- 8071 3 files changed, 23 insertions(+), 5 deletions(-) 8072 8073commit d3fc850cfedc058247d9e334ce59bbc8f2286d8a 8074Author: Lasse Collin <lasse.collin@tukaani.org> 8075Date: 2019-05-11 20:56:08 +0300 8076 8077 Update THANKS. 8078 8079 THANKS | 1 + 8080 1 file changed, 1 insertion(+) 8081 8082commit 4adb8288ab61d5f14e212007b8742df0710baf73 8083Author: Lasse Collin <lasse.collin@tukaani.org> 8084Date: 2019-05-11 20:54:12 +0300 8085 8086 xz: Update xz man page date. 8087 8088 src/xz/xz.1 | 2 +- 8089 1 file changed, 1 insertion(+), 1 deletion(-) 8090 8091commit 2fb0ddaa557ce86e38fe06439930fa8665f092fd 8092Author: Antoine Cœur <antoine.coeur@ef.com> 8093Date: 2019-05-08 13:30:57 +0800 8094 8095 spelling 8096 8097 Doxyfile.in | 2 +- 8098 NEWS | 2 +- 8099 doc/examples/11_file_info.c | 2 +- 8100 src/liblzma/api/lzma/block.h | 2 +- 8101 src/liblzma/api/lzma/hardware.h | 2 +- 8102 src/liblzma/api/lzma/lzma12.h | 2 +- 8103 src/liblzma/api/lzma/vli.h | 2 +- 8104 src/liblzma/common/file_info.c | 4 ++-- 8105 src/liblzma/common/hardware_physmem.c | 2 +- 8106 src/liblzma/common/index.c | 4 ++-- 8107 src/liblzma/common/stream_encoder_mt.c | 2 +- 8108 src/liblzma/common/vli_decoder.c | 2 +- 8109 src/liblzma/lz/lz_decoder.c | 2 +- 8110 src/scripts/xzgrep.in | 2 +- 8111 src/xz/args.c | 2 +- 8112 src/xz/coder.c | 4 ++-- 8113 src/xz/list.c | 4 ++-- 8114 src/xz/main.c | 2 +- 8115 src/xz/mytime.h | 2 +- 8116 src/xz/private.h | 2 +- 8117 src/xz/xz.1 | 2 +- 8118 windows/build.bash | 2 +- 8119 22 files changed, 26 insertions(+), 26 deletions(-) 8120 8121commit 4ed339606156bd313ed99237485cb8ed0362d64f 8122Author: Lasse Collin <lasse.collin@tukaani.org> 8123Date: 2019-05-01 18:43:10 +0300 8124 8125 xz: In xz -lvv look at the widths of the check names too. 8126 8127 Now the widths of the check names is used to adjust the width 8128 of the Check column. This way there no longer is a need to restrict 8129 the widths of the check names to be at most ten terminal-columns. 8130 8131 src/xz/list.c | 32 ++++++++++++++++++++++++++------ 8132 1 file changed, 26 insertions(+), 6 deletions(-) 8133 8134commit 2f4281a1001dcf7fdf1418c0c0d246c16561fb65 8135Author: Lasse Collin <lasse.collin@tukaani.org> 8136Date: 2019-05-01 18:33:25 +0300 8137 8138 xz: Fix xz -lvv column alignment to look at the translated strings. 8139 8140 src/xz/list.c | 4 ++-- 8141 1 file changed, 2 insertions(+), 2 deletions(-) 8142 8143commit 01d01b7c7c0b8eaf7f780a5584ec52c22d10fa4a 8144Author: Lasse Collin <lasse.collin@tukaani.org> 8145Date: 2019-05-01 16:52:36 +0300 8146 8147 Update THANKS. 8148 8149 THANKS | 1 + 8150 1 file changed, 1 insertion(+) 8151 8152commit 64030c6b17f7743df03a9948a0ccfcdf40c6b97c 8153Author: Lasse Collin <lasse.collin@tukaani.org> 8154Date: 2019-05-01 16:43:16 +0300 8155 8156 Windows: Update VS version in windows/vs2019/config.h. 8157 8158 windows/vs2019/config.h | 2 +- 8159 1 file changed, 1 insertion(+), 1 deletion(-) 8160 8161commit 2dc9117f5fbfab31444a3ca1e55795ccfa8a9f51 8162Author: Julien Marrec <julien.marrec@gmail.com> 8163Date: 2019-04-25 17:44:06 +0200 8164 8165 Windows: Upgrade solution itself 8166 8167 windows/vs2019/xz_win.sln | 7 +++++-- 8168 1 file changed, 5 insertions(+), 2 deletions(-) 8169 8170commit ac31413916fa9b11bab17f0f0aa63e2869360f6f 8171Author: Julien Marrec <julien.marrec@gmail.com> 8172Date: 2019-04-25 17:40:24 +0200 8173 8174 Windows: Upgrade solution with VS2019 8175 8176 windows/vs2019/liblzma.vcxproj | 15 ++++++++------- 8177 windows/vs2019/liblzma_dll.vcxproj | 15 ++++++++------- 8178 2 files changed, 16 insertions(+), 14 deletions(-) 8179 8180commit be25a0c37ba92a20c390b4d17fe502457fe96b71 8181Author: Julien Marrec <julien.marrec@gmail.com> 8182Date: 2019-04-25 17:39:32 +0200 8183 8184 Windows: Duplicate windows/vs2017 before upgrading 8185 8186 windows/vs2019/config.h | 148 ++++++++++++++ 8187 windows/vs2019/liblzma.vcxproj | 356 ++++++++++++++++++++++++++++++++++ 8188 windows/vs2019/liblzma_dll.vcxproj | 385 +++++++++++++++++++++++++++++++++++++ 8189 windows/vs2019/xz_win.sln | 48 +++++ 8190 4 files changed, 937 insertions(+) 8191 8192commit d0e58b3a51e8e616f3dc26ec7b7e4aa0fa6991ad 8193Author: Lasse Collin <lasse.collin@tukaani.org> 8194Date: 2019-03-04 22:49:04 +0200 8195 8196 README: Update translation instructions. 8197 8198 XZ Utils is now part of the Translation Project 8199 <https://translationproject.org/>. 8200 8201 README | 32 +++++++++++++------------------- 8202 1 file changed, 13 insertions(+), 19 deletions(-) 8203 8204commit a750c35a7d45a16c11c1d40fecee8443c32a9996 8205Author: Lasse Collin <lasse.collin@tukaani.org> 8206Date: 2019-03-04 21:20:39 +0200 8207 8208 xz: Automatically align column headings in xz -lvv. 8209 8210 src/xz/list.c | 263 ++++++++++++++++++++++++++++++++++++++++++++++------------ 8211 1 file changed, 212 insertions(+), 51 deletions(-) 8212 8213commit 6cb42e8aa1dc37bf403a9f5acbd07e86036b7e77 8214Author: Lasse Collin <lasse.collin@tukaani.org> 8215Date: 2019-03-04 01:07:59 +0200 8216 8217 xz: Automatically align strings ending in a colon in --list output. 8218 8219 This should avoid alignment errors in translations with these 8220 strings. 8221 8222 src/xz/list.c | 114 +++++++++++++++++++++++++++++++++++++++++++++++++++------- 8223 1 file changed, 102 insertions(+), 12 deletions(-) 8224 8225commit 1e3f29b62f2c03e50fc9ebea7b83c1497dd35484 8226Author: Lasse Collin <lasse.collin@tukaani.org> 8227Date: 2019-01-13 17:29:23 +0200 8228 8229 Windows/VS2017: Omit WindowsTargetPlatformVersion from project files. 8230 8231 I understood that if a WTPV is specified, it's often wrong 8232 because different VS installations have different SDK version 8233 installed. Omitting the WTPV tag makes VS2017 default to 8234 Windows SDK 8.1 which often is also missing, so in any case 8235 people may need to specify the WTPV before building. But some 8236 day in the future a missing WTPV tag will start to default to 8237 the latest installed SDK which sounds reasonable: 8238 8239 https://developercommunity.visualstudio.com/content/problem/140294/windowstargetplatformversion-makes-it-impossible-t.html 8240 8241 Thanks to "dom". 8242 8243 windows/INSTALL-MSVC.txt | 4 ++++ 8244 windows/vs2017/liblzma.vcxproj | 1 - 8245 windows/vs2017/liblzma_dll.vcxproj | 1 - 8246 3 files changed, 4 insertions(+), 2 deletions(-) 8247 8248commit 4d86076332aece6314063d3712a5f364172bbb0f 8249Author: Lasse Collin <lasse.collin@tukaani.org> 8250Date: 2018-12-20 20:42:29 +0200 8251 8252 Update THANKS. 8253 8254 THANKS | 1 + 8255 1 file changed, 1 insertion(+) 8256 8257commit b55d79461d1f6aeaac03c7dae84481e5eb8bea4c 8258Author: Lasse Collin <lasse.collin@tukaani.org> 8259Date: 2018-12-14 20:34:30 +0200 8260 8261 xz: Fix a crash in progress indicator when in passthru mode. 8262 8263 "xz -dcfv not_an_xz_file" crashed (all four options are 8264 required to trigger it). It caused xz to call 8265 lzma_get_progress(&strm, ...) when no coder was initialized 8266 in strm. In this situation strm.internal is NULL which leads 8267 to a crash in lzma_get_progress(). 8268 8269 The bug was introduced when xz started using lzma_get_progress() 8270 to get progress info for multi-threaded compression, so the 8271 bug is present in versions 5.1.3alpha and higher. 8272 8273 Thanks to Filip Palian <Filip.Palian@pjwstk.edu.pl> for 8274 the bug report. 8275 8276 src/xz/coder.c | 11 +++++++---- 8277 src/xz/message.c | 18 ++++++++++++++++-- 8278 src/xz/message.h | 3 ++- 8279 3 files changed, 25 insertions(+), 7 deletions(-) 8280 8281commit 4ae5526de013efd1021686fa80bdd10cf1cb9c56 8282Author: Lasse Collin <lasse.collin@tukaani.org> 8283Date: 2018-11-22 17:20:31 +0200 8284 8285 xz: Update man page timestamp. 8286 8287 src/xz/xz.1 | 2 +- 8288 1 file changed, 1 insertion(+), 1 deletion(-) 8289 8290commit 6a36d0d5f49e0080ff64dd9ef250abd489bea2ad 8291Author: Pavel Raiskup <praiskup@redhat.com> 8292Date: 2018-11-22 15:14:34 +0100 8293 8294 'have have' typos 8295 8296 src/xz/signals.c | 2 +- 8297 src/xz/xz.1 | 2 +- 8298 2 files changed, 2 insertions(+), 2 deletions(-) 8299 8300commit 9eca51ef805ed8002a851df1b4995d71826c8b6e 8301Author: Lasse Collin <lasse.collin@tukaani.org> 8302Date: 2018-11-02 20:40:48 +0200 8303 8304 Update THANKS. 8305 8306 THANKS | 1 + 8307 1 file changed, 1 insertion(+) 8308 8309commit 106d1a663d4ba42b63231caa289f531548df81c1 8310Author: Lasse Collin <lasse.collin@tukaani.org> 8311Date: 2018-11-02 20:18:45 +0200 8312 8313 Tests: Add a fuzz test program and a config file for OSS-Fuzz. 8314 8315 Thanks to Bhargava Shastry and Github user pdknsk. 8316 8317 tests/Makefile.am | 1 + 8318 tests/ossfuzz/Makefile | 7 ++++ 8319 tests/ossfuzz/config/fuzz.dict | 2 + 8320 tests/ossfuzz/config/fuzz.options | 2 + 8321 tests/ossfuzz/fuzz.c | 82 +++++++++++++++++++++++++++++++++++++++ 8322 5 files changed, 94 insertions(+) 8323 8324commit a18ae42a79a19b1394b41eb3e238139fd28012ec 8325Author: Lasse Collin <lasse.collin@tukaani.org> 8326Date: 2018-10-26 22:49:10 +0300 8327 8328 liblzma: Don't verify header CRC32s if building for fuzz testing. 8329 8330 FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION is #defined when liblzma 8331 is being built for fuzz testing. 8332 8333 Most fuzzed inputs would normally get rejected because of incorrect 8334 CRC32 and the actual header decoding code wouldn't get fuzzed. 8335 Disabling CRC32 checks avoids this problem. The fuzzer program 8336 must still use LZMA_IGNORE_CHECK flag to disable verification of 8337 integrity checks of uncompressed data. 8338 8339 src/liblzma/common/block_header_decoder.c | 5 ++++- 8340 src/liblzma/common/index_decoder.c | 5 ++++- 8341 src/liblzma/common/index_hash.c | 5 ++++- 8342 src/liblzma/common/stream_flags_decoder.c | 10 ++++++++-- 8343 4 files changed, 20 insertions(+), 5 deletions(-) 8344 8345commit f76f7516d6a1c832f61810c82e92d151cc80966c 8346Author: Lasse Collin <lasse.collin@tukaani.org> 8347Date: 2018-07-27 18:10:44 +0300 8348 8349 xzless: Rename unused variables to silence static analysers. 8350 8351 In this particular case I don't see this affecting readability 8352 of the code. 8353 8354 Thanks to Pavel Raiskup. 8355 8356 src/scripts/xzless.in | 2 +- 8357 1 file changed, 1 insertion(+), 1 deletion(-) 8358 8359commit 3cbcaeb07eb7543735befd6f507fdb5fa4363cff 8360Author: Lasse Collin <lasse.collin@tukaani.org> 8361Date: 2018-07-27 16:02:58 +0300 8362 8363 liblzma: Remove an always-true condition from lzma_index_cat(). 8364 8365 This should help static analysis tools to see that newg 8366 isn't leaked. 8367 8368 Thanks to Pavel Raiskup. 8369 8370 src/liblzma/common/index.c | 4 ++-- 8371 1 file changed, 2 insertions(+), 2 deletions(-) 8372 8373commit 76762ae6098ec55c326f4b4b4a42e8c1918ee81f 8374Author: Lasse Collin <lasse.collin@tukaani.org> 8375Date: 2018-05-19 21:23:25 +0300 8376 8377 liblzma: Improve lzma_properties_decode() API documentation. 8378 8379 src/liblzma/api/lzma/filter.h | 7 ++++--- 8380 1 file changed, 4 insertions(+), 3 deletions(-) 8381 8382commit 2267f5b0d20a5d24e93fcd9f72ea7eeb0d89708c 8383Author: Lasse Collin <lasse.collin@tukaani.org> 8384Date: 2018-04-29 18:58:19 +0300 8385 8386 Bump the version number to 5.3.1alpha. 8387 8388 src/liblzma/api/lzma/version.h | 2 +- 8389 src/liblzma/liblzma.map | 2 +- 8390 2 files changed, 2 insertions(+), 2 deletions(-) 8391 8392commit cee3021d30704858e4bdd22240e7d28e570d7451 8393Author: Lasse Collin <lasse.collin@tukaani.org> 8394Date: 2018-04-29 18:48:00 +0300 8395 8396 extra/scanlzma: Fix compiler warnings. 8397 8398 extra/scanlzma/scanlzma.c | 6 +++++- 8399 1 file changed, 5 insertions(+), 1 deletion(-) 8400 8401commit c5c7ceb08a011b97d261798033e2c39613a69eb7 8402Author: Lasse Collin <lasse.collin@tukaani.org> 8403Date: 2018-04-29 18:44:47 +0300 8404 8405 DOS: Add file_info.c to the list of files to build. 8406 8407 dos/Makefile | 1 + 8408 1 file changed, 1 insertion(+) 8409 8410commit 114cab97af766b21e0fc8620479202fb1e7a5e41 8411Author: Lasse Collin <lasse.collin@tukaani.org> 8412Date: 2018-04-29 18:33:10 +0300 8413 8414 Update NEWS for 5.3.1alpha. 8415 8416 NEWS | 11 +++++++++++ 8417 1 file changed, 11 insertions(+) 8418 8419commit b8139e11c512bbf32bf58ab0689f9bb6c52819da 8420Author: Lasse Collin <lasse.collin@tukaani.org> 8421Date: 2018-04-29 18:15:37 +0300 8422 8423 Add NEWS for 5.2.4. 8424 8425 NEWS | 27 +++++++++++++++++++++++++++ 8426 1 file changed, 27 insertions(+) 8427 8428commit 47b59d47cfd904a420fbd45629d168ca1973721d 8429Author: Lasse Collin <lasse.collin@tukaani.org> 8430Date: 2018-02-06 19:36:30 +0200 8431 8432 Update THANKS. 8433 8434 THANKS | 2 ++ 8435 1 file changed, 2 insertions(+) 8436 8437commit bc197991690ede24ab143665b5b0f0f9cb35cc46 8438Author: Ben Boeckel <mathstuf@gmail.com> 8439Date: 2018-01-29 13:58:18 -0500 8440 8441 nothrow: use noexcept for C++11 and newer 8442 8443 In C++11, the `throw()` specifier is deprecated and `noexcept` is 8444 preffered instead. 8445 8446 src/liblzma/api/lzma.h | 6 +++++- 8447 1 file changed, 5 insertions(+), 1 deletion(-) 8448 8449commit fb6d4f83cb6e144734f2a4216bb117bd56dc3cb5 8450Author: Lasse Collin <lasse.collin@tukaani.org> 8451Date: 2018-02-06 18:02:48 +0200 8452 8453 liblzma: Remove incorrect #ifdef from range_common.h. 8454 8455 In most cases it was harmless but it could affect some 8456 custom build systems. 8457 8458 Thanks to Pippijn van Steenhoven. 8459 8460 src/liblzma/rangecoder/range_common.h | 4 +--- 8461 1 file changed, 1 insertion(+), 3 deletions(-) 8462 8463commit bc577d35c2d0ed17f554d2d8107b2a2a9abbac76 8464Author: Lasse Collin <lasse.collin@tukaani.org> 8465Date: 2018-01-10 22:10:39 +0200 8466 8467 Update THANKS. 8468 8469 THANKS | 1 + 8470 1 file changed, 1 insertion(+) 8471 8472commit 713bbc1a80f26d34c96ed3dbb9887362204de3a1 8473Author: Lasse Collin <lasse.collin@tukaani.org> 8474Date: 2018-01-10 21:54:27 +0200 8475 8476 tuklib_integer: New Intel C compiler needs immintrin.h. 8477 8478 Thanks to Melanie Blower (Intel) for the patch. 8479 8480 src/common/tuklib_integer.h | 11 +++++++++++ 8481 1 file changed, 11 insertions(+) 8482 8483commit a0ee1afbd99da138b559cb27fa2022e7f1ab44f3 8484Author: Lasse Collin <lasse.collin@tukaani.org> 8485Date: 2017-09-24 20:04:24 +0300 8486 8487 Update THANKS. 8488 8489 THANKS | 1 + 8490 1 file changed, 1 insertion(+) 8491 8492commit a1e2c568de29c0b57d873eab40a2879b749da429 8493Author: Lasse Collin <lasse.collin@tukaani.org> 8494Date: 2017-09-16 20:36:20 +0300 8495 8496 Windows: Fix paths in VS project files. 8497 8498 Some paths use slashes instead of backslashes as directory 8499 separators... now it should work (I tested VS2013 version). 8500 8501 windows/vs2013/liblzma.vcxproj | 12 ++++++------ 8502 windows/vs2013/liblzma_dll.vcxproj | 24 ++++++++++++------------ 8503 windows/vs2017/liblzma.vcxproj | 12 ++++++------ 8504 windows/vs2017/liblzma_dll.vcxproj | 24 ++++++++++++------------ 8505 4 files changed, 36 insertions(+), 36 deletions(-) 8506 8507commit cea5cf8d26c9d1dc30a808614d79c0b25640e15e 8508Author: Lasse Collin <lasse.collin@tukaani.org> 8509Date: 2017-09-16 12:56:20 +0300 8510 8511 Windows: Update VS2017 project files to include file info decoder. 8512 8513 windows/vs2017/liblzma.vcxproj | 2 ++ 8514 windows/vs2017/liblzma_dll.vcxproj | 2 ++ 8515 2 files changed, 4 insertions(+) 8516 8517commit 95d563db3ee497b223e522b699c4d4c29943eef0 8518Author: Lasse Collin <lasse.collin@tukaani.org> 8519Date: 2017-09-16 12:54:23 +0300 8520 8521 Windows: Add project files for VS2017. 8522 8523 These files match the v5.2 branch (no file info decoder). 8524 8525 windows/vs2017/config.h | 148 ++++++++++++++ 8526 windows/vs2017/liblzma.vcxproj | 355 ++++++++++++++++++++++++++++++++++ 8527 windows/vs2017/liblzma_dll.vcxproj | 384 +++++++++++++++++++++++++++++++++++++ 8528 windows/vs2017/xz_win.sln | 48 +++++ 8529 4 files changed, 935 insertions(+) 8530 8531commit ab72416d62ea8f50ad31d5b8545fcb6a2bf96b73 8532Author: Lasse Collin <lasse.collin@tukaani.org> 8533Date: 2017-09-16 12:45:50 +0300 8534 8535 Windows: Update VS2013 project files to include file info decoder. 8536 8537 windows/vs2013/liblzma.vcxproj | 2 ++ 8538 windows/vs2013/liblzma_dll.vcxproj | 2 ++ 8539 2 files changed, 4 insertions(+) 8540 8541commit 82388980187b0e3794d187762054200bbdcc9a53 8542Author: Lasse Collin <lasse.collin@tukaani.org> 8543Date: 2017-09-16 12:39:43 +0300 8544 8545 Windows: Move VS2013 files into windows/vs2013 directory. 8546 8547 windows/{ => vs2013}/config.h | 0 8548 windows/{ => vs2013}/liblzma.vcxproj | 278 +++++++++++++++--------------- 8549 windows/{ => vs2013}/liblzma_dll.vcxproj | 280 +++++++++++++++---------------- 8550 windows/{ => vs2013}/xz_win.sln | 0 8551 4 files changed, 279 insertions(+), 279 deletions(-) 8552 8553commit 94e3f986aa4e14b4ff01ac24857f499630d6d180 8554Author: Lasse Collin <lasse.collin@tukaani.org> 8555Date: 2017-08-14 20:08:33 +0300 8556 8557 Fix or hide warnings from GCC 7's -Wimplicit-fallthrough. 8558 8559 src/liblzma/lzma/lzma_decoder.c | 6 ++++++ 8560 src/xz/list.c | 2 ++ 8561 2 files changed, 8 insertions(+) 8562 8563commit 0b0e1e6803456aac641a59332200f8e95e2b7ea8 8564Author: Alexey Tourbin <alexey.tourbin@gmail.com> 8565Date: 2017-05-16 23:56:35 +0300 8566 8567 Docs: Fix a typo in a comment in doc/examples/02_decompress.c. 8568 8569 doc/examples/02_decompress.c | 2 +- 8570 1 file changed, 1 insertion(+), 1 deletion(-) 8571 8572commit a015cd1f90116e655be4eaf4aad42c4c911c2807 8573Author: Lasse Collin <lasse.collin@tukaani.org> 8574Date: 2017-05-23 18:34:43 +0300 8575 8576 xz: Fix "xz --list --robot missing_or_bad_file.xz". 8577 8578 It ended up printing an uninitialized char-array when trying to 8579 print the check names (column 7) on the "totals" line. 8580 8581 This also changes the column 12 (minimum xz version) to 8582 50000002 (xz 5.0.0) instead of 0 when there are no valid 8583 input files. 8584 8585 Thanks to kidmin for the bug report. 8586 8587 src/xz/list.c | 8 ++++++-- 8588 1 file changed, 6 insertions(+), 2 deletions(-) 8589 8590commit c2e29f06a7d1e3ba242ac2fafc69f5d6e92f62cd 8591Author: Lasse Collin <lasse.collin@tukaani.org> 8592Date: 2017-04-24 20:20:11 +0300 8593 8594 Docs: Add doc/examples/11_file_info.c. 8595 8596 doc/examples/11_file_info.c | 206 ++++++++++++++++++++++++++++++++++++++++++++ 8597 doc/examples/Makefile | 3 +- 8598 2 files changed, 208 insertions(+), 1 deletion(-) 8599 8600commit 1520f6ec808896375ac7bf778c449e0f7dea5f46 8601Author: Lasse Collin <lasse.collin@tukaani.org> 8602Date: 2017-04-24 19:48:47 +0300 8603 8604 Build: Omit pre-5.0.0 entries from the generated ChangeLog. 8605 8606 It makes ChangeLog significantly smaller. 8607 8608 Makefile.am | 3 ++- 8609 1 file changed, 2 insertions(+), 1 deletion(-) 8610 8611commit 8269782283806c90a8509c2ac2a308344f70e171 8612Author: Lasse Collin <lasse.collin@tukaani.org> 8613Date: 2017-04-24 19:48:23 +0300 8614 8615 xz: Use lzma_file_info_decoder() for --list. 8616 8617 src/xz/list.c | 254 ++++++++++------------------------------------------------ 8618 1 file changed, 44 insertions(+), 210 deletions(-) 8619 8620commit e353d0b1cc0d3997ae5048faa8e6786414953e06 8621Author: Lasse Collin <lasse.collin@tukaani.org> 8622Date: 2017-04-24 19:35:50 +0300 8623 8624 liblzma: Add lzma_file_info_decoder(). 8625 8626 src/liblzma/api/lzma/index.h | 66 ++++ 8627 src/liblzma/common/Makefile.inc | 1 + 8628 src/liblzma/common/file_info.c | 855 ++++++++++++++++++++++++++++++++++++++++ 8629 src/liblzma/liblzma.map | 7 +- 8630 4 files changed, 928 insertions(+), 1 deletion(-) 8631 8632commit 144ef9e19e9496c995b21505dd1e111c442968d1 8633Author: Lasse Collin <lasse.collin@tukaani.org> 8634Date: 2017-04-24 19:30:22 +0300 8635 8636 Update the Git repository URL to HTTPS in ChangeLog. 8637 8638 ChangeLog | 2 +- 8639 1 file changed, 1 insertion(+), 1 deletion(-) 8640 8641commit 8c9842c265993d7dd4039f732d3546267fb5ecc4 8642Author: Lasse Collin <lasse.collin@tukaani.org> 8643Date: 2017-04-21 15:05:16 +0300 8644 8645 liblzma: Rename LZMA_SEEK to LZMA_SEEK_NEEDED and seek_in to seek_pos. 8646 8647 src/liblzma/api/lzma/base.h | 18 +++++++++--------- 8648 src/liblzma/common/common.c | 2 +- 8649 src/xz/message.c | 2 +- 8650 3 files changed, 11 insertions(+), 11 deletions(-) 8651 8652commit 662b27c417cab248cb365dd7682121bdec4d5ae7 8653Author: Lasse Collin <lasse.collin@tukaani.org> 8654Date: 2017-04-19 22:17:35 +0300 8655 8656 Update the home page URLs to HTTPS. 8657 8658 COPYING | 2 +- 8659 README | 2 +- 8660 configure.ac | 2 +- 8661 doc/faq.txt | 4 ++-- 8662 dos/config.h | 2 +- 8663 src/common/common_w32res.rc | 2 +- 8664 src/xz/xz.1 | 6 +++--- 8665 src/xzdec/xzdec.1 | 4 ++-- 8666 windows/README-Windows.txt | 2 +- 8667 windows/config.h | 2 +- 8668 10 files changed, 14 insertions(+), 14 deletions(-) 8669 8670commit c28f0b3d00af87b92dda229831548d8eb0067d1d 8671Author: Lasse Collin <lasse.collin@tukaani.org> 8672Date: 2017-04-05 18:47:22 +0300 8673 8674 xz: Add io_seek_src(). 8675 8676 src/xz/file_io.c | 20 +++++++++++++++++--- 8677 src/xz/file_io.h | 13 +++++++++++++ 8678 2 files changed, 30 insertions(+), 3 deletions(-) 8679 8680commit bba477257d7319c8764890f3669175b866d24944 8681Author: Lasse Collin <lasse.collin@tukaani.org> 8682Date: 2017-03-30 22:01:54 +0300 8683 8684 xz: Use POSIX_FADV_RANDOM for in "xz --list" mode. 8685 8686 xz --list is random access so POSIX_FADV_SEQUENTIAL was clearly 8687 wrong. 8688 8689 src/xz/file_io.c | 10 ++++++++-- 8690 1 file changed, 8 insertions(+), 2 deletions(-) 8691 8692commit 310d19816d1652b0c8bb1b82574d46345d924752 8693Author: Lasse Collin <lasse.collin@tukaani.org> 8694Date: 2017-03-30 20:03:05 +0300 8695 8696 liblzma: Make lzma_index_decoder_init() visible to other liblzma funcs. 8697 8698 This is to allow other functions to use it without going 8699 via the public API (lzma_index_decoder()). 8700 8701 src/liblzma/common/Makefile.inc | 1 + 8702 src/liblzma/common/index_decoder.c | 10 +++++----- 8703 src/liblzma/common/index_decoder.h | 24 ++++++++++++++++++++++++ 8704 3 files changed, 30 insertions(+), 5 deletions(-) 8705 8706commit a27920002dbc469f778a134fc665b7c3ea73701b 8707Author: Lasse Collin <lasse.collin@tukaani.org> 8708Date: 2017-03-30 20:00:09 +0300 8709 8710 liblzma: Add generic support for input seeking (LZMA_SEEK). 8711 8712 Also mention LZMA_SEEK in xz/message.c to silence a warning. 8713 8714 src/liblzma/api/lzma/base.h | 31 ++++++++++++++++++++++++++++++- 8715 src/liblzma/common/common.c | 12 +++++++++++- 8716 src/xz/message.c | 1 + 8717 3 files changed, 42 insertions(+), 2 deletions(-) 8718 8719commit a0b1dda409bc3e6e2957a2651663fc411d2caf2d 8720Author: Lasse Collin <lasse.collin@tukaani.org> 8721Date: 2017-03-30 19:47:45 +0300 8722 8723 liblzma: Fix lzma_memlimit_set(strm, 0). 8724 8725 The 0 got treated specially in a buggy way and as a result 8726 the function did nothing. The API doc said that 0 was supposed 8727 to return LZMA_PROG_ERROR but it didn't. 8728 8729 Now 0 is treated as if 1 had been specified. This is done because 8730 0 is already used to indicate an error from lzma_memlimit_get() 8731 and lzma_memusage(). 8732 8733 In addition, lzma_memlimit_set() no longer checks that the new 8734 limit is at least LZMA_MEMUSAGE_BASE. It's counter-productive 8735 for the Index decoder and was actually needed only by the 8736 auto decoder. Auto decoder has now been modified to check for 8737 LZMA_MEMUSAGE_BASE. 8738 8739 src/liblzma/api/lzma/base.h | 7 ++++++- 8740 src/liblzma/common/auto_decoder.c | 3 +++ 8741 src/liblzma/common/common.c | 6 ++++-- 8742 3 files changed, 13 insertions(+), 3 deletions(-) 8743 8744commit 84462afaada61379f5878e46f8f00e25a1cdcf29 8745Author: Lasse Collin <lasse.collin@tukaani.org> 8746Date: 2017-03-30 19:16:55 +0300 8747 8748 liblzma: Similar memlimit fix for stream_, alone_, and auto_decoder. 8749 8750 src/liblzma/api/lzma/container.h | 21 +++++++++++++++++---- 8751 src/liblzma/common/alone_decoder.c | 5 +---- 8752 src/liblzma/common/auto_decoder.c | 5 +---- 8753 src/liblzma/common/stream_decoder.c | 5 +---- 8754 4 files changed, 20 insertions(+), 16 deletions(-) 8755 8756commit cbc74017939690d13441b8926bb743fb03211b83 8757Author: Lasse Collin <lasse.collin@tukaani.org> 8758Date: 2017-03-30 18:58:18 +0300 8759 8760 liblzma: Fix handling of memlimit == 0 in lzma_index_decoder(). 8761 8762 It returned LZMA_PROG_ERROR, which was done to avoid zero as 8763 the limit (because it's a special value elsewhere), but using 8764 LZMA_PROG_ERROR is simply inconvenient and can cause bugs. 8765 8766 The fix/workaround is to treat 0 as if it were 1 byte. It's 8767 effectively the same thing. The only weird consequence is 8768 that then lzma_memlimit_get() will return 1 even when 0 was 8769 specified as the limit. 8770 8771 This fixes a very rare corner case in xz --list where a specific 8772 memory usage limit and a multi-stream file could print the 8773 error message "Internal error (bug)" instead of saying that 8774 the memory usage limit is too low. 8775 8776 src/liblzma/api/lzma/index.h | 18 +++++++++++------- 8777 src/liblzma/common/index_decoder.c | 4 ++-- 8778 2 files changed, 13 insertions(+), 9 deletions(-) 8779 8780commit 78ae13bced912b1b92ae927992c99cbcc463cae7 8781Author: Lasse Collin <lasse.collin@tukaani.org> 8782Date: 2016-12-30 13:25:10 +0200 8783 8784 Update NEWS for 5.2.3. 8785 8786 NEWS | 39 +++++++++++++++++++++++++++++++++++++++ 8787 1 file changed, 39 insertions(+) 8788 8789commit 0297863fdb453aed1a25eb025f3ba7bacbbb1357 8790Author: Lasse Collin <lasse.collin@tukaani.org> 8791Date: 2016-12-26 20:55:52 +0200 8792 8793 Document --enable-sandbox configure option in INSTALL. 8794 8795 INSTALL | 23 +++++++++++++++++++++++ 8796 1 file changed, 23 insertions(+) 8797 8798commit d4a0462abe5478193521c14625e1c81fead87f9f 8799Author: Lasse Collin <lasse.collin@tukaani.org> 8800Date: 2016-11-21 20:24:50 +0200 8801 8802 liblzma: Avoid multiple definitions of lzma_coder structures. 8803 8804 Only one definition was visible in a translation unit. 8805 It avoided a few casts and temp variables but seems that 8806 this hack doesn't work with link-time optimizations in compilers 8807 as it's not C99/C11 compliant. 8808 8809 Fixes: 8810 http://www.mail-archive.com/xz-devel@tukaani.org/msg00279.html 8811 8812 src/liblzma/common/alone_decoder.c | 44 +++++---- 8813 src/liblzma/common/alone_encoder.c | 34 ++++--- 8814 src/liblzma/common/auto_decoder.c | 35 ++++--- 8815 src/liblzma/common/block_decoder.c | 41 ++++---- 8816 src/liblzma/common/block_encoder.c | 40 ++++---- 8817 src/liblzma/common/common.h | 18 ++-- 8818 src/liblzma/common/index_decoder.c | 33 ++++--- 8819 src/liblzma/common/index_encoder.c | 16 ++-- 8820 src/liblzma/common/stream_decoder.c | 50 +++++----- 8821 src/liblzma/common/stream_encoder.c | 56 ++++++----- 8822 src/liblzma/common/stream_encoder_mt.c | 124 ++++++++++++++----------- 8823 src/liblzma/delta/delta_common.c | 25 ++--- 8824 src/liblzma/delta/delta_decoder.c | 6 +- 8825 src/liblzma/delta/delta_encoder.c | 12 ++- 8826 src/liblzma/delta/delta_private.h | 4 +- 8827 src/liblzma/lz/lz_decoder.c | 60 ++++++------ 8828 src/liblzma/lz/lz_decoder.h | 13 ++- 8829 src/liblzma/lz/lz_encoder.c | 57 +++++++----- 8830 src/liblzma/lz/lz_encoder.h | 9 +- 8831 src/liblzma/lzma/lzma2_decoder.c | 32 ++++--- 8832 src/liblzma/lzma/lzma2_encoder.c | 51 +++++----- 8833 src/liblzma/lzma/lzma_decoder.c | 27 +++--- 8834 src/liblzma/lzma/lzma_encoder.c | 29 +++--- 8835 src/liblzma/lzma/lzma_encoder.h | 9 +- 8836 src/liblzma/lzma/lzma_encoder_optimum_fast.c | 3 +- 8837 src/liblzma/lzma/lzma_encoder_optimum_normal.c | 23 ++--- 8838 src/liblzma/lzma/lzma_encoder_private.h | 6 +- 8839 src/liblzma/simple/arm.c | 2 +- 8840 src/liblzma/simple/armthumb.c | 2 +- 8841 src/liblzma/simple/ia64.c | 2 +- 8842 src/liblzma/simple/powerpc.c | 2 +- 8843 src/liblzma/simple/simple_coder.c | 61 ++++++------ 8844 src/liblzma/simple/simple_private.h | 12 +-- 8845 src/liblzma/simple/sparc.c | 2 +- 8846 src/liblzma/simple/x86.c | 15 +-- 8847 35 files changed, 532 insertions(+), 423 deletions(-) 8848 8849commit a01794c52add98263b49119842c3e7141d1b9ced 8850Author: Lasse Collin <lasse.collin@tukaani.org> 8851Date: 2016-10-24 18:53:25 +0300 8852 8853 Update THANKS. 8854 8855 THANKS | 1 + 8856 1 file changed, 1 insertion(+) 8857 8858commit df8f446e3ad47e5148b8c8d8b6e519d3ce29cb9d 8859Author: Lasse Collin <lasse.collin@tukaani.org> 8860Date: 2016-10-24 18:51:36 +0300 8861 8862 tuklib_cpucores: Add support for sched_getaffinity(). 8863 8864 It's available in glibc (GNU/Linux, GNU/kFreeBSD). It's better 8865 than sysconf(_SC_NPROCESSORS_ONLN) because sched_getaffinity() 8866 gives the number of cores available to the process instead of 8867 the total number of cores online. 8868 8869 As a side effect, this commit fixes a bug on GNU/kFreeBSD where 8870 configure would detect the FreeBSD-specific cpuset_getaffinity() 8871 but it wouldn't actually work because on GNU/kFreeBSD it requires 8872 using -lfreebsd-glue when linking. Now the glibc-specific function 8873 will be used instead. 8874 8875 Thanks to Sebastian Andrzej Siewior for the original patch 8876 and testing. 8877 8878 m4/tuklib_cpucores.m4 | 30 +++++++++++++++++++++++++++++- 8879 src/common/tuklib_cpucores.c | 9 +++++++++ 8880 2 files changed, 38 insertions(+), 1 deletion(-) 8881 8882commit 446e4318fa79788e09299d5953b5dd428953d14b 8883Author: Lasse Collin <lasse.collin@tukaani.org> 8884Date: 2016-06-30 20:27:36 +0300 8885 8886 xz: Fix copying of timestamps on Windows. 8887 8888 xz used to call utime() on Windows, but its result gets lost 8889 on close(). Using _futime() seems to work. 8890 8891 Thanks to Martok for reporting the bug: 8892 http://www.mail-archive.com/xz-devel@tukaani.org/msg00261.html 8893 8894 configure.ac | 2 +- 8895 src/xz/file_io.c | 18 ++++++++++++++++++ 8896 2 files changed, 19 insertions(+), 1 deletion(-) 8897 8898commit 1b0ac0c53c761263e91e34195cb21dfdcfeac0bd 8899Author: Lasse Collin <lasse.collin@tukaani.org> 8900Date: 2016-06-16 22:46:02 +0300 8901 8902 xz: Silence warnings from -Wlogical-op. 8903 8904 Thanks to Evan Nemerson. 8905 8906 src/xz/file_io.c | 12 ++++++++++-- 8907 1 file changed, 10 insertions(+), 2 deletions(-) 8908 8909commit c83b7a03342c3325ff10400b22ee21edfcd1e026 8910Author: Lasse Collin <lasse.collin@tukaani.org> 8911Date: 2016-04-10 20:55:49 +0300 8912 8913 Build: Fix = to += for xz_SOURCES in src/xz/Makefile.am. 8914 8915 Thanks to Christian Kujau. 8916 8917 src/xz/Makefile.am | 2 +- 8918 1 file changed, 1 insertion(+), 1 deletion(-) 8919 8920commit ade31a2bfb95c94d05fbfc0ecbba5d6377f2506e 8921Author: Lasse Collin <lasse.collin@tukaani.org> 8922Date: 2016-04-10 20:54:17 +0300 8923 8924 Build: Bump GNU Gettext version requirement to 0.19. 8925 8926 It silences a few warnings and most people probably have 8927 0.19 even on stable distributions. 8928 8929 Thanks to Christian Kujau. 8930 8931 configure.ac | 2 +- 8932 1 file changed, 1 insertion(+), 1 deletion(-) 8933 8934commit ac398c3bafa6e4c80e20571373a96947db863b3d 8935Author: Lasse Collin <lasse.collin@tukaani.org> 8936Date: 2016-03-13 20:21:49 +0200 8937 8938 liblzma: Disable external SHA-256 by default. 8939 8940 This is the sane thing to do. The conflict with OpenSSL 8941 on some OSes and especially that the OS-provided versions 8942 can be significantly slower makes it clear that it was 8943 a mistake to have the external SHA-256 support enabled by 8944 default. 8945 8946 Those who want it can now pass --enable-external-sha256 to 8947 configure. INSTALL was updated with notes about OSes where 8948 this can be a bad idea. 8949 8950 The SHA-256 detection code in configure.ac had some bugs that 8951 could lead to a build failure in some situations. These were 8952 fixed, although it doesn't matter that much now that the 8953 external SHA-256 is disabled by default. 8954 8955 MINIX >= 3.2.0 uses NetBSD's libc and thus has SHA256_Init 8956 in libc instead of libutil. Support for the libutil version 8957 was removed. 8958 8959 INSTALL | 36 ++++++++++++++++++++++ 8960 configure.ac | 76 +++++++++++++++++++++++------------------------ 8961 src/liblzma/check/check.h | 16 ++++------ 8962 3 files changed, 79 insertions(+), 49 deletions(-) 8963 8964commit 6fd5ecb589a9fdd7a576ea48c4850d496bab9ce5 8965Author: Lasse Collin <lasse.collin@tukaani.org> 8966Date: 2016-03-10 20:27:05 +0200 8967 8968 Update THANKS. 8969 8970 THANKS | 1 + 8971 1 file changed, 1 insertion(+) 8972 8973commit 473ef0dc69a30e64d5fa0d34aca02f7309faa3e9 8974Author: Lasse Collin <lasse.collin@tukaani.org> 8975Date: 2016-03-10 20:26:49 +0200 8976 8977 Build: Avoid SHA256_Init on FreeBSD and MINIX 3. 8978 8979 On FreeBSD 10 and older, SHA256_Init from libmd conflicts 8980 with libcrypto from OpenSSL. The OpenSSL version has 8981 different sizeof(SHA256_CTX) and it can cause weird 8982 problems if wrong SHA256_Init gets used. 8983 8984 Looking at the source, MINIX 3 seems to have a similar issue but 8985 I'm not sure. To be safe, I disabled SHA256_Init on MINIX 3 too. 8986 8987 NetBSD has SHA256_Init in libc and they had a similar problem, 8988 but they already fixed it in 2009. 8989 8990 Thanks to Jim Wilcoxson for the bug report that helped 8991 in finding the problem. 8992 8993 configure.ac | 27 +++++++++++++++++++++------ 8994 1 file changed, 21 insertions(+), 6 deletions(-) 8995 8996commit faf302137e54d605b44ecf0373cb51a6403a2de1 8997Author: Lasse Collin <lasse.collin@tukaani.org> 8998Date: 2015-11-08 20:16:10 +0200 8999 9000 tuklib_physmem: Hopefully silence a warning on Windows. 9001 9002 src/common/tuklib_physmem.c | 3 ++- 9003 1 file changed, 2 insertions(+), 1 deletion(-) 9004 9005commit e52e9151cf8613022d1de4712ff39dbcb666e991 9006Author: Lasse Collin <lasse.collin@tukaani.org> 9007Date: 2015-11-04 23:17:43 +0200 9008 9009 Update THANKS. 9010 9011 THANKS | 1 + 9012 1 file changed, 1 insertion(+) 9013 9014commit 14115f84a38161d55eaa2d070f08739bde37e966 9015Author: Lasse Collin <lasse.collin@tukaani.org> 9016Date: 2015-11-04 23:14:00 +0200 9017 9018 liblzma: Make Valgrind happier with optimized (gcc -O2) liblzma. 9019 9020 When optimizing, GCC can reorder code so that an uninitialized 9021 value gets used in a comparison, which makes Valgrind unhappy. 9022 It doesn't happen when compiled with -O0, which I tend to use 9023 when running Valgrind. 9024 9025 Thanks to Rich Prohaska. I remember this being mentioned long 9026 ago by someone else but nothing was done back then. 9027 9028 src/liblzma/lz/lz_encoder.c | 4 ++++ 9029 1 file changed, 4 insertions(+) 9030 9031commit f4c95ba94beb71a608eb6eadbf82b44f53a0260e 9032Author: Lasse Collin <lasse.collin@tukaani.org> 9033Date: 2015-11-03 20:55:45 +0200 9034 9035 liblzma: Rename lzma_presets.c back to lzma_encoder_presets.c. 9036 9037 It would be too annoying to update other build systems 9038 just because of this. 9039 9040 src/liblzma/lzma/Makefile.inc | 2 +- 9041 src/liblzma/lzma/{lzma_presets.c => lzma_encoder_presets.c} | 2 +- 9042 2 files changed, 2 insertions(+), 2 deletions(-) 9043 9044commit c7bc20a6f3e71920871d48db31a79ab58b5a0a4b 9045Author: Lasse Collin <lasse.collin@tukaani.org> 9046Date: 2015-11-03 20:47:07 +0200 9047 9048 Build: Disable xzdec, lzmadec, and lzmainfo when they cannot be built. 9049 9050 They all need decoder support and if that isn't available, 9051 there's no point trying to build them. 9052 9053 configure.ac | 3 +++ 9054 1 file changed, 3 insertions(+) 9055 9056commit 5cbca1205deeb6fb7afe7a864fa68a57466d928a 9057Author: Lasse Collin <lasse.collin@tukaani.org> 9058Date: 2015-11-03 20:35:19 +0200 9059 9060 Build: Simplify $enable_{encoders,decoders} usage a bit. 9061 9062 configure.ac | 6 ++++-- 9063 1 file changed, 4 insertions(+), 2 deletions(-) 9064 9065commit af13781886c8e7a0aabebb5141ea282dc364f5c6 9066Author: Lasse Collin <lasse.collin@tukaani.org> 9067Date: 2015-11-03 20:31:31 +0200 9068 9069 Windows/MSVC: Update config.h. 9070 9071 windows/config.h | 6 ++++++ 9072 1 file changed, 6 insertions(+) 9073 9074commit 9fa5949330f162c5a2f6653f83025327837e8f39 9075Author: Lasse Collin <lasse.collin@tukaani.org> 9076Date: 2015-11-03 20:29:58 +0200 9077 9078 DOS: Update config.h. 9079 9080 dos/config.h | 6 ++++++ 9081 1 file changed, 6 insertions(+) 9082 9083commit cb3111e3ed84152912b5138d690c8d9f00c6ef02 9084Author: Lasse Collin <lasse.collin@tukaani.org> 9085Date: 2015-11-03 20:29:33 +0200 9086 9087 xz: Make xz buildable even when encoders or decoders are disabled. 9088 9089 The patch is quite long but it's mostly about adding new #ifdefs 9090 to omit code when encoders or decoders have been disabled. 9091 9092 This adds two new #defines to config.h: HAVE_ENCODERS and 9093 HAVE_DECODERS. 9094 9095 configure.ac | 4 ++++ 9096 src/xz/Makefile.am | 8 ++++++-- 9097 src/xz/args.c | 16 ++++++++++++++++ 9098 src/xz/coder.c | 33 +++++++++++++++++++++++++-------- 9099 src/xz/main.c | 9 +++++++-- 9100 src/xz/private.h | 5 ++++- 9101 6 files changed, 62 insertions(+), 13 deletions(-) 9102 9103commit 4cc584985c0b7a13901da1b7a64ef9f7cc36e8ab 9104Author: Lasse Collin <lasse.collin@tukaani.org> 9105Date: 2015-11-03 18:06:40 +0200 9106 9107 Build: Build LZMA1/2 presets also when only decoder is wanted. 9108 9109 People shouldn't rely on the presets when decoding raw streams, 9110 but xz uses the presets as the starting point for raw decoder 9111 options anyway. 9112 9113 lzma_encocder_presets.c was renamed to lzma_presets.c to 9114 make it clear it's not used solely by the encoder code. 9115 9116 src/liblzma/lzma/Makefile.inc | 6 +++++- 9117 src/liblzma/lzma/{lzma_encoder_presets.c => lzma_presets.c} | 3 ++- 9118 2 files changed, 7 insertions(+), 2 deletions(-) 9119 9120commit 23ed1d41489f632155bbc9660f323d57e09da180 9121Author: Lasse Collin <lasse.collin@tukaani.org> 9122Date: 2015-11-03 17:54:48 +0200 9123 9124 Build: Fix configure to handle LZMA1 dependency with LZMA2. 9125 9126 Now it gives an error if LZMA1 encoder/decoder is missing 9127 when LZMA2 encoder/decoder was requested. Even better would 9128 be LZMA2 implicitly enabling LZMA1 but it would need more code. 9129 9130 configure.ac | 5 ----- 9131 1 file changed, 5 deletions(-) 9132 9133commit b0bc3e03852af13419ea2960881824258d451117 9134Author: Lasse Collin <lasse.collin@tukaani.org> 9135Date: 2015-11-03 17:41:54 +0200 9136 9137 Build: Don't omit lzma_cputhreads() unless using --disable-threads. 9138 9139 Previously it was omitted if encoders were disabled 9140 with --disable-encoders. It didn't make sense and 9141 it also broke the build. 9142 9143 src/liblzma/common/Makefile.inc | 5 ++++- 9144 1 file changed, 4 insertions(+), 1 deletion(-) 9145 9146commit c6bf438ab39e0fb4a47d3c81725c227919502726 9147Author: Lasse Collin <lasse.collin@tukaani.org> 9148Date: 2015-11-02 18:16:51 +0200 9149 9150 liblzma: Fix a build failure related to external SHA-256 support. 9151 9152 If an appropriate header and structure were found by configure, 9153 but a library with a usable SHA-256 functions wasn't, the build 9154 failed. 9155 9156 src/liblzma/check/check.h | 32 +++++++++++++++++++++++--------- 9157 1 file changed, 23 insertions(+), 9 deletions(-) 9158 9159commit e18adc56f2262aa9394d46681e9e4b9981ed5e97 9160Author: Lasse Collin <lasse.collin@tukaani.org> 9161Date: 2015-11-02 15:19:10 +0200 9162 9163 xz: Always close the file before trying to delete it. 9164 9165 unlink() can return EBUSY in errno for open files on some 9166 operating systems and file systems. 9167 9168 src/xz/file_io.c | 25 ++++++++++++------------- 9169 1 file changed, 12 insertions(+), 13 deletions(-) 9170 9171commit 282e768a1484e88c8b7ec35655ee4959954ec87a 9172Author: Lasse Collin <lasse.collin@tukaani.org> 9173Date: 2015-10-12 21:08:42 +0300 9174 9175 Update THANKS. 9176 9177 THANKS | 1 + 9178 1 file changed, 1 insertion(+) 9179 9180commit 372e402713a1d4337ffce5f56d5c5c9ed99a66d0 9181Author: Lasse Collin <lasse.collin@tukaani.org> 9182Date: 2015-10-12 21:07:41 +0300 9183 9184 Tests: Add tests for the two bugs fixed in index.c. 9185 9186 tests/test_index.c | 30 ++++++++++++++++++++++++++++++ 9187 1 file changed, 30 insertions(+) 9188 9189commit 21515d79d778b8730a434f151b07202d52a04611 9190Author: Lasse Collin <lasse.collin@tukaani.org> 9191Date: 2015-10-12 20:45:15 +0300 9192 9193 liblzma: Fix lzma_index_dup() for empty Streams. 9194 9195 Stream Flags and Stream Padding weren't copied from 9196 empty Streams. 9197 9198 src/liblzma/common/index.c | 11 ++++++----- 9199 1 file changed, 6 insertions(+), 5 deletions(-) 9200 9201commit 09f395b6b360c0b13e8559eece1d179b908ebd3a 9202Author: Lasse Collin <lasse.collin@tukaani.org> 9203Date: 2015-10-12 20:31:44 +0300 9204 9205 liblzma: Add a note to index.c for those using static analyzers. 9206 9207 src/liblzma/common/index.c | 3 +++ 9208 1 file changed, 3 insertions(+) 9209 9210commit 3bf857edfef51374f6f3fffae3d817f57d3264a0 9211Author: Lasse Collin <lasse.collin@tukaani.org> 9212Date: 2015-10-12 20:29:09 +0300 9213 9214 liblzma: Fix a memory leak in error path of lzma_index_dup(). 9215 9216 lzma_index_dup() calls index_dup_stream() which, in case of 9217 an error, calls index_stream_end() to free memory allocated 9218 by index_stream_init(). However, it illogically didn't 9219 actually free the memory. To make it logical, the tree 9220 handling code was modified a bit in addition to changing 9221 index_stream_end(). 9222 9223 Thanks to Evan Nemerson for the bug report. 9224 9225 src/liblzma/common/index.c | 18 +++++++++--------- 9226 1 file changed, 9 insertions(+), 9 deletions(-) 9227 9228commit 7f05803979b4b79642d5be4218a79da7a0b12c47 9229Author: Lasse Collin <lasse.collin@tukaani.org> 9230Date: 2015-09-29 13:57:28 +0300 9231 9232 Update NEWS for 5.2.2. 9233 9234 NEWS | 18 ++++++++++++++++++ 9235 1 file changed, 18 insertions(+) 9236 9237commit 397fcc0946315b55c3c6d80e37e82a2a78bc15c1 9238Author: Hauke Henningsen <sqrt@entless.org> 9239Date: 2015-08-17 04:59:54 +0200 9240 9241 Update German translation, mostly wrt orthography 9242 9243 Provide an update of the German translation. 9244 * A lot of compound words were previously written with spaces, while 9245 German orthography is relatively clear in that the components 9246 should not be separated. 9247 * When referring to the actual process of (de)compression rather than the 9248 concept, replace “(De-)Kompression” with “(De-)Komprimierung”. 9249 Previously, both forms were used in this context and are now used in a 9250 manner consistent with “Komprimierung” being more likely to refer to 9251 a process. 9252 * Consistently translate “standard input”/“output” 9253 * Use “Zeichen” instead of false friend “Charakter” for “character” 9254 * Insert commas around relative clauses (as required in German) 9255 * Some other minor corrections 9256 * Capitalize “ß” as “ẞ” 9257 * Consistently start option descriptions in --help with capital letters 9258 9259 Acked-By: Andre Noll <maan@tuebingen.mpg.de> 9260 9261 * Update after msgmerge 9262 9263 po/de.po | 383 ++++++++++++++++++++++++++++++++------------------------------- 9264 1 file changed, 196 insertions(+), 187 deletions(-) 9265 9266commit cbc9e39bae715accb44168930a71888480aad569 9267Author: Lasse Collin <lasse.collin@tukaani.org> 9268Date: 2015-08-11 13:23:04 +0300 9269 9270 Build: Minor Cygwin cleanup. 9271 9272 Some tests used "cygwin*" and some used "cygwin". I changed 9273 them all to use "cygwin". Shouldn't affect anything in practice. 9274 9275 configure.ac | 6 +++--- 9276 1 file changed, 3 insertions(+), 3 deletions(-) 9277 9278commit bcacd8ce7a031566858e5e03c1009064c3f1c89e 9279Author: Lasse Collin <lasse.collin@tukaani.org> 9280Date: 2015-08-11 13:21:52 +0300 9281 9282 Build: Support building of MSYS2 binaries. 9283 9284 configure.ac | 16 +++++++++++----- 9285 1 file changed, 11 insertions(+), 5 deletions(-) 9286 9287commit 0275a5398c01d57b724dec7fea52dec3bd6edc6c 9288Author: Lasse Collin <lasse.collin@tukaani.org> 9289Date: 2015-08-09 21:06:26 +0300 9290 9291 Windows: Define DLL_EXPORT when building liblzma.dll with MSVC. 9292 9293 src/liblzma/common/common.h uses it to set __declspec(dllexport) 9294 for the API symbols. 9295 9296 Thanks to Adam Walling. 9297 9298 windows/liblzma_dll.vcxproj | 12 ++++++------ 9299 1 file changed, 6 insertions(+), 6 deletions(-) 9300 9301commit a74525cf9b945fb0b370e64cf406104beb31729b 9302Author: Lasse Collin <lasse.collin@tukaani.org> 9303Date: 2015-08-09 21:02:20 +0300 9304 9305 Windows: Omit unneeded header files from MSVC project files. 9306 9307 windows/liblzma.vcxproj | 5 ----- 9308 windows/liblzma_dll.vcxproj | 5 ----- 9309 2 files changed, 10 deletions(-) 9310 9311commit fbbb295a91caf39faf8838c8c39526e4cb4dc121 9312Author: Lasse Collin <lasse.collin@tukaani.org> 9313Date: 2015-07-12 20:48:19 +0300 9314 9315 liblzma: A MSVC-specific hack isn't needed with MSVC 2013 and newer. 9316 9317 src/liblzma/api/lzma.h | 18 +++++++++++++----- 9318 1 file changed, 13 insertions(+), 5 deletions(-) 9319 9320commit 713dbe5c230fe00865a54f5c32358ea30f9a1156 9321Author: Lasse Collin <lasse.collin@tukaani.org> 9322Date: 2015-06-19 20:38:55 +0300 9323 9324 Update THANKS. 9325 9326 THANKS | 2 ++ 9327 1 file changed, 2 insertions(+) 9328 9329commit 3a5d755d055d51f99c523b4c2952727e1e69cfa1 9330Author: Lasse Collin <lasse.collin@tukaani.org> 9331Date: 2015-06-19 20:21:30 +0300 9332 9333 Windows: Update the docs. 9334 9335 INSTALL | 29 ++++++++----- 9336 windows/INSTALL-MSVC.txt | 47 ++++++++++++++++++++++ 9337 windows/{INSTALL-Windows.txt => INSTALL-MinGW.txt} | 2 +- 9338 3 files changed, 67 insertions(+), 11 deletions(-) 9339 9340commit b0798c6aa6184efcefd0bdcca20f96121a13feda 9341Author: Lasse Collin <lasse.collin@tukaani.org> 9342Date: 2015-06-19 17:25:31 +0300 9343 9344 Windows: Add MSVC project files for building liblzma. 9345 9346 Thanks to Adam Walling for creating these files. 9347 9348 windows/liblzma.vcxproj | 359 ++++++++++++++++++++++++++++++++++++++++ 9349 windows/liblzma_dll.vcxproj | 388 ++++++++++++++++++++++++++++++++++++++++++++ 9350 windows/xz_win.sln | 48 ++++++ 9351 3 files changed, 795 insertions(+) 9352 9353commit 9b02a4ffdac1b9f066658ec4c95c0834f4cd2fb7 9354Author: Andre Noll <maan@tuebingen.mpg.de> 9355Date: 2015-05-28 15:50:00 +0200 9356 9357 Fix typo in German translation. 9358 9359 As pointed out by Robert Pollak, there's a typo in the German 9360 translation of the compression preset option (-0 ... -9) help text. 9361 "The compressor" translates to "der Komprimierer", and the genitive 9362 form is "des Komprimierers". The old word makes no sense at all. 9363 9364 po/de.po | 2 +- 9365 1 file changed, 1 insertion(+), 1 deletion(-) 9366 9367commit c7f4041f6b8f4729f88d3bc888b2a4080ae51f72 9368Author: Lasse Collin <lasse.collin@tukaani.org> 9369Date: 2015-05-13 20:57:55 +0300 9370 9371 Tests: Fix a memory leak in test_bcj_exact_size. 9372 9373 Thanks to Cristian Rodríguez. 9374 9375 tests/test_bcj_exact_size.c | 1 + 9376 1 file changed, 1 insertion(+) 9377 9378commit 17b29d4f0ae0f780fbd69e15a398dc478d8492f8 9379Author: Lasse Collin <lasse.collin@tukaani.org> 9380Date: 2015-05-12 18:08:24 +0300 9381 9382 Fix NEWS about threading in 5.2.0. 9383 9384 Thanks to Andy Hochhaus. 9385 9386 NEWS | 3 ++- 9387 1 file changed, 2 insertions(+), 1 deletion(-) 9388 9389commit 49c26920d6e2d85e5c6123e34958aed2e77485ad 9390Author: Lasse Collin <lasse.collin@tukaani.org> 9391Date: 2015-05-11 21:26:16 +0300 9392 9393 xz: Document that threaded decompression hasn't been implemented yet. 9394 9395 src/xz/xz.1 | 10 +++++++++- 9396 1 file changed, 9 insertions(+), 1 deletion(-) 9397 9398commit 5b2458cb244ed237efe4de1ebcf06e1b3a1f4256 9399Author: Lasse Collin <lasse.collin@tukaani.org> 9400Date: 2015-04-20 20:20:29 +0300 9401 9402 Update THANKS. 9403 9404 THANKS | 1 + 9405 1 file changed, 1 insertion(+) 9406 9407commit 6bd0349c58451b13442e8f463e35de83548bf985 9408Author: Lasse Collin <lasse.collin@tukaani.org> 9409Date: 2015-04-20 19:59:18 +0300 9410 9411 Revert "xz: Use pipe2() if available." 9412 9413 This reverts commit 7a11c4a8e5e15f13d5fa59233b3172e65428efdd. 9414 It is a problem when libc has pipe2() but the kernel is too 9415 old to have pipe2() and thus pipe2() fails. In xz it's pointless 9416 to have a fallback for non-functioning pipe2(); it's better to 9417 avoid pipe2() completely. 9418 9419 Thanks to Michael Fox for the bug report. 9420 9421 configure.ac | 4 ++-- 9422 src/xz/file_io.c | 9 +-------- 9423 2 files changed, 3 insertions(+), 10 deletions(-) 9424 9425commit fc0df0f8db87dff45543708a711e17d29c37f632 9426Author: Lasse Collin <lasse.collin@tukaani.org> 9427Date: 2015-04-01 14:45:25 +0300 9428 9429 xz: Fix the Capsicum rights on user_abort_pipe. 9430 9431 src/xz/file_io.c | 6 +++++- 9432 1 file changed, 5 insertions(+), 1 deletion(-) 9433 9434commit 57393615b31b3788dd77280452d845bcc12d33af 9435Author: Lasse Collin <lasse.collin@tukaani.org> 9436Date: 2015-03-31 22:20:11 +0300 9437 9438 Update THANKS. 9439 9440 THANKS | 1 + 9441 1 file changed, 1 insertion(+) 9442 9443commit 1238381143a9a7ce84839c2582ccd56ff750a440 9444Author: Lasse Collin <lasse.collin@tukaani.org> 9445Date: 2015-03-31 22:19:34 +0300 9446 9447 xz: Add support for sandboxing with Capsicum. 9448 9449 The sandboxing is used conditionally as described in main.c. 9450 This isn't optimal but it was much easier to implement than 9451 a full sandboxing solution and it still covers the most common 9452 use cases where xz is writing to standard output. This should 9453 have practically no effect on performance even with small files 9454 as fork() isn't needed. 9455 9456 C and locale libraries can open files as needed. This has been 9457 fine in the past, but it's a problem with things like Capsicum. 9458 io_sandbox_enter() tries to ensure that various locale-related 9459 files have been loaded before cap_enter() is called, but it's 9460 possible that there are other similar problems which haven't 9461 been seen yet. 9462 9463 Currently Capsicum is available on FreeBSD 10 and later 9464 and there is a port to Linux too. 9465 9466 Thanks to Loganaden Velvindron for help. 9467 9468 configure.ac | 41 +++++++++++++++++++++++++++ 9469 src/xz/Makefile.am | 2 +- 9470 src/xz/file_io.c | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 9471 src/xz/file_io.h | 6 ++++ 9472 src/xz/main.c | 18 ++++++++++++ 9473 src/xz/private.h | 4 +++ 9474 6 files changed, 151 insertions(+), 1 deletion(-) 9475 9476commit 29a087fb5a0c879f0b1bc4c6b989f7b87bacdf9e 9477Author: Lasse Collin <lasse.collin@tukaani.org> 9478Date: 2015-03-31 21:12:30 +0300 9479 9480 Fix bugs and otherwise improve ax_check_capsicum.m4. 9481 9482 AU_ALIAS was removed because the new version is incompatible 9483 with the old version. 9484 9485 It no longer checks for <sys/capability.h> separately. 9486 It's enough to test for it as part of AC_CHECK_DECL. 9487 The defines HAVE_CAPSICUM_SYS_CAPSICUM_H and 9488 HAVE_CAPSICUM_SYS_CAPABILITY_H were removed as unneeded. 9489 HAVE_SYS_CAPSICUM_H from AC_CHECK_HEADERS is enough. 9490 9491 It no longer does a useless search for the Capsicum library 9492 if the header wasn't found. 9493 9494 Fixed a bug in ACTION-IF-FOUND (the first argument). Specifying 9495 the argument omitted the default action but the given action 9496 wasn't used instead. 9497 9498 AC_DEFINE([HAVE_CAPSICUM]) is now always called when Capsicum 9499 support is found. Previously it was part of the default 9500 ACTION-IF-FOUND which a custom action would override. Now 9501 the default action only prepends ${CAPSICUM_LIB} to LIBS. 9502 9503 The documentation was updated. 9504 9505 Since there as no serial number, "#serial 2" was added. 9506 9507 m4/ax_check_capsicum.m4 | 103 ++++++++++++++++++++++++------------------------ 9508 1 file changed, 51 insertions(+), 52 deletions(-) 9509 9510commit 6e845c6a3eddf2fde9db5a29950421dff60a43ac 9511Author: Lasse Collin <lasse.collin@tukaani.org> 9512Date: 2015-03-31 19:20:24 +0300 9513 9514 Add m4/ax_check_capsicum.m4 for detecting Capsicum support. 9515 9516 The file was loaded from this web page: 9517 https://github.com/google/capsicum-test/blob/dev/autoconf/m4/ax_check_capsicum.m4 9518 9519 Thanks to Loganaden Velvindron for pointing it out for me. 9520 9521 m4/ax_check_capsicum.m4 | 86 +++++++++++++++++++++++++++++++++++++++++++++++++ 9522 1 file changed, 86 insertions(+) 9523 9524commit 3717885f9ef2c06f1bcbad9f4c2ed2d5695f844e 9525Author: Lasse Collin <lasse.collin@tukaani.org> 9526Date: 2015-03-30 22:44:02 +0300 9527 9528 Bump version to 5.3.0alpha and soname to 5.3.99. 9529 9530 The idea of 99 is that it looks a bit weird in this context. 9531 For new features there's no API/ABI stability in devel versions. 9532 9533 src/liblzma/Makefile.am | 2 +- 9534 src/liblzma/api/lzma/version.h | 6 +++--- 9535 2 files changed, 4 insertions(+), 4 deletions(-) 9536 9537commit eccd8155e107c5ada03d13e7730675cdf1a44ddc 9538Author: Lasse Collin <lasse.collin@tukaani.org> 9539Date: 2015-03-29 22:14:47 +0300 9540 9541 Update THANKS. 9542 9543 THANKS | 1 + 9544 1 file changed, 1 insertion(+) 9545 9546commit 25263fd9e7a8a913395cb93d7c104cd48c2b4a00 9547Author: Lasse Collin <lasse.collin@tukaani.org> 9548Date: 2015-03-29 22:13:48 +0300 9549 9550 Fix the detection of installed RAM on QNX. 9551 9552 The earlier version compiled but didn't actually work 9553 since sysconf(_SC_PHYS_PAGES) always fails (or so I was told). 9554 9555 Thanks to Ole André Vadla Ravnås for the patch and testing. 9556 9557 m4/tuklib_physmem.m4 | 6 +++--- 9558 src/common/tuklib_physmem.c | 14 +++++++++++++- 9559 2 files changed, 16 insertions(+), 4 deletions(-) 9560 9561commit 4c544d2410903d38402221cb783ed85585b6a007 9562Author: Lasse Collin <lasse.collin@tukaani.org> 9563Date: 2015-03-27 22:39:07 +0200 9564 9565 Fix CPU core count detection on QNX. 9566 9567 It tried to use sysctl() on QNX but 9568 - it broke the build because sysctl() needs -lsocket on QNX; 9569 - sysctl() doesn't work for detecting the core count on QNX 9570 even if it compiled. 9571 9572 sysconf() works. An alternative would have been to use 9573 QNX-specific SYSPAGE_ENTRY(num_cpu) from <sys/syspage.h>. 9574 9575 Thanks to Ole André Vadla Ravnås. 9576 9577 m4/tuklib_cpucores.m4 | 15 +++++++++++---- 9578 1 file changed, 11 insertions(+), 4 deletions(-) 9579 9580commit e0ea6737b03e83ccaff4514d00e31bb926f8f0f3 9581Author: Lasse Collin <lasse.collin@tukaani.org> 9582Date: 2015-03-07 22:05:57 +0200 9583 9584 xz: size_t/uint32_t cleanup in options.c. 9585 9586 src/xz/options.c | 12 ++++++------ 9587 1 file changed, 6 insertions(+), 6 deletions(-) 9588 9589commit 8bcca29a65335fd679c13814b70b35b68fa5daed 9590Author: Lasse Collin <lasse.collin@tukaani.org> 9591Date: 2015-03-07 22:04:23 +0200 9592 9593 xz: Fix a comment and silence a warning in message.c. 9594 9595 src/xz/message.c | 5 +++-- 9596 1 file changed, 3 insertions(+), 2 deletions(-) 9597 9598commit f243f5f44c6b19a7c289a0ec73a03ee08364cb5b 9599Author: Lasse Collin <lasse.collin@tukaani.org> 9600Date: 2015-03-07 22:01:00 +0200 9601 9602 liblzma: Silence more uint32_t vs. size_t warnings. 9603 9604 src/liblzma/lz/lz_encoder.c | 2 +- 9605 src/liblzma/lzma/lzma_encoder.c | 2 +- 9606 2 files changed, 2 insertions(+), 2 deletions(-) 9607 9608commit 7f0a4c50f4a374c40acf4b86848f301ad1e82d34 9609Author: Lasse Collin <lasse.collin@tukaani.org> 9610Date: 2015-03-07 19:54:00 +0200 9611 9612 xz: Make arg_count an unsigned int to silence a warning. 9613 9614 Actually the value of arg_count cannot exceed INT_MAX 9615 but it's nicer as an unsigned int. 9616 9617 src/xz/args.h | 2 +- 9618 src/xz/main.c | 2 +- 9619 2 files changed, 2 insertions(+), 2 deletions(-) 9620 9621commit f6ec46801588b1be29c07c9db98558b521304002 9622Author: Lasse Collin <lasse.collin@tukaani.org> 9623Date: 2015-03-07 19:33:17 +0200 9624 9625 liblzma: Fix a warning in index.c. 9626 9627 src/liblzma/common/index.c | 4 +++- 9628 1 file changed, 3 insertions(+), 1 deletion(-) 9629 9630commit a24518971cc621315af142dd3bb7614fab04ad27 9631Author: Lasse Collin <lasse.collin@tukaani.org> 9632Date: 2015-02-26 20:46:14 +0200 9633 9634 Build: Fix a CR+LF problem when running autoreconf -fi on OS/2. 9635 9636 build-aux/version.sh | 2 +- 9637 1 file changed, 1 insertion(+), 1 deletion(-) 9638 9639commit dec11497a71518423b5ff0e759100cf8aadf6c7b 9640Author: Lasse Collin <lasse.collin@tukaani.org> 9641Date: 2015-02-26 16:53:44 +0200 9642 9643 Bump version and soname for 5.2.1. 9644 9645 src/liblzma/Makefile.am | 2 +- 9646 src/liblzma/api/lzma/version.h | 2 +- 9647 2 files changed, 2 insertions(+), 2 deletions(-) 9648 9649commit 29e39c79975ab89ee5dd671e97064534a9f3a649 9650Author: Lasse Collin <lasse.collin@tukaani.org> 9651Date: 2015-02-26 13:01:09 +0200 9652 9653 Update NEWS for 5.2.1. 9654 9655 NEWS | 14 ++++++++++++++ 9656 1 file changed, 14 insertions(+) 9657 9658commit 7a11c4a8e5e15f13d5fa59233b3172e65428efdd 9659Author: Lasse Collin <lasse.collin@tukaani.org> 9660Date: 2015-02-22 19:38:48 +0200 9661 9662 xz: Use pipe2() if available. 9663 9664 configure.ac | 4 ++-- 9665 src/xz/file_io.c | 9 ++++++++- 9666 2 files changed, 10 insertions(+), 3 deletions(-) 9667 9668commit 117d962685c72682c63edc9bb765367189800202 9669Author: Lasse Collin <lasse.collin@tukaani.org> 9670Date: 2015-02-21 23:40:26 +0200 9671 9672 liblzma: Fix a compression-ratio regression in LZMA1/2 in fast mode. 9673 9674 The bug was added in the commit 9675 f48fce093b07aeda95c18850f5e086d9f2383380 and thus 9676 affected 5.1.4beta and 5.2.0. Luckily the bug cannot 9677 cause data corruption or other nasty things. 9678 9679 src/liblzma/lzma/lzma_encoder_optimum_fast.c | 2 +- 9680 1 file changed, 1 insertion(+), 1 deletion(-) 9681 9682commit ae984e31c167d3bc52972ec422dd1ebd5f5d5719 9683Author: Lasse Collin <lasse.collin@tukaani.org> 9684Date: 2015-02-21 23:00:19 +0200 9685 9686 xz: Fix the fcntl() usage when creating a pipe for the self-pipe trick. 9687 9688 Now it reads the old flags instead of blindly setting O_NONBLOCK. 9689 The old code may have worked correctly, but this is better. 9690 9691 src/xz/file_io.c | 16 +++++++++++----- 9692 1 file changed, 11 insertions(+), 5 deletions(-) 9693 9694commit 2205bb5853098aea36a56df6f5747037175f66b4 9695Author: Lasse Collin <lasse.collin@tukaani.org> 9696Date: 2015-02-10 15:29:34 +0200 9697 9698 Update THANKS. 9699 9700 THANKS | 1 + 9701 1 file changed, 1 insertion(+) 9702 9703commit d935b0cdf3db440269b9d952b2b281b18f8c7b08 9704Author: Lasse Collin <lasse.collin@tukaani.org> 9705Date: 2015-02-10 15:28:30 +0200 9706 9707 tuklib_cpucores: Use cpuset_getaffinity() on FreeBSD if available. 9708 9709 In FreeBSD, cpuset_getaffinity() is the preferred way to get 9710 the number of available cores. 9711 9712 Thanks to Rui Paulo for the patch. I edited it slightly, but 9713 hopefully I didn't break anything. 9714 9715 m4/tuklib_cpucores.m4 | 23 ++++++++++++++++++++++- 9716 src/common/tuklib_cpucores.c | 18 ++++++++++++++++++ 9717 2 files changed, 40 insertions(+), 1 deletion(-) 9718 9719commit eb61bc58c20769cac4d05f363b9c0e8c9c71a560 9720Author: Lasse Collin <lasse.collin@tukaani.org> 9721Date: 2015-02-09 22:08:37 +0200 9722 9723 xzdiff: Make the mktemp usage compatible with FreeBSD's mktemp. 9724 9725 Thanks to Rui Paulo for the fix. 9726 9727 src/scripts/xzdiff.in | 7 ++++++- 9728 1 file changed, 6 insertions(+), 1 deletion(-) 9729 9730commit b9a5b6b7a29029680af733082b6a46e0fc01623a 9731Author: Lasse Collin <lasse.collin@tukaani.org> 9732Date: 2015-02-03 21:45:53 +0200 9733 9734 Add a few casts to tuklib_integer.h to silence possible warnings. 9735 9736 I heard that Visual Studio 2013 gave warnings without the casts. 9737 9738 Thanks to Gabi Davar. 9739 9740 src/common/tuklib_integer.h | 24 ++++++++++++------------ 9741 1 file changed, 12 insertions(+), 12 deletions(-) 9742 9743commit c45757135f40e4a0de730ba5fff0100219493982 9744Author: Lasse Collin <lasse.collin@tukaani.org> 9745Date: 2015-01-26 21:24:39 +0200 9746 9747 liblzma: Set LZMA_MEMCMPLEN_EXTRA depending on the compare method. 9748 9749 src/liblzma/common/memcmplen.h | 15 ++++++++++----- 9750 1 file changed, 10 insertions(+), 5 deletions(-) 9751 9752commit 3c500174ed5485f550972a2a6109c361e875f069 9753Author: Lasse Collin <lasse.collin@tukaani.org> 9754Date: 2015-01-26 20:40:16 +0200 9755 9756 Update THANKS. 9757 9758 THANKS | 1 + 9759 1 file changed, 1 insertion(+) 9760 9761commit fec88d41e672d9e197c9442aecf02bd0dfa6d516 9762Author: Lasse Collin <lasse.collin@tukaani.org> 9763Date: 2015-01-26 20:39:28 +0200 9764 9765 liblzma: Silence harmless Valgrind errors. 9766 9767 Thanks to Torsten Rupp for reporting this. I had 9768 forgotten to run Valgrind before the 5.2.0 release. 9769 9770 src/liblzma/lz/lz_encoder.c | 6 ++++++ 9771 1 file changed, 6 insertions(+) 9772 9773commit a9b45badfec0928d20a27c7176c005fa637f7d1e 9774Author: Lasse Collin <lasse.collin@tukaani.org> 9775Date: 2015-01-09 21:50:19 +0200 9776 9777 xz: Fix comments. 9778 9779 src/xz/file_io.c | 12 ++++++++---- 9780 1 file changed, 8 insertions(+), 4 deletions(-) 9781 9782commit 541aee6dd4aa97a809aba281475a21b641bb89e2 9783Author: Lasse Collin <lasse.collin@tukaani.org> 9784Date: 2015-01-09 21:35:06 +0200 9785 9786 Update THANKS. 9787 9788 THANKS | 1 + 9789 1 file changed, 1 insertion(+) 9790 9791commit 4170edc914655310d2363baccf5e615e09b04911 9792Author: Lasse Collin <lasse.collin@tukaani.org> 9793Date: 2015-01-09 21:34:06 +0200 9794 9795 xz: Don't fail if stdout doesn't support O_NONBLOCK. 9796 9797 This is similar to the case with stdin. 9798 9799 Thanks to Brad Smith for the bug report and testing 9800 on OpenBSD. 9801 9802 src/xz/file_io.c | 36 +++++++++++++++--------------------- 9803 1 file changed, 15 insertions(+), 21 deletions(-) 9804 9805commit 04bbc0c2843c50c8ad1cba42b937118e38b0508d 9806Author: Lasse Collin <lasse.collin@tukaani.org> 9807Date: 2015-01-07 19:18:20 +0200 9808 9809 xz: Fix a memory leak in DOS-specific code. 9810 9811 src/xz/file_io.c | 2 ++ 9812 1 file changed, 2 insertions(+) 9813 9814commit f0f1f6c7235ffa901cf76fe18e33749e200b3eea 9815Author: Lasse Collin <lasse.collin@tukaani.org> 9816Date: 2015-01-07 19:08:06 +0200 9817 9818 xz: Don't fail if stdin doesn't support O_NONBLOCK. 9819 9820 It's a problem at least on OpenBSD which doesn't support 9821 O_NONBLOCK on e.g. /dev/null. I'm not surprised if it's 9822 a problem on other OSes too since this behavior is allowed 9823 in POSIX-1.2008. 9824 9825 The code relying on this behavior was committed in June 2013 9826 and included in 5.1.3alpha released on 2013-10-26. Clearly 9827 the development releases only get limited testing. 9828 9829 src/xz/file_io.c | 18 +++++++----------- 9830 1 file changed, 7 insertions(+), 11 deletions(-) 9831 9832commit d2d484647d9d9d679f03c75abb0404f67069271c 9833Author: Lasse Collin <lasse.collin@tukaani.org> 9834Date: 2015-01-06 20:30:15 +0200 9835 9836 Tests: Don't hide unexpected error messages in test_files.sh. 9837 9838 Hiding them makes no sense since normally there's no error 9839 when testing the "good" files. With "bad" files errors are 9840 expected and then it makes sense to keep the messages hidden. 9841 9842 tests/test_files.sh | 4 ++-- 9843 1 file changed, 2 insertions(+), 2 deletions(-) 9844 9845commit aae6a6aeda51cf94a47e39ad624728f9bee75e30 9846Author: Lasse Collin <lasse.collin@tukaani.org> 9847Date: 2014-12-30 11:17:16 +0200 9848 9849 Update Solaris notes in INSTALL. 9850 9851 Mention the possible "make check" failure on Solaris in the 9852 Solaris-specific section of INSTALL. It was already in 9853 section 4.5 but it is better mention it in the OS-specific 9854 section too. 9855 9856 INSTALL | 4 ++++ 9857 1 file changed, 4 insertions(+) 9858 9859commit 7815112153178800a3521b9f31960e7cdc26cfba 9860Author: Lasse Collin <lasse.collin@tukaani.org> 9861Date: 2014-12-26 12:00:05 +0200 9862 9863 Build: POSIX shell isn't required if scripts are disabled. 9864 9865 INSTALL | 3 ++- 9866 configure.ac | 2 +- 9867 2 files changed, 3 insertions(+), 2 deletions(-) 9868 9869commit a0cd05ee71d330b79ead6eb9222e1b24e1559d3a 9870Author: Lasse Collin <lasse.collin@tukaani.org> 9871Date: 2014-12-21 20:48:37 +0200 9872 9873 DOS: Update Makefile. 9874 9875 dos/Makefile | 1 + 9876 1 file changed, 1 insertion(+) 9877 9878commit b85ee0905ec4ab7656d22e63519fdd3bedb21f2e 9879Author: Lasse Collin <lasse.collin@tukaani.org> 9880Date: 2014-12-21 19:50:38 +0200 9881 9882 Windows: Fix bin_i486 to bin_i686 in build.bash. 9883 9884 windows/build.bash | 2 +- 9885 1 file changed, 1 insertion(+), 1 deletion(-) 9886 9887commit cbafa710918195dbba3db02c3fab4f0538235206 9888Author: Lasse Collin <lasse.collin@tukaani.org> 9889Date: 2014-12-21 18:58:44 +0200 9890 9891 Docs: Use lzma_cputhreads() in 04_compress_easy_mt.c. 9892 9893 doc/examples/04_compress_easy_mt.c | 30 ++++++++++++++++++++++++++---- 9894 1 file changed, 26 insertions(+), 4 deletions(-) 9895 9896commit 8dbb57238d372c7263cfeb3e7f7fd9a73173156a 9897Author: Lasse Collin <lasse.collin@tukaani.org> 9898Date: 2014-12-21 18:56:44 +0200 9899 9900 Docs: Update docs/examples/00_README.txt. 9901 9902 doc/examples/00_README.txt | 4 ++++ 9903 1 file changed, 4 insertions(+) 9904 9905commit 6060f7dc76fd6c2a8a1f8e85d0e4d86bb78273e6 9906Author: Lasse Collin <lasse.collin@tukaani.org> 9907Date: 2014-12-21 18:11:17 +0200 9908 9909 Bump version and soname for 5.2.0. 9910 9911 I know that soname != app version, but I skip AGE=1 9912 in -version-info to make the soname match the liblzma 9913 version anyway. It doesn't hurt anything as long as 9914 it doesn't conflict with library versioning rules. 9915 9916 src/liblzma/Makefile.am | 2 +- 9917 src/liblzma/api/lzma/version.h | 6 +++--- 9918 src/liblzma/liblzma.map | 2 +- 9919 3 files changed, 5 insertions(+), 5 deletions(-) 9920