]> git.ipfire.org Git - thirdparty/xz.git/log
thirdparty/xz.git
2 years agoxz: Refactor duplicated check for custom suffix when using --format=raw
Jia Tan [Sat, 7 Jan 2023 13:55:06 +0000 (21:55 +0800)] 
xz: Refactor duplicated check for custom suffix when using --format=raw

2 years agoliblzma: Set documentation on all reserved fields to private.
Jia Tan [Fri, 20 Jan 2023 13:53:14 +0000 (21:53 +0800)] 
liblzma: Set documentation on all reserved fields to private.

This prevents the reserved fields from being part of the generated
Doxygen documentation.

2 years agoliblzma: Highlight liblzma API headers should not be included directly.
Jia Tan [Wed, 21 Dec 2022 15:59:43 +0000 (23:59 +0800)] 
liblzma: Highlight liblzma API headers should not be included directly.

This improves the generated Doxygen HTML files to better highlight
how to properly use the liblzma API header files.

2 years agotuklib_physmem: Silence warning from -Wcast-function-type on MinGW-w64.
Jia Tan [Thu, 19 Jan 2023 12:35:09 +0000 (20:35 +0800)] 
tuklib_physmem: Silence warning from -Wcast-function-type on MinGW-w64.

tuklib_physmem depends on GetProcAddress() for both MSVC and MinGW-w64
to retrieve a function address. The proper way to do this is to cast the
return value to the type of function pointer retrieved. Unfortunately,
this causes a cast-function-type warning, so the best solution is to
simply ignore the warning.

2 years agoxz: Add missing comment for coder_set_compression_settings()
Jia Tan [Mon, 16 Jan 2023 13:35:45 +0000 (21:35 +0800)] 
xz: Add missing comment for coder_set_compression_settings()

2 years agoxz: Do not set compression settings with raw format in list mode.
Jia Tan [Mon, 16 Jan 2023 12:55:10 +0000 (20:55 +0800)] 
xz: Do not set compression settings with raw format in list mode.

Calling coder_set_compression_settings() in list mode with verbose mode
on caused the filter chain and memory requirements to print. This was
unnecessary since the command results in an error and not consistent
with other formats like lzma and alone.

2 years agoTranslations: Update the Brazilian Portuguese translation.
Jia Tan [Fri, 13 Jan 2023 12:37:06 +0000 (20:37 +0800)] 
Translations: Update the Brazilian Portuguese translation.

2 years agoBuild: Omit -Wmissing-noreturn from the default warnings.
Lasse Collin [Thu, 12 Jan 2023 11:04:05 +0000 (13:04 +0200)] 
Build: Omit -Wmissing-noreturn from the default warnings.

It's not that important. It can be annoying in builds that
disable many features since in those cases the tests programs
will correctly trigger this warning with Clang.

2 years agoxz: Use ssize_t for the to-be-ignored return value from write(fd, ptr, 1).
Lasse Collin [Thu, 12 Jan 2023 04:05:58 +0000 (06:05 +0200)] 
xz: Use ssize_t for the to-be-ignored return value from write(fd, ptr, 1).

It makes no difference here as the return value fits into an int
too and it then gets ignored but this looks better.

2 years agoxz: Silence warnings from -Wsign-conversion in a 32-bit build.
Lasse Collin [Thu, 12 Jan 2023 04:01:12 +0000 (06:01 +0200)] 
xz: Silence warnings from -Wsign-conversion in a 32-bit build.

2 years agoliblzma: Silence another warning from -Wsign-conversion in a 32-bit build.
Lasse Collin [Thu, 12 Jan 2023 03:38:48 +0000 (05:38 +0200)] 
liblzma: Silence another warning from -Wsign-conversion in a 32-bit build.

It doesn't warn on a 64-bit system because truncating
a ptrdiff_t (signed long) to uint32_t is diagnosed under
-Wconversion by GCC and -Wshorten-64-to-32 by Clang.

2 years agoliblzma: Silence a warning from -Wsign-conversion in a 32-bit build.
Lasse Collin [Thu, 12 Jan 2023 02:46:45 +0000 (04:46 +0200)] 
liblzma: Silence a warning from -Wsign-conversion in a 32-bit build.

