]> git.ipfire.org Git - thirdparty/xz.git/log
thirdparty/xz.git
23 months agoCMake: Create liblzma.def when building liblzma.dll with MinGW-w64.
Lasse Collin [Wed, 27 Sep 2023 19:46:20 +0000 (22:46 +0300)] 
CMake: Create liblzma.def when building liblzma.dll with MinGW-w64.

23 months agoCMake: Change one CMAKE_CURRENT_SOURCE_DIR to CMAKE_CURRENT_LIST_DIR.
Lasse Collin [Thu, 26 Oct 2023 18:44:42 +0000 (21:44 +0300)] 
CMake: Change one CMAKE_CURRENT_SOURCE_DIR to CMAKE_CURRENT_LIST_DIR.

In this case they have identical values.

23 months agoCMake/Windows: Fix the import library filename.
Lasse Collin [Sun, 1 Oct 2023 16:10:57 +0000 (19:10 +0300)] 
CMake/Windows: Fix the import library filename.

Both PREFIX and IMPORT_PERFIX have to be set to "" to get
liblzma.dll and liblzma.dll.a.

23 months agoCMake: Don't shadow the cache entry ENABLE_THREADS with a normal variable.
Lasse Collin [Wed, 11 Oct 2023 16:47:44 +0000 (19:47 +0300)] 
CMake: Don't shadow the cache entry ENABLE_THREADS with a normal variable.

Using set(ENABLE_THREADS "posix") is confusing because it sets
a new normal variable and leaves the cache entry with the same
name unchanged. The intent wasn't to change the cache entry so
this switches to a different variable name.

23 months agoCMake: Edit threading related messages.
Lasse Collin [Mon, 9 Oct 2023 18:12:31 +0000 (21:12 +0300)] 
CMake: Edit threading related messages.

It's mostly to change from "thread method" to "threading method".

23 months agoCMake: Use FATAL_ERROR if user-supplied options aren't understood.
Lasse Collin [Mon, 9 Oct 2023 17:59:24 +0000 (20:59 +0300)] 
CMake: Use FATAL_ERROR if user-supplied options aren't understood.

This way typos are caught quickly and compounding error messages
are avoided (a single typo could cause more than one error).

This keeps using SEND_ERROR when the system is lacking a feature
(like threading library or sandboxing method). This way the whole
configuration log will be generated in case someone wishes to
report a problem upstream.

23 months agoCMake: Add ALLOW_CLMUL_CRC option to enable/disable CLMUL.
Jia Tan [Thu, 19 Oct 2023 08:09:01 +0000 (16:09 +0800)] 
CMake: Add ALLOW_CLMUL_CRC option to enable/disable CLMUL.

The option is enabled by default, but will only be visible to a user
listing cache variables or using a CMake GUI application if the
immintrin.h header file is found.

This mirrors our Autotools build --disable-clmul-crc functionality.

23 months agotuklib_integer: Revise unaligned reads and writes on strict-align archs.
Lasse Collin [Sat, 14 Oct 2023 14:56:59 +0000 (17:56 +0300)] 
tuklib_integer: Revise unaligned reads and writes on strict-align archs.

In XZ Utils context this doesn't matter much because
unaligned reads and writes aren't used in hot code
when TUKLIB_FAST_UNALIGNED_ACCESS isn't #defined.

23 months agotuklib_integer: Add missing write64be and write64le fallback functions.
Lasse Collin [Fri, 22 Sep 2023 23:21:49 +0000 (02:21 +0300)] 
tuklib_integer: Add missing write64be and write64le fallback functions.

23 months agoBuild: Update visibility.m4 from Gnulib.
Jia Tan [Thu, 12 Oct 2023 12:12:18 +0000 (20:12 +0800)] 
Build: Update visibility.m4 from Gnulib.

Updating from version 6 -> 8 from upstream. Declarations for variables
and function bodies were added to avoid unnecessary failures with
-Werror.

23 months agoUpdate THANKS.
Lasse Collin [Fri, 6 Oct 2023 16:36:35 +0000 (19:36 +0300)] 
Update THANKS.

23 months agoCMake: Rename xz and man page symlink custom targets.
Jia Tan [Fri, 29 Sep 2023 12:14:39 +0000 (20:14 +0800)] 
CMake: Rename xz and man page symlink custom targets.

The Ninja Generator for CMake cannot have a custom target and its
BYPRODUCTS have the same name. This has prevented Ninja builds on
Unix-like systems since the xz symlinks were introduced in
80a1a8bb838842a2be343bd88ad1462c21c5e2c9.

