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 | Datums | |
---|---|---|---|
|
dd4a1b2599 | ||
|
d660fe5d56 | ||
|
ab45bdf432 | ||
|
f023993653 | ||
|
377be0ea7a | ||
|
ff49c82176 | ||
|
71ad5e8288 | ||
|
31a983ad47 | ||
|
d9e70da25a | ||
|
dbfb925c81 | ||
|
7c12726c51 | ||
|
1bd7361a04 | ||
|
5cc2e479eb | ||
|
56aa9a0796 | ||
|
f33da20b75 | ||
|
5606fa89f9 | ||
|
ec047a65a0 | ||
|
4f86e77bef | ||
|
ff96542d1c | ||
|
a6711d1c4a | ||
|
8efd80adfc | ||
|
a2e47c7a59 | ||
|
9048e72494 | ||
|
d8e9dc63a6 | ||
|
ffa9fadecc | ||
|
6f2aaa77da | ||
|
09110ad4c7 | ||
|
516b90f6e1 | ||
|
c330220d47 | ||
|
6cc7672c22 | ||
|
07dc509137 | ||
|
cfcaae1945 | ||
|
5240fcfee3 | ||
|
85ff0cf0ce | ||
|
907ac2215d | ||
|
b0d0e62474 | ||
|
1edc14e8ca | ||
|
35e06c4c42 | ||
|
99f4b9db9d | ||
|
dd006a67e5 | ||
|
f59c585960 | ||
|
49258439b4 | ||
|
a69fbd3aae | ||
|
8a300d1c4f | ||
|
b5a5d9e3f7 | ||
|
c5fd88dfc3 | ||
|
49ba8c69ea | ||
|
1176a19df6 | ||
|
c3cb1e53a1 |
42
.github/workflows/ci.yml
ārējs
42
.github/workflows/ci.yml
ārējs
@ -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
55
.github/workflows/cifuzz.yml
ārējs
Parasts fails
@ -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
40
.github/workflows/dragonflybsd.yml
ārējs
Parasts fails
@ -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
|
62
.github/workflows/freebsd.yml
ārējs
62
.github/workflows/freebsd.yml
ārējs
@ -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
92
.github/workflows/msvc.yml
ārējs
Parasts fails
@ -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
148
.github/workflows/msys2.yml
ārējs
Parasts fails
@ -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
|
44
.github/workflows/netbsd.yml
ārējs
44
.github/workflows/netbsd.yml
ārējs
@ -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
|
||||
|
47
.github/workflows/openbsd.yml
ārējs
47
.github/workflows/openbsd.yml
ārējs
@ -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
|
||||
|
38
.github/workflows/solaris.yml
ārējs
38
.github/workflows/solaris.yml
ārējs
@ -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
|
||||
|
124
.github/workflows/windows-ci.yml
ārējs
124
.github/workflows/windows-ci.yml
ārējs
@ -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
|
@ -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
8
THANKS
@ -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
|
||||
|
@ -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"
|
||||
|
23
configure.ac
23
configure.ac
@ -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])
|
||||
|
||||
|
||||
###############################################################################
|
||||
|
@ -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
|
||||
|
@ -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
1
po/.gitignore
ārējs
@ -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
|
||||
|
10
po/es.po
10
po/es.po
@ -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"
|
||||
|
70
po4a/sr.po
70
po4a/sr.po
@ -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.
|
||||
|
@ -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
|
||||
|
||||
|
@ -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.
|
||||
*
|
||||
|
@ -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.
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
/// \file crc32.c
|
||||
/// \file crc32_fast.c
|
||||
/// \brief CRC32 calculation
|
||||
//
|
||||
// Authors: Lasse Collin
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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
|
||||
|
@ -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].
|
||||
|
@ -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
|
||||
|
@ -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,
|
||||
|
@ -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,
|
||||
|
@ -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).
|
||||
|
@ -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,
|
||||
|
4
tests/ossfuzz/config/fuzz_decode_stream_mt.options
Parasts fails
4
tests/ossfuzz/config/fuzz_decode_stream_mt.options
Parasts fails
@ -0,0 +1,4 @@
|
||||
# SPDX-License-Identifier: 0BSD
|
||||
|
||||
[libfuzzer]
|
||||
dict = fuzz_xz.dict
|
@ -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];
|
||||
|
Notiek ielāde…
x
Atsaukties uz šo jaunā problēmā
Block a user