2 years agoBuild: Make configure add more warning flags for GCC and Clang.
Lasse Collin [Thu, 12 Jan 2023 02:17:24 +0000 (04:17 +0200)] 
Build: Make configure add more warning flags for GCC and Clang.

-Wstrict-aliasing was removed from the list since it is enabled
by -Wall already.

A normal build is clean with these on GNU/Linux x86-64 with
GCC 12.2.0 and Clang 14.0.6.

2 years agoTests: Fix warnings from clang --Wassign-enum.
Lasse Collin [Thu, 12 Jan 2023 02:14:18 +0000 (04:14 +0200)] 
Tests: Fix warnings from clang --Wassign-enum.

Explicitly casting the integer to lzma_check silences the warning.
Since such an invalid value is needed in multiple tests, a constant
INVALID_LZMA_CHECK_ID was added to tests.h.

The use of 0x1000 for lzma_block.check wasn't optimal as if
the underlying type is a char then 0x1000 will be truncated to 0.
However, in these test cases the value is ignored, thus even with
such truncation the test would have passed.

2 years agoTests: Silence warnings from -Wsign-conversion.
Lasse Collin [Thu, 12 Jan 2023 01:51:07 +0000 (03:51 +0200)] 
Tests: Silence warnings from -Wsign-conversion.

Note that assigning an unsigned int to lzma_check doesn't warn
on GNU/Linux x86-64 since the enum type is unsigned on that
platform. The enum can be signed on some other platform though
so it's best to use enumeration type lzma_check in these situations.

2 years agoliblzma: Silence warnings from clang -Wconditional-uninitialized.
Lasse Collin [Thu, 12 Jan 2023 01:19:59 +0000 (03:19 +0200)] 
liblzma: Silence warnings from clang -Wconditional-uninitialized.

This is similar to 2ce4f36f179a81d0c6e182a409f363df759d1ad0.
The actual initialization of the variables is done inside
mythread_sync() macro. Clang doesn't seem to see that
the initialization code inside the macro is always executed.

2 years agoFix warnings from clang -Wdocumentation.
Lasse Collin [Thu, 12 Jan 2023 01:11:40 +0000 (03:11 +0200)] 
Fix warnings from clang -Wdocumentation.

2 years agoTests: test_lzip_decoder: Remove trailing white-space.
Lasse Collin [Thu, 12 Jan 2023 01:04:28 +0000 (03:04 +0200)] 
Tests: test_lzip_decoder: Remove trailing white-space.

2 years agoTests: test_lzip_decoder: Silence warnings from -Wsign-conversion.
Lasse Collin [Thu, 12 Jan 2023 01:03:55 +0000 (03:03 +0200)] 
Tests: test_lzip_decoder: Silence warnings from -Wsign-conversion.

2 years agoBump version and soname for 5.4.1. v5.4.1
Lasse Collin [Wed, 11 Jan 2023 16:52:54 +0000 (18:52 +0200)] 
Bump version and soname for 5.4.1.

2 years agoAdd NEWS for 5.4.1.
Jia Tan [Wed, 11 Jan 2023 15:58:16 +0000 (23:58 +0800)] 
Add NEWS for 5.4.1.

2 years agosysdefs.h: Don't include strings.h anymore.
Lasse Collin [Tue, 10 Jan 2023 09:56:11 +0000 (11:56 +0200)] 
sysdefs.h: Don't include strings.h anymore.

On some platforms src/xz/suffix.c may need <strings.h> for
strcasecmp() but suffix.c includes the header when it needs it.

Unless there is an old system that otherwise supports enough C99
to build XZ Utils but doesn't have C89/C90-compatible <string.h>,
there should be no need to include <strings.h> in sysdefs.h.

2 years agoxz: Include <strings.h> in suffix.c if needed for strcasecmp().
Lasse Collin [Tue, 10 Jan 2023 09:23:41 +0000 (11:23 +0200)] 
xz: Include <strings.h> in suffix.c if needed for strcasecmp().

SUSv2 and POSIX.1‐2017 declare only a few functions in <strings.h>.
Of these, strcasecmp() is used on some platforms in suffix.c.
Nothing else in the project needs <strings.h> (at least if
building on a modern system).

sysdefs.h currently includes <strings.h> if HAVE_STRINGS_H is
defined and suffix.c relied on this.