23 months agoCMake: Fix Windows build with Clang/LLVM 17.
Lasse Collin [Wed, 27 Sep 2023 16:54:35 +0000 (19:54 +0300)] 
CMake: Fix Windows build with Clang/LLVM 17.

llvm-windres 17.0.0 has more accurate emulation of GNU windres, so
the hack for GNU windres must now be used with llvm-windres too.

LLVM 16.0.6 has the old behavior and there likely won't be more
16.x releases. So we can simply check for >= 17.0.0.

The workaround must not be used with Clang that is acting in
MSVC mode. This checks for the known environments that need
the workaround instead of using "NOT MSVC".

See also:
https://github.com/llvm/llvm-project/commit/2bcc0fdc58a220cb9921b47ec8a32c85f2511a47

23 months agoliblzma: Avoid compiler warning without creating extra symbol.
Jia Tan [Tue, 26 Sep 2023 16:02:11 +0000 (00:02 +0800)] 
liblzma: Avoid compiler warning without creating extra symbol.

When the generic fast crc64 method is used, then we omit
lzma_crc64_table[][].

The C standards don't allow an empty translation unit which can be
avoided by declaring something, without exporting any symbols.

23 months agoBuild: Update the comment about -Werror usage in checks.
Lasse Collin [Tue, 26 Sep 2023 14:24:15 +0000 (17:24 +0300)] 
Build: Update the comment about -Werror usage in checks.

23 months agoBuild: Fix underquoted AC_LANG_SOURCE.
Lasse Collin [Tue, 26 Sep 2023 10:51:31 +0000 (13:51 +0300)] 
Build: Fix underquoted AC_LANG_SOURCE.

It made no practical difference in this case.

23 months agoBuild: Silence Autoconf warning.
Lasse Collin [Tue, 26 Sep 2023 10:14:37 +0000 (13:14 +0300)] 
Build: Silence Autoconf warning.

There was a use of AC_COMPILE_IFELSE that didn't use
AC_LANG_SOURCE and Autoconf warned about this. The omission
had been intentional but it turned out that this didn't do
what I thought it would.

Autoconf 2.71 manual gives an impression that AC_LANG_SOURCE
inserts all #defines that have been made with AC_DEFINE so
far (confdefs.h). The idea was that omitting AC_LANG_SOURCE
would mean that only the exact code included in the
AC_COMPILE_IFELSE call would be compiled.

With C programs this is not true: the #defines get added without
AC_LANG_SOURCE too. There seems to be no neat way to avoid this.
Thus, with the C language at least, adding AC_LANG_SOURCE makes
no other difference than silencing a warning from Autoconf. The
generated "configure" remains identical. (Docs of AC_LANG_CONFTEST
say that the #defines have been inserted since Autoconf 2.63b and
that AC_COMPILE_IFELSE uses AC_LANG_CONFTEST. So the behavior is
documented if one also reads the docs of macros that one isn't
calling directly.)

Any extra code, including #defines, can cause problems for
these two tests because these tests must use -Werror.
CC=clang CFLAGS=-Weverything is the most extreme example.
It enables -Wreserved-macro-identifier which warns about
It's possible to write a test file that passes -Weverything but
it becomes impossible when Autoconf inserts confdefs.h.

So this commit adds AC_LANG_SOURCE to silence Autoconf warnings.
A different solution is needed for -Werror tests.

23 months agoBuild: Remove Gnulib dependency from tests.
Jia Tan [Mon, 25 Sep 2023 16:47:26 +0000 (00:47 +0800)] 
Build: Remove Gnulib dependency from tests.

The tests do not use any Gnulib replacements so they do not need to link
libgnu.a or have /lib in the include path.

23 months agoCMake: Remove /lib from tests include path.
Jia Tan [Mon, 25 Sep 2023 16:43:43 +0000 (00:43 +0800)] 
CMake: Remove /lib from tests include path.

The tests never included anything from /lib, so this was not needed.

23 months agosysdefs.h: Update the comment about __USE_MINGW_ANSI_STDIO.
Lasse Collin [Sun, 24 Sep 2023 13:32:32 +0000 (16:32 +0300)] 
sysdefs.h: Update the comment about __USE_MINGW_ANSI_STDIO.

