1
0
mirror of https://git.tukaani.org/xz.git synced 2025-05-24 15:16:39 +00:00

2916 Commits

Author SHA1 Message Date
Lasse Collin
d660fe5d56
liblzma: Fix grammar in API docs
Fixes: a27920002dbc ("liblzma: Add generic support for input seeking (LZMA_SEEK).")
2025-05-23 12:28:17 +03:00
Lasse Collin
ab45bdf432
Update THANKS 2025-05-21 16:07:01 +03:00
Lasse Collin
f023993653
CMake: With symbol versioning, try to pass --undefined-version to linker
Fixes: https://github.com/tukaani-project/xz/issues/180
Fixes: https://bugs.gentoo.org/956119
2025-05-21 16:07:01 +03:00
Lasse Collin
377be0ea7a
Build: With symbol versioning, try to pass --undefined-version to linker
Fixes: https://github.com/tukaani-project/xz/issues/180
Fixes: https://bugs.gentoo.org/956119
2025-05-21 16:07:01 +03:00
Lasse Collin
ff49c82176
CMake: Fix comments 2025-05-21 14:48:18 +03:00
Lasse Collin
71ad5e8288
Translations: Update Serbian man page translations
Compared to the file in the Translation Project, I still had to apply
a few fixes that were needed with the previous (5.7.1-dev1) version too:

  - Remove two extra '<' characters that break the build with po4a.

  - Don't translate XZ_DEFAULTS and XZ_OPT environment variable names.
2025-05-21 13:14:04 +03:00
Lasse Collin
31a983ad47
Update po/.gitignore 2025-05-21 12:55:28 +03:00
Lasse Collin
d9e70da25a
Translations: Update the Spanish translation 2025-05-21 12:54:42 +03:00
Lasse Collin
dbfb925c81
Tests: Silence a warning from GCC 15.1
It was (probably) intentionally without the null terminator, but the test
works with null terminator too (the test still fails with xz <= 5.0.3),
so simply omit one character to silence the warning.

tests/test_bcj_exact_size.c:30:32: error: initializer-string for array of ‘unsigned char’ truncates NUL terminator but destination lacks ‘nonstring’ attribute (17 chars into 16 available) [-Werror=unterminated-string-initialization]
   30 |         const uint8_t in[16] = "0123456789ABCDEF";
      |                                ^~~~~~~~~~~~~~~~~~

Fixes: d8db706acb83 ("liblzma: Fix possibility of incorrect LZMA_BUF_ERROR.")
Fixes: https://github.com/tukaani-project/xz/issues/176
2025-05-03 12:37:28 +03:00
Lasse Collin
7c12726c51
Update THANKS 2025-04-28 18:16:14 +03:00
Lasse Collin
1bd7361a04
Update THANKS 2025-04-25 17:52:50 +03:00
Guillaume Outters
5cc2e479eb
xz, xzdec: Capsicum sandbox: Fix incorrect use of cap_rights_clear()
cap_rights_clear() with no additional arguments acts as a no-op, so
instead of removing all capability rights from STDIN_FILENO, the same
rights were allowed for STDIN_FILENO as were allowed for src_fd.

Fixes: a0eecc235d3b ("xz: Make Capsicum sandbox more strict with stdin and stdout.")
(The commit message says "stdout". It should have said "stderr".)
2025-04-25 17:43:47 +03:00
Lasse Collin
56aa9a0796
CI: Valgrind: Improve the skipping of traced child processes
Use --trace-children-skip instead of --trace-children-skip-by-arg
so that the skipping is only done based on the executable names.
(--trace-children-skip-by-arg can match other args than argv[0].)

Update the list of executables to skip to match what the scripts run.

Do not skip bash or sh. If Valgrind didn't trace the shell, then the
xz and xzdec programs run by the shell wouldn't be analyzed either.

Fixes: 7e99856f66c0 ("CI: Speed up Valgrind job by using --trace-children-skip-by-arg=...")
2025-04-22 21:26:21 +03:00
Lasse Collin
f33da20b75
CI: Valgrind: Test with static liblzma
If shared liblzma is built, tests/test_* and src/xz/xz are wrapper
scripts created by Libtool. The wrappers set library search path
so that the freshly-built shared library is found.