Note that dos/config.h doesn't #define HAVE_STRINGS_H even though
DJGPP does have strings.h. It isn't needed with DJGPP as strcasecmp()
is also in <string.h> in DJGPP.

2 years agoxz: Fix warning -Wformat-nonliteral on clang in message.c.
Jia Tan [Wed, 11 Jan 2023 14:46:48 +0000 (22:46 +0800)] 
xz: Fix warning -Wformat-nonliteral on clang in message.c.

clang and gcc differ in how they handle -Wformat-nonliteral. gcc will
allow a non-literal format string as long as the function takes its
format arguments as a va_list.

2 years agoTests: Fix test_filter_flags copy/paste error.
Jia Tan [Wed, 11 Jan 2023 12:58:31 +0000 (20:58 +0800)] 
Tests: Fix test_filter_flags copy/paste error.

2 years agoTests: Fix type-limits warning in test_filter_flags.
Jia Tan [Wed, 11 Jan 2023 12:42:29 +0000 (20:42 +0800)] 
Tests: Fix type-limits warning in test_filter_flags.

This only occurs in test_filter_flags when the BCJ filters are not
configured and built. In this case, ARRAY_SIZE() returns 0 and causes a
type-limits warning with the loop variable since an unsigned number will
always be >= 0.

2 years agoliblzma: CLMUL CRC64: Work around a bug in MSVC, second attempt.
Lasse Collin [Tue, 10 Jan 2023 20:14:03 +0000 (22:14 +0200)] 
liblzma: CLMUL CRC64: Work around a bug in MSVC, second attempt.

This affects only 32-bit x86 builds. x86-64 is OK as is.

I still cannot easily test this myself. The reporter has tested
this and it passes the tests included in the CMake build and
performance is good: raw CRC64 is 2-3 times faster than the
C version of the slice-by-four method. (Note that liblzma doesn't
include a MSVC-compatible version of the 32-bit x86 assembly code
for the slice-by-four method.)

Thanks to Iouri Kharon for figuring out a fix, testing, and
benchmarking.

2 years agoTests: Fix unused function warning in test_block_header.
Jia Tan [Tue, 10 Jan 2023 17:18:50 +0000 (01:18 +0800)] 
Tests: Fix unused function warning in test_block_header.

One of the global arrays of filters was only used in a test that
required both encoders and decoders to be configured in the build.

2 years agoTests: Fix unused function warning in test_index_hash.
Jia Tan [Tue, 10 Jan 2023 17:08:03 +0000 (01:08 +0800)] 
Tests: Fix unused function warning in test_index_hash.

test_index_hash does not use fill_index_hash() unless both encoders
and decoders are configured in the build.

2 years agoWindows: Update INSTALL-MSVC.txt to recommend CMake over project files.
Lasse Collin [Mon, 9 Jan 2023 22:33:14 +0000 (00:33 +0200)] 
Windows: Update INSTALL-MSVC.txt to recommend CMake over project files.

2 years agoRevert "liblzma: CLMUL CRC64: Workaround a bug in MSVC (VS2015-2022)."
Lasse Collin [Tue, 10 Jan 2023 10:47:16 +0000 (12:47 +0200)] 
Revert "liblzma: CLMUL CRC64: Workaround a bug in MSVC (VS2015-2022)."

This reverts commit 36edc65ab4cf10a131f239acbd423b4510ba52d5.

It was reported that it wasn't a good enough fix and MSVC
still produced (different kind of) bad code when building
for 32-bit x86 if optimizations are enabled.

Thanks to Iouri Kharon.

2 years agosysdefs.h: Fix a comment.
Lasse Collin [Tue, 10 Jan 2023 08:05:13 +0000 (10:05 +0200)] 
sysdefs.h: Fix a comment.

2 years agosysdefs.h: Don't include memory.h anymore even if it were available.
Lasse Collin [Tue, 10 Jan 2023 08:04:06 +0000 (10:04 +0200)] 
sysdefs.h: Don't include memory.h anymore even if it were available.

It quite probably was never needed, that is, any system where memory.h
was required likely couldn't compile XZ Utils for other reasons anyway.

XZ Utils 5.2.6 and later source packages were generated using
Autoconf 2.71 which no longer defines HAVE_MEMORY_H. So the code
being removed is no longer used anyway.