23 months agoxz: Windows: Don't (de)compress to special files like "con" or "nul".
Lasse Collin [Thu, 21 Sep 2023 23:33:29 +0000 (02:33 +0300)] 
xz: Windows: Don't (de)compress to special files like "con" or "nul".

Before this commit, the following writes "foo" to the
console and deletes the input file:

    echo foo | xz > con_xz
    xz --suffix=_xz --decompress con_xz

It cannot happen without --suffix because names like con.xz
are also special and so attempting to decompress con.xz
(or compress con to con.xz) will already fail when opening
the input file.

Similar thing is possible when compressing. The following
writes to "nul" and the input file "n" is deleted.

    echo foo | xz > n
    xz --suffix=ul n

Now xz checks if the destination is a special file before
continuing. DOS/DJGPP version had a check for this but
Windows (and OS/2) didn't.

23 months agoCMake: Wrap two overlong lines that are possible to wrap.
Lasse Collin [Thu, 21 Sep 2023 17:42:52 +0000 (20:42 +0300)] 
CMake: Wrap two overlong lines that are possible to wrap.

23 months agoCMake: Add a comment about threads on Cygwin.
Lasse Collin [Thu, 21 Sep 2023 17:36:31 +0000 (20:36 +0300)] 
CMake: Add a comment about threads on Cygwin.

23 months agoCMake: Bump maximum policy version to 3.27.
Lasse Collin [Tue, 12 Sep 2023 18:12:34 +0000 (21:12 +0300)] 
CMake: Bump maximum policy version to 3.27.

There are several new policies. CMP0149 may affect the Windows SDK
version that CMake will choose by default. The new behavior is more
predictable, always choosing the latest SDK version by default.

The other new policies shouldn't affect this package.

23 months agoDoxygen: Add more C macro names to PREDEFINED.
Lasse Collin [Fri, 8 Sep 2023 16:08:57 +0000 (19:08 +0300)] 
Doxygen: Add more C macro names to PREDEFINED.

23 months agoliblzma: Move a few __attribute__ uses in function declarations.
Lasse Collin [Mon, 11 Sep 2023 15:47:26 +0000 (18:47 +0300)] 
liblzma: Move a few __attribute__ uses in function declarations.

The API headers have many attributes but these were left
as is for now.

23 months agoxz, xzdec, lzmainfo: Use tuklib_attr_noreturn.
Lasse Collin [Mon, 11 Sep 2023 16:03:35 +0000 (19:03 +0300)] 
xz, xzdec, lzmainfo: Use tuklib_attr_noreturn.

