1
0
spogulis no https://git.tukaani.org/xz.git synced 2025-06-30 17:36:36 +00:00

Salīdzināt revīzijas

...

49 Revīzijas

Autors SHA1 Ziņojums Datums
Lasse Collin
dd4a1b2599
CI: Add timeout-minutes
Sometimes the VM workflows (like FreeBSD VM on Ubuntu) get stuck
and the default timeout is six hours. While at it, set a sensible
timeout for all workflows.
2025-05-23 13:09:14 +03:00
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
33 mainīti faili ar 633 papildinājumiem un 321 dzēšanām

Parādīt failu

@ -18,15 +18,18 @@ on:
# Allows running workflow manually
workflow_dispatch:
permissions: {}
jobs:
POSIX:
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
os: [ubuntu-latest, ubuntu-24.04-arm, macos-latest]
build_system: [autotools, cmake]
runs-on: ${{ matrix.os }}
timeout-minutes: 20
steps:
- uses: actions/checkout@v4.1.6
- uses: actions/checkout@v4
########################
# Install Dependencies #
@ -34,10 +37,15 @@ jobs:
# Install Autotools on Linux
- name: Install Dependencies
if: ${{ matrix.os == 'ubuntu-latest' && matrix.build_system == 'autotools' }}
if: ${{ startsWith(matrix.os, 'ubuntu') && matrix.build_system == 'autotools' }}
run: |
sudo apt-get update
sudo apt-get install -y autoconf automake build-essential po4a autopoint gcc-multilib doxygen musl-tools valgrind
sudo apt-get install -y autoconf automake build-essential po4a autopoint doxygen musl-tools valgrind
- name: Install Dependencies
if: ${{ matrix.os == 'ubuntu-latest' && matrix.build_system == 'autotools' }}
run: |
sudo apt-get install -y gcc-multilib
# Install Autotools on Mac
- name: Install Dependencies
@ -46,15 +54,15 @@ jobs:
# Install CMake on Linux
- name: Install Dependencies
if: ${{ matrix.os == 'ubuntu-latest' && matrix.build_system == 'cmake' }}
if: ${{ startsWith(matrix.os, 'ubuntu') && matrix.build_system == 'cmake' }}
run: |
sudo apt-get update
sudo apt-get install -y build-essential cmake gettext musl-tools
sudo apt-get install -y build-essential cmake gettext doxygen musl-tools
# Install CMake on Mac
- name: Install Dependencies
if: ${{ matrix.os == 'macos-latest' && matrix.build_system == 'cmake' }}
run: brew install cmake gettext
run: brew install cmake gettext doxygen
##################
# Build and Test #
@ -81,33 +89,33 @@ jobs:
# the /proc/ filesystem on Linux, which is used by the sanitizer's
# instrumentation.
- name: Build with -fsanitize=address,undefined
if: ${{ matrix.os == 'ubuntu-latest' && matrix.build_system == 'autotools' }}
if: ${{ startsWith(matrix.os, 'ubuntu') && matrix.build_system == 'autotools' }}
run: ./build-aux/ci_build.bash -b autotools -p build -f "-fsanitize=address,undefined" -d sandbox
- name: Test with -fsanitize=address,undefined
if: ${{ matrix.os == 'ubuntu-latest' && matrix.build_system == 'autotools' }}
if: ${{ startsWith(matrix.os, 'ubuntu') && matrix.build_system == 'autotools' }}
run: |
export UBSAN_OPTIONS=print_stacktrace=1:halt_on_error=1
./build-aux/ci_build.bash -b autotools -p test -f "-fsanitize=address,undefined" -d sandbox
cd ../xz_build && make distclean
- name: Build with Valgrind
if: ${{ matrix.os == 'ubuntu-latest' && matrix.build_system == 'autotools' }}
run: ./build-aux/ci_build.bash -b autotools -p build -d sandbox
if: ${{ startsWith(matrix.os, 'ubuntu') && matrix.build_system == 'autotools' }}
run: ./build-aux/ci_build.bash -b autotools -p build -d shared,sandbox
- name: Test with Valgrind
if: ${{ matrix.os == 'ubuntu-latest' && matrix.build_system == 'autotools' }}
if: ${{ startsWith(matrix.os, 'ubuntu') && matrix.build_system == 'autotools' }}
run: |
./build-aux/ci_build.bash -b autotools -p test -d sandbox -w "valgrind --quiet --trace-children=yes --trace-children-skip-by-arg=ls,cp,sed,grep,bash,sh --exit-on-first-error=yes --error-exitcode=1"
./build-aux/ci_build.bash -b autotools -p test -d sandbox -w "valgrind --quiet --trace-children=yes --trace-children-skip=*/cmp,*/cp,*/diff,*/grep,*/rm,*/sed --exit-on-first-error=yes --error-exitcode=1"
cd ../xz_build && make distclean
- name: Build with musl libc
if: ${{ matrix.os == 'ubuntu-latest'}}
if: ${{ startsWith(matrix.os, 'ubuntu') }}
run: ./build-aux/ci_build.bash -b ${{ matrix.build_system }} -p build -m "/usr/bin/musl-gcc"
- name: Test with musl libc
if: ${{ matrix.os == 'ubuntu-latest'}}
if: ${{ startsWith(matrix.os, 'ubuntu') }}
run: |
./build-aux/ci_build.bash -b ${{ matrix.build_system }} -p test -m "/usr/bin/musl-gcc"
- name: Clean up musl libc run
if: ${{ matrix.os == 'ubuntu-latest' && matrix.build_system == 'autotools' }}
if: ${{ startsWith(matrix.os, 'ubuntu') && matrix.build_system == 'autotools' }}
run: cd ../xz_build && make distclean
- name: Build with full features
@ -156,7 +164,7 @@ jobs:
run: ./build-aux/ci_build.bash -b ${{ matrix.build_system }} -d small -p test -n small
# Attempt to upload the test logs as artifacts if any step has failed
- uses: actions/upload-artifact@v4.3.3
- uses: actions/upload-artifact@v4
if: ${{ failure() }}
with:
name: ${{ matrix.os }} ${{ matrix.build_system }} Test Logs

55
.github/workflows/cifuzz.yml ārējs Parasts fails
Parādīt failu

@ -0,0 +1,55 @@
# SPDX-License-Identifier: 0BSD
# Authors: Sam James
# Lasse Collin
#
# This was written based on the OSS-Fuzz docs:
# https://google.github.io/oss-fuzz/getting-started/continuous-integration/
name: CIFuzz
on:
push:
branches: [ master ]
workflow_dispatch:
permissions: {}
jobs:
CIFuzz:
runs-on: ubuntu-latest
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
sanitizer: [ address, undefined, memory ]
steps:
- name: Build Fuzzers (${{ matrix.sanitizer }})
id: build
uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master
with:
oss-fuzz-project-name: 'xz'
# The language must match the one in project.yaml in OSS-Fuzz:
# https://github.com/google/oss-fuzz/blob/master/projects/xz/project.yaml
# Thus, use C++ even though there are no C++ files in XZ Utils.
language: c++
sanitizer: ${{ matrix.sanitizer }}
- name: Run Fuzzers (${{ matrix.sanitizer }})
uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master
with:
oss-fuzz-project-name: 'xz'
language: c++
sanitizer: ${{ matrix.sanitizer }}
fuzz-seconds: 600
report-timeouts: true
report-ooms: true
- name: Upload Crash
uses: actions/upload-artifact@v4
if: failure() && steps.build.outcome == 'success'
with:
name: ${{ matrix.sanitizer }}-artifacts
path: ./out/artifacts

40
.github/workflows/dragonflybsd.yml ārējs Parasts fails
Parādīt failu