2 years agoCMake/Windows: Add a workaround for windres from GNU binutils.
Lasse Collin [Tue, 10 Jan 2023 06:50:26 +0000 (08:50 +0200)] 
CMake/Windows: Add a workaround for windres from GNU binutils.

This is combined from the following commits in the master branch:
443dfebced041adc88f10d824188eeef5b5821a9
6b117d3b1fe91eb26d533ab16a2e552f84148d47
5e34774c31d1b7509b5cb77a3be9973adec59ea0

Thanks to Iouri Kharon for the bug report, the original patch,
and testing.

2 years agoTests: test_filter_flags: Clean up minor issues.
Lasse Collin [Fri, 6 Jan 2023 20:53:38 +0000 (22:53 +0200)] 
Tests: test_filter_flags: Clean up minor issues.

Here are the list of the most significant issues addressed:
- Avoid using internal common.h header. It's not good to copy the
constants like this but common.h cannot be included for use outside
of liblzma. This is the quickest thing to do that could be fixed later.

- Omit the INIT_FILTER macro. Initialization should be done with just
regular designated initializers.

- Use start_offset = 257 for BCJ tests. It demonstrates that Filter
Flags encoder and decoder don't validate the options thoroughly.
257 is valid only for the x86 filter. This is a bit silly but
not a significant problem in practice because the encoder and
decoder initialization functions will catch bad alignment still.
Perhaps this should be fixed but it's not urgent and doesn't need
to be in 5.4.x.

- Various tweaks to comments such as filter id -> Filter ID

2 years agoTests: Refactors existing filter flags tests.
Jia Tan [Thu, 29 Dec 2022 15:33:33 +0000 (23:33 +0800)] 
Tests: Refactors existing filter flags tests.

Converts the existing filter flags tests into tuktests.

2 years agoTests: tuktest.h: Support tuktest_malloc(0).
Lasse Collin [Sat, 7 Jan 2023 22:32:29 +0000 (00:32 +0200)] 
Tests: tuktest.h: Support tuktest_malloc(0).

It's not needed in XZ Utils at least for now. It's good to support
it still because if such use is needed later, it wouldn't be
caught on GNU/Linux since malloc(0) from glibc returns non-NULL.

2 years agoCMake: Update cmake_minimum_required from 3.13...3.16 to 3.13...3.25.
Lasse Collin [Sat, 7 Jan 2023 19:57:11 +0000 (21:57 +0200)] 
CMake: Update cmake_minimum_required from 3.13...3.16 to 3.13...3.25.

The changes listed on cmake-policies(7) for versions 3.17 to 3.25
shouldn't affect this project.

2 years agoUpdate THANKS.
Lasse Collin [Sat, 7 Jan 2023 22:24:23 +0000 (00:24 +0200)] 
Update THANKS.

2 years agoUpdate THANKS.
Lasse Collin [Sat, 7 Jan 2023 17:50:35 +0000 (19:50 +0200)] 
Update THANKS.

2 years agoCMake: Fix a copypaste error in xzdec Windows resource file handling.
Lasse Collin [Mon, 9 Jan 2023 09:27:24 +0000 (11:27 +0200)] 
CMake: Fix a copypaste error in xzdec Windows resource file handling.

It was my mistake. Thanks to Iouri Kharon for the bug report.

2 years agoCMake/Windows: Add resource files to xz.exe and xzdec.exe.
Lasse Collin [Sat, 7 Jan 2023 17:50:03 +0000 (19:50 +0200)] 
CMake/Windows: Add resource files to xz.exe and xzdec.exe.

The command line tools cannot be built with MSVC for now but
they can be built with MinGW-w64.

Thanks to Iouri Kharon for the bug report and the original patch.

2 years agoliblzma: CLMUL CRC64: Workaround a bug in MSVC (VS2015-2022).
Lasse Collin [Mon, 9 Jan 2023 10:22:05 +0000 (12:22 +0200)] 
liblzma: CLMUL CRC64: Workaround a bug in MSVC (VS2015-2022).

I haven't tested with MSVC myself and there doesn't seem to be
information about the problem online, so I'm relying on the bug report.

Thanks to Iouri Kharon for the bug report and the patch.

