1
0
mirror of https://git.tukaani.org/xz.git synced 2025-02-22 16:38:11 +00:00

2791 Commits

Author SHA1 Message Date
Lasse Collin
1780bba740
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
2025-02-02 14:30:19 +02:00
Lasse Collin
3aca2daefb
Update THANKS 2025-02-02 14:30:15 +02:00
Lasse Collin
186ff78ab4
Translations: Update Romanian translation 2025-02-01 12:49:09 +02:00
Lasse Collin
40a8ce3e10
Translations: Update Korean man page translations 2025-01-30 18:16:43 +02:00
Lasse Collin
1787f9bd18
Translations: Add Italian man page translations 2025-01-30 18:15:52 +02:00
Lasse Collin
9b9182e561
Translations: Update the Finnish translation 2025-01-29 22:18:29 +02:00
Lasse Collin
7d73ff7a9d
lzmainfo: Use tuklib_mbstr_wrap for --help text
Some languages have so long strings that they need to be wrapped.
2025-01-29 20:59:53 +02:00
Lasse Collin
c56eb47076
Translations: Update the Croatian translation 2025-01-29 20:59:53 +02:00
Lasse Collin
69f4aec0a2
Translations: Update the Finnish translation 2025-01-29 20:59:53 +02:00
Lasse Collin
d49dde33cf
Translations: Update the German man page translations 2025-01-29 20:59:53 +02:00
Lasse Collin
23b99fc4a1
Translations: Update the German translation 2025-01-29 20:59:52 +02:00
Lasse Collin
7edab2bde0
Translations: Update the Turkish translation 2025-01-29 20:59:52 +02:00
Lasse Collin
fac4d0fa52
Translations: Add the Dutch translation 2025-01-29 20:59:52 +02:00
Lasse Collin
abe5092f24
Translations: Update the Georgian translation 2025-01-29 20:59:52 +02:00
Lasse Collin
b97b23c78d
Translations: Update the Spanish translation 2025-01-29 20:59:52 +02:00
Lasse Collin
c68318cb49
Translations: Update the Korean translation 2025-01-29 20:59:52 +02:00
Lasse Collin
153ee17f63
Translations: Update the Romanian man page translations 2025-01-29 20:59:51 +02:00
Lasse Collin
6ed308197e
Translations: Update the Romanian translation 2025-01-29 20:59:51 +02:00
Lasse Collin
06028803e1
Translations: Update the Ukrainian man page translations 2025-01-29 20:59:51 +02:00
Lasse Collin
8cbaf896a6
Translations: Update the Ukrainian translation 2025-01-29 20:59:51 +02:00
Lasse Collin
81c352907b
Translations: Update the Swedish translation 2025-01-29 20:59:51 +02:00
Lasse Collin
999ce26371
tuklib_physmem: Clean up disabled code 2025-01-29 20:59:51 +02:00
Lasse Collin
4d7e7c9d94
Windows: Avoid an error message on broken pipe
Also make xz not process more input files after a broken pipe has
been detected. This matches the behavior on POSIX. If all files
are being written to standard output, trying with the next file is
pointless when it's known that standard output won't accept more data.

xzdec already stopped after the first error. It does so with all
errors, so it differs from xz:

    $ xz -dc not_found_1 not_found_2
    xz: not_found_1: No such file or directory
    xz: not_found_2: No such file or directory

    $ xzdec not_found_1 not_found_2
    xzdec: not_found_1: No such file or directory

Reported-by: Vincent Torri
2025-01-29 20:59:44 +02:00
Lasse Collin
95b638480a
doc/SHA256SUMS: Add 5.6.4 and 5.7.1alpha 2025-01-23 19:59:17 +02:00
Lasse Collin
cdae0df31e
Bump version and soname for 5.7.1alpha v5.7.1alpha 2025-01-23 11:50:47 +02:00
Lasse Collin
4d2af2c43b
Translations: Run po4a/update-po 2025-01-23 11:48:51 +02:00
Lasse Collin
ff0b825505
Add NEWS for 5.7.1alpha 2025-01-23 11:42:36 +02:00
Lasse Collin
f6cd3e3bfc
Add NEWS for 5.6.4 2025-01-23 11:42:23 +02:00
Lasse Collin
b3af3297e4
NEWS: The security fix in 5.6.3 is known as CVE-2024-47611 2025-01-23 11:40:58 +02:00
Lasse Collin
a04b9dd0c7
windows/build.bash: Fix error message
Fixes: 1ee716f74085223c8fbcae1d5a384e6bf53c0f6a
2025-01-22 16:55:14 +02:00
Lasse Collin
4eae859ae8
Windows: Disable MinGW-w64's stdio functions in size-optimized builds
This only affects builds with UCRT. With legacy MSVCRT, the replacement
functions are always enabled.

Omitting the MinGW-w64 replacements saves over 20 KiB per executable.
The downside is that --enable-small or XZ_SMALL=ON disables thousand
separator support in xz messages. If someone is OK with the slower
speed of slightly smaller builds, lack of thousand separators won't
matter.

Don't override __USE_MINGW_ANSI_STDIO if it is already defined (via
CPPFLAGS or such method).
2025-01-22 15:39:05 +02:00
Lasse Collin
a831bc185b
liblzma: Add raw ARM64, RISC-V, and x86 BCJ filter APIs
Put them behind the LZMA_UNSTABLE macro for now.