@ -0,0 +1,40 @@
# SPDX-License-Identifier: 0BSD
name: DragonflyBSD
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
workflow_dispatch:
permissions: {}
jobs:
DragonflyBSD:
runs-on: ubuntu-latest
timeout-minutes: 10
name: DragonflyBSD
steps:
- uses: actions/checkout@v4
- name: Test in DragonflyBSD
id: test
uses: vmactions/dragonflybsd-vm@e3c420e8a2362c2496fca6e76a291abd46f5d8e7 #v1.1.0
with:
usesh: true
prepare: >
pkg install -y
autoconf
automake
gettext-tools
libtool
m4
run: |
set -e
uname -a
./autogen.sh --no-po4a
# Innocent putc() triggers strict-overflow warnings.
./configure --disable-static --enable-debug --enable-werror CFLAGS='-g -O2 -pipe -Wno-error=strict-overflow'
make -j4 check

Parādīt failu

@ -9,24 +9,48 @@ on:
branches: [ master ]
workflow_dispatch:
permissions: {}
jobs:
FreeBSD-test:
runs-on: ubuntu-latest
name: Test xz on FreeBSD
FreeBSD:
strategy:
matrix:
include:
- host: ubuntu-latest
version: 12.4
arch: x86_64
- host: ubuntu-latest
version: 15.0
arch: x86_64
# - host: ubuntu-24.04-arm
# version: 15.0
# arch: aarch64
runs-on: ${{ matrix.host }}
timeout-minutes: 10
name: FreeBSD
steps:
- uses: actions/checkout@v4.1.6
- name: Test in FreeBSD
id: test
uses: vmactions/FreeBSD-vm@d7b8fcc7711aa41ad45e8d9b737cf90f035a7e3d #v1.1.3
with:
usesh: true
prepare: |
pkg install -y autoconf automake gmake gettext-tools gtar libtool m4 po4a
run: |
set -e
export LC_ALL=C LANG=C
uname -a
./autogen.sh
./configure --enable-werror
make
make check VERBOSE=1
- uses: actions/checkout@v4
- name: Test in FreeBSD
uses: vmactions/freebsd-vm@c3ae29a132c8ef1924775414107a97cac042aad5 #v1.2.0
with:
release: ${{ matrix.release }}
arch: ${{ matrix.arch }}
usesh: true
prepare: >
pkg install -y
autoconf
automake
gettext-tools
libtool
m4
po4a
run: |
set -e
uname -a
./autogen.sh
./configure --disable-static --enable-debug --enable-werror
make -j4 check

92
.github/workflows/msvc.yml ārējs Parasts fails
Parādīt failu

@ -0,0 +1,92 @@
# SPDX-License-Identifier: 0BSD
# Author: Lasse Collin
name: Windows-MSVC
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
workflow_dispatch:
permissions: {}
jobs:
MSVC:
strategy:
fail-fast: false
matrix:
os: [ windows-2019, windows-latest ]
runs-on: ${{ matrix.os }}
timeout-minutes: 10
steps:
- uses: actions/checkout@v4
- name: Configure Win32
run: >
cmake
-A Win32
-B build-msvc-win32
- name: Build Win32 Debug
run: >
cmake
--build build-msvc-win32
--config Debug
- name: Test Win32 Debug
run: >
ctest
--test-dir build-msvc-win32
--build-config Debug
--output-on-failure
- name: Build Win32 Release
run: >
cmake
--build build-msvc-win32
--config Release
# This fails with VS 2019 without b5a5d9e3f702.
- name: Test Win32 Release
run: >
ctest
--test-dir build-msvc-win32
--build-config Release
--output-on-failure
- name: Configure x64
run: >
cmake
-A x64
-B build-msvc-x64
- name: Build x64 Debug
run: >
cmake
--build build-msvc-x64
--config Debug
- name: Test x64 Debug
run: >
ctest
--test-dir build-msvc-x64
--build-config Debug
--output-on-failure
- name: Build x64 Release
run: >
cmake
--build build-msvc-x64
--config Release
- name: Test x64 Release
run: >
ctest
--test-dir build-msvc-x64
--build-config Release
--output-on-failure

148
.github/workflows/msys2.yml ārējs Parasts fails
Parādīt failu