2 years agoBuild: Require that _mm_set_epi64x() is usable to enable CLMUL support.
Lasse Collin [Sat, 7 Jan 2023 17:31:15 +0000 (19:31 +0200)] 
Build: Require that _mm_set_epi64x() is usable to enable CLMUL support.

VS2013 doesn't have _mm_set_epi64x() so this way CLMUL gets
disabled with VS2013.

Thanks to Iouri Kharon for the bug report.

2 years agoTests: Creates test_index_hash.c
Jia Tan [Wed, 28 Dec 2022 16:25:18 +0000 (00:25 +0800)] 
Tests: Creates test_index_hash.c

Tests all API functions exported from index_hash.h. Does not have a
dedicated test for lzma_index_hash_end.

[Minor edits were made by Lasse Collin.]

2 years agoliblzma: Remove common.h include from common/index.h.
Jia Tan [Thu, 5 Jan 2023 12:57:25 +0000 (20:57 +0800)] 
liblzma: Remove common.h include from common/index.h.

common/index.h is needed by liblzma internally and tests. common.h will
include and define many things that are not needed by the tests.

Also, this prevents include order problems because both common.h and
lzma.h define LZMA_API. On most platforms it results only in a warning
but on Windows it would break the build as the definition in common.h
must be used only for building liblzma itself.

2 years agoliblzma: Add NULL check to lzma_index_hash_append.
Jia Tan [Wed, 17 Aug 2022 12:20:16 +0000 (20:20 +0800)] 
liblzma: Add NULL check to lzma_index_hash_append.

This is for consistency with lzma_index_append.

2 years agoliblzma: Replaced hardcoded 0x0 index indicator byte with macro
Jia Tan [Wed, 17 Aug 2022 09:59:51 +0000 (17:59 +0800)] 
liblzma: Replaced hardcoded 0x0 index indicator byte with macro

2 years agoStyle: Change #if !defined() to #ifndef in mythread.h.
Jia Tan [Fri, 6 Jan 2023 12:43:31 +0000 (20:43 +0800)] 
Style: Change #if !defined() to #ifndef in mythread.h.

2 years agoBuild: Add missing stream_decoder_mt.c to .vcxproj files.
Jia Tan [Fri, 6 Jan 2023 12:35:55 +0000 (20:35 +0800)] 
Build: Add missing stream_decoder_mt.c to .vcxproj files.

The line in the .vcxproj files for building with was missing in 5.4.0.
Thank to Hajin Jang for reporting the issue.

2 years agoUpdate THANKS.
Lasse Collin [Wed, 4 Jan 2023 20:40:54 +0000 (22:40 +0200)] 
Update THANKS.

2 years agoTests: Adjust style in test_compress.sh.
Lasse Collin [Wed, 4 Jan 2023 16:40:28 +0000 (18:40 +0200)] 
Tests: Adjust style in test_compress.sh.

2 years agoTests: Replace non portable shell parameter expansion
Jia Tan [Wed, 4 Jan 2023 15:58:58 +0000 (23:58 +0800)] 
Tests: Replace non portable shell parameter expansion

The shell parameter expansion using # and ## is not supported in
Solaris 10 Bourne shell (/bin/sh). Even though this is POSIX, it is not fully
portable, so we should avoid it.

2 years agoTranslations: Add Korean translation of man pages.
Jia Tan [Tue, 3 Jan 2023 13:02:38 +0000 (21:02 +0800)] 
Translations: Add Korean translation of man pages.

Thanks to Seong-ho Cho

2 years agoTranslations: Update the Esperanto translation.
Jia Tan [Tue, 3 Jan 2023 12:47:27 +0000 (20:47 +0800)] 
Translations: Update the Esperanto translation.

2 years agoBuild: Fix config.h comments.
Lasse Collin [Mon, 2 Jan 2023 15:05:07 +0000 (17:05 +0200)] 
Build: Fix config.h comments.

2 years agoBuild: Only define HAVE_PROGRAM_INVOCATION_NAME if it is set to 1.
Jia Tan [Mon, 2 Jan 2023 14:33:48 +0000 (22:33 +0800)] 
Build: Only define HAVE_PROGRAM_INVOCATION_NAME if it is set to 1.