With a static liblzma, no wrapper scripts are needed, and Libtool
places the real executables to the aforementioned locations. This
speeds up the tests under Valgrind dramatically.

Fixes: 6c095a98fbec ("ci: test Valgrind")
2025-04-22 21:26:21 +03:00
Lasse Collin
5606fa89f9
CI: Add Ubuntu on ARM64 2025-04-22 21:26:15 +03:00
Lasse Collin
ec047a65a0
Doxygen: Update the comment about tested versions 2025-04-22 19:00:20 +03:00
Lasse Collin
4f86e77bef
Doxygen: Set HAVE_DOT = NO
Debian and Ubuntu have a patch that changes the upstream default to
HAVE_DOT = YES. Undo it to have more consistent results across distros.

This was noticed in Ubuntu CI runner where "doxygen" tried to run "dot"
but that failed due to "dot" not being installed. "doxygen" still
finished with exit status 0 until the commit that turned warnings to
errors with WARN_AS_ERROR = FAIL_ON_WARNINGS.
2025-04-22 19:00:20 +03:00
Lasse Collin
ff96542d1c
Doxygen: Treat warnings as errors
Also set WARN_IF_UNDOCUMENTED = NO because even the API headers have
a few things that won't have their own docs.
2025-04-22 19:00:20 +03:00
Lasse Collin
a6711d1c4a
Doxygen: Fix errors and some warnings in internal docs 2025-04-22 19:00:19 +03:00
Lasse Collin
8efd80adfc
CI: Use --disable-sandbox instead of --enable-sandbox=no
It's the same thing, just a style difference.
2025-04-22 19:00:19 +03:00
Lasse Collin
a2e47c7a59
CI: Support Doxygen in ci_build.bash 2025-04-22 19:00:19 +03:00
Lasse Collin
9048e72494
CI: Add Doxygen dependency to CMake builds on Ubuntu and macOS 2025-04-22 19:00:19 +03:00
Lasse Collin
d8e9dc63a6
CI: Support XZ_NLS=OFF with CMake 2025-04-22 19:00:19 +03:00
Lasse Collin
ffa9fadecc
CI: Revise MSYS2
Re-enable CLANG64 environment. Add CLANGARM64. Don't add MINGW64
to slightly reduce the number of runner VMs needed.

Install the required packages using the setup-msys2 action instead
of running the commands separately.

Test Autotools and CMake in the same job to reduce the number of VMs.
This doesn't slow it down too much because the msys2-setup step is
needed by both. However, do only the full builds on ARM64 because
those runners seem to be slower.

Test fewer build configurations. The point of testing on MSYS2 is to
catch Windows-related issues. It should be enough that the more unusual
build configurations are tested in ci.yml.

Run the build commands directly instead of using ci_build.bash. This
makes it easier to see what commands are run even if it is a little
more verbose now.

Run the workflow automatically when commit are pushed to master.
With the fewer build variants it's not too slow.
2025-04-22 19:00:19 +03:00
Lasse Collin
6f2aaa77da
CI: Rename the MSYS2 workflow file 2025-04-22 19:00:19 +03:00
Lasse Collin
09110ad4c7
CI: Enable assertions on NetBSD + CMake 2025-04-22 19:00:10 +03:00
Lasse Collin
516b90f6e1
liblzma: Update lzma_lzip_decoder() docs about trailing data
Don't say that the .lz format allows trailing data. According to the
lzip 1.25 manual, trailing data isn't part of the file format at all.
However, tools are still expected to behave as usefully as possible
when there is trailing data.

Fix the description of lzip >= 1.20 behavior when some of the first
bytes of trailing data match the magic bytes. While the lzip 1.25 manual
recommends that none of the first four bytes in trailing data should
match the magic bytes, the default behavior of lzip 1.25 treats
trailing data as a corrupt member header only if two or three bytes
match the magic bytes; one matching byte isn't enough.