These low-level special APIs might become useful in erofs-utils.
2025-01-20 16:44:27 +02:00
Lasse Collin
6f5cdd4534
xz: Unify a few strings with liblzma
Avoid having both "%s: foo" and "foo" as translatable strings
so that translators don't need to handle it twice.
2025-01-20 16:31:49 +02:00
Lasse Collin
713fdaa8b0
xz: Translate error messages from lzma_str_to_filters()
liblzma doesn't use gettext but the messages are included in xz.pot,
so xz can translate the messages.
2025-01-20 16:31:49 +02:00
Lasse Collin
f2e2b267ca
liblzma: Mark string conversion messages as translatable 2025-01-20 16:31:49 +02:00
Lasse Collin
f49d7413d9
liblzma: Tweak a few error messages in lzma_str_to_filters() 2025-01-20 16:31:35 +02:00
Lasse Collin
da359c360e
Update THANKS 2025-01-19 20:11:54 +02:00
Lasse Collin
f032373561
Update THANKS 2025-01-19 19:40:32 +02:00
Lasse Collin
51f038f8cb
liblzma: memcmplen.h: Use 8-byte method on 64-bit unaligned archs
Previously it was enabled only on x86-64 and ARM64 when also support
for unaligned access was detected or manually enabled at built time.

In the default build configuration, the 8-byte method is now enabled
also on 64-bit RISC-V and 64-bit PowerPC (both endiannesses). It was
reported that on big endian POWER9, encoding time may reduce 12-13 %.

This change only affects builds with GCC and Clang because the code
uses __builtin_ctzll or __builtin_clzll.

Thanks to Marcus Comstedt for testing on POWER9.
2025-01-13 08:44:58 +02:00
Lasse Collin
96336b0110
Update THANKS 2025-01-12 13:08:55 +02:00
Lasse Collin
150356207c
liblzma: Fix the encoder breakage on big endian ARM64
When the 8-byte method was enabled for ARM64, a check for endianness
wasn't added. This broke the LZMA/LZMA2 encoder. Test suite caught it.

Fixes: cd64dd70d5665b6048829c45772d08606f44672e
Co-authored-by: Marcus Comstedt <marcus@mc.pp.se>
2025-01-12 13:08:55 +02:00
Lasse Collin
b01b095802
Windows: Update manifest comments about long UTF-8 filenames 2025-01-12 13:08:55 +02:00
Lasse Collin
0dfc67d37e
Windows: Update build.bash and its README-Windows.txt to UCRT
While MSVCRT builds are possible, UCRT works better with UTF-8.
A 32-bit build is included still but hopefully it's not actually
needed anymore.
2025-01-12 13:08:49 +02:00
Lasse Collin
7b3eb2db6c
Translations: Update Serbian translation
I rewrapped a few overlong lines. Those edits aren't in the
Translation Project. Automatic wrapping in the master branch
means that these strings need to be updated soon anyway.
2025-01-10 13:19:32 +02:00
Lasse Collin
950da11ce0
Build: Use --sort=name in TAR_OPTIONS
Use also LC_COLLATE=C to make the sorting locale-independent.
Sorting makes the file order reproducible.
2025-01-08 19:29:53 +02:00
Lasse Collin
75d91d6b39
xz: Workaround broken O_SEARCH in musl
Testing with musl 1.2.5 and Linux 6.12, O_SEARCH doesn't result
in a file descriptor that works with fsync() although it should work.
See the added comment.

The same issue affected gzip --synchronous:

    https://bugs.gnu.org/75405

Thanks to Paul Eggert.
2025-01-08 19:20:28 +02:00
Lasse Collin
ea92eae122
Revert "xz: O_SEARCH cannot be used for fsync()"
This reverts commit 4014e2479c7b0273f15bd0c9c017c5fe859b0d8f.

POSIX-conforming O_SEARCH should allow fsync().
2025-01-08 19:20:21 +02:00
Lasse Collin
4014e2479c
xz: O_SEARCH cannot be used for fsync()
Opening a directory with O_SEARCH results in a file descriptor that can
be used with functions like openat(). Such a file descriptor cannot be
used with fsync(). Use O_RDONLY instead.

In musl, O_SEARCH becomes Linux-specific O_PATH. A file descriptor
from O_PATH doesn't allow fsync().

Seems that it's not possible to fsync() a directory that has write
and search permissions but not read permission.

Fixes: 2a9e91d796d091740489d951fa7780525e4275f1
2025-01-05 21:43:11 +02:00
Lasse Collin
ad2b57cb47
CI: Make ctest show errors from failed tests 2025-01-05 20:51:53 +02:00
Lasse Collin
c405264c03
tuklib_mbstr_nonprint: Preserve the value of errno
A typical use case is like this:

    printf("%s: %s\n", tuklib_mask_nonprint(filename), strerror(errno));

tuklib_mask_nonprint() may call mbrtowc() and malloc() which may modify
errno. If errno isn't preserved, the error message might be wrong if
a compiler decides to call tuklib_mask_nonprint() before strerror().

Fixes: 40e573305535960574404d2eae848b248c95ea7e
2025-01-05 20:16:09 +02:00