HAVE_DECL_PROGRAM_INVOCATION_NAME is renamed to
HAVE_PROGRAM_INVOCATION_NAME. Previously,
HAVE_DECL_PROGRAM_INVOCATION_NAME was always set when
building with autotools. CMake would only set this when it was 1, and the
dos/config.h did not define it. The new macro definition is consistent
across build systems.

2 years agoTests: test_check: Test corner cases of CLMUL CRC64.
Lasse Collin [Fri, 30 Dec 2022 18:10:08 +0000 (20:10 +0200)] 
Tests: test_check: Test corner cases of CLMUL CRC64.

2 years agoTests: Clarify a comment in test_lzip_decoder.c.
Lasse Collin [Fri, 30 Dec 2022 17:36:49 +0000 (19:36 +0200)] 
Tests: Clarify a comment in test_lzip_decoder.c.

2 years agoxz: Includes <time.h> and <sys/time.h> conditionally in mytime.c.
Jia Tan [Wed, 28 Dec 2022 17:55:19 +0000 (01:55 +0800)] 
xz: Includes <time.h> and <sys/time.h> conditionally in mytime.c.

Previously, mytime.c depended on mythread.h for <time.h> to be included.

2 years agoliblzma: Includes sys/time.h conditionally in mythread
Jia Tan [Wed, 28 Dec 2022 17:15:27 +0000 (01:15 +0800)] 
liblzma: Includes sys/time.h conditionally in mythread

Previously, <sys/time.h> was always included, even if mythread only used
clock_gettime. <time.h> is still needed even if clock_gettime is not used
though because struct timespec is needed for mythread_condtime.

2 years agoBuild: No longer require HAVE_DECL_CLOCK_MONOTONIC to always be set.
Jia Tan [Wed, 28 Dec 2022 17:10:53 +0000 (01:10 +0800)] 
Build: No longer require HAVE_DECL_CLOCK_MONOTONIC to always be set.

Previously, if threading was enabled HAVE_DECL_CLOCK_MONOTONIC would always
be set to 0 or 1. However, this macro was needed in xz so if xz was not
built with threading and HAVE_DECL_CLOCK_MONOTONIC was not defined but
HAVE_CLOCK_GETTIME was, it caused a warning during build. Now,
HAVE_DECL_CLOCK_MONOTONIC has been renamed to HAVE_CLOCK_MONOTONIC and
will only be set if it is 1.

2 years agoTranslations: Add Ukrainian translations of man pages.
Jia Tan [Tue, 27 Dec 2022 17:14:07 +0000 (01:14 +0800)] 
Translations: Add Ukrainian translations of man pages.

Thanks to Yuri Chornoivan

2 years agoliblzma: Update documentation for lzma_filter_encoder.
Jia Tan [Thu, 22 Dec 2022 15:14:53 +0000 (23:14 +0800)] 
liblzma: Update documentation for lzma_filter_encoder.

2 years agoTests: Adds lzip decoder tests
Jia Tan [Wed, 21 Dec 2022 13:12:03 +0000 (21:12 +0800)] 
Tests: Adds lzip decoder tests

2 years agoDoxygen: Update .gitignore for generating docs for in source build.
Jia Cheong Tan [Tue, 20 Dec 2022 14:05:21 +0000 (22:05 +0800)] 
Doxygen: Update .gitignore for generating docs for in source build.

In source builds are not recommended, but we should still ignore
the generated artifacts.

2 years agoliblzma: Fix lzma_microlzma_encoder() return value.
Jia Tan [Tue, 20 Dec 2022 12:46:44 +0000 (20:46 +0800)] 
liblzma: Fix lzma_microlzma_encoder() return value.

Using return_if_error on lzma_lzma_lclppb_encode was improper because
return_if_error is expecting an lzma_ret value, but
lzma_lzma_lclppb_encode returns a boolean. This could result in
lzma_microlzma_encoder, which would be misleading for applications.

2 years agoliblzma: Update authors list in arm64.c.
Lasse Collin [Fri, 16 Dec 2022 16:30:02 +0000 (18:30 +0200)] 
liblzma: Update authors list in arm64.c.

2 years agoCMake: Update .gitignore for CMake artifacts from in source build. 2/head
Jia Tan [Fri, 16 Dec 2022 12:58:55 +0000 (20:58 +0800)] 
CMake: Update .gitignore for CMake artifacts from in source build.