@ -0,0 +1,148 @@
# SPDX-License-Identifier: 0BSD
#############################################################################
#
# Authors: Jia Tan
# Lasse Collin
#
#############################################################################
name: Windows-MSYS2
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
workflow_dispatch:
permissions: {}
jobs:
MSYS2:
strategy:
fail-fast: false
matrix:
runner: [ windows-latest ]
sys: [ mingw32, ucrt64, clang64, msys ]
include:
- runner: windows-11-arm
sys: clangarm64
# Set the shell to be msys2 as a default to avoid setting it for
# every individual run command.
defaults:
run:
shell: msys2 {0}
runs-on: ${{ matrix.runner }}
timeout-minutes: 20
steps:
- name: Setup MSYS2
if: ${{ matrix.sys == 'msys' }}
uses: msys2/setup-msys2@61f9e5e925871ba6c9e3e8da24ede83ea27fa91f # v2.27.0
with:
msystem: ${{ matrix.sys }}
update: true
install: >
make
ninja
autotools
cmake
base-devel
gettext-devel
gcc
- name: Setup MSYS2
if: ${{ matrix.sys != 'msys' }}
uses: msys2/setup-msys2@61f9e5e925871ba6c9e3e8da24ede83ea27fa91f # v2.27.0
with:
msystem: ${{ matrix.sys }}
update: true
pacboy: >
make:p
ninja:p
autotools:p
cmake:p
toolchain:p
gettext:p
- name: Git configuration
# Need to explicitly set the shell here since we set the default
# shell as msys2 earlier. This avoids an extra msys2 dependency on
# git.
shell: powershell
# Avoid Windows line endings. Otherwise test_scripts.sh will fail
# because the expected output is stored in the test framework as a
# text file and will not match the output from xzgrep.
run: git config --global core.autocrlf false
- uses: actions/checkout@v4
- name: CMake (full, shared)
run: |
set -e
cmake -G Ninja -B b-cmake-full \
-DBUILD_SHARED_LIBS=ON \
-DCMAKE_C_FLAGS='-UNDEBUG -g -O2 -pipe' \
-DCMAKE_COMPILE_WARNING_AS_ERROR=ON \
${{ startsWith(matrix.sys, 'mingw') && '-DXZ_NLS=OFF' || '' }}
ninja -C b-cmake-full
ctest --test-dir b-cmake-full --output-on-failure
- name: CMake (small, static)
if: ${{ matrix.runner == 'windows-latest' }}
run: |
set -e
cmake -G Ninja -B b-cmake-small \
-DBUILD_SHARED_LIBS=OFF \
-DCMAKE_C_FLAGS='-UNDEBUG -g -Os -pipe' \
-DCMAKE_COMPILE_WARNING_AS_ERROR=ON \
-DXZ_SMALL=ON \
-DXZ_THREADS=no \
-DXZ_NLS=OFF
ninja -C b-cmake-small
ctest --test-dir b-cmake-small --output-on-failure
- name: autogen.sh
run: ./autogen.sh --no-po4a
- name: Autotools (full, shared)
run: |
set -e
mkdir b-autotools-full
cd b-autotools-full
../configure \
--enable-debug \
--enable-werror \
--disable-static \
${{ startsWith(matrix.sys, 'mingw') && '--disable-nls' || '' }}
make -j"$(nproc)" check
- name: Autotools (small, static)
if: ${{ matrix.runner == 'windows-latest' }}
run: |
set -e
mkdir b-autotools-small
cd b-autotools-small
../configure \
--enable-debug \
--enable-werror \
--disable-shared \
--enable-small \
--disable-threads \
--disable-nls \
CFLAGS='-g -Os'
make -j"$(nproc)" check
# Upload the test logs as artifacts if any step has failed.
- uses: actions/upload-artifact@v4
if: failure()
with:
name: test-logs-${{ matrix.sys }}
path: |
b-cmake-*/Testing/Temporary/
b-cmake-*/test_*/
b-autotools-*/tests/*.log
b-autotools-*/tests/*output

Parādīt failu

@ -9,24 +9,32 @@ on:
branches: [ master ]
workflow_dispatch:
permissions: {}
jobs:
NetBSD-test:
NetBSD:
runs-on: ubuntu-latest
name: Test xz on NetBSD
timeout-minutes: 10
name: NetBSD
steps:
- uses: actions/checkout@v4.1.6
- name: Test in NetBSD
id: test
uses: vmactions/NetBSD-vm@dd0161ecbb6386e562fd098acf367633501487a4 #v1.1.3
with:
usesh: true
prepare: |
/usr/sbin/pkg_add -v autoconf automake gmake gettext-tools gtar-base libtool-base m4 po4a
run: |
set -e
export LC_ALL=C LANG=C
uname -a
./autogen.sh
./configure --enable-werror
make
make check VERBOSE=1
- uses: actions/checkout@v4
- name: Test in NetBSD
id: test
uses: vmactions/netbsd-vm@46a58bbf03682b4cb24142b97fa315ae52bed573 #v1.1.8
with:
usesh: true
prepare: >
/usr/sbin/pkg_add -v
cmake
gettext-tools
ninja-build
po4a
run: |
set -e
uname -a
./po4a/update-po
# Innocent putc() triggers strict-overflow warnings.
cmake -G Ninja -B build -DBUILD_SHARED_LIBS=ON -DCMAKE_C_FLAGS='-UNDEBUG -g -O2 -pipe -Wno-error=strict-overflow' -DCMAKE_COMPILE_WARNING_AS_ERROR=ON
ninja -C build
ctest --test-dir build --output-on-failure

Parādīt failu

@ -9,27 +9,32 @@ on:
branches: [ master ]
workflow_dispatch:
permissions: {}
jobs:
OpenBSD-test:
OpenBSD:
runs-on: ubuntu-latest
name: Test xz on OpenBSD
timeout-minutes: 10
name: OpenBSD
steps:
- uses: actions/checkout@v4.1.6
- name: Test in OpenBSD
id: test
uses: vmactions/OpenBSD-vm@ebafa4eac4adf5e7d04e5bbb4aa764b75dd160df #v1.1.2
with:
usesh: true
prepare: |
/usr/sbin/pkg_add -I -v autoconf-2.71 automake-1.16.5 gmake gettext-tools gtar libtool m4
run: |
set -e
export LC_ALL=C LANG=C
export AUTOCONF_VERSION=2.71
export AUTOMAKE_VERSION=1.16
uname -a
# OpenBSD ports lack po4a
./autogen.sh --no-po4a
./configure --enable-werror
make
make check VERBOSE=1
- uses: actions/checkout@v4
- name: Test in OpenBSD
uses: vmactions/openbsd-vm@284abc8fb4cd88f69946a0d4c27c4eecd82fdde9 #v1.1.7
with:
usesh: true
prepare: >
/usr/sbin/pkg_add -I -v
autoconf-2.72p0
automake-1.16.5
gettext-tools
libtool
m4
run: |
set -e
export AUTOCONF_VERSION=2.72
export AUTOMAKE_VERSION=1.16
uname -a
./autogen.sh --no-po4a
./configure --disable-static --enable-debug --enable-werror --disable-nls --enable-external-sha256
make -j4 check

Parādīt failu

@ -9,24 +9,26 @@ on:
branches: [ master ]
workflow_dispatch:
permissions: {}
jobs:
solaris-test:
Solaris:
runs-on: ubuntu-latest
name: Test xz on Solaris
timeout-minutes: 10
name: Solaris
steps:
- uses: actions/checkout@v4.1.6
- name: Test in Solaris
id: test
uses: vmactions/solaris-vm@960d7483ffd6ac03397964cf6423a2f41332c9c8 #v1.0.9
with:
usesh: true
prepare: |
pkg install bash libtool automake gnu-m4 tree wget gcc autoconf //solaris/text/gawk pkg://solaris/text/gnu-diffutils pkg://solaris/text/gnu-grep pkg://solaris/text/gnu-sed
run: |
set -e
export LC_ALL=C LANG=C
uname -a
./autogen.sh --no-po4a
./configure --enable-werror
make
make check VERBOSE=1
- uses: actions/checkout@v4
- name: Test in Solaris
uses: vmactions/solaris-vm@cc8f82fa1a7cc746153ec3f71bf11f311f16e225 #v1.1.1
with:
release: 11.4-gcc
usesh: true
run: |
set -e
uname -a
# /usr/xpg4/bin isn't in PATH by default.
echo "Environment variable PATH: $PATH"
./autogen.sh --no-po4a
./configure --disable-static --enable-debug --enable-werror
make check

Parādīt failu

@ -1,124 +0,0 @@
# SPDX-License-Identifier: 0BSD
#############################################################################
#
# Author: Jia Tan
#
#############################################################################
name: Windows-CI
# Only run the Windows CI manually since it takes much longer than the others.
on: workflow_dispatch
jobs:
POSIX:
strategy:
matrix:
# Test different environments since the code may change between
# them and we want to ensure that we support all potential users.
# clang64 builds are currently broken when building static libraries
# due to a bug in ldd search path:
# https://github.com/llvm/llvm-project/issues/67779
# TODO - re-enable clang64 when this is resolved.
msys2_env: [mingw64, mingw32, ucrt64, msys]
build_system: [autotools, cmake]
# Set the shell to be msys2 as a default to avoid setting it for
# every individual run command.
defaults:
run:
shell: msys2 {0}
runs-on: windows-latest
steps:
#####################
# Setup Environment #
#####################
# Rely on the msys2 GitHub Action to set up the msys2 environment.
- name: Setup MSYS2
uses: msys2/setup-msys2@cc11e9188b693c2b100158c3322424c4cc1dadea #v2.22.0
with:
msystem: ${{ matrix.msys2_env }}
update: true
install: pactoys make
- name: Checkout code
# Need to explicitly set the shell here since we set the default
# shell as msys2 earlier. This avoids an extra msys2 dependency on
# git.
shell: powershell
# Avoid Windows line endings. Otherwise test_scripts.sh will fail
# because the expected output is stored in the test framework as a
# text file and will not match the output from xzgrep.
run: git config --global core.autocrlf false
- uses: actions/checkout@v4.1.6
########################
# Install Dependencies #
########################
# The pacman repository has a different naming scheme for default
# msys packages than the others. The pacboy tool allows installing
# the packages possible in matrix setup without a burdensome amount
# of ifs.
- name: Install Dependencies
if: ${{ matrix.msys2_env == 'msys' && matrix.build_system == 'autotools' }}
run: pacman --noconfirm -S --needed autotools base-devel doxygen gettext-devel gcc
- name: Install Dependencies
if: ${{ matrix.msys2_env != 'msys' && matrix.build_system == 'autotools' }}
run: pacboy --noconfirm -S --needed autotools:p toolchain:p doxygen:p
- name: Install Dependencies
if: ${{ matrix.msys2_env == 'msys' && matrix.build_system == 'cmake' }}
run: pacman --noconfirm -S --needed cmake base-devel gcc
- name: Install Dependencies
if: ${{ matrix.msys2_env != 'msys' && matrix.build_system == 'cmake' }}
run: pacboy --noconfirm -S --needed cmake:p toolchain:p
##################
# Build and Test #
##################
- name: Build with full features
run: ./build-aux/ci_build.bash -a "--no-po4a" -b ${{ matrix.build_system }} -p build
- name: Test with full features
run: ./build-aux/ci_build.bash -a "--no-po4a" -b ${{ matrix.build_system }} -p test -n full_features
- name: Build without threads
run: ./build-aux/ci_build.bash -a "--no-po4a" -b ${{ matrix.build_system }} -d threads,shared -p build
- name: Test without threads
run: ./build-aux/ci_build.bash -a "--no-po4a" -b ${{ matrix.build_system }} -d threads,shared -p test -n no_threads
- name: Build without encoders
run: ./build-aux/ci_build.bash -a "--no-po4a" -b ${{ matrix.build_system }} -d encoders,shared -p build
- name: Test without encoders
run: ./build-aux/ci_build.bash -a "--no-po4a" -b ${{ matrix.build_system }} -d encoders,shared -p test -n no_encoders
- name: Build without decoders
run: ./build-aux/ci_build.bash -a "--no-po4a" -b ${{ matrix.build_system }} -d decoders,shared -p build
- name: Test without decoders
run: ./build-aux/ci_build.bash -a "--no-po4a" -b ${{ matrix.build_system }} -d decoders,shared -p test -n no_decoders
- name: Build with only crc32 check
run: ./build-aux/ci_build.bash -a "--no-po4a" -b ${{ matrix.build_system }} -c crc32 -d shared,nls -p build
- name: Test with only crc32 check
run: ./build-aux/ci_build.bash -a "--no-po4a" -b ${{ matrix.build_system }} -c crc32 -d shared,nls -p test -n crc32_only
###############
# Upload Logs #
###############
# Upload the test logs as artifacts if any step has failed.
- uses: actions/upload-artifact@v4.3.3
if: ${{ failure() }}
with:
name: ${{ matrix.msys2_env }} ${{ matrix.build_system }} Test Logs
path: build-aux/artifacts

Parādīt failu

@ -85,6 +85,7 @@ include(CheckSymbolExists)
include(CheckStructHasMember)
include(CheckCSourceCompiles)
include(CheckCCompilerFlag)
include(CheckLinkerFlag)
include(cmake/tuklib_large_file_support.cmake)
include(cmake/tuklib_integer.cmake)
include(cmake/tuklib_cpucores.cmake)
@ -484,7 +485,7 @@ if(NOT WIN32)
# auto Autodetect between no, generic, and linux
# yes Force on by autodetecting between linux and generic
# no Disable symbol versioning
# generic FreeBSD, most Linux/glibc systems, and GNU/Hurd
# generic FreeBSD, some Linux/glibc systems, and GNU/Hurd
# linux Linux/glibc with extra symbol versions for compatibility
# with binaries that have been linked against a liblzma version
# that has been patched with "xz-5.2.2-compat-libs.patch" from
@ -541,7 +542,7 @@ symbol versioning (${SUPPORTED_SYMBOL_VERSIONING_VARIANTS})")
# somewhere in the string).
#
# NVIDIA HPC Compiler doesn't support symbol versioning but
# it uses the linked from the system so the linker script
# it uses the linker from the system so the linker script
# can still be used to get the generic symbol versioning.
set(SYMBOL_VERSIONING "generic")
@ -556,6 +557,21 @@ symbol versioning (${SUPPORTED_SYMBOL_VERSIONING_VARIANTS})")
set(SYMBOL_VERSIONING "generic")
endif()
endif()
if(NOT SYMBOL_VERSIONING STREQUAL "no")
# If features are disabled in liblzma, some symbols may be missing.
# LLVM's lld defaults to --no-undefined-version and the build breaks
# if not all symbols in the version script exist. That is good for
# catching errors like typos, but in our case the downside is too big.
# Avoid the problem by using --undefined-version if the linker
# supports it.
#
# GNU ld has had --no-undefined-version for a long time but it's not
# the default. The opposite option --undefined-version was only added
# in 2022, thus we must use --undefined-version conditionally.
check_linker_flag(C "-Wl,--undefined-version"
HAVE_LINKER_FLAG_UNDEFINED_VERSION)
endif()
endif()
set(LIBLZMA_API_HEADERS
@ -1480,6 +1496,9 @@ elseif(BUILD_SHARED_LIBS AND SYMBOL_VERSIONING STREQUAL "linux")
# NOTE: Set it explicitly to 1 to make it clear that versioning is
# done unconditionally in the C files.
target_compile_definitions(liblzma PRIVATE HAVE_SYMBOL_VERSIONS_LINUX=1)
if(HAVE_LINKER_FLAG_UNDEFINED_VERSION)
target_link_options(liblzma PRIVATE "-Wl,--undefined-version")
endif()
target_link_options(liblzma PRIVATE
"-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/src/liblzma/liblzma_linux.map"
)
@ -1487,6 +1506,9 @@ elseif(BUILD_SHARED_LIBS AND SYMBOL_VERSIONING STREQUAL "linux")
LINK_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/src/liblzma/liblzma_linux.map"
)
elseif(BUILD_SHARED_LIBS AND SYMBOL_VERSIONING STREQUAL "generic")
if(HAVE_LINKER_FLAG_UNDEFINED_VERSION)
target_link_options(liblzma PRIVATE "-Wl,--undefined-version")
endif()
target_link_options(liblzma PRIVATE
"-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/src/liblzma/liblzma_generic.map"
)
@ -2171,8 +2193,10 @@ this many MiB of RAM if xz cannot determine the amount at runtime")
tuklib_progname(xz)
tuklib_mbstr(xz)
check_symbol_exists(optreset getopt.h HAVE_OPTRESET)
tuklib_add_definition_if(xz HAVE_OPTRESET)
if(HAVE_GETOPT_LONG)
check_symbol_exists(optreset getopt.h HAVE_OPTRESET)
tuklib_add_definition_if(xz HAVE_OPTRESET)
endif()
check_symbol_exists(posix_fadvise fcntl.h HAVE_POSIX_FADVISE)
tuklib_add_definition_if(xz HAVE_POSIX_FADVISE)

8
THANKS
Parādīt failu

@ -5,6 +5,7 @@ Thanks
Some people have helped more, some less, but nevertheless everyone's help
has been important. :-) In alphabetical order:
- Mark Adler
- Victoria Alexia
- Kian-Meng Ang
- H. Peter Anvin
- Jeff Bastian
@ -33,6 +34,7 @@ has been important. :-) In alphabetical order:
- Cristiano Ceglia
- Marek Černocký
- Tomer Chachamu
- Aziz Chaudhry
- Vitaly Chikunov
- Antoine Cœur
- Elijah Almeida Coimbra
@ -42,6 +44,7 @@ has been important. :-) In alphabetical order:
- Vincent Cruz
- Gabi Davar
- Ron Desmond
- Antonio Diaz Diaz
- İhsan Doğan
- Chris Donawa
- Andrew Dudman
@ -51,6 +54,7 @@ has been important. :-) In alphabetical order:
- Paul Eggert
- Robert Elz
- Gilles Espinasse
- François Etcheverry
- Denis Excoffier
- Vincent Fazio
- Michael Felt
@ -76,6 +80,7 @@ has been important. :-) In alphabetical order:
- Joachim Henke
- Lizandro Heredia
- Christian Hesse
- Andreas K. Hüttel
- Vincenzo Innocente
- Peter Ivanov
- Nicholas Jackson
@ -102,10 +107,12 @@ has been important. :-) In alphabetical order:
- Christian Kujau
- Stephan Kulow
- Ilya Kurdyukov
- Émilie Labbé
- Peter Lawler
- James M Leddy
- Kelvin Lee
- Vincent Lefevre
- Daniel Leonard
- Hin-Tak Leung
- Andraž 'ruskie' Levstik
- Cary Lewis
@ -145,6 +152,7 @@ has been important. :-) In alphabetical order:
- Ruarí Ødegaard
- Peter O'Gorman
- Dimitri Papadopoulos Orfanos
- Guillaume Outters
- Daniel Packard
- Filip Palian
- Peter Pallinger

Parādīt failu

@ -43,6 +43,7 @@ NATIVE_LANG_SUPPORT="y"
SMALL="n"
CLMUL="y"
SANDBOX="y"
DOXYGEN="y"
SRC_DIR="$ABS_DIR/../"
DEST_DIR="$SRC_DIR/../xz_build"
PHASE="all"
@ -91,6 +92,7 @@ while getopts a:b:c:d:l:m:n:s:p:f:w:h opt; do
small) SMALL="y";;
clmul) CLMUL="n";;
sandbox) SANDBOX="n";;
doxygen) DOXYGEN="n";;
*) echo "Invalid disable value: $disable_arg"; exit 1 ;;
esac
done
@ -207,7 +209,8 @@ then
add_extra_option "$NATIVE_LANG_SUPPORT" "" "--disable-nls"
add_extra_option "$SMALL" "--enable-small" ""
add_extra_option "$CLMUL" "" "--disable-clmul-crc"
add_extra_option "$SANDBOX" "" "--enable-sandbox=no"
add_extra_option "$SANDBOX" "" "--disable-sandbox"
add_extra_option "$DOXYGEN" "--enable-doxygen" ""
# Workaround a bug in too old config.guess. Version with
# timestamp='2022-05-08' would be needed but the autotools-dev
@ -241,7 +244,9 @@ then
# CMake disables the shared library by default.
add_extra_option "$SHARED" "-DBUILD_SHARED_LIBS=ON" ""
add_extra_option "$NATIVE_LANG_SUPPORT" "" "-DXZ_NLS=OFF"
add_extra_option "$SMALL" "-DXZ_SMALL=ON" ""
add_extra_option "$DOXYGEN" "-DXZ_DOXYGEN=ON" ""
# Remove old cache file to clear previous settings.
rm -f "CMakeCache.txt"

Parādīt failu

@ -758,6 +758,7 @@ fi
# --with-pic and --without-pic though. As long as neither --with-pic nor
# --without-pic is used then we can use #ifdef PIC to detect if the file is
# being built for a shared library.
LINKER_FLAG_UNDEFINED_VERSION=
AS_IF([test "x$enable_symbol_versions" = xno], [
enable_symbol_versions=no
AC_MSG_RESULT([no])
@ -831,12 +832,34 @@ AS_IF([test "x$enable_symbol_versions" = xno], [
AC_MSG_ERROR([unknown symbol versioning variant '$enable_symbol_versions'])
fi
AC_MSG_RESULT([yes ($enable_symbol_versions)])
# If features are disabled in liblzma, some symbols may be missing.
# LLVM's lld defaults to --no-undefined-version and the build breaks
# if not all symbols in the version script exist. That is good for
# catching errors like typos, but in our case the downside is too big.
# Avoid the problem by using --undefined-version if the linker
# supports it.
#
# GNU ld has had --no-undefined-version for a long time but it's not
# the default. The opposite option --undefined-version was only added
# in 2022, thus we must use --undefined-version conditionally.
AC_MSG_CHECKING([if linker supports --undefined-version])
OLD_LDFLAGS=$LDFLAGS
LDFLAGS="$LDFLAGS -Wl,--undefined-version"
AC_LINK_IFELSE([AC_LANG_SOURCE([[int main(void) { return 0; }]])], [
LINKER_FLAG_UNDEFINED_VERSION=-Wl,--undefined-version
AC_MSG_RESULT([yes])
], [
AC_MSG_RESULT([no])
])
LDFLAGS=$OLD_LDFLAGS
])
AM_CONDITIONAL([COND_SYMVERS_LINUX],
[test "x$enable_symbol_versions" = xlinux])
AM_CONDITIONAL([COND_SYMVERS_GENERIC],
[test "x$enable_symbol_versions" = xgeneric])
AC_SUBST([LINKER_FLAG_UNDEFINED_VERSION])
###############################################################################

Parādīt failu

@ -234,3 +234,10 @@ b523c5e47d1490338c5121bdf2a6ecca2bcf0dce05a83ad40a830029cbe6679b xz-5.8.0.tar.g
05ecad9e71919f4fca9f19fbbc979ea28e230188ed123dc6f06b98031ea14542 xz-5.8.0.tar.xz
397165cedccb8e16700b8fdd026c3fd7ff2d18923e28cfbf7d0c5f89cd6a50af xz-5.8.0-windows.zip
078caa9d406018d4d43df343455f57811e9ba69c1340670a85a0ae6341d42ba3 xz-5.8.0-windows.7z
ee188eabc3220684422f62df7a385541a86d2a5c385407f9d8fd94d49b251c4e xz-cve-2025-31115.patch
c9789682496d124fd214e665f6aa2f6d3d9e8527a7f0e120f9180c531d322bd6 xz-5.8.1.tar
5965c692c4c8800cd4b33ce6d0f6ac9ac9d6ab227b17c512b6561bce4f08d47e xz-5.8.1.tar.bz2
507825b599356c10dca1cd720c9d0d0c9d5400b9de300af00e4d1ea150795543 xz-5.8.1.tar.gz
0b54f79df85912504de0b14aec7971e3f964491af1812d83447005807513cd9e xz-5.8.1.tar.xz
62fdfde73d5c5d293bbb4a96211b29d09adbd56bc6736976e4c9fc9942ae3c67 xz-5.8.1-windows.zip
8ed1403fe6c971a2a6ac85fb7b27c8438b83175bc6f3bc49fec06540c904c84d xz-5.8.1-windows.7z

Parādīt failu

@ -8,7 +8,7 @@
# - Instead of API docs, docs of XZ Utils internals may be built.
# - Change the output directory for out-of-tree builds.
#
# These options were tested with Doxygen 1.10.0.
# These options were tested with Doxygen 1.9.8 and 1.13.2.
PROJECT_NAME = "liblzma (XZ Utils)"
OUTPUT_DIRECTORY = ../doc
@ -19,6 +19,8 @@ RECURSIVE = YES
OPTIMIZE_OUTPUT_FOR_C = YES
EXTRACT_STATIC = YES
SORT_MEMBER_DOCS = NO
WARN_IF_UNDOCUMENTED = NO
WARN_AS_ERROR = FAIL_ON_WARNINGS
SOURCE_TOOLTIPS = NO
VERBATIM_HEADERS = NO
ALPHABETICAL_INDEX = NO
@ -37,3 +39,7 @@ PREDEFINED = LZMA_API(type)=type \
tuklib_attr_noreturn= \
lzma_attribute(attr)= \
lzma_attr_alloc_size(size)=
# Debian and Ubuntu patch Doxygen so that HAVE_DOT = YES is the default.
# Set HAVE_DOT explicitly to get consistent behavior across distributions.
HAVE_DOT = NO

1
po/.gitignore ārējs
Parādīt failu

@ -5,6 +5,7 @@ Rules-quot
boldquot.sed
en@boldquot.header
en@quot.header
insert-header.sed
insert-header.sin
quot.sed
remove-potcdate.sin

Parādīt failu

@ -1,16 +1,16 @@
# SPDX-License-Identifier: 0BSD
#
# Spanish translation for xz-5.7.1-dev1.
# Spanish translation for xz-5.8.0-pre1.
# Copyright (C) 2024, 2025 The XZ Utils authors and contributors
# This file is published under the BSD Zero Clause License.
# Cristian Othón Martínez Vera <cfuga@cfuga.mx>, 2022, 2023, 2024, 2025.
#
msgid ""
msgstr ""
"Project-Id-Version: xz 5.7.1-dev1\n"
"Project-Id-Version: xz 5.8.0-pre1\n"
"Report-Msgid-Bugs-To: xz@tukaani.org\n"
"POT-Creation-Date: 2025-01-29 20:59+0200\n"
"PO-Revision-Date: 2025-01-24 09:25-0600\n"
"PO-Revision-Date: 2025-05-14 14:23-0600\n"
"Last-Translator: Cristian Othón Martínez Vera <cfuga@cfuga.mx>\n"
"Language-Team: Spanish <es@tp.org.es>\n"
"Language: es\n"
@ -1169,7 +1169,7 @@ msgstr "Los sufijos válidos son 'KiB' (2^10), 'MiB' (2^20), y 'GiB' (2^30)."
#: src/xz/util.c
#, c-format
msgid "Value of the option '%s' must be in the range [%<PRIu64>, %<PRIu64>]"
msgstr "El valor de la opción '%s' debe estar en el rango [%<PRIu64>, %<PRIu64>]"
msgstr "El valor de la opción '%s' debe estar en el intervalo [%<PRIu64>, %<PRIu64>]"
#: src/xz/util.c
msgid "Compressed data cannot be read from a terminal"
@ -1223,7 +1223,7 @@ msgstr "El valor de la opción no puede estar vacío"
#: src/liblzma/common/string_conversion.c
msgid "Value out of range"
msgstr "Valor fuera de rango"
msgstr "Valor fuera de intervalo"
#: src/liblzma/common/string_conversion.c
msgid "This option does not support any multiplier suffixes"

Parādīt failu

@ -7,9 +7,9 @@
#
msgid ""
msgstr ""
"Project-Id-Version: xz-man 5.7.1-dev1\n"
"POT-Creation-Date: 2025-03-25 12:28+0200\n"
"PO-Revision-Date: 2025-03-02 17:46+0100\n"
"Project-Id-Version: xz-man 5.8.0-pre1\n"
"POT-Creation-Date: 2025-03-08 14:50+0200\n"
"PO-Revision-Date: 2025-05-18 07:01+0200\n"
"Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
"Language-Team: Serbian <(nothing)>\n"
"Language: sr\n"
@ -28,10 +28,9 @@ msgstr "XZ"
#. type: TH
#: ../src/xz/xz.1
#, fuzzy, no-wrap
#| msgid "2025-01-05"
#, no-wrap
msgid "2025-03-08"
msgstr "05.01.2025."
msgstr "08.03.2025."
#. type: TH
#: ../src/xz/xz.1 ../src/xzdec/xzdec.1 ../src/lzmainfo/lzmainfo.1
@ -1561,7 +1560,7 @@ msgstr "B<preset=>I<предподешавање>"
#. type: Plain text
#: ../src/xz/xz.1
msgid "Reset all LZMA1 or LZMA2 I<options> to I<preset>. I<Preset> consist of an integer, which may be followed by single-letter preset modifiers. The integer can be from B<0> to B<9>, matching the command line options B<-0> \\&...\\& B<-9>. The only supported modifier is currently B<e>, which matches B<--extreme>. If no B<preset> is specified, the default values of LZMA1 or LZMA2 I<options> are taken from the preset B<6>."
msgstr "Враћа све LZMA1 или LZMA2 I<опције> на I<предподешеност>. I<Предпдешеност> се састоји од целог броја, за којим може да следи једнословни измењивач предподешености. Цео број може бити од B<0> до B<9>, поклапајући опције линије наредби B<-0> \\&...\\& B<-9>. Једини тренутно подржани измењивач је B<e>, који се поклапа са B<--extreme>. Ако B<предподешеност> није наведена, основне вредности LZMA1 или LZMA2 I<опција> се узимају из предподешености B<6>."
msgstr "Враћа све LZMA1 или LZMA2 I<опције> на I<предподешеност>. I<Предпдешеност> се састоји од целог броја, за којим може да следи једнословни измењивач предподешености. Цео број може бити од B<0> до B<9>, поклапајући опције линије наредби B<-0> \\&...\\& B<-9>. Једини тренутно подржани измењивач је B<e>, који се поклапа са B<--extreme>. Ако B<preset> није наведено, основне вредности LZMA1 или LZMA2 I<опција> се узимају из предподешености B<6>."
#. type: TP
#: ../src/xz/xz.1
@ -2902,7 +2901,7 @@ msgstr "B<xz> обрађује размаком одвојени списак о
#. type: Plain text
#: ../src/xz/xz.1
msgid "B<Warning:> By setting these environment variables, one is effectively modifying programs and scripts that run B<xz>. Most of the time it is safe to set memory usage limits, number of threads, and compression options via the environment variables. However, some options can break scripts. An obvious example is B<--help> which makes B<xz> show the help text instead of compressing or decompressing a file. More subtle examples are B<--quiet> and B<--verbose>. In many cases it works well to enable the progress indicator using B<--verbose>, but in some situations the extra messages create problems. The verbosity level also affects the behavior of B<--list>."
msgstr ""
msgstr "B<Упозорење:> Постављањем ових променљивих окружења, ефективно мењате програме и скрипте које покреће B<xz>. У већини случајева је безбедно поставити ограничење коришћења, број нити и опција паковања путем променљивих окружења. Међутим, неке опције могу да уруше скрипте. Очигледан пример је B<--help> која чини да B<xz> прикаже текст помоћи уместо да запакује или распакује датотеку. Суптилнији примери су B<--quiet> и B<--verbose>. У многим случајевима добро функционише омогућавање указивача напредовања коришћењем B<--verbose>, али у неким ситуацијама додатне поруке стварају проблеме. Ниво опширности такође утиче на понашање B<--list>"
#. type: TP
#: ../src/xz/xz.1
@ -2912,10 +2911,8 @@ msgstr "B<XZ_DEFAULTS>"
#. type: Plain text
#: ../src/xz/xz.1
#, fuzzy
#| msgid "User-specific or system-wide default options. Typically this is set in a shell initialization script to enable B<xz>'s memory usage limiter by default. Excluding shell initialization scripts and similar special cases, scripts must never set or unset B<XZ_DEFAULTS>."
msgid "User-specific or system-wide default options. Typically this is set in a shell initialization script to enable B<xz>'s memory usage limiter by default or set the default number of threads. Excluding shell initialization scripts and similar special cases, scripts should never set or unset B<XZ_DEFAULTS>."
msgstr "Кориснику специфичне или свеопште системске основне опције. Обично је ово постављено у скрипти покретања конзоле за укључивање B<xz> ограничавача коришћења меморије по основи. Искључивање скрипти покретања конзоле и сличних специјалних случајева, скрипте не смеју никада да поставе или пониште B<XZ_DEFAULTS>."
msgstr "Кориснику специфичне или свеопште системске основне опције. Обично је ово постављено у скрипти покретања конзоле за укључивање B<xz> ограничавача коришћења меморије по основи или за постављање основног броја нити. Искључивање скрипти покретања конзоле и сличних специјалних случајева, скрипте не смеју никада да поставе или пониште B<XZ_DEFAULTS>."
#. type: TP
#: ../src/xz/xz.1
@ -3591,10 +3588,9 @@ msgstr "XZDIFF"
#. type: TH
#: ../src/scripts/xzdiff.1 ../src/scripts/xzgrep.1 ../src/scripts/xzless.1
#: ../src/scripts/xzmore.1
#, fuzzy, no-wrap
#| msgid "2025-01-05"
#, no-wrap
msgid "2025-03-06"
msgstr "05.01.2025."
msgstr "06.03.2025."
#. type: Plain text
#: ../src/scripts/xzdiff.1
@ -3613,17 +3609,13 @@ msgstr "B<xzdiff> \\&..."
#. type: Plain text
#: ../src/scripts/xzdiff.1
#, fuzzy
#| msgid "B<lzcmp> \\&..."
msgid "B<lzcmp> \\&... (DEPRECATED)"
msgstr "B<lzcmp> \\&..."
msgstr "B<lzcmp> \\&... (ЗАСТАРЕЛО)"
#. type: Plain text
#: ../src/scripts/xzdiff.1
#, fuzzy
#| msgid "B<lzdiff> \\&..."
msgid "B<lzdiff> \\&... (DEPRECATED)"
msgstr "B<lzdiff> \\&..."
msgstr "B<lzdiff> \\&... (ЗАСТАРЕЛО)"
#. type: Plain text
#: ../src/scripts/xzdiff.1
@ -3642,10 +3634,8 @@ msgstr "Ако је достављен само један назив датот
#. type: Plain text
#: ../src/scripts/xzdiff.1
#, fuzzy
#| msgid "The commands B<lzcmp> and B<lzdiff> are provided for backward compatibility with LZMA Utils."
msgid "The commands B<lzcmp> and B<lzdiff> are provided for backward compatibility with LZMA Utils. They are deprecated and will be removed in a future version."
msgstr "Наредбе B<lzcmp> и B<lzdiff> се достављају зарад назадне сагласности са LZMA Utils."
msgstr "Наредбе B<lzcmp> и B<lzdiff> се достављају зарад назадне сагласности са LZMA Utils. Застареле су и биће уклоњене у будућем издању."
#. type: Plain text
#: ../src/scripts/xzdiff.1
@ -3685,29 +3675,23 @@ msgstr "B<xzfgrep> \\&..."
#. type: Plain text
#: ../src/scripts/xzgrep.1
#, fuzzy
#| msgid "B<lzgrep> \\&..."
msgid "B<lzgrep> \\&... (DEPRECATED)"
msgstr "B<lzgrep> \\&..."
msgstr "B<lzgrep> \\&... (ЗАСТАРЕЛО)"
#. type: Plain text
#: ../src/scripts/xzgrep.1
#, fuzzy
#| msgid "B<lzegrep> \\&..."
msgid "B<lzegrep> \\&... (DEPRECATED)"
msgstr "B<lzegrep> \\&..."
msgstr "B<lzegrep> \\&... (ЗАСТАРЕЛО)"
#. type: Plain text
#: ../src/scripts/xzgrep.1
#, fuzzy
#| msgid "B<lzfgrep> \\&..."
msgid "B<lzfgrep> \\&... (DEPRECATED)"
msgstr "B<lzfgrep> \\&..."
msgstr "B<lzfgrep> \\&... (ЗАСТАРЕЛО)"
#. type: Plain text
#: ../src/scripts/xzgrep.1
msgid "B<xzgrep> invokes B<grep>(1) on uncompressed contents of files. The formats of the I<files> are determined from the filename suffixes. Any I<file> with a suffix supported by B<xz>(1), B<gzip>(1), B<bzip2>(1), B<lzop>(1), B<zstd>(1), or B<lz4>(1) will be decompressed; all other files are assumed to be uncompressed."
msgstr "B<xzgrep> призива B<grep>(1) на незапакованим садржајима датотека. Формати I<датотека> се одређују из суфикса назива датотека. Било која I<датотека> са суфиксом подржаним од стране B<xz>(1), B<gzip>(1), B<bzip2>(1), B<lzop>(1), B<zstd>(1) или B<lz4>(1) биће распакована; све остале датотеке се подразумевају да нису запаковане"
msgstr "B<xzgrep> призива B<grep>(1) на незапакованим садржајима датотека. Формати I<датотека> се одређују из суфикса назива датотека. Било која I<датотека> са суфиксом подржаним од стране B<xz>(1), B<gzip>(1), B<bzip2>(1), B<lzop>(1), B<zstd>(1) или B<lz4>(1) биће распакована; све остале датотеке се подразумевају да нису запаковане."
#. type: Plain text
#: ../src/scripts/xzgrep.1
@ -3771,10 +3755,8 @@ msgstr "B<xzegrep> је алијас за B<xzgrep -E>. B<xzfgrep> је али
#. type: Plain text
#: ../src/scripts/xzgrep.1
#, fuzzy
#| msgid "The commands B<lzgrep>, B<lzegrep>, and B<lzfgrep> are provided for backward compatibility with LZMA Utils."
msgid "The commands B<lzgrep>, B<lzegrep>, and B<lzfgrep> are provided for backward compatibility with LZMA Utils. They are deprecated and will be removed in a future version."
msgstr "Наредбе B<lzgrep>, B<lzegrep> и B<lzfgrep> се достављају зарад назадне сагласности са LZMA Utils."
msgstr "Наредбе B<lzgrep>, B<lzegrep> и B<lzfgrep> се достављају зарад назадне сагласности са LZMA Utils. Застареле су и биће уклоњене у будућем издању."
#. type: Plain text
#: ../src/scripts/xzgrep.1
@ -3831,10 +3813,8 @@ msgstr "B<xzless> [I<датотека>...]"
#. type: Plain text
#: ../src/scripts/xzless.1
#, fuzzy
#| msgid "B<lzless> [I<file>...]"
msgid "B<lzless> [I<file>...] (DEPRECATED)"
msgstr "B<lzless> [I<датотека>...]"
msgstr "B<lzless> [I<датотека>...] (ЗАСТАРЕЛО)"
#. type: Plain text
#: ../src/scripts/xzless.1
@ -3848,10 +3828,8 @@ msgstr "B<xzless> користи B<less>(1) да представи свој и
#. type: Plain text
#: ../src/scripts/xzless.1
#, fuzzy
#| msgid "The command named B<lzless> is provided for backward compatibility with LZMA Utils."
msgid "The command named B<lzless> is provided for backward compatibility with LZMA Utils. It is deprecated and will be removed in a future version."
msgstr "Наредба B<lzless> се доставља зарад назадне сагласности са LZMA Utils."
msgstr "Наредба B<lzless> се доставља зарад назадне сагласности са LZMA Utils. Застарела је и биће уклоњена у будућем издању."
#. type: TP
#: ../src/scripts/xzless.1
@ -3898,10 +3876,8 @@ msgstr "B<xzmore> [I<датотека>...]"
#. type: Plain text
#: ../src/scripts/xzmore.1
#, fuzzy
#| msgid "B<lzmore> [I<file>...]"
msgid "B<lzmore> [I<file>...] (DEPRECATED)"
msgstr "B<lzmore> [I<датотека>...]"
msgstr "B<lzmore> [I<датотека>...] (ЗАСТАРЕЛО)"
#. type: Plain text
#: ../src/scripts/xzmore.1
@ -3915,10 +3891,8 @@ msgstr "Знајте да клизање уназад можда неће бит
#. type: Plain text
#: ../src/scripts/xzmore.1
#, fuzzy
#| msgid "The command B<lzmore> is provided for backward compatibility with LZMA Utils."
msgid "The command B<lzmore> is provided for backward compatibility with LZMA Utils. It is deprecated and will be removed in a future version."
msgstr "Наредба B<lzmore> се доставља зарад назадне сагласности са LZMA Utils."
msgstr "Наредба B<lzmore> се доставља зарад назадне сагласности са LZMA Utils. Застарела је и биће уклоњена у будућем издању."
#. TRANSLATORS: Don't translate the uppercase PAGER.
#. It is a name of an environment variable.

Parādīt failu

@ -25,10 +25,12 @@ liblzma_la_LDFLAGS = -no-undefined -version-info 13:1:8
EXTRA_DIST += liblzma_generic.map liblzma_linux.map validate_map.sh
if COND_SYMVERS_GENERIC
liblzma_la_LDFLAGS += \
$(LINKER_FLAG_UNDEFINED_VERSION) \
-Wl,--version-script=$(top_srcdir)/src/liblzma/liblzma_generic.map
endif
if COND_SYMVERS_LINUX
liblzma_la_LDFLAGS += \
$(LINKER_FLAG_UNDEFINED_VERSION) \
-Wl,--version-script=$(top_srcdir)/src/liblzma/liblzma_linux.map
endif

Parādīt failu

@ -561,7 +561,7 @@ typedef struct {
* \brief New seek input position for LZMA_SEEK_NEEDED
*
* When lzma_code() returns LZMA_SEEK_NEEDED, the new input position
* needed by liblzma will be available seek_pos. The value is
* needed by liblzma will be available in seek_pos. The value is
* guaranteed to not exceed the file size that was specified when
* this lzma_stream was initialized.
*

Parādīt failu

@ -843,8 +843,7 @@ extern LZMA_API(lzma_ret) lzma_alone_decoder(
/**
* \brief Initialize .lz (lzip) decoder (a foreign file format)
*
* This decoder supports the .lz format version 0 and the unextended .lz
* format version 1:
* This decoder supports the .lz format versions 0 and 1:
*
* - Files in the format version 0 were produced by lzip 1.3 and older.
* Such files aren't common but may be found from file archives
@ -853,28 +852,27 @@ extern LZMA_API(lzma_ret) lzma_alone_decoder(
* support for the format version 0 was removed in lzip 1.18.
*
* - lzip 1.3 added decompression support for .lz format version 1 files.
* Compression support was added in lzip 1.4. In lzip 1.6 the .lz format
* version 1 was extended to support the Sync Flush marker. This extension
* is not supported by liblzma. lzma_code() will return LZMA_DATA_ERROR
* at the location of the Sync Flush marker. In practice files with
* the Sync Flush marker are very rare and thus liblzma can decompress
* almost all .lz files.
* Compression support was added in lzip 1.4.
*
* - lzlib extends version 1 format with the Sync Flush marker. This
* extension is only meant for lzlib use; it's not valid in normal .lz
* files. This extension is not supported by liblzma. lzma_code() will
* return LZMA_DATA_ERROR at the location of the Sync Flush marker.
*
* Just like with lzma_stream_decoder() for .xz files, LZMA_CONCATENATED
* should be used when decompressing normal standalone .lz files.
*
* The .lz format allows putting non-.lz data at the end of a file after at
* least one valid .lz member. That is, one can append custom data at the end
* of a .lz file and the decoder is required to ignore it. In liblzma this
* is relevant only when LZMA_CONCATENATED is used. In that case lzma_code()
* will return LZMA_STREAM_END and leave lzma_stream.next_in pointing to
* the first byte of the non-.lz data. An exception to this is if the first
* 1-3 bytes of the non-.lz data are identical to the .lz magic bytes
* (0x4C, 0x5A, 0x49, 0x50; "LZIP" in US-ASCII). In such a case the 1-3 bytes
* will have been ignored by lzma_code(). If one wishes to locate the non-.lz
* data reliably, one must ensure that the first byte isn't 0x4C. Actually
* one should ensure that none of the first four bytes of trailing data are
* equal to the magic bytes because lzip >= 1.20 requires it by default.
* If LZMA_CONCATENATED is used and there is non-.lz data after at least one
* valid .lz member, lzma_code() leaves lzma_stream.next_in pointing to the
* first byte of the non-.lz data and returns LZMA_STREAM_END. That is, one
* can append custom data at the end of a .lz file and the decoder will
* ignore it. An exception to this is if the first 1-3 bytes of the non-.lz
* data are identical to the .lz magic bytes (0x4C, 0x5A, 0x49, 0x50; "LZIP"
* in US-ASCII). In such a case the 1-3 bytes are consumed by lzma_code().
* If one wishes to locate the non-.lz data reliably, one must ensure that
* the first byte isn't 0x4C. It's best if none of the first four bytes of
* trailing data are equal to the magic bytes because if two or three bytes
* are, lzip >= 1.20 diagnoses it as a corrupt member header by default.
*
* \param strm Pointer to lzma_stream that is at least initialized
* with LZMA_STREAM_INIT.

Parādīt failu

@ -2,7 +2,7 @@
///////////////////////////////////////////////////////////////////////////////
//
/// \file crc32.c
/// \file crc32_fast.c
/// \brief CRC32 calculation
//
// Authors: Lasse Collin

Parādīt failu

@ -2,7 +2,7 @@
///////////////////////////////////////////////////////////////////////////////
//
/// \file crc64.c
/// \file crc64_fast.c
/// \brief CRC64 calculation
//
// Authors: Lasse Collin
@ -146,14 +146,6 @@ crc64_dispatch(const uint8_t *buf, size_t size, uint64_t crc)
extern LZMA_API(uint64_t)
lzma_crc64(const uint8_t *buf, size_t size, uint64_t crc)
{
#if defined(_MSC_VER) && !defined(__INTEL_COMPILER) && !defined(__clang__) \
&& defined(_M_IX86) && defined(CRC64_ARCH_OPTIMIZED)
// VS2015-2022 might corrupt the ebx register on 32-bit x86 when
// the CLMUL code is enabled. This hack forces MSVC to store and
// restore ebx. This is only needed here, not in lzma_crc32().
__asm mov ebx, ebx
#endif
#if defined(CRC64_GENERIC) && defined(CRC64_ARCH_OPTIMIZED)
return crc64_func(buf, size, crc);

Parādīt failu

@ -134,10 +134,20 @@ extern const uint64_t lzma_crc64_table[4][256];
// built and runtime detection is used even if compiler flags
// were set to allow CLMUL unconditionally.
//
// - This doesn't work with MSVC as I don't know how to detect
// the features here.
// - The unconditional use doesn't work with MSVC as I don't know
// how to detect the features here.
//
# if (defined(__SSSE3__) && defined(__SSE4_1__) && defined(__PCLMUL__) \
// Don't enable CLMUL at all on old MSVC that targets 32-bit x86.
// There seems to be a compiler bug that produces broken code
// in optimized (Release) builds. It results in crashing tests.
// It is known that VS 2019 16.11 (MSVC 19.29.30158) is broken
// and that VS 2022 17.13 (MSVC 19.43.34808) works.
# if defined(_MSC_FULL_VER) && _MSC_FULL_VER < 194334808 \
&& !defined(__INTEL_COMPILER) && !defined(__clang__) \
&& defined(_M_IX86)
// Old MSVC targeting 32-bit x86: Don't enable CLMUL at all.
# elif (defined(__SSSE3__) && defined(__SSE4_1__) \
&& defined(__PCLMUL__) \
&& !defined(HAVE_CRC_X86_ASM)) \
|| (defined(__e2k__) && __iset__ >= 6)
# define CRC32_ARCH_OPTIMIZED 1

Parādīt failu

@ -188,6 +188,7 @@ extern bool lzma_outq_is_readable(const lzma_outq *outq);
/// \brief Read finished data
///
/// \param outq Pointer to an output queue
/// \param allocator lzma_allocator for custom allocator functions
/// \param out Beginning of the output buffer
/// \param out_pos The next byte will be written to
/// out[*out_pos].

Parādīt failu

@ -655,6 +655,8 @@ parse_check_value(file_pair *pair, const lzma_index_iter *iter)
/// be printed.
/// \param bhi Pointer to structure where to store the information
/// about the Block Header field.
/// \param xfi Pointer to structure where to store the information
/// about the entire .xz file.
///
/// \return False on success, true on error. If an error occurs,
/// the error message is printed too so the caller doesn't

Parādīt failu

@ -144,6 +144,10 @@ extern void message_filename(const char *src_name);
/// given *strm becomes invalid.
///
/// \param strm Pointer to lzma_stream used for the coding.
/// \param is_passthru
/// If true, we are copying input to output without
/// encoding or decoding, and thus cannot use
/// lzma_get_progress().
/// \param in_size Size of the input file, or zero if unknown.
///
extern void message_progress_start(lzma_stream *strm,

Parādīt failu

@ -274,7 +274,7 @@ sandbox_enable_strict_if_allowed(
// If not reading from stdin, remove all capabilities from it.
if (src_fd != STDIN_FILENO && cap_rights_limit(
STDIN_FILENO, cap_rights_clear(&rights)))
STDIN_FILENO, cap_rights_init(&rights)))
goto error;
if (cap_rights_limit(STDOUT_FILENO, cap_rights_init(&rights,

Parādīt failu

@ -615,7 +615,7 @@ Compression is not supported.
.IP ""
The
.B .lz
format version 0 and the unextended version 1 are supported.
format versions 0 and 1 are supported.
Version 0 files were produced by
.B lzip
1.3 and older.
@ -625,15 +625,8 @@ People might have old personal files in this format too.
Decompression support for the format version 0 was removed in
.B lzip
1.18.
.IP ""
.B lzip
1.4 and later create files in the format version 1.
The sync flush marker extension to the format version 1 was added in
.B lzip
1.6.
This extension is rarely used and isn't supported by
.B xz
(diagnosed as corrupt input).
.TP
.B raw
Compress or uncompress a raw stream (no headers).

Parādīt failu

@ -321,7 +321,7 @@ sandbox_enter(int src_fd)
// If not reading from stdin, remove all capabilities from it.
if (src_fd != STDIN_FILENO && cap_rights_limit(
STDIN_FILENO, cap_rights_clear(&rights)))
STDIN_FILENO, cap_rights_init(&rights)))
goto error;
if (cap_rights_limit(STDOUT_FILENO, cap_rights_init(&rights,

Parādīt failu

@ -0,0 +1,4 @@
# SPDX-License-Identifier: 0BSD
[libfuzzer]
dict = fuzz_xz.dict

Parādīt failu

@ -27,7 +27,7 @@ test_exact_size(void)
"is disabled");
// Something to be compressed
const uint8_t in[16] = "0123456789ABCDEF";
const uint8_t in[16] = "0123456789ABCDE";
// in[] after compression
uint8_t compressed[1024];