]> git.ipfire.org Git - thirdparty/xz.git/log
thirdparty/xz.git
3 months agoliblzma: Disable CLMUL CRC on old MSVC targeting 32-bit x86
Lasse Collin [Mon, 7 Apr 2025 19:36:58 +0000 (22:36 +0300)] 
liblzma: Disable CLMUL CRC on old MSVC targeting 32-bit x86

On GitHub runners, VS 2019 16.11 (MSVC 19.29.30158) results in
test failures. VS 2022 17.13 (MSVC 19.43.34808) works.

In xz 5.6.x there was a #pragma-based workaround for MSVC builds for
32-bit x86. Another method was thought to work with the new rewritten
CLMUL CRC. Apparently it doesn't. Keep it simple and disable CLMUL CRC
with any non-recent MSVC when building for 32-bit x86.

Fixes: 54eaea5ea49b ("liblzma: x86 CLMUL CRC: Rewrite")
Fixes: https://github.com/tukaani-project/xz/issues/171
Reported-by: Andrew Murray
3 months agoliblzma: Remove MSVC hack from CLMUL CRC
Lasse Collin [Mon, 7 Apr 2025 19:36:58 +0000 (22:36 +0300)] 
liblzma: Remove MSVC hack from CLMUL CRC

It's not enough with MSVC 19.29 (VS 2019) even if the hack was also
applied to the CRC32 code. The tests crash when built for 32-bit x86.

3 months agoCI: Test 32/64-bit x86 builds with Visual Studio 2019 and 2022
Lasse Collin [Mon, 7 Apr 2025 19:36:52 +0000 (22:36 +0300)] 
CI: Test 32/64-bit x86 builds with Visual Studio 2019 and 2022

4 months agoTests: Add fuzz_decode_stream_mt.options
Lasse Collin [Fri, 4 Apr 2025 17:08:37 +0000 (20:08 +0300)] 
Tests: Add fuzz_decode_stream_mt.options

4 months agodoc/SHA256SUMS: Add 5.8.1
Lasse Collin [Thu, 3 Apr 2025 12:06:07 +0000 (15:06 +0300)] 
doc/SHA256SUMS: Add 5.8.1

4 months agoBump version and soname for 5.8.1 v5.8.1
Lasse Collin [Thu, 3 Apr 2025 11:34:43 +0000 (14:34 +0300)] 
Bump version and soname for 5.8.1

4 months agoAdd NEWS for 5.8.1
Lasse Collin [Thu, 3 Apr 2025 11:34:43 +0000 (14:34 +0300)] 
Add NEWS for 5.8.1

4 months agoTests: Call lzma_code() in smaller chunks in fuzz_common.h
Lasse Collin [Thu, 3 Apr 2025 11:34:43 +0000 (14:34 +0300)] 
Tests: Call lzma_code() in smaller chunks in fuzz_common.h

This makes it easy to crash fuzz_decode_stream_mt when tested
against the code from 5.8.0.