In source builds are not recommended, but we can make it easier
by ignoring the generated artifacts from CMake.

2 years agoBump version to 5.4.0 and soname to 5.4.0. v5.4.0
Lasse Collin [Tue, 13 Dec 2022 18:37:17 +0000 (20:37 +0200)] 
Bump version to 5.4.0 and soname to 5.4.0.

2 years agoUpdate INSTALL: CMake on Windows isn't experimental anymore.
Lasse Collin [Tue, 13 Dec 2022 18:29:39 +0000 (20:29 +0200)] 
Update INSTALL: CMake on Windows isn't experimental anymore.

Using CMake to build liblzma should work on a few other OSes
but building the command line tools is still subtly broken.

It is known that shared library versioning may differ between
CMake and Libtool builds on some OSes, most notably Darwin.

2 years agoAdd NEWS for 5.4.0.
Lasse Collin [Tue, 13 Dec 2022 17:47:53 +0000 (19:47 +0200)] 
Add NEWS for 5.4.0.

2 years agoFix a typo in NEWS.
Lasse Collin [Tue, 13 Dec 2022 15:41:20 +0000 (17:41 +0200)] 
Fix a typo in NEWS.

2 years agoAdd NEWS for 5.2.10.
Lasse Collin [Tue, 13 Dec 2022 15:41:03 +0000 (17:41 +0200)] 
Add NEWS for 5.2.10.

2 years agoTests: Fix a typo in tests/files/README.
Lasse Collin [Tue, 13 Dec 2022 10:30:45 +0000 (12:30 +0200)] 
Tests: Fix a typo in tests/files/README.

2 years agoTests: Add two ARM64 test files.
Lasse Collin [Tue, 13 Dec 2022 10:30:09 +0000 (12:30 +0200)] 
Tests: Add two ARM64 test files.

2 years agoTranslations: Update the Catalan translation.
Lasse Collin [Mon, 12 Dec 2022 20:44:21 +0000 (22:44 +0200)] 
Translations: Update the Catalan translation.

2 years agoUpdate THANKS.
Lasse Collin [Mon, 12 Dec 2022 17:18:12 +0000 (19:18 +0200)] 
Update THANKS.

2 years agoUpdate AUTHORS.
Lasse Collin [Mon, 12 Dec 2022 17:07:58 +0000 (19:07 +0200)] 
Update AUTHORS.

2 years agoDocs: Omit multi-threaded decompress from TODO.
Lasse Collin [Mon, 12 Dec 2022 13:31:14 +0000 (15:31 +0200)] 
Docs: Omit multi-threaded decompress from TODO.

The TODO file outdated still.

2 years agoDocs: Update xz-file-format.txt to 1.1.0 for ARM64 filter.
Lasse Collin [Sun, 11 Dec 2022 19:16:09 +0000 (21:16 +0200)] 
Docs: Update xz-file-format.txt to 1.1.0 for ARM64 filter.

2 years agoxz: Rename --experimental-arm64 to --arm64.
Lasse Collin [Sun, 11 Dec 2022 19:13:57 +0000 (21:13 +0200)] 
xz: Rename --experimental-arm64 to --arm64.

2 years agoliblzma: Change LZMA_FILTER_ARM64 to the official Filter ID 0x0A.
Lasse Collin [Sun, 11 Dec 2022 19:13:06 +0000 (21:13 +0200)] 
liblzma: Change LZMA_FILTER_ARM64 to the official Filter ID 0x0A.

2 years agoxz: Make args_info.files_name a const pointer.
Lasse Collin [Thu, 8 Dec 2022 17:24:22 +0000 (19:24 +0200)] 
xz: Make args_info.files_name a const pointer.

2 years agoxz: Don't modify argv[].
Lasse Collin [Thu, 8 Dec 2022 17:18:16 +0000 (19:18 +0200)] 
xz: Don't modify argv[].

The code that parses --memlimit options and --block-list modified
the argv[] when parsing the option string from optarg. This was
visible in "ps auxf" and such and could be confusing. I didn't
understand it back in the day when I wrote that code. Now a copy
is allocated when modifiable strings are needed.