Reported-by: Antonio Diaz Diaz
Link: https://www.mail-archive.com/xz-devel@tukaani.org/msg00702.html
2025-04-21 12:23:37 +03:00
Lasse Collin
c330220d47
Update THANKS 2025-04-21 11:21:08 +03:00
Lasse Collin
6cc7672c22
CI: Add DragonflyBSD 2025-04-17 20:38:20 +03:00
Lasse Collin
07dc509137
CI: Update Solaris 2025-04-17 20:38:20 +03:00
Lasse Collin
cfcaae1945
CI: Update OpenBSD
Use --disable-nls --enable-external-sha256 because those are used
in the xz Makefile in the OpenBSD ports tree.
2025-04-17 20:38:20 +03:00
Lasse Collin
5240fcfee3
CI: Update NetBSD
For variety, use CMake and Ninja.
2025-04-17 20:38:20 +03:00
Lasse Collin
85ff0cf0ce
CI: Update FreeBSD
ARM64 was left commented out because it's slow under both
ubuntu-latest (x86-64) and ubuntu-24.04-arm (aarch64) hosts.
2025-04-17 20:38:06 +03:00
Lasse Collin
907ac2215d
CI: Specify only the main version of the standard GH actions 2025-04-17 18:43:16 +03:00
Lasse Collin
b0d0e62474
CI: Add 'permissions' to ci.yml and msvc.yml 2025-04-17 18:43:03 +03:00
Sam James
1edc14e8ca
CI: Add CIFuzz
xz is already part of OSS-Fuzz, but OSS-Fuzz provides & encourages [0]
its 'CIFuzz' service to test individual commits.

[0] https://google.github.io/oss-fuzz/getting-started/continuous-integration/

Co-authored-by: Lasse Collin <lasse.collin@tukaani.org>
2025-04-17 18:38:52 +03:00
Lasse Collin
35e06c4c42
CMake: Don't check for optreset if using replacement getopt_long
If <getopt.h> had optreset but not getopt_long, xz used optreset while
the replacement getopt_long doesn't support optreset. I'm not aware of
any relevant system where bug is possible. Autotools build didn't have
this bug.

Fixes: af66cd585902 ("CMake: Add support for replacement getopt_long (lib/getopt*).")
2025-04-17 18:36:54 +03:00
Lasse Collin
99f4b9db9d
Update THANKS 2025-04-17 18:33:10 +03:00
Lasse Collin
dd006a67e5
liblzma: Update the lzma_lzip_decoder() docs about sync flush marker 2025-04-17 18:30:26 +03:00
Lasse Collin
f59c585960
xz: Don't mention lzip's sync flush marker on the man page
The sync flush marker isn't valid in .lz files. The sync flush marker
may be used by lzlib, but the resulting streams are only meant to be
decoded by lzlib itself. lzlib's docs make this clear.

Reported-by: Antonio Diaz Diaz
Link: https://www.mail-archive.com/xz-devel@tukaani.org/msg00700.html
Link: https://www.mail-archive.com/xz-devel@tukaani.org/msg00701.html
2025-04-17 18:16:40 +03:00
Lasse Collin
49258439b4
Update THANKS 2025-04-17 18:15:48 +03:00
Lasse Collin
a69fbd3aae
CI: MSVC: Use fewer runners for the same number of tests
Using eight runners seems wasteful. Using only two runners isn't
much slower due to the runner startup overhead.

Also add a comment about the test that fails without b5a5d9e3f702.
2025-04-10 20:13:07 +03:00
Lasse Collin
8a300d1c4f
Update THANKS 2025-04-10 20:10:31 +03:00
Lasse Collin
b5a5d9e3f7
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
2025-04-07 22:36:58 +03:00
Lasse Collin
c5fd88dfc3
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.
2025-04-07 22:36:58 +03:00
Lasse Collin
49ba8c69ea
CI: Test 32/64-bit x86 builds with Visual Studio 2019 and 2022 2025-04-07 22:36:52 +03:00
Lasse Collin
1176a19df6
Tests: Add fuzz_decode_stream_mt.options 2025-04-04 20:08:37 +03:00
Lasse Collin
c3cb1e53a1
doc/SHA256SUMS: Add 5.8.1 2025-04-03 15:06:07 +03:00
Lasse Collin
a522a22654
Bump version and soname for 5.8.1 v5.8.1 2025-04-03 14:34:43 +03:00
Lasse Collin
1c462c2ad8
Add NEWS for 5.8.1 2025-04-03 14:34:43 +03:00