Obviously this might make it harder to reach some other code path now.
The previous code has been in use since 2018 when fuzzing was added
in 106d1a663d4b ("Tests: Add a fuzz test program and a config file
for OSS-Fuzz.").

4 months agoTests: Add a fuzzing target for the multithreaded .xz decoder
Lasse Collin [Thu, 3 Apr 2025 11:34:43 +0000 (14:34 +0300)] 
Tests: Add a fuzzing target for the multithreaded .xz decoder

It doesn't seem possible to trigger the CVE-2025-31115 bug with this
fuzzing target at the moment. It's because the code in fuzz_common.h
passes the whole input buffer to lzma_code() at once.

4 months agoliblzma: mt dec: Fix lack of parallelization in single-shot decoding
Lasse Collin [Thu, 3 Apr 2025 11:34:42 +0000 (14:34 +0300)] 
liblzma: mt dec: Fix lack of parallelization in single-shot decoding

Single-shot decoding means calling lzma_code() by giving it the whole
input at once and enough output buffer space to store the uncompressed
data, and combining this with LZMA_FINISH and no timeout
(lzma_mt.timeout = 0). This way the file is decoded with a single
lzma_code() call if possible.

The bug prevented the decoder from starting more than one worker thread
in single-shot mode. The issue was noticed when reviewing the code;
there are no bug reports. Thus maybe few have tried this mode.

Fixes: 64b6d496dc81 ("liblzma: Threaded decoder: Always wait for output if LZMA_FINISH is used.")
4 months agoliblzma: mt dec: Don't modify thr->in_size in the worker thread
Lasse Collin [Thu, 3 Apr 2025 11:34:42 +0000 (14:34 +0300)] 
liblzma: mt dec: Don't modify thr->in_size in the worker thread

Don't set thr->in_size = 0 when returning the thread to the stack of
available threads. Not only is it useless, but the main thread may
read the value in SEQ_BLOCK_THR_RUN. With valid inputs, it made
no difference if the main thread saw the original value or 0. With
invalid inputs (when worker thread stops early), thr->in_size was
no longer modified after the previous commit with the security fix
("Don't free the input buffer too early").

So while the bug appears harmless now, it's important to fix it because
the variable was being modified without proper locking. It's trivial
to fix because there is no need to change the value. Only main thread
needs to set the value in (in SEQ_BLOCK_THR_INIT) when starting a new
Block before the worker thread is activated.

Fixes: 4cce3e27f529 ("liblzma: Add threaded .xz decompressor.")
Reviewed-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
Thanks-to: Sam James <sam@gentoo.org>
4 months agoliblzma: mt dec: Don't free the input buffer too early (CVE-2025-31115)
Lasse Collin [Thu, 3 Apr 2025 11:34:42 +0000 (14:34 +0300)] 
liblzma: mt dec: Don't free the input buffer too early (CVE-2025-31115)

The input buffer must be valid as long as the main thread is writing
to the worker-specific input buffer. Fix it by making the worker
thread not free the buffer on errors and not return the worker thread to
the pool. The input buffer will be freed when threads_end() is called.

With invalid input, the bug could at least result in a crash. The
effects include heap use after free and writing to an address based
on the null pointer plus an offset.

The bug has been there since the first committed version of the threaded
decoder and thus affects versions from 5.3.3alpha to 5.8.0.

As the commit message in 4cce3e27f529 says, I had made significant
changes on top of Sebastian's patch. This bug was indeed introduced
by my changes; it wasn't in Sebastian's version.

Thanks to Harri K. Koskinen for discovering and reporting this issue.

Fixes: 4cce3e27f529 ("liblzma: Add threaded .xz decompressor.")
Reported-by: Harri K. Koskinen <x64nop@nannu.org>
Reviewed-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
Thanks-to: Sam James <sam@gentoo.org>
4 months agoliblzma: mt dec: Simplify by removing the THR_STOP state
Lasse Collin [Thu, 3 Apr 2025 11:34:42 +0000 (14:34 +0300)] 
liblzma: mt dec: Simplify by removing the THR_STOP state

The main thread can directly set THR_IDLE in threads_stop() which is
called when errors are detected. threads_stop() won't return the stopped
threads to the pool or free the memory pointed by thr->in anymore, but
it doesn't matter because the existing workers won't be reused after
an error. The resources will be cleaned up when threads_end() is
called (reinitializing the decoder always calls threads_end()).

Reviewed-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
Thanks-to: Sam James <sam@gentoo.org>
4 months agoliblzma: mt dec: Fix a comment
Lasse Collin [Thu, 3 Apr 2025 11:34:42 +0000 (14:34 +0300)] 
liblzma: mt dec: Fix a comment

Reviewed-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
Thanks-to: Sam James <sam@gentoo.org>
4 months agoliblzma: Add assertions to lzma_bufcpy()
Lasse Collin [Thu, 3 Apr 2025 11:34:30 +0000 (14:34 +0300)] 
liblzma: Add assertions to lzma_bufcpy()

4 months agoDOS: Update Makefile to fix the build
Lasse Collin [Wed, 2 Apr 2025 13:40:22 +0000 (16:40 +0300)] 
DOS: Update Makefile to fix the build

4 months agosysdefs.h: Avoid <stdalign.h> even with C11 compilers
Lasse Collin [Sat, 29 Mar 2025 10:41:32 +0000 (12:41 +0200)] 
sysdefs.h: Avoid <stdalign.h> even with C11 compilers

Oracle Developer Studio 12.6 on Solaris 10 claims C11 support in
__STDC_VERSION__ and supports _Alignas. However, <stdalign.h> is missing.
We only need alignas, so define it to _Alignas with C11/C17 compilers.
If something included <stdalign.h> later, it shouldn't cause problems.

Thanks to Ihsan Dogan for reporting the issue and testing the fix.

Fixes: c0e7eaae8d6eef1e313c9d0da20ccf126ec61f38
4 months agoUpdate THANKS
Lasse Collin [Sat, 29 Mar 2025 10:32:05 +0000 (12:32 +0200)] 
Update THANKS

4 months agoTranslations: Update the Croatian translation
Lasse Collin [Sat, 29 Mar 2025 10:21:51 +0000 (12:21 +0200)] 
Translations: Update the Croatian translation

4 months agodoc/SHA256SUMS: Add 5.8.0
Lasse Collin [Tue, 25 Mar 2025 16:23:57 +0000 (18:23 +0200)] 
doc/SHA256SUMS: Add 5.8.0

4 months agoBump version and soname for 5.8.0 v5.8.0
Lasse Collin [Tue, 25 Mar 2025 13:18:32 +0000 (15:18 +0200)] 
Bump version and soname for 5.8.0

Also remove the LZMA_UNSTABLE macro.

4 months agoAdd NEWS for 5.8.0
Lasse Collin [Tue, 25 Mar 2025 13:18:32 +0000 (15:18 +0200)] 
Add NEWS for 5.8.0

4 months agoTranslations: Run "make -C po update-po"
Lasse Collin [Tue, 25 Mar 2025 13:18:31 +0000 (15:18 +0200)] 
Translations: Run "make -C po update-po"

POT-Creation-Date is set to match the timestamp in 5.7.2beta which
in the Translation Project is known as 5.8.0-pre1. The strings
haven't changed since 5.7.1alpha but a few comments have.

This is a very noisy commit, but this helps keeping the PO files
similar between the Git repository and stable release tarballs.

4 months agoTranslations: Run po4a/update-po
Lasse Collin [Tue, 25 Mar 2025 13:18:31 +0000 (15:18 +0200)] 
Translations: Run po4a/update-po

Also remove the trivial obsolete messages like man page dates.

This is a noisy commit, but this helps keeping the PO files similar
between the Git repository and stable release tarballs.

4 months agoTranslations: Partially fix overtranslation in Serbian man pages
Lasse Collin [Tue, 25 Mar 2025 13:18:31 +0000 (15:18 +0200)] 
Translations: Partially fix overtranslation in Serbian man pages

Names of environment variables and some other strings must be present
in the original form. The translator couldn't be reached so I'm
changing some of the strings myself. In the "Robot mode" section,
occurrences in the middle of sentences weren't changed to reduce
the chance of grammar breakage, but I kept the translated strings in
parenthesis in the headings. It's not ideal, but now people shouldn't
need to look at the English man page to find the English strings.

4 months agoliblzma: Count the extra bytes in LZMA/LZMA2 decoder memory usage
Lasse Collin [Tue, 25 Mar 2025 13:18:31 +0000 (15:18 +0200)] 
liblzma: Count the extra bytes in LZMA/LZMA2 decoder memory usage

4 months agoliblzma: Use SSE2 intrinsics instead of memcpy() in dict_repeat()
Lasse Collin [Tue, 25 Mar 2025 13:18:31 +0000 (15:18 +0200)] 
liblzma: Use SSE2 intrinsics instead of memcpy() in dict_repeat()

SSE2 is supported on every x86-64 processor. The SSE2 code is used on
32-bit x86 if compiler options permit unconditional use of SSE2.

dict_repeat() copies short random-sized unaligned buffers. At least
on glibc, FreeBSD, and Windows (MSYS2, UCRT, MSVCRT), memcpy() is
clearly faster than byte-by-byte copying in this use case. Compared
to the memcpy() version, the new SSE2 version reduces decompression
time by 0-5 % depending on the machine and libc. It should never be
slower than the memcpy() version.

However, on musl 1.2.5 on x86-64, the memcpy() version is the slowest.
Compared to the memcpy() version:

  - The byte-by-version takes 6-7 % less time to decompress.
  - The SSE2 version takes 16-18 % less time to decompress.

The numbers are from decompressing a Linux kernel source tarball in
single-threaded mode on older AMD and Intel systems. The tarball
compresses well, and thus dict_repeat() performance matters more
than with some other files.

4 months agoliblzma: Add "restrict" to a few functions in lz_decoder.h
Lasse Collin [Tue, 25 Mar 2025 13:18:31 +0000 (15:18 +0200)] 
liblzma: Add "restrict" to a few functions in lz_decoder.h

This doesn't make any difference in practice because compilers can
already see that writing through the dict->buf pointer cannot modify
the contents of *dict itself: The LZMA decoder makes a local copy of
the lzma_dict structure, and even if it didn't, the pointer to
lzma_dict in the LZMA decoder is already "restrict".

It's nice to add "restrict" anyway. uint8_t is typically unsigned char
which can alias anything. Without the above conditions or "restrict",
compilers could need to assume that writing through dict->buf might
modify *dict. This would matter in dict_repeat() because the loops
refer to dict->buf and dict->pos instead of making local copies of
those members for the duration of the loops. If compilers had to
assume that writing through dict->buf can affect *dict, then compilers
would need to emit code that reloads dict->buf and dict->pos after
every write through dict->buf.

4 months agoliblzma: Define LZ_DICT_INIT_POS for initial dictionary position
Lasse Collin [Tue, 25 Mar 2025 13:18:30 +0000 (15:18 +0200)] 
liblzma: Define LZ_DICT_INIT_POS for initial dictionary position

It's more readable.

4 months agoWindows: Update README-Windows.txt about UCRT
Lasse Collin [Tue, 25 Mar 2025 13:18:30 +0000 (15:18 +0200)] 
Windows: Update README-Windows.txt about UCRT

4 months agoUpdate THANKS
Lasse Collin [Tue, 25 Mar 2025 13:18:15 +0000 (15:18 +0200)] 
Update THANKS

4 months agoTranslations: Update the Italian translation
Lasse Collin [Mon, 17 Mar 2025 13:33:25 +0000 (15:33 +0200)] 
Translations: Update the Italian translation

4 months agoTranslations: Update the Portuguese translation
Lasse Collin [Mon, 17 Mar 2025 13:28:56 +0000 (15:28 +0200)] 
Translations: Update the Portuguese translation

The language tag in the Translation Project is pt, not pt_PT,
thus I changed the "Language:" line to pt.

4 months agoTranslations: Update the Italian translation
Lasse Collin [Fri, 14 Mar 2025 11:02:21 +0000 (13:02 +0200)] 
Translations: Update the Italian translation

4 months agoTranslations: Update the Italian man page translations
Lasse Collin [Wed, 12 Mar 2025 18:48:39 +0000 (20:48 +0200)] 
Translations: Update the Italian man page translations

Only trivial additions but this keeps the file in sync with the TP.

4 months agoTranslations: Update the Italian man page translations
Lasse Collin [Wed, 12 Mar 2025 17:38:54 +0000 (19:38 +0200)] 
Translations: Update the Italian man page translations

4 months agoTranslations: Update the Korean man page translations
Lasse Collin [Mon, 10 Mar 2025 19:00:31 +0000 (21:00 +0200)] 
Translations: Update the Korean man page translations

4 months agoTranslations: Update the German man page translations
Lasse Collin [Mon, 10 Mar 2025 18:56:57 +0000 (20:56 +0200)] 
Translations: Update the German man page translations

4 months agoCMake: Fix tuklib_use_system_extensions
Lasse Collin [Mon, 10 Mar 2025 11:13:30 +0000 (13:13 +0200)] 
CMake: Fix tuklib_use_system_extensions

Revert back to a macro so that list(APPEND CMAKE_REQUIRED_DEFINITIONS)
will affect the calling scope. I had forgotten that while CMake
functions inherit the variables from the parent scope, the changes
to them are local unless using set(... PARENT_SCOPE).

This also means that the commit message in 5bb77d0920dc is wrong. The
commit itself is still fine, making it clearer that -DHAVE_SYS_PARAM_H
is only needed for specific check_c_source_compiles() calls.

Fixes: c1ea7bd0b60eed6ebcdf9a713ca69034f6f07179
4 months agoINSTALL: Document -bmaxdata on AIX
Lasse Collin [Mon, 10 Mar 2025 09:38:55 +0000 (11:38 +0200)] 
INSTALL: Document -bmaxdata on AIX

This is based on a pull request and AIX docs. I haven't tested the
instructions myself.

Closes: https://github.com/tukaani-project/xz/pull/137
4 months agoUpdate THANKS
Lasse Collin [Mon, 10 Mar 2025 09:37:19 +0000 (11:37 +0200)] 
Update THANKS

4 months agotuklib_physmem: Silence -Wsign-conversion on AIX
Collin Funk [Mon, 10 Mar 2025 02:14:31 +0000 (19:14 -0700)] 
tuklib_physmem: Silence -Wsign-conversion on AIX

Closes: https://github.com/tukaani-project/xz/pull/168
4 months agoTranslations: Update the Romanian man page translations
Lasse Collin [Sun, 9 Mar 2025 20:10:38 +0000 (22:10 +0200)] 
Translations: Update the Romanian man page translations

4 months agoTranslations: Update the Croatian translation
Lasse Collin [Sun, 9 Mar 2025 19:28:15 +0000 (21:28 +0200)] 
Translations: Update the Croatian translation

4 months agoTranslations: Update the Romanian translation
Lasse Collin [Sun, 9 Mar 2025 19:23:34 +0000 (21:23 +0200)] 
Translations: Update the Romanian translation

4 months agoTranslations: Update the Ukrainian man page translations
Lasse Collin [Sun, 9 Mar 2025 19:11:34 +0000 (21:11 +0200)] 
Translations: Update the Ukrainian man page translations

4 months agoCMake: Use cmake_push_check_state in tuklib_cpucores and tuklib_physmem
Lasse Collin [Sun, 9 Mar 2025 12:43:07 +0000 (14:43 +0200)] 
CMake: Use cmake_push_check_state in tuklib_cpucores and tuklib_physmem

Now the changes to CMAKE_REQUIRED_DEFINITIONS are temporary and don't
leak to the calling code.

4 months agoCMake: Revise tuklib_use_system_extensions
Lasse Collin [Sun, 9 Mar 2025 12:06:35 +0000 (14:06 +0200)] 
CMake: Revise tuklib_use_system_extensions

Define NetBSD and Darwin/macOS feature test macros. Autoconf defines
these too (and a few others).

Define the macros on Windows except with MSVC. The _GNU_SOURCE macro
makes a difference with mingw-w64.

Use a function instead of a macro. Don't take the TARGET_OR_ALL argument
because there's always global effect because the global variable
CMAKE_REQUIRED_DEFINITIONS is modified.

4 months agodoc/SHA256SUMS: Add 5.7.2beta
Lasse Collin [Sat, 8 Mar 2025 12:54:29 +0000 (14:54 +0200)] 
doc/SHA256SUMS: Add 5.7.2beta

4 months agoBump version and soname for 5.7.2beta v5.7.2beta
Lasse Collin [Sat, 8 Mar 2025 12:29:57 +0000 (14:29 +0200)] 
Bump version and soname for 5.7.2beta

4 months agoAdd NEWS for 5.7.2beta
Lasse Collin [Sat, 8 Mar 2025 12:24:38 +0000 (14:24 +0200)] 
Add NEWS for 5.7.2beta

4 months agoCOPYING: Remove the note about old releases
Lasse Collin [Sat, 8 Mar 2025 12:23:00 +0000 (14:23 +0200)] 
COPYING: Remove the note about old releases

4 months agoxz: Update the man page about the environment variables again
Lasse Collin [Sat, 8 Mar 2025 12:22:28 +0000 (14:22 +0200)] 
xz: Update the man page about the environment variables again

4 months agoliblzma: Edit spelling in a comment
Lasse Collin [Thu, 6 Mar 2025 17:26:09 +0000 (19:26 +0200)] 
liblzma: Edit spelling in a comment

It was found with codespell.

4 months agoxz: Update the man page about the environment variables
Lasse Collin [Thu, 6 Mar 2025 17:14:23 +0000 (19:14 +0200)] 
xz: Update the man page about the environment variables

4 months agoDocs: Add a few TRANSLATORS comments to man pages
Lasse Collin [Thu, 6 Mar 2025 15:37:39 +0000 (17:37 +0200)] 
Docs: Add a few TRANSLATORS comments to man pages

All translators know that --command-line-options must not be translated.
With some other strings it's not obvious when the untranslated string
must be preserved. These comments hopefully help.

4 months agoScripts: Mark the LZMA Utils script aliases as deprecated
Lasse Collin [Thu, 6 Mar 2025 14:34:32 +0000 (16:34 +0200)] 
Scripts: Mark the LZMA Utils script aliases as deprecated

The deprecated aliases are lzcmp, lzdiff, lzless, lzmore,
lzgrep, lzegrep, and lzfgrep. The commands that start with
the xz prefix have identical behavior, for example, both
lzgrep and xzgrep handle all supported file formats.

This doesn't affect lzma, unlzma, lzcat, lzmadec, or lzmainfo.
The last release of LZMA Utils was made in 2008, but the lzma
compatibility alias for the gzip-like tool is still in common use.
Deprecating it would cause unnecessary breakage.

5 months agoTranslations: Add Serbian man page translations
Lasse Collin [Sun, 2 Mar 2025 19:13:04 +0000 (21:13 +0200)] 
Translations: Add Serbian man page translations

5 months agoTranslations: Update Georgian translation
Lasse Collin [Sun, 2 Mar 2025 18:42:14 +0000 (20:42 +0200)] 
Translations: Update Georgian translation

5 months agoUpdate THANKS
Lasse Collin [Fri, 28 Feb 2025 19:07:21 +0000 (21:07 +0200)] 
Update THANKS

5 months agoUpdate THANKS
Lasse Collin [Sat, 22 Feb 2025 14:04:58 +0000 (16:04 +0200)] 
Update THANKS

5 months agoTranslations: Update the Croatian translation
Lasse Collin [Wed, 19 Feb 2025 14:33:52 +0000 (16:33 +0200)] 
Translations: Update the Croatian translation

5 months agoBuild: Fix out-of-tree builds when using the replacement getopt_long
Lasse Collin [Mon, 17 Feb 2025 19:46:15 +0000 (21:46 +0200)] 
Build: Fix out-of-tree builds when using the replacement getopt_long

Nowaways $(top_builddir)/lib/getopt.h depends on headers in
$(top_srcdir)/lib, so both have to be in the include path.
CMake-based build already did this.

Fixes: 7e884c00d0093c38339f17fb1d280eec493f42ca
5 months agom4/getopt.m4: Remove an outdated comment
Lasse Collin [Mon, 17 Feb 2025 16:25:52 +0000 (18:25 +0200)] 
m4/getopt.m4: Remove an outdated comment

5 months agoBuild: Allow forcing the use of the replacement getopt_long
Lasse Collin [Mon, 17 Feb 2025 16:11:58 +0000 (18:11 +0200)] 
Build: Allow forcing the use of the replacement getopt_long

Now one can pass gl_replace_getopt=yes to configure to force the use
of GNU getopt_long from the lib directory. This only checks that the
value of gl_replace_getopt is non-empty, so one cannot force the
replacement to be disabled.

Closes: https://github.com/tukaani-project/xz/pull/166
5 months agoUpdate THANKS
Lasse Collin [Mon, 17 Feb 2025 16:11:42 +0000 (18:11 +0200)] 
Update THANKS

5 months agoUpdate THANKS
Lasse Collin [Wed, 12 Feb 2025 17:23:31 +0000 (19:23 +0200)] 
Update THANKS

5 months agoUpdate THANKS
Lasse Collin [Tue, 11 Feb 2025 10:13:41 +0000 (12:13 +0200)] 
Update THANKS

5 months agoTranslations: Update the Polish translation
Lasse Collin [Sat, 8 Feb 2025 09:39:08 +0000 (11:39 +0200)] 
Translations: Update the Polish translation

5 months agoDocs: Update TODO a little
Lasse Collin [Fri, 7 Feb 2025 17:12:03 +0000 (19:12 +0200)] 
Docs: Update TODO a little

5 months agoAdd researcher credits of CVE-2022-1271 and CVE-2024-47611 to THANKS
Lasse Collin [Fri, 7 Feb 2025 16:50:56 +0000 (18:50 +0200)] 
Add researcher credits of CVE-2022-1271 and CVE-2024-47611 to THANKS

These are specific phrases that were included in the advisories and
NEWS. It's nice to have them in THANKS as well.

5 months agoUpdate THANKS
Lasse Collin [Fri, 7 Feb 2025 16:43:00 +0000 (18:43 +0200)] 
Update THANKS

5 months agoDocs: Update the "Translations" section in README
Lasse Collin [Tue, 4 Feb 2025 12:12:46 +0000 (14:12 +0200)] 
Docs: Update the "Translations" section in README

Make it clearer that translations cannot be accepted if they don't
come via the Translation Project.

Column headings have been handled automatically for years and now --help
is autowrapped too, so the related instructions can be removed.

5 months agodebug/translations.bash: Revise a little
Lasse Collin [Tue, 4 Feb 2025 11:23:53 +0000 (13:23 +0200)] 
debug/translations.bash: Revise a little

Make it work for out-of-tree builds without requiring one to specify
the location of the xz executable.

Add xz --filters-help.

Make the output shorter by reducing the number of xz -lvv test files.

Show the value of LANGUAGE environment variable.

Show the xz.git version using git describe --abbrev=8 instead of =4.

5 months agoBuild: Use "git describe --abbrev=8" in snapshot tarball names
Lasse Collin [Tue, 4 Feb 2025 11:20:52 +0000 (13:20 +0200)] 
Build: Use "git describe --abbrev=8" in snapshot tarball names

8 is more likely to be reproducible than the old 4 without being
excessively long for a small repository like this.

5 months agoUpdate THANKS
Lasse Collin [Tue, 4 Feb 2025 17:37:17 +0000 (19:37 +0200)] 
Update THANKS

5 months agoTranslations: Update the Serbian translation
Lasse Collin [Mon, 3 Feb 2025 14:29:31 +0000 (16:29 +0200)] 
Translations: Update the Serbian translation

5 months agoTranslations: Update Chinese (traditional) translation
Lasse Collin [Mon, 3 Feb 2025 14:15:38 +0000 (16:15 +0200)] 
Translations: Update Chinese (traditional) translation

Since there are no spaces between words, the unsophisticated automatic
word wrapping code needs some help. Compared to the version in the
Translation Project, I added a few \t characters which the word
wrapping code interprets as zero width spaces (hopefully they are
placed correctly). These edits can be seen with this command:

    grep -v ^# po/zh_TW.po | grep --color -F '\t'

5 months agoUpdate THANKS
Lasse Collin [Mon, 3 Feb 2025 14:12:44 +0000 (16:12 +0200)] 
Update THANKS

6 months agoBuild: Update posix-shell.m4 from Gnulib
Lasse Collin [Sun, 2 Feb 2025 12:15:07 +0000 (14:15 +0200)] 
Build: Update posix-shell.m4 from Gnulib

Tabs have been converted to spaces and a "serial" number has been
added. The previous version was from 2008/2009. There are no functional
changes since then but now it's clearer that the copy in XZ Utils
isn't outdated.

The new file was picked from the Gnulib commit
81a4c1e3b7692e95c0806d948cbab9148ad85ef2. A later commit adds
a warranty disclaimer to the license, which obviously is fine,
but I didn't find a SPDX license identifier for the new license,
so for simplicity I used the earlier commit.

6 months agoBuild: Check for -fsanitize= also in $CC
Lasse Collin [Sun, 2 Feb 2025 10:51:03 +0000 (12:51 +0200)] 
Build: Check for -fsanitize= also in $CC

People may put -fsanitize in CC instead of CFLAGS so check both.
Landlock sandbox isn't compatible with sanitizers so it's nice
to catch the incompatible options at configure time.

Don't attempt to do the same in CMakeLists.txt; the check for
CMAKE_C_FLAGS / CFLAGS shall be enough there. The extra flags from
the CC environment variable go into the undocumented internal variable
CMAKE_C_COMPILER_ARG1 (all flags from CC go into that same variable).
Peeking the internal variable merely for improved diagnostics isn't
worth it.

Fixes: 88588b1246d8c26ffbc138b3e5c413c5f14c3179
6 months agoBuild: Remove the FIXME about -Werror checks
Lasse Collin [Tue, 26 Sep 2023 16:11:20 +0000 (19:11 +0300)] 
Build: Remove the FIXME about -Werror checks

6 months agoBuild: If using a GCC compatible compiler, ensure that -Werror works
Lasse Collin [Tue, 26 Sep 2023 16:10:51 +0000 (19:10 +0300)] 
Build: If using a GCC compatible compiler, ensure that -Werror works

The check can be skipped by passing SKIP_WERROR_CHECK=yes to configure.
It won't be documented anywhere else than in the error message.

Ways to test:

    ./configure CC=gcc CFLAGS=-Wunused-macros
    ./configure CC=clang CFLAGS=-Weverything
    ./configure CC=clang CFLAGS=-Weverything SKIP_WERROR_CHECK=yes

6 months agoUpdate THANKS
Lasse Collin [Sun, 2 Feb 2025 12:30:15 +0000 (14:30 +0200)] 
Update THANKS

6 months agoTranslations: Update Romanian translation
Lasse Collin [Sat, 1 Feb 2025 10:49:09 +0000 (12:49 +0200)] 
Translations: Update Romanian translation

6 months agoTranslations: Update Korean man page translations
Lasse Collin [Thu, 30 Jan 2025 16:16:43 +0000 (18:16 +0200)] 
Translations: Update Korean man page translations

6 months agoTranslations: Add Italian man page translations
Lasse Collin [Thu, 30 Jan 2025 16:15:52 +0000 (18:15 +0200)] 
Translations: Add Italian man page translations

6 months agoTranslations: Update the Finnish translation
Lasse Collin [Wed, 29 Jan 2025 20:18:29 +0000 (22:18 +0200)] 
Translations: Update the Finnish translation

6 months agolzmainfo: Use tuklib_mbstr_wrap for --help text
Lasse Collin [Wed, 29 Jan 2025 18:50:03 +0000 (20:50 +0200)] 
lzmainfo: Use tuklib_mbstr_wrap for --help text

Some languages have so long strings that they need to be wrapped.

6 months agoTranslations: Update the Croatian translation
Lasse Collin [Wed, 29 Jan 2025 18:00:06 +0000 (20:00 +0200)] 
Translations: Update the Croatian translation

6 months agoTranslations: Update the Finnish translation
Lasse Collin [Wed, 29 Jan 2025 17:56:01 +0000 (19:56 +0200)] 
Translations: Update the Finnish translation

6 months agoTranslations: Update the German man page translations
Lasse Collin [Wed, 29 Jan 2025 17:55:27 +0000 (19:55 +0200)] 
Translations: Update the German man page translations

6 months agoTranslations: Update the German translation
Lasse Collin [Wed, 29 Jan 2025 17:55:17 +0000 (19:55 +0200)] 
Translations: Update the German translation

6 months agoTranslations: Update the Turkish translation
Lasse Collin [Wed, 29 Jan 2025 17:55:05 +0000 (19:55 +0200)] 
Translations: Update the Turkish translation

6 months agoTranslations: Add the Dutch translation
Lasse Collin [Wed, 29 Jan 2025 17:54:36 +0000 (19:54 +0200)] 
Translations: Add the Dutch translation

6 months agoTranslations: Update the Georgian translation
Lasse Collin [Wed, 29 Jan 2025 17:53:50 +0000 (19:53 +0200)] 
Translations: Update the Georgian translation

6 months agoTranslations: Update the Spanish translation
Lasse Collin [Wed, 29 Jan 2025 17:53:21 +0000 (19:53 +0200)] 
Translations: Update the Spanish translation

6 months agoTranslations: Update the Korean translation
Lasse Collin [Wed, 29 Jan 2025 17:53:06 +0000 (19:53 +0200)] 
Translations: Update the Korean translation

6 months agoTranslations: Update the Romanian man page translations
Lasse Collin [Wed, 29 Jan 2025 17:52:42 +0000 (19:52 +0200)] 
Translations: Update the Romanian man page translations

6 months agoTranslations: Update the Romanian translation
Lasse Collin [Wed, 29 Jan 2025 17:51:59 +0000 (19:51 +0200)] 
Translations: Update the Romanian translation