2 years agoTranslations: Update the German man page translations.
Lasse Collin [Thu, 8 Dec 2022 16:18:57 +0000 (18:18 +0200)] 
Translations: Update the German man page translations.

2 years agoTranslations: Update the German translation.
Jia Tan [Tue, 6 Dec 2022 15:05:56 +0000 (23:05 +0800)] 
Translations: Update the German translation.

2 years agoTranslations: Update the Turkish translation.
Jia Tan [Tue, 6 Dec 2022 15:04:25 +0000 (23:04 +0800)] 
Translations: Update the Turkish translation.

2 years agoTranslations: Update the Croatian translation.
Jia Tan [Tue, 6 Dec 2022 15:02:11 +0000 (23:02 +0800)] 
Translations: Update the Croatian translation.

2 years agoTranslations: Add Romanian translation of man pages.
Jia Tan [Tue, 6 Dec 2022 14:56:30 +0000 (22:56 +0800)] 
Translations: Add Romanian translation of man pages.

Thanks to Remus-Gabriel Chelu.

2 years agoTranslations: Update the Romanian translation.
Jia Tan [Tue, 6 Dec 2022 14:52:13 +0000 (22:52 +0800)] 
Translations: Update the Romanian translation.

2 years agoliblzma: Check for unexpected NULL pointers in block_header_decode().
Lasse Collin [Thu, 8 Dec 2022 15:30:09 +0000 (17:30 +0200)] 
liblzma: Check for unexpected NULL pointers in block_header_decode().

The API docs gave an impression that such checks are done
but they actually weren't done. In practice it made little
difference since the calling code has a bug if these are NULL.

Thanks to Jia Tan for the original patch that checked for
block->filters == NULL.

2 years agoBump version number for 5.3.5beta. v5.3.5beta
Lasse Collin [Thu, 1 Dec 2022 18:59:32 +0000 (20:59 +0200)] 
Bump version number for 5.3.5beta.

This also sorts the symbol names alphabetically in liblzma_*.map.

2 years agoAdd NEWS for 5.3.5beta.
Lasse Collin [Thu, 1 Dec 2022 18:57:26 +0000 (20:57 +0200)] 
Add NEWS for 5.3.5beta.

2 years agoUpdate THANKS.
Lasse Collin [Thu, 1 Dec 2022 18:57:09 +0000 (20:57 +0200)] 
Update THANKS.

2 years agoliblzma: Use __has_attribute(__symver__) to fix Clang detection.
Lasse Collin [Thu, 1 Dec 2022 18:04:17 +0000 (20:04 +0200)] 
liblzma: Use __has_attribute(__symver__) to fix Clang detection.

If someone sets up Clang to define __GNUC__ to 10 or greater
then symvers broke. __has_attribute is supported by such GCC
and Clang versions that don't support __symver__ so this should
be much better and simpler way to detect if __symver__ is
actually supported.

Thanks to Tomasz Gajc for the bug report.

2 years agoliblzma: Omit zero-skipping from ARM64 filter.
Lasse Collin [Thu, 1 Dec 2022 16:51:52 +0000 (18:51 +0200)] 
liblzma: Omit zero-skipping from ARM64 filter.

It has some complicated downsides and its usefulness is more limited
than I originally thought. So this change is bad for certain very
specific situations but a generic solution that works for other
filters (and is otherwise better too) is planned anyway. And this
way 7-Zip can use the same compatible filter for the .7z format.

This is still marked as experimental with a new temporary Filter ID.

2 years agoxz: Omit the special notes about ARM64 filter on the man page.
Lasse Collin [Thu, 1 Dec 2022 16:13:27 +0000 (18:13 +0200)] 
xz: Omit the special notes about ARM64 filter on the man page.

2 years agoliblzma: Don't be over-specific in lzma_str_to_filters API doc.
Lasse Collin [Thu, 1 Dec 2022 16:12:03 +0000 (18:12 +0200)] 
liblzma: Don't be over-specific in lzma_str_to_filters API doc.

2 years agoliblzma: Silence unused variable warning when BCJ filters are disabled.
Lasse Collin [Thu, 1 Dec 2022 15:54:23 +0000 (17:54 +0200)] 
liblzma: Silence unused variable warning when BCJ filters are disabled.

Thanks to Jia Tan for the original patch.