For compatibility with C23's [[noreturn]], tuklib_attr_noreturn
must be at the beginning of declaration (before "extern" or
"static", and even before any GNU C's __attribute__).

This commit also moves all other function attributes to
the beginning of function declarations. "extern" is kept
at the beginning of a line so the attributes are listed on
separate lines before "extern" or "static".

23 months agoRemove incorrect uses of __attribute__((__malloc__)).
Lasse Collin [Mon, 11 Sep 2023 15:53:31 +0000 (18:53 +0300)] 
Remove incorrect uses of __attribute__((__malloc__)).

xrealloc() is obviously incorrect, modern GCC docs even
mention realloc() as an example where this attribute
cannot be used.

liblzma's lzma_alloc() and lzma_alloc_zero() would be
correct uses most of the time but custom allocators
may use a memory pool or otherwise hold the pointer
so aliasing issues could happen in theory.

The xstrdup() case likely was correct but I removed it anyway.
Now there are no __malloc__ attributes left in the code.
The allocations aren't in hot paths so this should make
no practical difference.

23 months agoUpdate THANKS.
Lasse Collin [Tue, 19 Sep 2023 11:03:45 +0000 (14:03 +0300)] 
Update THANKS.

23 months agoUpdate THANKS.
Lasse Collin [Thu, 14 Sep 2023 13:35:46 +0000 (16:35 +0300)] 
Update THANKS.

23 months agoliblzma: Mark crc64_clmul() with __attribute__((__no_sanitize_address__)).
Lasse Collin [Thu, 14 Sep 2023 13:34:07 +0000 (16:34 +0300)] 
liblzma: Mark crc64_clmul() with __attribute__((__no_sanitize_address__)).

Thanks to Agostino Sarubbo.
Fixes: https://github.com/tukaani-project/xz/issues/62
23 months agoCMake: Fix time.h checks not running on second CMake run.
Jia Tan [Tue, 12 Sep 2023 14:36:12 +0000 (22:36 +0800)] 
CMake: Fix time.h checks not running on second CMake run.

If CMake was configured more than once, HAVE_CLOCK_GETTIME and
HAVE_CLOCK_MONOTONIC would not be set as compile definitions. The check
for librt being needed to provide HAVE_CLOCK_GETTIME was also
simplified.

23 months agoCMake: Fix unconditionally defining HAVE_CLOCK_MONOTONIC.
Jia Tan [Tue, 12 Sep 2023 14:34:06 +0000 (22:34 +0800)] 
CMake: Fix unconditionally defining HAVE_CLOCK_MONOTONIC.

If HAVE_CLOCK_GETTIME was defined, then HAVE_CLOCK_MONOTONIC was always
added as a compile definition even if the check for it failed.

23 months agoxz: Refactor thousand separator detection and disable it on MSVC.
Lasse Collin [Thu, 31 Aug 2023 16:50:05 +0000 (19:50 +0300)] 
xz: Refactor thousand separator detection and disable it on MSVC.

Now the two variations of the format strings are created with
a macro, and the whole detection code can be easily disabled
on platforms where thousand separator formatting is known to
not work (MSVC has no support, and on DJGPP 2.05 it can have
problems in some cases).

23 months agoxz: Fix a too relaxed assertion and remove uses of SSIZE_MAX.
Lasse Collin [Thu, 31 Aug 2023 15:14:43 +0000 (18:14 +0300)] 
xz: Fix a too relaxed assertion and remove uses of SSIZE_MAX.

SSIZE_MAX isn't readily available on MSVC. Removing it means
that there is one thing less to worry when porting to MSVC.

23 months agoTests: Improve invalid unpadded size check in test_lzma_index_append().
Jia Tan [Mon, 28 Aug 2023 15:14:45 +0000 (23:14 +0800)] 
Tests: Improve invalid unpadded size check in test_lzma_index_append().

This check was extended to test the code added to fix a failing assert
in 68bda971bb8b666a009331455fcedb4e18d837a4.

2 years agoTests: Improve comments in test_index.c.
Jia Tan [Mon, 28 Aug 2023 13:54:41 +0000 (21:54 +0800)] 
Tests: Improve comments in test_index.c.

2 years agoUpdate THANKS.
Jia Tan [Mon, 28 Aug 2023 13:52:54 +0000 (21:52 +0800)] 
Update THANKS.

2 years agoliblzma: Update assert in vli_ceil4().
Jia Tan [Mon, 28 Aug 2023 13:50:16 +0000 (21:50 +0800)] 
liblzma: Update assert in vli_ceil4().

The argument to vli_ceil4() should always guarantee the return value
is also a valid lzma_vli. Thus the highest three valid lzma_vli values
are invalid arguments. All uses of the function ensure this so the
assert is updated to match this.

2 years agoliblzma: Add overflow check for Unpadded size in lzma_index_append().
Jia Tan [Mon, 28 Aug 2023 13:31:25 +0000 (21:31 +0800)] 
liblzma: Add overflow check for Unpadded size in lzma_index_append().

This was not a security bug since there was no path to overflow
UINT64_MAX in lzma_index_append() or when it calls index_file_size().
The bug was discovered by a failing assert() in vli_ceil4() when called
from index_file_size() when unpadded_sum (the sum of the compressed size
of current Stream and the unpadded_size parameter) exceeds LZMA_VLI_MAX.

Previously, the unpadded_size parameter was checked to be not greater
than UNPADDED_SIZE_MAX, but no check was done once compressed_base was
added.

This could not have caused an integer overflow in index_file_size() when
called by lzma_index_append(). The calculation for file_size breaks down
into the sum of:

- Compressed base from all previous Streams
- 2 * LZMA_STREAM_HEADER_SIZE (size of the current Streams header and
  footer)
- stream_padding (can be set by lzma_index_stream_padding())
- Compressed base from the current Stream
- Unpadded size (parameter to lzma_index_append())

The sum of everything except for Unpadded size must be less than
LZMA_VLI_MAX. This is guarenteed by overflow checks in the functions
that can set these values including lzma_index_stream_padding(),
lzma_index_append(), and lzma_index_cat(). The maximum value for
Unpadded size is enforced by lzma_index_append() to be less than or
equal UNPADDED_SIZE_MAX. Thus, the sum cannot exceed UINT64_MAX since
LZMA_VLI_MAX is half of UINT64_MAX.

Thanks to Joona Kannisto for reporting this.

2 years agoTranslations: Update the Esperanto translation.
Jia Tan [Mon, 28 Aug 2023 14:18:29 +0000 (22:18 +0800)] 
Translations: Update the Esperanto translation.

2 years agoDocs: Update INSTALL for --enable-threads method win95.
Jia Tan [Wed, 9 Aug 2023 12:55:36 +0000 (20:55 +0800)] 
Docs: Update INSTALL for --enable-threads method win95.

The Autotools build allows win95 threads and --enable-small together now
if the compiler supports __attribute__((__constructor__)).

2 years agoCMake: Conditionally allow win95 threads and --enable-small.
Jia Tan [Wed, 9 Aug 2023 12:54:15 +0000 (20:54 +0800)] 
CMake: Conditionally allow win95 threads and --enable-small.

2 years agoBuild: Conditionally allow win95 threads and --enable-small.
Jia Tan [Wed, 9 Aug 2023 12:35:16 +0000 (20:35 +0800)] 
Build: Conditionally allow win95 threads and --enable-small.

When the compiler supports __attribute__((__constructor__))
mythread_once() is never used, even with --enable-small. A configuration
with win95 threads and --enable-small will compile and be thread safe so
it can be allowed.

This isn't a very common configuration since MSVC does not support
__attribute__((__constructor__)), but MINGW32 and CLANG32 environments
for MSYS2 can use win95 threads and have
__attribute__((__constructor__)) support.

2 years agomythread.h: Fix typo error in Vista threads mythread_once().
Jamaika1 [Tue, 8 Aug 2023 12:07:59 +0000 (14:07 +0200)] 
mythread.h: Fix typo error in Vista threads mythread_once().

The "once_" variable was accidentally referred to as just "once". This
prevented building with Vista threads when
HAVE_FUNC_ATTRIBUTE_CONSTRUCTOR was not defined.

2 years agoTests: Style fixes to test_lzip_decoder.c.
Jia Tan [Thu, 3 Aug 2023 12:10:21 +0000 (20:10 +0800)] 
Tests: Style fixes to test_lzip_decoder.c.

2 years agoTranslations: Update the Chinese (simplified) translation.
Jia Tan [Thu, 3 Aug 2023 07:56:20 +0000 (15:56 +0800)] 
Translations: Update the Chinese (simplified) translation.

2 years agoxz: Omit an empty paragraph on the man page.
Lasse Collin [Wed, 2 Aug 2023 14:15:12 +0000 (17:15 +0300)] 
xz: Omit an empty paragraph on the man page.

2 years agoBump version and soname for 5.4.4. v5.4.4
Jia Tan [Wed, 2 Aug 2023 12:32:20 +0000 (20:32 +0800)] 
Bump version and soname for 5.4.4.

2 years agoAdd NEWS for 5.4.4.
Jia Tan [Wed, 2 Aug 2023 12:30:07 +0000 (20:30 +0800)] 
Add NEWS for 5.4.4.

2 years agobuild-aux/manconv.sh: Fix US-ASCII and UTF-8 output.
Lasse Collin [Wed, 2 Aug 2023 12:19:43 +0000 (15:19 +0300)] 
build-aux/manconv.sh: Fix US-ASCII and UTF-8 output.

groff defaults to SGR escapes. Using -P-c passes -c to grotty
which restores the old behavior. Perhaps there is a better way to
get pure plain text output but this works for now.

2 years agoUpdate THANKS.
Lasse Collin [Tue, 1 Aug 2023 16:10:43 +0000 (19:10 +0300)] 
Update THANKS.

2 years agoUpdate THANKS.
Lasse Collin [Tue, 1 Aug 2023 15:22:24 +0000 (18:22 +0300)] 
Update THANKS.

2 years agomythread.h: Disable signal functions in builds targeting Wasm + WASI.
ChanTsune [Tue, 1 Aug 2023 15:17:17 +0000 (18:17 +0300)] 
mythread.h: Disable signal functions in builds targeting Wasm + WASI.

signal.h in WASI SDK doesn't currently provide sigprocmask()
or sigset_t. liblzma doesn't need them so this change makes
liblzma and xzdec build against WASI SDK. xz doesn't build yet
and the tests don't either as tuktest needs setjmp() which
isn't (yet?) implemented in WASI SDK.

Closes: https://github.com/tukaani-project/xz/pull/57
See also: https://github.com/tukaani-project/xz/pull/56

(The original commit was edited a little by Lasse Collin.)

2 years agoDocs: Fix typos found by codespell
Dimitri Papadopoulos Orfanos [Mon, 31 Jul 2023 12:02:21 +0000 (14:02 +0200)] 
Docs: Fix typos found by codespell

2 years agoUpdate .gitignore.
Jia Tan [Wed, 26 Jul 2023 12:26:23 +0000 (20:26 +0800)] 
Update .gitignore.

2 years agoCMake: Conditionally allow the creation of broken symlinks.
Jia Tan [Fri, 28 Jul 2023 14:03:08 +0000 (22:03 +0800)] 
CMake: Conditionally allow the creation of broken symlinks.

The CMake build will try to create broken symlinks on Unix and Unix-like
platforms. Cygwin and MSYS2 are Unix-like, but may not be able to create
broken symlinks. The value of the CYGWIN or MSYS environment variables
determine if broken symlinks are valid.

The default for MSYS2 does not allow for broken symlinks, so the CMake
build has been broken for MSYS2 since commit
80a1a8bb838842a2be343bd88ad1462c21c5e2c9.

2 years agoliblzma: Prevent an empty translation unit in Windows builds.
Jia Tan [Mon, 24 Jul 2023 13:43:44 +0000 (21:43 +0800)] 
liblzma: Prevent an empty translation unit in Windows builds.

To workaround Automake lacking Windows resource compiler support, an
empty source file is compiled to overwrite the resource files for static
library builds. Translation units without an external declaration are
not allowed by the C standard and result in a warning when used with
-Wempty-translation-unit (Clang) or -pedantic (GCC).

2 years agoTests: Skip .lz files in test_files.sh if not configured.
Jia Tan [Fri, 21 Jul 2023 10:05:44 +0000 (18:05 +0800)] 
Tests: Skip .lz files in test_files.sh if not configured.

Previously if the lzip decoder was not configured then test_files.sh
would pass the lzip tests instead of skipping them.

2 years agoTests: Add ARM64 filter test to test_compress.sh.
Jia Tan [Thu, 20 Jul 2023 14:11:13 +0000 (22:11 +0800)] 
Tests: Add ARM64 filter test to test_compress.sh.

2 years agoTranslations: Update the Vietnamese translation.
Jia Tan [Sat, 22 Jul 2023 10:37:56 +0000 (18:37 +0800)] 
Translations: Update the Vietnamese translation.

2 years agoTranslations: Update the Croatian translation.
Jia Tan [Thu, 20 Jul 2023 12:30:05 +0000 (20:30 +0800)] 
Translations: Update the Croatian translation.

2 years agoTranslations: Update the Korean man page translations.
Jia Tan [Thu, 20 Jul 2023 12:28:32 +0000 (20:28 +0800)] 
Translations: Update the Korean man page translations.

2 years agoTranslations: Update the Korean translation.
Jia Tan [Thu, 20 Jul 2023 12:25:24 +0000 (20:25 +0800)] 
Translations: Update the Korean translation.

2 years agoTranslations: Update the Polish translation.
Jia Tan [Thu, 20 Jul 2023 12:24:05 +0000 (20:24 +0800)] 
Translations: Update the Polish translation.

2 years agoTranslations: Update the German man page translations.
Jia Tan [Thu, 20 Jul 2023 12:22:23 +0000 (20:22 +0800)] 
Translations: Update the German man page translations.

2 years agoTranslations: Update the German translation.
Jia Tan [Thu, 20 Jul 2023 12:18:44 +0000 (20:18 +0800)] 
Translations: Update the German translation.

2 years agoTranslations: Update the Chinese (simplified) translation.
Jia Tan [Thu, 20 Jul 2023 12:17:10 +0000 (20:17 +0800)] 
Translations: Update the Chinese (simplified) translation.

2 years agoTranslations: Update the Swedish translation.
Jia Tan [Thu, 20 Jul 2023 12:15:47 +0000 (20:15 +0800)] 
Translations: Update the Swedish translation.

2 years agoTranslations: Update the Ukrainian man page translations.
Jia Tan [Thu, 20 Jul 2023 12:14:00 +0000 (20:14 +0800)] 
Translations: Update the Ukrainian man page translations.

2 years agoTranslations: Update the Ukrainian translation.
Jia Tan [Thu, 20 Jul 2023 12:09:15 +0000 (20:09 +0800)] 
Translations: Update the Ukrainian translation.

2 years agoTranslations: Update the Spanish translation.
Jia Tan [Thu, 20 Jul 2023 12:06:57 +0000 (20:06 +0800)] 
Translations: Update the Spanish translation.

2 years agoTranslations: Update the Romanian translation.
Jia Tan [Thu, 20 Jul 2023 12:05:19 +0000 (20:05 +0800)] 
Translations: Update the Romanian translation.

2 years agoTranslations: Update the Romanian man page translations.
Jia Tan [Thu, 20 Jul 2023 12:02:56 +0000 (20:02 +0800)] 
Translations: Update the Romanian man page translations.

2 years agoxz: Update man page Authors and date.
Jia Tan [Thu, 13 Jul 2023 13:26:47 +0000 (21:26 +0800)] 
xz: Update man page Authors and date.

2 years agoxz: Slight reword in xz man page for consistency.
Jia Tan [Tue, 18 Jul 2023 15:19:09 +0000 (23:19 +0800)] 
xz: Slight reword in xz man page for consistency.

Changed will print => prints in xz --robot --version description to
match --robot --info-memory description.

2 years agoliblzma: Improve comment in string_conversion.c.
Jia Tan [Tue, 18 Jul 2023 14:49:57 +0000 (22:49 +0800)] 
liblzma: Improve comment in string_conversion.c.

The comment used "flag" when referring to decoder options. Just
referring to them as options is more clear and consistent.

2 years agoliblzma: Reword lzma_str_list_filters() documentation.
Jia Tan [Sat, 13 May 2023 13:21:54 +0000 (21:21 +0800)] 
liblzma: Reword lzma_str_list_filters() documentation.

Reword "options required" to "options read". The previous wording
may have suggested that the options listed were all required when
the filters are used for encoding or decoding. Now it should be
more clear that the options listed are the ones relevant for
encoding or decoding.

2 years agoxz: Translate the second "%s: " in message.c since French needs "%s : ".
Lasse Collin [Tue, 18 Jul 2023 14:37:33 +0000 (17:37 +0300)] 
xz: Translate the second "%s: " in message.c since French needs "%s : ".

This string is used to print a filename when using "xz -v" and
stderr isn't a terminal.

2 years agoxz: Make "%s: %s" translatable because French needs "%s : %s".
Lasse Collin [Tue, 18 Jul 2023 11:35:33 +0000 (14:35 +0300)] 
xz: Make "%s: %s" translatable because French needs "%s : %s".

2 years agoliblzma: Tweak #if condition in memcmplen.h.
Lasse Collin [Tue, 18 Jul 2023 10:57:54 +0000 (13:57 +0300)] 
liblzma: Tweak #if condition in memcmplen.h.

Maybe ICC always #defines _MSC_VER on Windows but now
it's very clear which code will get used.

2 years agoliblzma: Omit unnecessary parenthesis in a preprocessor directive.
Lasse Collin [Tue, 18 Jul 2023 10:49:43 +0000 (13:49 +0300)] 
liblzma: Omit unnecessary parenthesis in a preprocessor directive.

2 years agoliblzma: Prevent warning for MSYS2 Windows build.
Jia Tan [Wed, 28 Jun 2023 12:22:38 +0000 (20:22 +0800)] 
liblzma: Prevent warning for MSYS2 Windows build.

In lzma_memcmplen(), the <intrin.h> header file is only included if
_MSC_VER and _M_X64 are both defined but _BitScanForward64() was
previously used if _M_X64 was defined. GCC for MSYS2 defines _M_X64 but
not _MSC_VER so _BitScanForward64() was used without including
<intrin.h>.

Now, lzma_memcmplen() will use __builtin_ctzll() for MSYS2 GCC builds as
expected.

2 years agoDocs: Add a new section to INSTALL for Tests.
Jia Tan [Fri, 14 Jul 2023 15:20:33 +0000 (23:20 +0800)] 
Docs: Add a new section to INSTALL for Tests.

The new Tests section describes basic information about the tests, how
to run them, and important details when cross compiling. We have had a
few questions about how to compile the tests without running them, so
hopefully this information will help others with the same question in the
future.

Fixes: https://github.com/tukaani-project/xz/issues/54
2 years agoDocs: Update README.
Jia Tan [Fri, 14 Jul 2023 13:10:27 +0000 (21:10 +0800)] 
Docs: Update README.

This adds an entry to "Other implementations of the .xz format" for
XZ for Java.

2 years agoxz: Fix typo in man page.
Jia Tan [Tue, 18 Jul 2023 10:27:46 +0000 (13:27 +0300)] 
xz: Fix typo in man page.

The Memory limit information section described three output
columns when it actually has six. This was reworded to
"multiple" to make it more future proof.

2 years agoTests: Improve feature testing for skipping.
Jia Tan [Fri, 14 Jul 2023 13:30:25 +0000 (21:30 +0800)] 
Tests: Improve feature testing for skipping.

Fixed a bug where test_compress_* would all fail if arm64 or armthumb
filters were enabled for compression but arm was disabled. Since the
grep tests only checked for "define HAVE_ENCODER_ARM", this would match
on HAVE_ENCODER_ARM64 or HAVE_ENCODER_ARMTHUMB.

Now the config.h feature test requires " 1" at the end to prevent the
prefix problem. have_feature() was also updated for this even though
there were known current bugs affecting it. This is just in case future
features have a similar prefix problem.

2 years agoTranslations: Update the Chinese (traditional) translation.
Jia Tan [Mon, 10 Jul 2023 12:56:28 +0000 (20:56 +0800)] 
Translations: Update the Chinese (traditional) translation.

2 years agoTranslations: Update the Vietnamese translation.
Jia Tan [Sat, 8 Jul 2023 12:03:59 +0000 (20:03 +0800)] 
Translations: Update the Vietnamese translation.

2 years agoTests: Fix memory leaks in test_index.
Jia Tan [Wed, 28 Jun 2023 12:46:31 +0000 (20:46 +0800)] 
Tests: Fix memory leaks in test_index.

Several tests were missing calls to lzma_index_end() to clean up the
lzma_index structs. The memory leaks were discovered by using
-fsanitize=address with GCC.

2 years agoTests: Fix memory leaks in test_block_header.
Jia Tan [Wed, 28 Jun 2023 12:43:29 +0000 (20:43 +0800)] 
Tests: Fix memory leaks in test_block_header.

test_block_header was not properly freeing the filter options between
calls to lzma_block_header_decode(). The memory leaks were discovered by
using -fsanitize=address with GCC.

2 years agoliblzma: Prevent uninitialzed warning in mt stream encoder.
Jia Tan [Wed, 28 Jun 2023 12:31:11 +0000 (20:31 +0800)] 
liblzma: Prevent uninitialzed warning in mt stream encoder.

This change only impacts the compiler warning since it was impossible
for the wait_abs struct in stream_encode_mt() to be used before it was
initialized since mythread_condtime_set() will always be called before
mythread_cond_timedwait().

Since the mythread.h code is different between the POSIX and
Windows versions, this warning was only present on Windows builds.

Thanks to Arthur S for reporting the warning and providing an initial
patch.

2 years agoUpdate THANKS.
Jia Tan [Tue, 6 Jun 2023 16:10:38 +0000 (00:10 +0800)] 
Update THANKS.

2 years agoCMake: Protects against double find_package
Benjamin Buch [Tue, 6 Jun 2023 13:32:45 +0000 (15:32 +0200)] 
CMake: Protects against double find_package

Boost iostream uses `find_package` in quiet mode and then again uses
`find_package` with required. This second call triggers a
`add_library cannot create imported target "LibLZMA::LibLZMA"
because another target with the same name already exists.`

This can simply be fixed by skipping the alias part on secondary
`find_package` runs.

2 years agoTranslations: Update the Esperanto translation.
Jia Tan [Wed, 31 May 2023 12:26:42 +0000 (20:26 +0800)] 
Translations: Update the Esperanto translation.

2 years agoTranslations: Update the Croatian translation.
Jia Tan [Wed, 31 May 2023 12:25:00 +0000 (20:25 +0800)] 
Translations: Update the Croatian translation.

2 years agoTranslations: Update the Chinese (simplified) translation.
Jia Tan [Wed, 31 May 2023 12:15:53 +0000 (20:15 +0800)] 
Translations: Update the Chinese (simplified) translation.

2 years agoTranslations: Update German translation of man pages.
Jia Tan [Wed, 17 May 2023 15:12:13 +0000 (23:12 +0800)] 
Translations: Update German translation of man pages.

2 years agoTranslations: Update the German translation.
Jia Tan [Wed, 17 May 2023 15:09:18 +0000 (23:09 +0800)] 
Translations: Update the German translation.

2 years agoTranslations: Update the Croatian translation.
Jia Tan [Wed, 17 May 2023 12:30:01 +0000 (20:30 +0800)] 
Translations: Update the Croatian translation.