Commit Graph

1823 Commits

Author SHA1 Message Date
ChanTsune 4170a80785 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.)
2023-08-01 18:44:02 +03:00
Dimitri Papadopoulos Orfanos 0db6fbe0be Docs: Fix typos found by codespell 2023-08-01 18:44:02 +03:00
Jia Tan 84a3a1f4e4 Update .gitignore. 2023-08-01 18:42:23 +03:00
Jia Tan 962b3d41e0 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
80a1a8bb83.
2023-08-01 18:41:42 +03:00
Jia Tan 19899340cf 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).
2023-08-01 18:41:42 +03:00
Jia Tan ef7fbe8393 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.
2023-08-01 18:41:42 +03:00
Jia Tan e49815ba7a Tests: Add ARM64 filter test to test_compress.sh. 2023-08-01 18:41:23 +03:00
Jia Tan db5b57b827 Translations: Update the Vietnamese translation. 2023-07-31 21:26:52 +08:00
Jia Tan e6ba501408 Translations: Update the Croatian translation. 2023-07-31 21:25:46 +08:00
Jia Tan 82657a1f10 Translations: Update the Korean man page translations. 2023-07-31 21:25:41 +08:00
Jia Tan fab35907d1 Translations: Update the Korean translation. 2023-07-31 21:25:36 +08:00
Jia Tan f530fe1964 Translations: Update the Polish translation. 2023-07-31 21:25:33 +08:00
Jia Tan 10b3500cc2 Translations: Update the German man page translations. 2023-07-31 21:25:30 +08:00
Jia Tan 3d14e8a34d Translations: Update the German translation. 2023-07-31 21:25:27 +08:00
Jia Tan bdcc180a2d Translations: Update the Chinese (simplified) translation. 2023-07-31 21:25:23 +08:00
Jia Tan 844240350d Translations: Update the Swedish translation. 2023-07-31 21:25:20 +08:00
Jia Tan bdc7952bcf Translations: Update the Ukrainian man page translations. 2023-07-31 21:25:16 +08:00
Jia Tan 143396e070 Translations: Update the Ukrainian translation. 2023-07-31 21:25:13 +08:00
Jia Tan 1b8146d64e Translations: Update the Spanish translation. 2023-07-31 21:25:09 +08:00
Jia Tan f947ce09d7 Translations: Update the Romanian translation. 2023-07-31 21:25:05 +08:00
Jia Tan f681301a36 Translations: Update the Romanian man page translations. 2023-07-31 21:24:58 +08:00
Jia Tan 8bc3146c6b xz: Update man page Authors and date. 2023-07-18 23:24:02 +08:00
Jia Tan c2905540ef xz: Slight reword in xz man page for consistency.
Changed will print => prints in xz --robot --version description to
match --robot --info-memory description.
2023-07-18 23:24:02 +08:00
Jia Tan 2600d33524 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.
2023-07-18 23:24:02 +08:00
Jia Tan 98fc14541e 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.
2023-07-18 23:21:23 +08:00
Lasse Collin 1ac79b4cba 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.
2023-07-18 17:41:55 +03:00
Lasse Collin 97851be2c6 xz: Make "%s: %s" translatable because French needs "%s : %s". 2023-07-18 14:37:07 +03:00
Lasse Collin b406828a6d 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.
2023-07-18 14:03:08 +03:00
Lasse Collin ef4a07ad94 liblzma: Omit unnecessary parenthesis in a preprocessor directive. 2023-07-18 14:03:08 +03:00
Jia Tan 64ee0caaea 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.
2023-07-18 14:03:08 +03:00
Jia Tan ba17705764 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
2023-07-18 13:28:51 +03:00
Jia Tan 0745b900fa Docs: Update README.
This adds an entry to "Other implementations of the .xz format" for
XZ for Java.
2023-07-18 13:28:51 +03:00
Jia Tan c972d44103 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.
2023-07-18 13:27:46 +03:00
Jia Tan 6e21f1b4e2 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.
2023-07-18 13:26:48 +03:00
Jia Tan 26c37d290c Translations: Update the Chinese (traditional) translation. 2023-07-18 13:26:48 +03:00
Jia Tan 2ec65181e2 Translations: Update the Vietnamese translation. 2023-07-18 13:26:48 +03:00
Jia Tan c44c7e7590 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.
2023-07-18 13:26:48 +03:00
Jia Tan b9499c94fc 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.
2023-07-18 13:26:48 +03:00
Jia Tan 1155471651 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.
2023-07-18 13:20:16 +03:00
Jia Tan 62dd1c9bf0 Update THANKS. 2023-07-18 13:03:12 +03:00
Benjamin Buch d04eb78ab3 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.
2023-07-18 13:02:02 +03:00
Jia Tan 12ea1fb297 Translations: Update the Esperanto translation. 2023-07-18 12:59:10 +03:00
Jia Tan a4d45c07c1 Translations: Update the Croatian translation. 2023-07-18 12:59:10 +03:00
Jia Tan f51b7bcea6 Translations: Update the Chinese (simplified) translation. 2023-07-18 12:59:10 +03:00
Jia Tan d5b81c19a7 Translations: Update German translation of man pages. 2023-07-18 12:59:10 +03:00
Jia Tan 36860a3e30 Translations: Update the German translation. 2023-07-18 12:59:10 +03:00
Jia Tan f05641ef0d Translations: Update the Croatian translation. 2023-07-18 12:59:10 +03:00
Jia Tan b852f6f11d Translations: Update Korean translation of man pages. 2023-07-18 12:59:10 +03:00
Jia Tan fdcb78fb6f Translations: Update the Korean translation. 2023-07-18 12:59:10 +03:00
Jia Tan 9e39cebe3c Translations: Update the Spanish translation. 2023-07-18 12:59:10 +03:00