1
0
mirror of https://git.tukaani.org/xz.git synced 2025-04-20 14:40:50 +00:00

Compare commits

..

278 Commits

Author SHA1 Message Date
Lasse Collin
9331ce4009
Bump version and soname for 5.6.3 2024-10-01 12:50:28 +03:00
Lasse Collin
f52857ffde
Add NEWS for 5.6.3 2024-10-01 12:50:22 +03:00
Lasse Collin
b8f52990b5
Update THANKS
(cherry picked from commit 1ebbe915d4e0d877154261b5f8103719a6722975)
2024-10-01 12:16:29 +03:00
Lasse Collin
51f6f45587
Tests/Windows: Add the application manifest to the test programs
This ensures that the test programs get executed the same way as
the binaries that are installed.

(cherry picked from commit 74702ee00ecfd080d8ab11118cd25dbe6c437ec0)
2024-10-01 12:16:29 +03:00
Lasse Collin
bf518b9ba4
Windows: Embed an application manifest in the EXE files
IMPORTANT: This includes a security fix to command line tool
           argument handling.

Some toolchains embed an application manifest by default to declare
UAC-compliance. Some also declare compatibility with Vista/8/8.1/10/11
to let the app access features newer than those of Vista.

We want all the above but also two more things:

  - Declare that the app is long path aware to support paths longer
    than 259 characters (this may also require a registry change).

  - Force the code page to UTF-8. This allows the command line tools
    to access files whose names contain characters that don't exist
    in the current legacy code page (except unpaired surrogates).
    The UTF-8 code page also fixes security issues in command line
    argument handling which can be exploited with malicious filenames.
    See the new file w32_application.manifest.comments.txt.

Thanks to Orange Tsai and splitline from DEVCORE Research Team
for discovering this issue.

Thanks to Vijay Sarvepalli for reporting the issue to me.

Thanks to Kelvin Lee for testing with MSVC and helping with
the required build system fixes.

(cherry picked from commit 46ee0061629fb075d61d83839e14dd193337af59)
2024-10-01 12:16:29 +03:00
Lasse Collin
5718ce932e
Windows: Set DLL name accurately in StringFileInfo on Cygwin and MSYS2
Now the information in the "Details" tab in the file properties
dialog matches the naming convention of Cygwin and MSYS2. This
is only a cosmetic change.

(cherry picked from commit dad153091552b52a41b95ec4981c6951f1cae487)
2024-10-01 12:16:28 +03:00
Lasse Collin
e77c0ca61d
common_w32res.rc: White space edits
LANGUAGE and VS_VERSION_INFO begin new statements so put an empty line
between them.

(cherry picked from commit 8940ecb96fe9f0f2a9cfb8b66fe9ed31ffbea904)
2024-10-01 12:16:28 +03:00
Lasse Collin
e0ba0f26d9
CMake: Add the resource files to the Cygwin and MSYS2 builds
Autotools-based build has always done this so this is for consistency.

However, the CMake build won't create the DEF file when building
for Cygwin or MSYS2 because in that context it should be useless.
(If Cygwin or MSYS2 is used to host building of normal Windows
binaries then the DEF file is still created.)

(cherry picked from commit c3b9dad07d3fd9319f88386b7095019bcea45ce1)
2024-10-01 12:16:28 +03:00
Lasse Collin
69637d0c32
CMake: Fix Windows resource file dependencies
If common_w32res.rc is modified, the resource files need to be rebuilt.
In contrast, the liblzma*.map files truly are link dependencies.

(cherry picked from commit da4f275bd1c18b897e5c2dd0043546de3accce0a)
2024-10-01 12:16:28 +03:00
Lasse Collin
af8533459c
CMake: Checking for CYGWIN covers MSYS2 too
On MSYS2, both CYGWIN and MSYS are set.

(cherry picked from commit 1c673c0aac7f7dee8dda2c1140351c8417a71e47)
2024-10-01 12:16:28 +03:00
Lasse Collin
eca08e4c20
Translations: Add the SPDX license identifier to pt_BR.po
(cherry picked from commit 6aaa0173b839e28429d43a8b62d257ad2f3b4521)
2024-10-01 12:16:12 +03:00
Lasse Collin
85801c96c3
Windows/CMake: Use the correct resource file for lzmadec.exe
CMakeLists.txt was using xzdec_w32res.rc for both xzdec and lzmadec.

Fixes: 998d0b29536094a89cf385a3b894e157db1ccefe
(cherry picked from commit dc7b9f24b737e4e55bcbbdde6754883f991c2cfb)
2024-09-25 21:33:12 +03:00
Lasse Collin
a341d19c83
Translations: Update the Brazilian Portuguese translation
(cherry picked from commit b834ae5f80911a3819d6cdb484f61b257174c544)
2024-09-25 21:33:12 +03:00
Lasse Collin
e69c0b9b2e
Update THANKS
(cherry picked from commit eceb023d4c129fd63ee881a2d8696eaf52ad1532)
2024-09-18 20:53:11 +03:00
Tobias Stoeckmann
aef9a25b32
lzmainfo: Avoid integer overflow
The MB output can overflow with huge numbers. Most likely these are
invalid .lzma files anyway, but let's avoid garbage output.

lzmadec was adapted from LZMA Utils. The original code with this bug
was written in 2005, over 19 years ago.

Co-authored-by: Lasse Collin <lasse.collin@tukaani.org>
Closes: https://github.com/tukaani-project/xz/pull/144
(cherry picked from commit 76cfd0a9bb33ae8e534b1f73f6359dc825589f2f)
2024-09-18 20:53:11 +03:00
Tobias Stoeckmann
40a7f163f5
xzdec: Remove unused short option -M
"xzdec -M123" exited with exit status 1 without printing
any messages. The "M:" entry should have been removed when
the memory usage limiter support was removed from xzdec.

Fixes: 792331bdee706aa852a78b171040ebf814c6f3ae
Closes: https://github.com/tukaani-project/xz/pull/143
[ Lasse: Commit message edits ]

(cherry picked from commit 78355aebb7fb654302e5e33692ba109909dacaff)
2024-09-18 20:53:11 +03:00
Lasse Collin
c98714a570
Update THANKS
(cherry picked from commit e5758db7bd75587a2499e0771907521a4aa86908)
2024-09-18 20:53:11 +03:00
Firas Khalil Khana
4ed4495178
Build: Fix a typo in autogen.sh
Fixes: e9be74f5b129fe8a5388d588e68b1b7f5168a310
Closes: https://github.com/tukaani-project/xz/pull/141
(cherry picked from commit 80ffa38f56657257ed4d90d76f6bd2f2bcb8163c)
2024-09-18 20:53:04 +03:00
Lasse Collin
3b83577a15
Translations: Update Chinese (simplified) translation
Differences to the zh_CN.po file from the Translation Project:

  - Two uses of \v were fixed.

  - Missing "OPTS" translation in --riscv[=OPTS] was copied from
    previous lines.

  - "make update-po" was run to remove line numbers from comments.

(cherry picked from commit 68c54e45d042add64a4cb44bfc87ca74d29b87e2)
2024-09-06 19:33:21 +03:00
Lasse Collin
06f4c7edda
Translations: Update the Catalan translation
Differences to the ca.po file from the Translation Project:

  - An overlong line translating --filters-help was wrapped.

  - "make update-po" was used to remove line numbers from the comments
    to match the changes in fccebe2b4fd513488fc920e4dac32562ed3c7637
    and 093490b58271e9424ce38a7b1b38bcf61b9c86c6. xz.pot in the TP
    is older than these commits.

(cherry picked from commit 2230692aa1bcebb586100183831e3daf1714d60a)
2024-09-06 19:33:21 +03:00
Lasse Collin
406cb5b669
Update THANKS
(cherry picked from commit 5e375987509fab484b7bef0b90be92f241c58c91)
2024-09-06 19:33:21 +03:00
Yifeng Li
3a4a05d75e
liblzma: Fix x86-64 movzw compatibility in range_decoder.h
Support for instruction "movzw" without suffix in "GNU as" was
added in commit [1] and stabilized in binutils 2.27, released
in August 2016. Earlier systems don't accept this instruction
without a suffix, making range_decoder.h's inline assembly
unable to build on old systems such as Ubuntu 16.04, creating
error messages like:

    lzma_decoder.c: Assembler messages:
    lzma_decoder.c:371: Error: no such instruction: `movzw 2(%r11),%esi'
    lzma_decoder.c:373: Error: no such instruction: `movzw 4(%r11),%edi'
    lzma_decoder.c:388: Error: no such instruction: `movzw 6(%r11),%edx'
    lzma_decoder.c:398: Error: no such instruction: `movzw (%r11,%r14,4),%esi'

Change "movzw" to "movzwl" for compatibility.

[1] https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=c07315e0c610e0e3317b4c02266f81793df253d2

Suggested-by: Lasse Collin <lasse.collin@tukaani.org>
Tested-by: Yifeng Li <tomli@tomli.me>
Signed-off-by: Yifeng Li <tomli@tomli.me>
Fixes: 3182a330c1512cc1f5c87b5c5a272578e60a5158
Fixes: https://github.com/tukaani-project/xz/issues/121
Closes: https://github.com/tukaani-project/xz/pull/136
(cherry picked from commit 6cd7c8607843c337edfe2c472aa316602a393754)
2024-09-06 19:33:20 +03:00
Lasse Collin
4669f06d1a
Build: Comment that elf_aux_info(3) will be available on OpenBSD >= 7.6
(cherry picked from commit bf901dee5d4c46609645e50311c0cb2dfdcf9738)
2024-09-06 19:33:20 +03:00
Lasse Collin
9edddda563
liblzma: Tweak a comment
(cherry picked from commit 7c292dd0bf23cefcdf4b1509f3666322e08a7ede)
2024-09-06 19:33:20 +03:00
Lasse Collin
1a93ab55d1
CMake: Bump maximum policy version to 3.30 2024-09-06 19:33:16 +03:00
Lasse Collin
cfe4465742
Update THANKS
(cherry picked from commit 028185dd4889e3d6235ff13560160ebca6985021)
2024-09-06 19:31:13 +03:00
Lasse Collin
0f47db18d0
xz: Remove the TODO comment about --recursive
It won't be implemented. find + xargs is more flexible, for example,
it allows compressing small files in parallel. An example for that
has been included in the xz man page since 2010.

(cherry picked from commit baecfa142644eb5f5c6dd6f8e2f531c362fa3747)
2024-09-06 19:31:12 +03:00
Lasse Collin
07f52c3528
CMake: Link xz against Threads::Threads if using pthreads
The liblzma target was recently changed to link against Threads::Threads
with the PRIVATE keyword. I had forgotten that xz itself depends on
pthreads too due to pthread_sigmask(). Thus, the build broke when
building shared liblzma and pthread_sigmask() wasn't in libc.

Thanks to Peter Seiderer for the bug report.

Fixes: ac05f1b0d7cda1e7ae79775a8dfecc54601d7f1c
Fixes: https://github.com/tukaani-project/xz/issues/129#issuecomment-2204522994
(cherry picked from commit b3e53122f42796aaebd767bab920cf7bedf69966)
2024-09-06 19:30:12 +03:00
Lasse Collin
eccb4d258b
Update THANKS
(cherry picked from commit 5742ec1fc7f2cf1c82cfe3477bb90594a4658374)
2024-09-06 19:28:52 +03:00
Sam James
c9bd00327f
CI: Speed up Valgrind job by using --trace-children-skip-by-arg=...
This addresses the issue I mentioned in
6c095a98fbec70b790253a663173ecdb669108c4 and speeds up the Valgrind
job a bit, because non-xz tools aren't run unnecessarily with
Valgrind by the script tests.

(cherry picked from commit 7e99856f66c07852c4e0de7aa01951e9147d86b0)
2024-09-06 19:26:09 +03:00
Lasse Collin
495de6ec9d
Build: Prepend, not append, PTHREAD_CFLAGS to LIBS
It shouldn't make any difference because LIBS should be empty
at that point in configure. But prepending is the correct way
because in general the libraries being added might require other
libraries that come later on the command line.

(cherry picked from commit 2402e8a1ae92676fa0d4cb1b761d7f62f005c098)
2024-09-06 19:26:01 +03:00
Lasse Collin
55bf3f49a8
Build: Use AC_LINK_IFELSE to handle implicit function declarations
It's more robust in case the compiler allows pre-C99 implicit function
declarations. If an x86 intrinsic is missing and gets treated as
implicit function, the linking step will very probably fail. This
isn't the only way to workaround implicit function declarations but
it might be the simplest and cleanest.

The problem hasn't been observed in the wild.

There are a couple more AC_COMPILE_IFELSE uses in configure.ac.
Of these, Landlock check calls prctl() and in theory could have
the same problem. In practice it doesn't as the check program
looks for several other things too. However, it was changed to
AC_LINK_IFELSE still to look more correct.

Similarly, m4/tuklib_cpucores.m4 and m4/tuklib_physmem.m4 were
updated although they haven't given any trouble either. They
have worked all these years because those check programs rely
on specific headers and types: if headers or types are missing,
compilation will fail. Using the linker makes these checks more
similar to the ones in cmake/tuklib_*.cmake which always link.

(cherry picked from commit 7bb46f2b7b3989c1b589a247a251470f65e91cda)
2024-09-06 19:25:52 +03:00
Lasse Collin
b45270d88f
Build: Use AC_LINK_IFELSE instead of -Werror
AC_COMPILE_IFELSE needed -Werror because Clang <= 14 would merely
warn about the unsupported attribute and implicit function declaration.
Changing to AC_LINK_IFELSE handles the implicit declaration because
the symbol __crc32d is unlikely to exist in libc.

Note that the other part of the check is that #include <arm_acle.h>
must work. If the header is missing, most compilers give an error
and the linking step won't be attempted.

Avoiding -Werror makes the check more robust in case CFLAGS contains
warning flags that break -Werror anyway (but this isn't the only check
in configure.ac that has this problem). Using AC_LINK_IFELSE also makes
the check more similar to how it is done in CMakeLists.txt.

(cherry picked from commit 35eb57355ad1c415a838d26192d5af84abb7cf39)
2024-09-06 19:25:52 +03:00
Lasse Collin
2c3e4cbbdc
Build: Sync the compile check changes from CMakeLists.txt
It's nice to keep these in sync. The use of main() will later allow
AC_LINK_IFELSE usage too which may avoid the more fragile -Werror.

(cherry picked from commit 5a728813c378cc3c4c9c95793762452418d08f1b)
2024-09-06 19:25:52 +03:00
Lasse Collin
809e69f1f5
CMake: Use configure_file() to copy a file
I had missed this simpler method before. It does create a dependency
so that if .in.h changes the copying is done again.

(cherry picked from commit de215a0517645d16343f3a5336d3df884a4f665f)
2024-09-06 19:25:19 +03:00
Lasse Collin
52a8c87f37
CMake: Always add pthread flags into CMAKE_REQUIRED_LIBRARIES
It was weird to add CMAKE_THREAD_LIBS_INIT in CMAKE_REQUIRED_LIBRARIES
only if CLOCK_MONOTONIC is available. Alternative would be to remove
the thread libs from CMAKE_REQUIRED_LIBRARIES after the check for
pthread_condattr_setclock() but keeping the libs should be fine too.
Then it's ready in case more pthread functions were wanted some day.

(cherry picked from commit e620f35097c0ad20cd76d8258750aa706758ced9)
2024-09-06 19:25:03 +03:00
Lasse Collin
1591747bf6
CMake: Fix three checks if building with -flto
In CMake, check_c_source_compiles() always links too. With
link-time optimization, unused functions may get omitted if
main() doesn't depend on them. Consider the following which
tries to check if somefunction() is available when <someheader.h>
has been included:

    #include <someheader.h>
    int foo(void) { return somefunction(); }
    int main(void) { return 0; }

LTO may omit foo() completely because the program as a whole doesn't
need it and then the program will link even if the symbol somefunction
isn't available in libc or other library being linked in, and then
the test may pass when it shouldn't.

What happens if <someheader.h> doesn't declare somefunction()?
Shouldn't the test fail in the compilation phase already? It should
but many compilers don't follow the C99 and later standards that
prohibit implicit function declarations. Instead such compilers
assume that somefunction() exists, compilation succeeds (with a
warning), and then linker with LTO omits the call to somefunction().

Change the tests so that they are part of main(). If compiler accepts
implicitly declared functions, LTO cannot omit them because it has to
assume that they might have side effects and thus linking will fail.
On the other hand, if the functions/intrinsics being used are supported,
they might get optimized away but in that case it's fine because they
really are supported.

It is fine to use __attribute__((target(...))) for main(). At least
it works with GCC 4.9 to 14.1 on x86-64.

Reported-by: Sam James <sam@gentoo.org>
(cherry picked from commit 114cba69dbb96003e676c8c87a2e9943b12d065f)
2024-09-06 19:21:25 +03:00
Lasse Collin
cc386f4ff4
CMake: Improve the comment about LIBS
(cherry picked from commit d3f20382fc1bd865eb70a65455d5022ed05caac8)
2024-09-06 19:17:02 +03:00
Lasse Collin
65aaa0f870
CI: Workaround buggy config.guess on Ubuntu 22.04LTS and 24.04LTS
Check for the wrong triplet from config.guess and override it with
the --build option on the configure command line. Then i386 assembly
autodetection will work.

These Ubuntu versions (and as of writing, also Debian unstable)
ship config.guess version 2022-01-09 which contains a bug that
was fixed in version 2022-05-08. It results in a wrong configure
triplet when using CC="gcc -m32" to build i386 binaries.

Upstream fix:
https://git.savannah.gnu.org/cgit/config.git/commit/?id=f56a7140386d08a531bcfd444d632b28c61a6329

More information:
https://mail.gnu.org/archive/html/config-patches/2022-05/msg00003.html

(cherry picked from commit 1bf83cded2955282fe1a868f08c83d4e5d6dca4a)
2024-09-06 19:15:14 +03:00
Lasse Collin
810f1a8aee
CI: Use CC="gcc -m32" to get i386 compiler on x86-64
The old method put it in CFLAGS which is a wrong place because
config.guess doesn't read CFLAGS.

(cherry picked from commit dbcdabf68fee9ed694b68c3a82e6adbeff20b679)
2024-09-06 19:15:14 +03:00
Lasse Collin
dde14ded9a
CI: Let CMake use the CC environment variable
CC from environment is used to initialize CMAKE_C_COMPILER so
setting CMAKE_C_COMPILER explicitly isn't needed.

The syntax in ci_build.bash was broken in case one wished to put
spaces in CC.

(cherry picked from commit 0c1e6d900bac127464fb30a854776e1810ab5f16)
2024-09-06 19:15:14 +03:00
Lasse Collin
85a55e1120
CMake: Keep existing options in LIBS when adding -lrt
This makes no difference yet because -lrt is currently the only option
that might be added to LIBS.

(cherry picked from commit 75ce4797d49621710e6da95d8cb91541028c6d68)
2024-09-06 19:12:46 +03:00
Lasse Collin
e24a762f1b
CMake: Fix indentation
(cherry picked from commit c715dec8e800b65145918cfb0ee9bbc90faa8aad)
2024-09-06 19:07:52 +03:00
Lasse Collin
99555b721b
CMake: Link Threads::Threads as PRIVATE to liblzma
This way pthread options aren't passed to the linker when linking
against shared liblzma but they are still passed when linking against
static liblzma. (Also, one never needs the include path of the
threading library to use liblzma since liblzma's API headers
don't #include <pthread.h>. But <pthread.h> tends to be in the
default include path so here this change makes no difference.)

One cannot mix target_link_libraries() calls that use the scope
(PRIVATE, PUBLIC, or INTERFACE) keyword and calls that don't use it.
The calls without the keyword are like PUBLIC except perhaps when
they aren't, or something like that... It seems best to always
specify a scope keyword as the meanings of those three keywords
at least are clear.

(cherry picked from commit ac05f1b0d7cda1e7ae79775a8dfecc54601d7f1c)
2024-09-06 19:07:09 +03:00
Lasse Collin
258bae30a2
CMake: Add empty lines
(cherry picked from commit 82986d8c691a294c78b48d8391303e5c428b5437)
2024-09-06 19:07:09 +03:00
Lasse Collin
a95a9601a1
CMake: Use CMAKE_THREAD_LIBS_INIT in liblzma.pc only with pthreads
This shouldn't make much difference in practice as on Windows
no flags are needed anyway and unitialized variable (when threading
is disabled) expands to empty. But it's clearer this way.

(cherry picked from commit 2aecffe0f0e14f3ef635e8cd7b405420f2385de2)
2024-09-06 19:06:23 +03:00
Lasse Collin
65a10ddd43
Update THANKS
(cherry picked from commit 664918bd3635ea8e773f06022286ecb0c485166c)
2024-09-06 19:06:23 +03:00
Lasse Collin
6ad5739094
CMake: Use native newlines in liblzma.pc
vcpkg doesn't specify the newline type so it should be fine to
use native newlines in liblzma.pc on Windows.

(cherry picked from commit 5ca96a93488d0f5a530c78b274cac317453807ff)
2024-09-06 19:06:23 +03:00
Lasse Collin
4107f20667
CMake: Use relative paths in liblzma.pc if possible
Now liblzma.pc can be relocatable only if using CMake >= 3.20
but that should be OK as now we shouldn't get broken liblzma.pc
if CMAKE_INSTALL_LIBDIR or CMAKE_INSTALL_INCLUDEDIR contain an
absolute path.

Thanks to Eli Schwartz.

(cherry picked from commit ebd155c3a1b87411edae06d3bdaa9659ec057522)
2024-09-06 19:06:23 +03:00
Lasse Collin
ff697eb154
liblzma: CRC CLMUL: Omit is_arch_extension_supported() when not needed
On E2K the function compiles only due to compiler emulation but the
function is never used. It's cleaner to omit the function when it's
not needed even though it's a "static inline" function.

Thanks to Ilya Kurdyukov.

(cherry picked from commit 30a2d5d51006301a3ddab5ef1f5ff0a9d74dce6f)
2024-09-06 19:00:30 +03:00
Lasse Collin
4e4a568f6a
CMake: Prefer C11 with a fallback to C99
There is no need to make a similar change in configure.ac.
With Autoconf 2.72, the deprecated macro AC_PROG_CC_C99
is an alias for AC_PROG_CC which prefers a C11 compiler.

(cherry picked from commit 2178acf8a4d40a93e970cfcf9b807d5ef6c8da92)
2024-09-06 18:56:17 +03:00
Lasse Collin
849e757a8c
Update THANKS
(cherry picked from commit c97e9c12fef4d1093ee2a75236742481361f50f5)
2024-09-06 18:56:17 +03:00
Lasse Collin
1305056a54
Tests: Improve the CRC32 test
A similar one was already there for CRC64 but nowadays also CRC32
has a CLMUL implementation, so it's good to test it better too.

(cherry picked from commit 89e9f12e03324b8a186e807b268f34f92d1b2f41)
2024-09-06 18:56:17 +03:00
Lasse Collin
a44493ec41
xz: Fix white space
(cherry picked from commit c7164b1927e3fe7cdba70ee4687e1a590a81043b)
2024-09-06 18:56:17 +03:00
Lasse Collin
5e74a6a813
liblzma: Fix a typo in a comment
Thanks to Sam James for spotting it.

Fixes: f644473a211394447824ea00518d0a214ff3f7f2
(cherry picked from commit 0a32d2072c598de281058b26dc08920fbf0cd2a1)
2024-09-06 18:56:17 +03:00
Lasse Collin
3f7edc673c
liblzma: Fix a comment indentation
(cherry picked from commit afd9b4d282a10186808c3331dad4caf79c02d55f)
2024-09-06 18:56:16 +03:00
Lasse Collin
8a9cc7ca08
liblzma: Fix white space
(cherry picked from commit 50e6bff274568c568930e15094da8217e7d47d28)
2024-09-06 18:56:16 +03:00
RainRat
b29b13082f
Fix typos
Closes: https://github.com/tukaani-project/xz/pull/124
(cherry picked from commit 9e73918a4f14be754a23f74dda45ca431939a4a0)
2024-09-06 18:51:59 +03:00
Lasse Collin
6f66155e01
tuklib_integer: Fix building on OpenBSD/sparc64 that uses GCC 4.2
GCC 4.2 doesn't have __builtin_bswap16() and friends so tuklib_integer.h
tries to use OS-specific byte swap methods instead. On OpenBSD those
macros are swap16/32/64 instead of bswap16/32/64 like on other *BSDs
and Darwin.

An alternative to "#ifdef __OpenBSD__" could be "#ifdef swap16" as it
is a macro. But since OpenBSD seems to be a special case under this
special case of "*BSDs and Darwin", checking for __OpenBSD__ seems
the more conservative choice now.

Thanks to Christian Weisgerber and Brad Smith who both submitted
the same patch a few hours apart.

Co-authored-by: Christian Weisgerber <naddy@mips.inka.de>
Co-authored-by: Brad Smith <brad@comstyle.com>
Closes: https://github.com/tukaani-project/xz/pull/126
(cherry picked from commit 04b23addf3733873667675df2439725f076c2f36)
2024-09-06 18:51:59 +03:00
Lasse Collin
5522759d31
Update THANKS
(cherry picked from commit f5c2ae58ec68c665e62c790b842657afcb31474c)
2024-09-06 18:51:58 +03:00
Lasse Collin
45aed6f37f
CMake: Fix wrong version variable
liblzma_VERSION has never existed in the repository. xz_VERSION from
the project() command was used for liblzma SOVERSION so use xz_VERSION
here too.

The wrong variable did no harm in practice as PROJECT_VERSION
was used as the fallback. It has the same value as xz_VERSION.

Fixes: 7e3493d40eac0c3fa3d5124097745a70e15c41f6
(cherry picked from commit 1d3c61575fda0be6b2d50c9e32a343349d5cd5c0)
2024-09-06 18:51:58 +03:00
Lasse Collin
198271a6ed
CMake: Fix liblzma filename in Windows environments
This is a mess because liblzma DLL outside Cygwin and MSYS2
is liblzma.dll instead of lzma.dll to avoid a conflict with
lzma.dll from LZMA SDK.

On Cygwin the name was "liblzma-5.dll" while "cyglzma-5.dll"
would have been correct (and match what Libtool produces).
MSYS2 likely was broken too as it uses the "msys-" prefix.

This change has no effect with MinGW-w64 because with that
the "lib" prefix was correct already.

With MSVC builds this is a small breaking change that requires developers
to adjust the library name when linking against liblzma. The liblzma.dll
name is kept as is but the import library and static library are now
lzma.lib instead of liblzma.lib. This is helpful when using pkgconf
because "pkgconf --msvc-syntax --libs liblzma" outputs "lzma.lib"
(it's converted from "-llzma" in liblzma.pc). It would be easy to
keep the liblzma.lib naming but the pkgconf compatibility seems worth
it in the long run. The lzma.lib name is compatible with MinGW-w64
too as -llzma will find also lzma.lib.

vcpkg had been patching CMakeLists.txt this way since 2022 but I
learned this only recently. The reasoning for the patch makes sense,
and while this is a small breaking change with MSVC, it seems like
a decent compromise as it keeps the DLL name the same.

2022 patch in vcpkg: 0707a17ecf/ports/liblzma/win_output_name.patch
See the discussion: https://github.com/microsoft/vcpkg/pull/39024

Thanks to Vincent Torri for confirming the naming issue on Cygwin.

(cherry picked from commit e0d6d05ce0d464e966c0669bbf869202a43cc2f7)
2024-09-06 18:51:58 +03:00
Lasse Collin
92e5425979
Fix version.sh compatiblity with Solaris
The ancient /bin/tr on Solaris doesn't support '\n'.
With /usr/xpg4/bin/tr it works but it might not be in PATH.

Another problem was that sed was given input that didn't have a newline
at the end. Text files must end with a newline to be portable.

Fix both problems:

  - Handle multiline input within sed itself to avoid one tr invocation.
    The default sed even on Solaris does understand \n.

  - Use octals in tr -d. \012 works for ASCII "line feed", it's even
    used as an example in the Solaris man page. But we must strip
    also ASCII "carriage return" \015 and EBCDIC "next line" \025.
    The EBCDIC case got handled with \n previously. Stripping \012
    and \015 on EBCDIC system won't matter as those control chars
    won't be present in the string in the first place.

An awk-based solution could be an alternative but it might need
special casing on Solaris to used nawk instead of awk. The changes
in this commit are smaller and should have a smaller risk for
regressions. It's also possible that version.sh will be dropped
entirely at some point.

(cherry picked from commit e7a42cda7c827e016619e8cab15e2faf5d4181ae)
2024-09-06 18:51:58 +03:00
Lasse Collin
0c089a33a5
CI: Don't require po4a on Solaris
(cherry picked from commit a61c9ab4751f2710dcd5459c7d74bbf20781f0f9)
2024-09-06 18:51:58 +03:00
Lasse Collin
83d3792711
CI: Use set -e on Solaris too
(cherry picked from commit 5229bdf5335ce18ed54beb7e646e39927663be86)
2024-09-06 18:51:58 +03:00
Lasse Collin
9c64d4fd78
CMake: Install liblzma.pc even with MSVC
I had misunderstood that it wouldn't be useful with MSVC.
vcpkg had been installing liblzma.pc with custom rules since 2020,
years before liblzma.pc support was added to CMakeLists.txt.

See:
eb895b95aa/ports/liblzma/portfile.cmake
https://github.com/microsoft/vcpkg/pull/39024#issuecomment-2145064670
(cherry picked from commit afa938e429c1ce07d26d02999352fb014b62ff3d)
2024-09-06 18:51:57 +03:00
Sam James
42754176bd
ci: don't pin official GH actions via commit, just tag
There's no real value in doing it via commit for official GH actions. We
can keep using pinned commits for unofficial actions. It's hassle for no
gain.

Maybe going forward we can limit this further by only being paranoid
for the jobs with any access to tokens.

(cherry picked from commit 35f8649f08341639a627fd06350e938124ca3622)
2024-09-06 18:51:57 +03:00
Christoph Junghans
9a5fee7022
ci: set -e on openbsd
Closes: https://github.com/tukaani-project/xz/pull/116
(cherry picked from commit e885dae37ff5b1dbc760dabc1e03e866a7302ef2)
2024-09-06 18:51:57 +03:00
Christoph Junghans
a2d66de54f
ci: set -e on netbsd
(cherry picked from commit 21b02dd128cf9e8c76325ec124f70381862dcf19)
2024-09-06 18:51:57 +03:00
Christoph Junghans
1bdc70176b
ci: actually fail on FreeBSD
Without "set -e" the job will always be successful.

See vmactions/freebsd-vm#72

(cherry picked from commit 8641f0c24c041136670c975b23408184b45431bc)
2024-09-06 18:51:57 +03:00
Andrew Murray
4132277103
Updated actions
Closes: https://github.com/tukaani-project/xz/pull/115
(cherry picked from commit ef616683ef11f11ffdfbe0624da33905e28a70f9)
2024-09-06 18:51:57 +03:00
Sam James
1575414636
ci: add po4a
(cherry picked from commit 57b440d316da9ac9cb312ee7e6890f5382556f10)
2024-09-06 18:51:57 +03:00
Sam James
c3e293037e
ci: add Solaris
Inspired by 3f2a38b011.

It runs on Solaris 5.11 via a VirtualBox VM.

(cherry picked from commit 08cdf4be9a673d78efe393b53dd73bf43c81dd95)
2024-09-06 18:51:56 +03:00
Sam James
dc6b6011b4
xz: list: suppress -Wformat-nonliteral for Solaris
Solaris' GCC can't understand that our use is fine, unlike modern compilers:
```
list.c: In function 'print_totals_basic':
list.c:1191:4: error: format not a string literal, argument types not checked [-Werror=format-nonliteral]
  uint64_to_str(totals.files, 0));
  ^~~~~~~~~~~~~
cc1: all warnings being treated as errors
```

It's presumably because of older gettext missing format attributes.

This is with `gcc (GCC) 7.3.0`.

(cherry picked from commit b69768c8bd1a34fde311935c551d061ba52d9a3f)
2024-09-06 18:51:56 +03:00
Lasse Collin
7ce2ac795a
Update THANKS
(cherry picked from commit b8d134e61ede9f4a296226d97f5c20721fb4e8e2)
2024-09-06 18:51:49 +03:00
Lasse Collin
3ec664d3f6 Bump version and soname for 5.6.2 2024-05-29 18:03:51 +03:00
Lasse Collin
3cc0aa702e Add NEWS for 5.6.2 2024-05-29 18:03:04 +03:00
Lasse Collin
526d3f7f2c Add NEWS for 5.4.7 2024-05-29 18:03:04 +03:00
Lasse Collin
660b09279e Add NEWS for 5.2.13 2024-05-29 18:03:04 +03:00
Lasse Collin
7d76282dac Translations: Run po4a/update-po
Now the files are in the new formatting without source file
line numbers. Future updates should keep the diffs much smaller.
2024-05-29 17:47:47 +03:00
Lasse Collin
4470c3f7d8 Translations: Run "make -C po update-po"
In the past this wasn't done before releases; the Git repository
just contained the files from the Translation Project. But this
way it is clearer when comparing release tarballs against the
Git repository. In future releases this might no longer be necessary
within a stable branch as the .po files won't change so easily anymore
when creating a tarball.
2024-05-29 17:47:47 +03:00
Lasse Collin
33b8a85fac Build: Update po/*.po files only when needed
When po/xz.pot doesn't exist, running "make" or "make dist" will
create it. Then the .po files will be updated but only if they
actually would change more than the POT-Creation-Date line.
Then the .gmo files would be generated from the .po files.
This is the case before and after this commit.

However, "make dist" and thus "make mydist" did a forced update
to the files, updating them even if the only change was the
POT-Creation-Date line. This had pros and cons: It made it clear
that the .po file really is in sync with the recent strings in
the package. On the other hand, it added noise in form of changed
files in the source tree and distribution tarballs. It can be
ignored with something like "diff -I'^"POT-Creation-Date: '" but
it's still a minor annoyance *if* there's not enough value in
having the most recent timestamp.

Setting DIST_DEPENDS_ON_UPDATE_PO = no means that such forced
update won't happen in "make dist" anymore. However, the "mydist"
target will use xz.pot-update target which is the same target that
is run when xz.pot doesn't exist at all yet. Thus "mydist" will
ensure that the translations are up to date, without noise from
changes that would affect only the POT-Creation-Date line.

Note that po4a always uses msgmerge with --update, so POT-Creation-Date
in the man page translations is never the only change in .po files.
In that sense this commit makes the message translations behave more
similarly to the man page translations.

Distribution tarballs will still have non-reproducible POT-Creation-Date
in po/xz.pot and po4a/xz-man.pot but those are just two files. Even they
could be made reproducible from a Git timestamp if desired.

(cherry picked from commit 9284f1aea31f0eb23e2ea72f7218b271e2234762)
2024-05-29 17:31:42 +03:00
Lasse Collin
09daebd66b po4a/update-po: Disable wrapping in .pot and .po files
The .po files from the Translation Project come with unwrapped
strings so this matches it.

This may reduce the noise in diffs too. When the beginning of
a paragraph had changed, the rest of the lines got rewrapped
in msgsid. Now it's just one very long line that changes when
a paragraph has been edited.

The --add-location=file option was removed as redundant. The line
numbers don't exist in the .pot file due to --porefs file and thus
they cannot get copied to the .po files either.

(cherry picked from commit 4beba1cd62d7f8f7a6f1e899b68292d94c53b599)
2024-05-28 21:26:53 +03:00
Lasse Collin
51ad72dae4 Update contact info in README
(cherry picked from commit b14c130a58a649f9a73392eeb122cb252327c569)
2024-05-28 18:41:35 +03:00
Lasse Collin
18463917f9 Translations: Use --package-name=xz-man with po4a
This is to match reality. See the added comment.

(cherry picked from commit 75f5f2e014b0ee646963f36bc6a9c840fb272353)
2024-05-28 17:23:10 +03:00
Lasse Collin
26bbcb13cd Translations: Omit --package-name from po/Makevars
This is closer to the reality in the po/*.po files.

(cherry picked from commit eb217d016cfbbba1babc19a61095b3ea25898af6)
2024-05-28 17:23:10 +03:00
Lasse Collin
c35ee804b8 Translations: Omit man page line numbers from .pot and .po files
(cherry picked from commit 9114267038deaecf4832a5cacb5acbe6591ac839)
2024-05-28 12:21:22 +03:00
Lasse Collin
0f4429d47f Translations: Use the xgettext option --add-location=file
(cherry picked from commit 093490b58271e9424ce38a7b1b38bcf61b9c86c6)
2024-05-28 12:21:22 +03:00
Lasse Collin
a93e2c2d1d Translations: Use the msgmerge option --add-location=file
This way the PO file diffs are less noisy but the locations of the
strings are still present at file level, just without line numbers.

The option is available since gettext 0.19 (2014).
configure.ac requires 0.19.6.

(cherry picked from commit fccebe2b4fd513488fc920e4dac32562ed3c7637)
2024-05-28 12:21:22 +03:00
Lasse Collin
d438989559 Build: Use $(SHELL) instead of sh to run scripts in Makefile.am
(cherry picked from commit f361d9ae85707a87eb28db400eb7229cec103d58)
2024-05-28 12:21:22 +03:00
Lasse Collin
5781414b6e Translations: Change the home page URLs in man page translations
Since the source strings have changed, these would get marked as
fuzzy and the original string would be used instead. The original
and translated strings are identical in this case so it wouldn't
matter. But patching the translations helps still because then
po4a will show the correct translation percentage.

(cherry picked from commit a26dece34793a09aac2476f954d162d03e9cf62b)
2024-05-23 18:18:05 +03:00
Lasse Collin
3670e0616e CMake: Add manual support for 32-bit x86 assembly files
One has to pass -DENABLE_X86_ASM=ON to cmake to enable the
CRC assembly code. Autodetection isn't done. Looking at
CMAKE_SYSTEM_PROCESSOR might not work as it comes from uname
unless cross-compilation is done using a CMake toolchain file.

On top of this, if the code is run on modern processors that support
the CLMUL instruction, then the C code should be faster (but then
one should also be using a x86-64 build if possible).

(cherry picked from commit 24387c234b4eed1ef9a7eaa107391740b4095568)
2024-05-23 15:40:51 +03:00
Lasse Collin
c1b001b09e CMake: Rename USE_DOXYGEN to ENABLE_DOXYGEN
It's more consistent with the other option() uses.

(cherry picked from commit 0fb3c9c3f684f5a25bd425ed079a20a79f0c969d)
2024-05-23 15:40:51 +03:00
Lasse Collin
7213fe39c7 Use more confident language in COPYING
(cherry picked from commit 62733592a1cc6f0b41f46ef52e06d1a6fe1ff38a)
2024-05-23 11:37:06 +03:00
Lasse Collin
15358be94a Add SPDX license identifiers to files under tests/ossfuzz
(cherry picked from commit 9ae2ebc1e504a1814b0788de95fb5c58c0328dde)
2024-05-23 11:37:06 +03:00
Lasse Collin
1aa92c7ffd Add SPDX license identifier to .codespellrc
(cherry picked from commit 9000d70eb9815bd7f43ffddc1c3316c507aa0e05)
2024-05-23 11:37:06 +03:00
Lasse Collin
3c7e400fdc Move entries po4a/.gitignore to the top level .gitignore
The po4a directory is in EXTRA_DIST and thus all files there
are included in the package. .gitignore doesn't belong in the
package so keep that file out of the po4a directory.

(cherry picked from commit 903c16fcfa5bfad0cdb2a7383d941243bcb12e76)
2024-05-23 11:37:06 +03:00
Lasse Collin
8a99272d4a CMake: Add comments
(cherry picked from commit 9d997d6f9d4f042412e45c7b7a23a14ad2e4f9aa)
2024-05-23 11:36:05 +03:00
Lasse Collin
c35259c9e2 CMake: Remove the note that some tests aren't run
They are now in the common build configurations.

(cherry picked from commit d35368b33e54bad2f566df99fac29ffea38e34de)
2024-05-23 11:36:05 +03:00
Lasse Collin
30982a2153 CMake: Add support for test_files.sh
(cherry picked from commit dc232d584619b2819a9c52d6ad5d8b5d56b392ba)
2024-05-23 11:36:05 +03:00
Lasse Collin
3a8f81e0ad Tests: Make test_files.sh more flexible
Add a new optional argument to specify the directory of the xz and
xzdec executables.

If ../config.h doesn't exist, assume that all encoders and decoders
are available.

(cherry picked from commit a7e9230af9d1f87f474fe38886eb977d4149dc9b)
2024-05-23 11:36:05 +03:00
Lasse Collin
0644675c82 CMake: Add support for test_compress.sh tests
(cherry picked from commit b40e6efbb48d740b9b5b303e59e344801cbb5bd8)
2024-05-23 11:36:05 +03:00
Lasse Collin
dcc02a6ca0 Tests: Make test_compress.sh more flexible
Add a new optional second argument: directory of the xz and xzdec
executables. This is need with the CMake build where the binaries
end up in the top-level build directory.

If ../config.h doesn't exist, assume that all encoders and decoders
are available. This will make this script usable from CMake in the
most common build configuration.

NOTE: Since the existence of ../config.h is checked, the working
directory of the test script must be a subdir in the build tree!
Otherwise ../config.h would look outside the build tree.

Use the default check type instead of forcing CRC32 or CRC64.
Now the script doesn't need to check if CRC64 is available.

(cherry picked from commit ac3222d2cb1ff3a15eb6d58f9ea9bc78e8bc3bb2)
2024-05-23 11:36:05 +03:00
Lasse Collin
c761b7051f CMake: Prepare to support the test_*.sh tests
This is a bit hacky since the scripts grep config.h to know which
features were built but the CMake build doesn't create config.h.
So instead those test scripts will be run only when all relevant
features have been enabled.

(cherry picked from commit 006040b29c83104403621e950ada0c8956c56b3d)
2024-05-23 11:36:05 +03:00
Lasse Collin
a71bc2d75b Tests: test_suffix.sh: Add a comment
(cherry picked from commit 6167607a6ea72fb74eefb943c4566e3cab528cd2)
2024-05-23 11:36:05 +03:00
Lasse Collin
8fda5ce872 Fix typos
Thanks to xx on #tukaani.

(cherry picked from commit 4e9023857d287f624562156b60dc23d2b64c0f10)
2024-05-23 11:36:05 +03:00
Lasse Collin
2729079bcb liblzma: Fix white space
Thanks to xx on #tukaani.

(cherry picked from commit b14d08fbbc254485ace9ccfe7908674f608a62ae)
2024-05-23 11:36:05 +03:00
Lasse Collin
a289c4dfeb xz: Document the static function get_chains_memusage()
(cherry picked from commit 142e670a413a7bce1a2647f1cf1f33f8ee2dbe88)
2024-05-23 11:28:20 +03:00
Lasse Collin
6f0db31713 xz: Rename filters_memusage_max() to get_chains_memusage()
(cherry picked from commit 78e984399a64bfee5d11e7308e0bdbc1006db2ca)
2024-05-23 11:28:20 +03:00
Lasse Collin
d7e2bf7e2d xz: Rename filter_memusages to chains_memusages
(cherry picked from commit 54c3db0a83d3e67d89aba92a0957f2dce9b111a7)
2024-05-23 11:28:20 +03:00
Lasse Collin
58f200b6d1 xz: Simplify the memory usage scaling code
This is closer to what it was before the --filtersX support was added,
just extended to support for scaling all filter chains. The method
before this commit was an extended version of the original too but
it was done in a more complex way for no clear reason. In case of
an error, the complex version printed fewer informative messages
(a good thing) but it's not a sigificant benefit.

In the limit is too low even for single-threaded mode, the required
amount of memory is now reported like in 5.4.x instead of like in
5.5.1alpha - 5.6.1 which showed the original non-scaled usage. It
had been a FIXME in the old code but it's not clear what message
makes the most sense.

Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a
(cherry picked from commit d9e1ae79ec90d6a7eafeaceaf0ece4f0c83d4417)
2024-05-23 11:28:20 +03:00
Lasse Collin
41bdc9fa5c xz: Edit comments
(cherry picked from commit 0ee56983d198b776878432703de664049b1be32e)
2024-05-23 11:28:20 +03:00
Lasse Collin
52e40c1912 xz: Rename chain_idx to chain_num
(cherry picked from commit ec82a49c3553f7206104582dbfb8b64fa433b491)
2024-05-23 11:28:20 +03:00
Lasse Collin
8a01963331 xz: Edit coding style
(cherry picked from commit a731a6993c34bbbd55abaf9c166718682b1da24f)
2024-05-23 11:28:20 +03:00
Lasse Collin
e3ad7eda74 xz: Edit comments
Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a
(cherry picked from commit 32eb176b89243fce3112347fe43a8ad14a9fd2be)
2024-05-23 11:28:20 +03:00
Lasse Collin
09cabae2ab xz: Fix grammar in a comment
Fixes: cb3111e3ed84152912b5138d690c8d9f00c6ef02
(cherry picked from commit b90339f4daa510d2b1b8c550f855a99667f1d004)
2024-05-23 11:28:20 +03:00
Lasse Collin
c10b66fbf9 xz: Rename filter_memusages to encoder_memusages
(cherry picked from commit 4c0bdaf13d651b22ba13bd93f8379724d6ccdc13)
2024-05-23 11:28:20 +03:00
Lasse Collin
9132ce3564 xz: Edit coding style
(cherry picked from commit b54aa023e0ec291b06e976e5f094ab0549e7b09b)
2024-05-23 11:28:20 +03:00
Lasse Collin
d642e13874 xz: Rename filters_index to chain_num
The reason is the same as in bd0782c1f13e52cd0fd8415208e30e47004a4c68.

(cherry picked from commit 49f67d3d3f42b640a7dfc4ca04c8934f658e10ce)
2024-05-23 11:28:20 +03:00
Lasse Collin
47599f3b73 xz: Replace a few uint32_t with "unsigned" to reduce the number of casts
These hold only tiny values.

(cherry picked from commit ff9e8b3d069ecfa52ec43dcdb198542d1692a492)
2024-05-23 11:28:20 +03:00
Lasse Collin
8f5ab75c45 xz: Rename filters_used_mask to chains_used_mask
The reason is the same as in bd0782c1f13e52cd0fd8415208e30e47004a4c68.

(cherry picked from commit b5e6c1113b1ba02c282bd9163eccdb521c937a78)
2024-05-23 11:28:20 +03:00
Lasse Collin
3eb7cf9dd5 xz: Move the setting of "check" in coder_set_compression_settings()
It's more logical to do it in the beginning instead of in the middle
of the filter chain handling.

Fixes: d6af7f347077b22403133239592e478931307759
(cherry picked from commit 32500dfaadae2ea36fda2e17b49ae7d9ac1acf52)
2024-05-23 11:28:20 +03:00
Lasse Collin
067961ee0e xz: Rename "filters" to "chains"
The convention is that

    lzma_filter filters[LZMA_FILTERS_MAX + 1];

contains the filters of a single filter chain.
It was so here as well before the commit
d6af7f347077b22403133239592e478931307759.
It changes "filters" to a ten-element array of filter chains.
It's clearer to call this array-of-arrays "chains".

This also renames "filter_idx" to "chain_idx" which is used
as an index as in chains[chain_idx].

(cherry picked from commit ad146b1f42bbb678175a503a45ce525e779f9b8b)
2024-05-23 11:28:20 +03:00
Lasse Collin
6822f6f891 xz: Clean up a comment
(cherry picked from commit 5a4ae4e4d0105404184e9a82ee08f94e1b7783e0)
2024-05-23 11:28:20 +03:00
Lasse Collin
0e5e3e7bdc xz: Add clarifying assertions
(cherry picked from commit 2de80494ed9a4dc7db395a32a5efb770ce769804)
2024-05-23 11:28:20 +03:00
Lasse Collin
77bcf6b76a xz: Add a clarifying assertion
Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a
(cherry picked from commit 1eaad004bf7748976324672db028e34f42802e61)
2024-05-23 11:28:20 +03:00
Lasse Collin
df3efc058a xz: Clarify a comment
(cherry picked from commit 605094329b986244833c967c04963cacc41a868d)
2024-05-23 11:28:20 +03:00
Lasse Collin
4ebfe11cd3 xz: Use the info collected in parse_block_list()
This is slightly simpler and it avoids looping through
the opt_block_list array.

(cherry picked from commit 8fac2577f2dbb9491afd8500f60d004c9071df3b)
2024-05-23 11:28:20 +03:00
Lasse Collin
bfea691361 xz: Remember the filter chains and the largest Block in parse_block_list()
(cherry picked from commit 81d350dab864b985b740742772f3b132d4c52914)
2024-05-23 11:28:20 +03:00
Lasse Collin
d4e33e7392 xz: Update a comment and initialization of filters_used_mask
(cherry picked from commit 46ab56968f7dfdac187710a1223659d832fa1565)
2024-05-23 11:28:20 +03:00
Lasse Collin
3c130737c9 xz: parse_block_list: Edit integer type casting
(cherry picked from commit e89293a0baeb8663707c6b4a74fbb310ec698a8f)
2024-05-23 11:28:20 +03:00
Lasse Collin
40c8513b4e xz: Make filter_memusages a local variable
(cherry picked from commit 87011e40c168255cd2edea129ee68c901770603b)
2024-05-23 11:28:20 +03:00
Lasse Collin
cacaf25aa7 xz: Remove unused code and simplify
opt_mode == MODE_COMPRESS isn't possible when HAVE_ENCODERS isn't
defined. Thus, when *encoding*, the message about *decoder* memory
usage is possible to show only when both encoder and decoder have
been built.

Since the message is shown only at V_DEBUG, skip the memusage
calculation if verbosity level isn't high enough.

Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a
(cherry picked from commit 347b412a9374e0456bef9da0d7d79174c0b6f1a5)
2024-05-23 11:28:20 +03:00
Lasse Collin
3495a6b291 xz: Fix integer type from uint64_t to uint32_t
lzma_options_lzma.dict_size is uint32_t so use it here too.

Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a
(cherry picked from commit 31358c057c9de9d6aba96bae112b2d17942de7cb)
2024-05-23 11:28:20 +03:00
Lasse Collin
2861d856de debug/translation.bash: Remove an outdated test command
Since 5.3.5beta, "xz --lzma2=mf=bt4,nice=2" works even though bt4 needs
at least nice=4. It is rounded up internally by liblzma when needed.

Fixes: 5cd9f0df78cc4f8a7807bf6104adea13034fbb45
(cherry picked from commit 3f71e0f3a118e1012526f94fd640a626d30cb599)
2024-05-23 11:28:20 +03:00
Lasse Collin
54546babc3 Fix the date of NEWS for 5.4.5
(cherry picked from commit b05a516830095a0e1937aeb31c937fb0400408b6)
2024-05-23 11:28:20 +03:00
Lasse Collin
a7e58d1fdb Build: Update visibility.m4 from Gnulib
This fixes the syntax of the "serial" line and renames
a temporary variable.

(cherry picked from commit 6d336aeb97b69c496ddc626af403f6f21c753658)
2024-05-23 11:28:20 +03:00
Lasse Collin
07a9cda037 po4a/update-po: Delete the *.po.authors files
These are temporary files that are needed only when running po4a.
The top-level Makefile.am puts the whole po4a directory into
distribution tarball (it's simpler) so deleting these temporary
files is needed to prevent them from getting into tarballs.

(cherry picked from commit ab51e8ee610e2a893906859848f93d5cb0d5ba83)
2024-05-23 11:28:20 +03:00
Lasse Collin
1b4e7dca24 xz: Edit comments and coding style
(cherry picked from commit e4780244a17420cc95d5498cd6e02ad10eac6e5f)
2024-05-23 11:28:20 +03:00
Lasse Collin
18683525a7 xz: Omit an incorrect comment
It likely was a leftover from a development version of the code.

Fixes: 183819bfd9efac8c184d9bf123325719b7eee30f
(cherry picked from commit fe4d8b0c80eaeca3381be302eeb89aba871a7e7c)
2024-05-23 11:28:20 +03:00
Lasse Collin
005f039864 xz: Add braces to a for-statement and to an if-statement
No functional changes.

Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a
Fixes: 479fd58d60622331fcbe48fddf756927b9f80d9a
(cherry picked from commit 9bef5b8d17dd5e009d6a6b2becc2dc535da53937)
2024-05-23 11:28:20 +03:00
Lasse Collin
34be4e6aa6 liblzma: Omit an unneeded array from the x86 filter
Fixes: 6aa2a6deeba04808a0fe4461396e7fb70277f3d4
(cherry picked from commit de06b9f0c0a3f72569829ecadbc9c0a3ef099f57)
2024-05-23 11:28:20 +03:00
Lasse Collin
79e329b771 CMake: Add test_suffix.sh to the tests
(cherry picked from commit 7da488cb933fdf51cfc14cb5810beb0766224380)
2024-05-23 11:28:20 +03:00
Lasse Collin
86f33bb90c Test: Add CMake support to test_suffix.sh
It needs to find the xz executable from a different directory
and work without config.h.

(cherry picked from commit a805594ed0b4cbf7b81aa28ff46a8ab3c83c6876)
2024-05-23 11:28:20 +03:00
Lasse Collin
1e243ab378 Update INSTALL about MINIX 3
The latest stable is 3.3.0 and it's from 2014.
Don't mention the older versions in INSTALL.
3.3.0 ships with Clang already.

Testing with 3.4.0beta6 shows that tuklib_physmem
works too so omit comments about that from INSTALL.
Visibility warnigns weren't a problem either.

Thus it's enough to mention the need for --disable-threads
as configure doesn't autodetect the lack of pthreads.

(cherry picked from commit 50e19489387774bab3c4a988397d0d9c7a142a46)
2024-05-23 00:13:43 +03:00
Lasse Collin
8595b5ab3b Windows: Remove the "doc/api" line from README-Windows.txt
Fixes: 252aa1d67bc015eeba462803ab72edeb7744d864
(cherry picked from commit 68d18aea1422a2b86b98b71d0b019233d84e01b0)
2024-05-23 00:13:43 +03:00
Lasse Collin
a3f163a4ad Build: Don't copy doc/api from source tree to distribution tarball
It was copied if it existed. This was intentional when autogen.sh
still built liblzma API docs with Doxygen.

Fixes: d3a77ebc04bf1db8d52de2d9b0f07877bc4fd139
(cherry picked from commit 8ede961374613aa302a13571d662cfaea1cf91f7)
2024-05-23 00:13:43 +03:00
Sam James
cb0e847fe0 ci: add SPDX headers
I've checked over each of these and they're straightforward applications
of the relevant Github Actions.

(cherry picked from commit 9a6761aa35ed84d30bd2fda2333a4fdf3f46ecdc)
2024-05-23 00:13:43 +03:00
Yaroslav Halchenko
c3c854dc75 codespell: Ignore the THANKS file and debbugs.gnu.org URL
This way "codespell -i 0" is silent.

This is the first commit from
https://github.com/tukaani-project/xz/pull/93
with trivial edits by Lasse Collin.

(cherry picked from commit 81efe6119f86e3274e512c9eca5ec22b2196c2b3)
2024-05-23 00:13:43 +03:00
Lasse Collin
3216301aa2 Add .gitattributes to clean up git-archive output
(cherry picked from commit 905bfc74fe2670fd9c39014803017ab53d325401)
2024-05-23 00:13:43 +03:00
Lasse Collin
f99e7c69ad xzdec: Support Landlock ABI version 4
This was added to xz in 02e3505991233901575b7eabc06b2c6c62a96899
but I forgot to do the same in xzdec.

The Landlock sandbox in xzdec could be stricter as now it's
active only for the last file being decompressed. In xz,
read-only sandbox is used for multi-file case. On the other hand,
xz doesn't go to the strictest mode when processing the last file
when more than one file was specified; xzdec does.

(cherry picked from commit 3334c71d3d4294a4f6569df3ba9bcf2443dfa501)
2024-05-23 00:13:43 +03:00
Lasse Collin
bfe9be7a46 liblzma: Fix incorrect function type error from sanitizer
Clang 17 with -fsanitize=address,undefined:

    src/liblzma/common/filter_common.c:366:8: runtime error:
        call to function encoder_find through pointer to incorrect
        function type 'const lzma_filter_coder *(*)(unsigned long)'
    src/liblzma/common/filter_encoder.c:187: note:
        encoder_find defined here

Use a wrapper function to get the correct type neatly.
This reduces the number of casts needed too.

This issue could be a problem with control flow integrity (CFI)
methods that check the function type on indirect function calls.

Fixes: 3b34851de1eaf358cf9268922fa0eeed8278d680
(cherry picked from commit 278563ef8f2b8d98d7f2c85e1a64ec1bc21d26d8)
2024-05-23 00:13:43 +03:00
Lasse Collin
882eadc5b8 xz: Avoid arithmetic on a null pointer
It's undefined behavior. The result wasn't ever used as it occurred
in the last iteration of a loop.

Clang 17 with -fsanitize=address,undefined:

    $ src/xz/xz --block-list=123
    src/xz/args.c:164:12: runtime error: applying non-zero offset 1
        to null pointer

Fixes: 88ccf47205d7f3aa314d358c72ef214f10f68b43
Co-authored-by: Sam James <sam@gentoo.org>
(cherry picked from commit 77c8f60547decefca8f2d0c905d9c708c38ee8ff)
2024-05-23 00:13:43 +03:00
Lasse Collin
ec5458e1c9 CMake: Support building liblzma API docs using Doxygen
This is disabled by default to match the default in Autotools.
Use -DUSE_DOXYGEN=ON to enable Doxygen usage.

This uses the update-doxygen script, thus this is under if(UNIX)
although Doxygen itself can run on Windows too.

(cherry picked from commit 64503cc2b76a388ced4ec5f68234a07f0dcddcd5)
2024-05-23 00:13:43 +03:00
Lasse Collin
8c93ced56b CMake: List API headers in LIBLZMA_API_HEADERS variable
This way the same list will be usable in more than one location.

(cherry picked from commit 0a7f5a80d8532a1d8cfa0a902c9d1ad7651eca37)
2024-05-23 00:13:43 +03:00
Lasse Collin
f7c9bab037 PACKAGERS: Document the optional Doxygen usage
Also add a note that packagers should check the licensing
of the Doxygen output.

(cherry picked from commit 541406bee3f09e9813103c6406b10fc6ab2e0d30)
2024-05-23 00:13:43 +03:00
Lasse Collin
28e7d130cb Build: Add --enable-doxygen to generate and install API docs
It requires Doxygen. This option is disabled by default.

(cherry picked from commit e21efdf96f39378fe417479f89e97046680406f5)
2024-05-23 00:13:43 +03:00
Lasse Collin
cca7e6c05b Doxygen: update-doxygen: Support out-of-tree builds
Also, now $0 is used to refer to the script itself.

(cherry picked from commit 0ece09a575d7e542bda8825808ddd6cf7de8cc4b)
2024-05-23 00:13:43 +03:00
Lasse Collin
8090d3dc7f Doxygen: Simplify Doxyfile and add SPDX license identifier
This omits all comments and a few non-default options that weren't
needed. Now it contains no copyrighted content from Doxygen itself.

(cherry picked from commit 2c519f641f266fd897edf680827d9c905f411440)
2024-05-22 23:34:43 +03:00
Lasse Collin
0721b8bfe5 Doxygen: Don't strip JavaScript anymore
The stripping method worked well with Doxygen 1.8 and 1.9 but
it doesn't work with Doxygen 1.10 anymore. Since we won't ship
pre-generated liblzma API docs anymore, the extra bloat and
extra license info of the JavaScript files won't affect the
upstream source package anymore.

(cherry picked from commit bdba39a57530d11b88440df8024002be3d09e4a1)
2024-05-22 23:34:43 +03:00
Lasse Collin
1ddb40f6fd Build: Remove old Doxygen rules from top-level Makefile.am
(cherry picked from commit d3a77ebc04bf1db8d52de2d9b0f07877bc4fd139)
2024-05-22 23:34:43 +03:00
Lasse Collin
092af76234 Update COPYING to match the autogen.sh and mydist changes
(cherry picked from commit fd7faa4c338a42a6a40e854b837d285ae2e8c609)
2024-05-22 23:34:43 +03:00
Lasse Collin
77bce9a0a2 Build: Don't run update-doxygen as part of "make mydist"
(cherry picked from commit b2bc55d8a0a9f2f59bfd4302067300e650f6baa3)
2024-05-22 23:34:43 +03:00
Lasse Collin
3a2fc62f59 autogen.sh: Don't generated Doxygen docs anymore
(cherry picked from commit e9be74f5b129fe8a5388d588e68b1b7f5168a310)
2024-05-22 23:34:42 +03:00
Lasse Collin
b04c16f9a5 windows/build.bash: Omit Doxygen docs from the package
They will be omitted from the source tarball and I don't want
to make Doxygen a dependency of build.bash.

(cherry picked from commit 252aa1d67bc015eeba462803ab72edeb7744d864)
2024-05-22 23:34:42 +03:00
Lasse Collin
d4dd3c8f61 README: Don't mention PDF man pages anymore
(cherry picked from commit 634095364d87444d62d8ec54c134c0cd4705f5d7)
2024-05-22 23:34:42 +03:00
Lasse Collin
be90720d6c Build: Omit PDF man pages from the package
pdf-local rule was added to create the PDFs still with "make pdf".
The install rules are missing but that likely doesn't matter at all.

(cherry picked from commit dc684bf76ea23574ee9d88382057381e04e6089a)
2024-05-22 23:34:42 +03:00
Lasse Collin
f724552d0c windows/build.bash: Don't copy PDF man pages to the package
(cherry picked from commit e3531ab4125cbd5c01ebd3200791350960547189)
2024-05-22 23:34:42 +03:00
Lasse Collin
00e774819c Tests: test_index: Fix failures when features are disabled
Fixes: cd88423e76d54eb72aea037364f3ebb21f122503
(cherry picked from commit 710a4573ef2cbd19c66318c3b2d1388e418e26c7)
2024-05-22 23:34:42 +03:00
Lasse Collin
51133ad71e CMake: Keep the build working if the "tests" directory is missing
This moves the tests section as is from CMakeLists.txt into
tests/tests.cmake. CMakeLists.txt now includes tests/tests.cmake
if the latter file exists.

Now it's possible to delete the whole "tests" directory and
building with CMake will still work normally, just without
the tests. This way the tests are readily available for those
who want them, and those who won't run the tests anyway have
a straightforward way to ensure that nothing from the "tests"
directory can affect the build process.

(cherry picked from commit aaff75c3486c4489ce88b0efb36b41cf138af7c3)
2024-05-22 23:34:42 +03:00
Lasse Collin
85b5595b67 Tests: Remove x86 and SPARC BCJ tests
These are very old but the exact test file isn't easy to reproduce
as it was compiled from a short C program (bcj_test.c) long ago.
These tests weren't very good anyway, just a little better than nothing.

(cherry picked from commit a5f2aa5618fe9183706c9c514c3067985f6c338b)
2024-05-22 23:34:42 +03:00
Lasse Collin
d8228d1ea0 Tests: test_index: Edit a misleading test
(cherry picked from commit d879686469c9c4bf2a7c0bb6420ebe4530fc8f07)
2024-05-22 14:32:36 +03:00
Lasse Collin
2358ef8238 Tests: test_index: Use minimal values to test integer overflow
(cherry picked from commit 612005bbdb0dea9dc09e9e2e9cc16a15c1480acd)
2024-05-22 14:32:36 +03:00
Lasse Collin
54f4a4162a Tests: test_index: Test lzma_index_buffer_decode() more
(cherry picked from commit 4ad88b2544c2aaf8de8f38af54587098cbe66c1d)
2024-05-22 14:32:36 +03:00
Lasse Collin
85ab59a6b7 Tests: test_index: Test that *i = NULL is done on LZMA_PROG_ERROR
On LZMA_DATA_ERROR from lzma_index_buffer_decode(), *i = NULL was
already done but this adds a test for that case too.

(cherry picked from commit 575b11b0d291e66c5fce31ce7a72f11436d57c83)
2024-05-22 14:32:36 +03:00
Lasse Collin
fb42599e44 Tests: test_index: Test lzma_index_buffer_encode() with empty output buf
(cherry picked from commit 2c970debdb285823f01f75e875561d893345ac2b)
2024-05-22 14:32:36 +03:00
Lasse Collin
20cac20f63 Tests: test_index: Replace if-statements with tuktest assertions
(cherry picked from commit cd88423e76d54eb72aea037364f3ebb21f122503)
2024-05-22 14:32:36 +03:00
Lasse Collin
91e3ea8735 Tests: test_index: Make it clear that my_alloc() has no integer overflows
liblzma guarantees that the product of the allocation size arguments
will fit in size_t.

Putting the pre-increment in the if-statement was clearly wrong
although in practice it didn't matter here as the function is
called only a couple of times.

(cherry picked from commit 7f865577a6224fbbb5f5ca52574b62ea8ac9bf51)
2024-05-22 14:32:36 +03:00
Lasse Collin
df1659a6c8 Tests: test_index: Verify also iter.block.number_in_stream
(cherry picked from commit 12313a3b6596cdcf012e180597f84d231f8730d3)
2024-05-22 14:32:36 +03:00
Lasse Collin
e083e95dbf Tests: test_index: Check cases that aren't a multiple of 4 bytes
(cherry picked from commit ad2654010d9d641ce1601beeff00630027e6bcd4)
2024-05-22 14:32:36 +03:00
Lasse Collin
b0d3b86ecf Tests: test_index: Edit comments and white space
(cherry picked from commit 2524fcf2b68b662035437cee8edbe80067c0c240)
2024-05-22 14:32:36 +03:00
Lasse Collin
bae288ea6f liblzma: index_decoder: Fix missing initializations on LZMA_PROG_ERROR
If the arguments to lzma_index_decoder() or lzma_index_buffer_decode()
were such that LZMA_PROG_ERROR was returned, the lzma_index **i
argument wasn't touched even though the API docs say that *i = NULL
is done if an error occurs. This obviously won't be done even now
if i == NULL but otherwise it is best to do it due to the wording
in the API docs.

In practice this matters very little: The problem can occur only
if the functions are called with invalid arguments, that is,
the calling application must already have a bug.

(cherry picked from commit 71eed2520e2eecae89bade9dceea16e56cfa2ea0)
2024-05-22 14:32:36 +03:00
Lasse Collin
f10cb93f33 CMake: Bump maximum policy version to 3.29
(cherry picked from commit 0478473953f50716a2bc37b619b1c7dc2682b1ad)
2024-05-22 14:32:36 +03:00
Sam James
59055d70cd ci: add NetBSD
(cherry picked from commit a607e2b40d23f7d998dbaba76692aa30b4c3d9d3)
2024-05-22 14:32:36 +03:00
Sam James
812c1f95f3 ci: add FreeBSD
(cherry picked from commit 72c210336de26fb87a928160d025fa10a638d23b)
2024-05-22 14:32:36 +03:00
Sam James
d2a4f963c2 ci: add OpenBSD
(cherry picked from commit b526ec2dbfb5889845ea60548c4f5b1f97d84ab2)
2024-05-22 14:32:36 +03:00
Sam James
493bc57c33 liblzma: outqueue: add header guard
Reported by github's codeql.

(cherry picked from commit c7ef767c49351743d8d011574abb9e200bf6b24f)
2024-05-22 14:32:36 +03:00
Sam James
cede418d4f liblzma: easy_preset: add header guard
Reported by github's codeql.

(cherry picked from commit 55dcae3056d95cb2ddb8b560c12ba7596bc79f2c)
2024-05-22 14:32:36 +03:00
Lasse Collin
6e76a25df2 tuklib_integer: Rename bswapXX to byteswapXX
The __builtin_bswapXX from GCC and Clang are preferred when
they are available. This can allow compilers to emit the x86 MOVBE
instruction instead of doing a load + byteswap as two instructions
(which would happen if the byteswapping is done in inline asm).

bswap16, bswap32, and bswap64 exist in system headers on *BSDs
and Darwin. #defining bswap16 on NetBSD results in a warning about
macro redefinition. It's safest to avoid this namespace conflict
completely.

No OS supported by tuklib_integer.h uses byteswapXX names and
a web search doesn't immediately find any obvious danger of
namespace conflicts. So let's try these still-pretty-short names
for the macros.

Thanks to Sam James for pointing out the compiler warning on
NetBSD 10.0.

(cherry picked from commit 4ffc60f32397371769b7d6b5e3ed8626292d58df)
2024-05-22 14:32:36 +03:00
Lasse Collin
0ca14871f3 liblzma: API doc cleanups
(cherry picked from commit 08ab0966a75b501aa7c717622223f0c13a113c75)
2024-05-22 14:32:36 +03:00
Lasse Collin
94a462850b Tests: test_filter_str: Add a few assertions
(cherry picked from commit 3ac8a9bb4cccbee88350696dc9c645c48d77c989)
2024-05-22 14:32:36 +03:00
Lasse Collin
72058ca22a Tests: test_filter_str: Move one assertion and add a comment
(cherry picked from commit 26c69be80523b05c84dea86c47c4ddd9a10945d7)
2024-05-22 14:32:36 +03:00
Lasse Collin
c59ebbe1c6 Tests: test_filter_str: Tweak comments and white space
(cherry picked from commit 4f6af853bc99904efb8b6c28a0af7b81a8476c1b)
2024-05-22 14:32:36 +03:00
Lasse Collin
ceda860934 Tests: test_filter_str: Add missing RISC-V case
Fixes: 89ea1a22f4ed3685b053b7260bc5acf6c75d1664
(cherry picked from commit c92663aa1bd576e0615498a4189acf0df12e84b9)
2024-05-22 14:32:36 +03:00
Lasse Collin
2234b7cc47 Tests: test_filter_str: Test *error_pos more thoroughly
(cherry picked from commit b0366df1d7ed26268101f9303a001c91c0806dfc)
2024-05-22 14:32:36 +03:00
Lasse Collin
3ba3ef57f9 liblzma: lzma_str_to_filters: Set *error_pos on all errors
The API docs clearly say that if error_pos isn't NULL then *error
is always set on any error. However, it wasn't touched if str == NULL
or filters == NULL or unsupported flags were specified.

Fixes: cedeeca2ea6ada5b0411b2ae10d7a859e837f203
(cherry picked from commit 70d12dd069bb9bb0d6bb1c8fafc4e6f77780263d)
2024-05-22 14:32:36 +03:00
Lasse Collin
57ad820e15 liblzma: Clean up white space
(cherry picked from commit ed8e552395701fbf046027cebc8be4a6755b263f)
2024-05-22 14:32:36 +03:00
Lasse Collin
ba0b5bfe7c Tests: test_filter_flags: Edit comments and style
(cherry picked from commit 2f06920f20b1ad63b7953dc09569e1d424998849)
2024-05-22 14:32:36 +03:00
Lasse Collin
d2ed675959 Tests: Fix C99/C11 compatibility when features are disabled
The array could become empty and then the initializer would be
simply {} which is allowed only in GNU-C and C23.

(cherry picked from commit b101e1d1dbc81577c0c9aa0cb89cf2e46a15eb82)
2024-05-22 14:32:36 +03:00
Lasse Collin
9a70e93fef DOS: Omit useless defines from config.h
(cherry picked from commit f8f3a220ac8afcb8cb2812917d3b77e00c2eab0d)
2024-05-22 14:32:36 +03:00
Lasse Collin
dc4740f720 Build: Omit useless checks for fcntl.h, limits.h, and sys/time.h
(cherry picked from commit fc1921b04b8840caaa777c2bd5340d41b259da20)
2024-05-22 14:32:36 +03:00
Lasse Collin
6e210d5766 liblzma: Silence a warning from Coverity static analysis
It is logical why it cannot know for sure that the value has
to be at most 4 if it is less than 16.

The x86 filter is based on a very old LZMA SDK version. Newer
ones have quite a different implementation for the same filter.

Thanks to Sam James.

(cherry picked from commit 6aa2a6deeba04808a0fe4461396e7fb70277f3d4)
2024-05-22 14:32:36 +03:00
Lasse Collin
4019b012f2 Update .gitignore
(cherry picked from commit e89d3e83b4496d0b5410870634970c0aa9721d59)
2024-05-22 14:32:36 +03:00
Lasse Collin
09a0311a1e Tests: test_lzip_decoder: Tweak coding style and comments
(cherry picked from commit 86fc4ee859709da0ff9617a1490f13ddac0a109b)
2024-05-22 14:32:36 +03:00
Lasse Collin
3117336a02 Tests: test_lzip_decoder: Remove redundant initializations
(cherry picked from commit 38be573a279bd7b608ee7d8509ec10884e6fb0d5)
2024-05-22 14:32:36 +03:00
Lasse Collin
f78081eb12 Tests: test_lzip_decoder: Remove unneeded tuktest_malloc() calls
(cherry picked from commit d7e4bc53eacfab9f3de95d8252bdfdc9419079c9)
2024-05-22 14:32:36 +03:00
Lasse Collin
7413383e42 xz: Fix white space error.
Thanks to xx on #tukaani.

(cherry picked from commit eeca8f7c5baf1ad69606bb734d5001763466d58f)
2024-05-22 14:32:36 +03:00
Sam James
eed2f26c0e xz: add missing noreturn for message_filters_help
Fixes: a165d7df1964121eb9df715e6f836a31c865beef
(cherry picked from commit 462ca9409940a19f743daee6b3bcc611277d0007)
2024-05-22 14:32:36 +03:00
Sam James
2633d8df61 xz: signals: suppress -Wsign-conversion on macOS
On macOS, we get:
```
signals.c: In function 'signals_init':
signals.c:76:17: error: conversion to 'sigset_t' {aka 'unsigned int'} from 'int' may change the sign of the result [-Werror=sign-conversion]
   76 |                 sigaddset(&hooked_signals, sigs[i]);
      |                 ^~~~~~~~~
signals.c:81:17: error: conversion to 'sigset_t' {aka 'unsigned int'} from 'int' may change the sign of the result [-Werror=sign-conversion]
   81 |                 sigaddset(&hooked_signals, message_progress_sigs[i]);
      |                 ^~~~~~~~~
signals.c:86:9: error: conversion to 'sigset_t' {aka 'unsigned int'} from 'int' may change the sign of the result [-Werror=sign-conversion]
   86 |         sigaddset(&hooked_signals, SIGTSTP);
      |         ^~~~~~~~~
```

We use `int` for `hooked_signals` but we can't just cast to whatever
`sigset_t` is because `sigset_t` is an opaque type. It's an unsigned int
on macOS. On macOS, `sigaddset` is implemented as a macro.

Just suppress -Wsign-conversion for `signals_init` for macOS given
there's no real nice way of fixing this.

(cherry picked from commit 863f13d2828b99b0539ce73f9cf85bde32358034)
2024-05-22 14:32:36 +03:00
Lasse Collin
50fb269c7a Tests: test_microlzma: Add a "FIXME?" about LZMA_FINISH handling
(cherry picked from commit fcbd0d199933a69713cb293cbd7409a757d854cd)
2024-05-22 14:32:36 +03:00
Lasse Collin
3e2ff2d38c Tests: test_microlzma: Tweak comments, coding style, and minor details
A few lines were reordered, a few ARRAY_SIZE were changed to sizeof,
and a few uint32_t were changed to size_t. No real functional changes
were intended.

(cherry picked from commit 0fe2dfa68355d2b165544b2bc8babf77dcc2039e)
2024-05-22 14:32:36 +03:00
Ryan Carsten Schmidt
ebc8b8de19 CI: Use only the active CPUs on macOS
hw.ncpu counts all CPUs including inactive ones. hw.activecpu counts
only the active CPUs.

(cherry picked from commit 97f0ee0f1f903f4e7c4ea23e9b89d687025d2992)
2024-05-22 14:26:59 +03:00
Sam James
1e63f7d536 ci: rename ci_build.sh -> ci_build.bash
We discussed the name and it's less cognitive load to just call it '.bash'
so you don't have an immediate question about if bashisms are OK.

(cherry picked from commit 73f629e321b74f68c9954728fa4f19261afccf46)
2024-05-22 14:26:59 +03:00
Sam James
aea54a4724 ci: build in parallel by default
(cherry picked from commit 8709407a9ef8e7e8aec117879400e4dd3e227ada)
2024-05-22 14:26:59 +03:00
Sam James
4381fcf00b ci: default to -O2
We need this for when we're passing sanitizer flags or -gdwarf-4 for Clang
with Valgrind. Just always start with -O2 if CFLAGS isn't set in the
environment and append what was passed on the command line.

(cherry picked from commit 65bf7e0a1ca6386f17608e8afb84ac470c18d23f)
2024-05-22 14:26:59 +03:00
Sam James
752ba5ed99 ci: make automake's test runner verbose on failures
This is a lot easier to work with than the save-logs thing the action
tries to do...

(cherry picked from commit bc899f9e0700ad153bd65f4804c4de7515c8a847)
2024-05-22 14:26:59 +03:00
Sam James
cc21af1715 ci: make UBSAN abort on errors
Unfortunately, UBSAN doesn't do this by default. See also the change
I made in Meson for this in October [0].

[0] 7b7d2e060b

(cherry picked from commit b5e3470442531717b2457b40ab412740296af1bc)
2024-05-22 14:26:59 +03:00
Sam James
2d2d5f14b3 ci: test Valgrind
Using `--trace-children=yes` has a trade-off here, as it makes
`test_scripts.sh` pretty slow when calling various non-xz utilities.

But I also feel like it's not useless to have Valgrind used there and it's
not easy to exclude Valgrind just for that one test...

I did consider using AX_VALGRIND_CHECK [0][1] but I couldn't get it working
immediately with some conditionally-built tests and I wondered if it was
worth spending time on at least while we're debating xz's future build
system situation.

[0] https://www.gnu.org/software/autoconf-archive/ax_valgrind_check.html
[1] https://tecnocode.co.uk/2014/12/23/automatically-valgrinding-code-with-ax_valgrind_check/

(cherry picked from commit 6c095a98fbec70b790253a663173ecdb669108c4)
2024-05-22 14:26:59 +03:00
Lasse Collin
5d20a61205 liblzma: CRC: Simplify table omission macros
A macro is useful to prevent a single #if directive from
getting too ugly but only one macro is needed for all archs.

(cherry picked from commit 6286c1900c2d2ca33d9b1b397122c7bcdb9a4d59)
2024-05-22 14:26:03 +03:00
Lasse Collin
2a80827e23 liblzma: ARM64 CRC: Fix omission of CRC32 table
The macro name had an odd typo so the table wasn't omitted
when it should have.

Fixes: 1940f0ec28f08c0ac72c1413d9706fb82eabe6ad
(cherry picked from commit 45da936c879acf4f053a3055665bf1b10ded4462)
2024-05-22 14:26:03 +03:00
Lasse Collin
a541173771 Build: If ARM64 feature detection func is found, stop looking for others
This can speed up configure a tiny bit.

Fixes: c5f6d79cc9515a7f22d7ea4860c6cc394b295732
(cherry picked from commit 308a9af85400b0e2019f0f012c8354e831d06d65)
2024-05-22 14:26:03 +03:00
Lasse Collin
9223ad6e78 liblzma: ARM64 CRC32: Change style of the macOS code to match FreeBSD
I didn't test this but it shouldn't change any functionality.

Fixes: 761f5b69a4c778c8bcb09279b845b07c28790575
(cherry picked from commit fc43cecd32bf9d5f8caa599206b15c9569af1eb6)
2024-05-22 14:26:03 +03:00
Lasse Collin
32ceb2c36a liblzma: ARM64 CRC32: Add error checking to FreeBSD-specific code
Also add parenthesis to the return statement.

I didn't test this.

Fixes: 761f5b69a4c778c8bcb09279b845b07c28790575
(cherry picked from commit 1024cd4cd966b998fedec51e385e9ee9a49b3c57)
2024-05-22 14:26:03 +03:00
Lasse Collin
42915101e9 liblzma: ARM64 CRC32: Use negation instead of subtracting from 8
Subtracting from 0 is negation, this just keeps warnings away.

Fixes: 761f5b69a4c778c8bcb09279b845b07c28790575
(cherry picked from commit 2337f7021c860b026e3e849e60a9ae8d09ec0ea0)
2024-05-22 14:26:03 +03:00
Lasse Collin
42a9482b48 liblzma: ARM64 CRC32: Tweak coding style and comments
(cherry picked from commit d8fffd01aa1a3c18e437a222abd34699e23ff5e7)
2024-05-22 14:26:03 +03:00
Lasse Collin
38a3ec5a7e CI: Remove ifunc support.
(cherry picked from commit 986865ea2f9d1f8dbef4a130926df106b0f6d41a)
2024-05-22 14:12:43 +03:00
Lasse Collin
34d1252f09 liblzma: Remove ifunc support.
This is *NOT* done for security reasons even though the backdoor
relied on the ifunc code. Instead, the reason is that in this
project ifunc provides little benefits but it's quite a bit of
extra code to support it. The only case where ifunc *might* matter
for performance is if the CRC functions are used directly by an
application. In normal compression use it's completely irrelevant.

(cherry picked from commit 689ae2427342a2ea1206eb5ca08301baf410e7e0)
2024-05-22 14:12:43 +03:00
Lasse Collin
a594b39685 tests/files/README: Update the main heading.
(cherry picked from commit 6b4c859059a7eb9b0547590c081668e14ecf8af6)
2024-05-22 14:12:43 +03:00
Lasse Collin
fa76e3ef59 tests/files/README: Explain how to recreate the ARM64 test files.
(cherry picked from commit 2a851e06b891ce894f918faff32a6cca6fdecee6)
2024-05-22 14:12:43 +03:00
Lasse Collin
112fa0aba6 debug: Add generator for the ARM64 test file data.
(cherry picked from commit 3d09b721b94e18fe1f853a04799697f5de10b291)
2024-05-22 14:12:43 +03:00
Lasse Collin
1a1f3d0323 xz man page: Use .ft CR instead of CW to silence warnings from groff.
(cherry picked from commit 31ef676567c9d6fcc4ec9fc833c312f7a7c21c48)
2024-05-22 14:12:43 +03:00
Lasse Collin
9f9203f574 Fix NEWS for 5.6.0 and 5.6.1.
(cherry picked from commit 780cbf29d5a88db2b546e9b7b019c4c33ca72685)
2024-05-22 14:12:43 +03:00
Lasse Collin
12876b33c7 Remove the XZ logo.
(cherry picked from commit bfd0c7c478e93a1911b845459549ff94587b6ea2)
2024-05-22 14:12:43 +03:00
Lasse Collin
879295d91f Update maintainer and author info.
The other maintainer suddenly disappeared.

(cherry picked from commit 77a294d98a9d2d48f7e4ac273711518bf689f5c4)
2024-05-22 14:12:43 +03:00
Lasse Collin
859617d30d Docs: Update .xz file format specification to 1.2.1.
This only reverts the XZ URL changes.

(cherry picked from commit 8dd03d4484ccf80022722a16d0ed9b37f2b58072)
2024-05-22 14:12:43 +03:00
Lasse Collin
eeb74fba1f Update website URLs back to tukaani.org.
The XZ projects were moved back to their original URLs.

(cherry picked from commit 17aa2e1a796d3f758802df29afc89dcf335db567)
2024-05-22 14:12:39 +03:00
Lasse Collin
a7b9cd7000 xzdec: Tweak coding style and comments.
(cherry picked from commit 2739db981023373a2ddabc7b456c7e658bb4f582)
2024-05-22 14:12:13 +03:00
Lasse Collin
ebe9d6d8cb tests/ossfuzz: Tiny fix to a comment.
(cherry picked from commit 408b6adb2a07d07c6535f859571cca38837caaf3)
2024-05-22 14:12:13 +03:00
Lasse Collin
78ab47d65d CMake: Fix sabotaged Landlock sandbox check.
It never enabled it.

(cherry picked from commit f9cf4c05edd14dedfe63833f8ccbe41b55823b00)
2024-05-22 14:10:54 +03:00
Lasse Collin
5f178c364c Delete SECURITY.md from v5.6
It's too easily out of date in the stable branches.
It's not included in the release packages anyway.
2024-05-22 14:08:33 +03:00
Lasse Collin
b3a7561880 liblzma: memcmplen.h: Add a comment why subtraction is used.
(cherry picked from commit 0b99783d63f27606936bb79a16c52d0d70c0b56f)
2024-05-22 14:07:37 +03:00
Lasse Collin
94939a145f INSTALL: Document arguments of --enable-symbol-versions.
(cherry picked from commit 8a25ba024d55610c448c6e4f1400a00bae51b493)
2024-05-22 14:07:37 +03:00
Lasse Collin
fa14c8aaf0 Build: Use only the generic symbol versioning with NVIDIA HPC Compiler.
This does the previous commit with CMake.

AC_EGREP_CPP uses AC_REQUIRE so the outermost if-commands must
be changed to AS_IF to ensure that things wont break some day.
See 5a5bd7f871818029d5ccbe189f087f591258c294.

(cherry picked from commit 49324b711f9d42b3543bf2f3ae598eaa03360bd5)
2024-05-22 14:07:37 +03:00
Lasse Collin
73baa8d99b CMake: Use only the generic symbol versioning with NVIDIA HPC Compiler.
It doesn't support the __symver__ attribute or __asm__(".symver ...").
The generic symbol versioning can still be used since it only needs
linker support.

(cherry picked from commit c273123ed0ebaebf49994057a7fe98aae7f42c40)
2024-05-22 14:07:37 +03:00
Lasse Collin
886633f423 Update THANKS.
(cherry picked from commit df7f487648d18a3992386a59b8a061edca862d17)
2024-05-22 14:07:37 +03:00
Lasse Collin
760f622f0d liblzma: Minor comment edits.
(cherry picked from commit 3217b82b3ec023bf8338249134a076bea0ea30ec)
2024-05-22 14:07:37 +03:00
Sergey Kosukhin
403b4c78b8 liblzma: Fix building with NVHPC (NVIDIA HPC SDK).
NVHPC compiler has several issues that make it impossible to
build liblzma:
  - the compiler cannot handle unions that contain pointers that
    are not the first members;
  - the compiler cannot handle the assembler code in range_decoder.h
    (LZMA_RANGE_DECODER_CONFIG has to be set to zero);
  - the compiler fails to produce valid code for delta_decode if the
    vectorization is enabled, which results in failed tests.

This introduces NVHPC-specific workarounds that address the issues.

(cherry picked from commit 096bc0e3f8fb4bfc4d2f3f64a7f219401ffb4c31)
2024-05-22 14:07:37 +03:00
Lasse Collin
1888fb49f6 CMake: Disable symbol versioning on non-glibc Linux.
This better matches what configure.ac does. For example, musl has
only basic symbol versioning support:

https://wiki.musl-libc.org/functional-differences-from-glibc.html#Symbol_versioning

configure.ac tries to enable symbol versioning only with glibc
so now CMake does the same.

(cherry picked from commit 2ad7fad67080e88fa7fc191f9d613d8b7add9c62)
2024-05-22 14:07:37 +03:00
Lasse Collin
4b3c84e8ee CMake: Make symbol versioning configurable.
(cherry picked from commit 82f0c0d39eb2c026b1d96ee706f70ace868d4ed4)
2024-05-22 14:07:37 +03:00
Lasse Collin
69d1e20208 Build: Style tweaks to configure.ac.
The AC_MSG_ERROR line is overlong anyway as are a few other
AC_MSG_ERROR lines already.

(cherry picked from commit 45d33bfc45e4295b8ad743bc2ae61cc724f98076)
2024-05-22 14:07:37 +03:00
Sergey Kosukhin
051d6b5c85 Build: Let the users override the symbol versioning variant.
There are cases when the users want to decide themselves whether
they want to have the generic (even on GNU/Linux) or the linux
(even if we do not recommend that) symbol versioning variant.
The former might be needed to circumvent compiler issues (i.e.
the compiler does not support all features that are required
for the linux versioning), the latter might help in overriding
the assumptions made in the configure script.

(cherry picked from commit f56ed6fac6619b56b005878d3b5210e2f0d721c0)
2024-05-22 14:07:37 +03:00
Lasse Collin
95dcea4b5d Update THANKS. 2024-04-09 18:38:37 +03:00
Lasse Collin
1107712e37 Remove the backdoor found in 5.6.0 and 5.6.1 (CVE-2024-3094).
While the backdoor was inactive (and thus harmless) without inserting
a small trigger code into the build system when the source package was
created, it's good to remove this anyway:

  - The executable payloads were embedded as binary blobs in
    the test files. This was a blatant violation of the
    Debian Free Software Guidelines.

  - On machines that see lots bots poking at the SSH port, the backdoor
    noticeably increased CPU load, resulting in degraded user experience
    and thus overwhelmingly negative user feedback.

  - The maintainer who added the backdoor has disappeared.

  - Backdoors are bad for security.

This reverts the following without making any other changes:

6e636819 Tests: Update two test files.
a3a29bbd Tests: Test --single-stream can decompress bad-3-corrupt_lzma2.xz.
0b4ccc91 Tests: Update RISC-V test files.
8c9b8b20 liblzma: Fix typos in crc32_fast.c and crc64_fast.c.
82ecc538 liblzma: Fix false Valgrind error report with GCC.
cf44e4b7 Tests: Add a few test files.
3060e107 Tests: Use smaller dictionary size in RISC-V test files.
e2870db5 Tests: Add two RISC-V Filter test files.

The RISC-V test files also have real content that tests the filter
but the real content would fit into much smaller files. A generator
program would need to be available as well.

Thanks to Andres Freund for finding and reporting it and making
it public quickly so others could act without a delay.
See: https://www.openwall.com/lists/oss-security/2024/03/29/4
2024-04-09 18:38:37 +03:00
Jia Tan
fd1b975b78 Bump version and soname for 5.6.1. 2024-03-09 11:42:50 +08:00
Jia Tan
a2cda57249 Add NEWS for 5.6.1 2024-03-09 11:27:27 +08:00
Jia Tan
8583c60211 Translations: Add missing --riscv option to man page translations. 2024-03-09 10:43:20 +08:00
Jia Tan
74b138d2a6 Tests: Update two test files.
The original files were generated with random local to my machine.
To better reproduce these files in the future, a constant seed was used
to recreate these files.
2024-03-09 10:18:29 +08:00
Jia Tan
3ec6dfd656 Tests: Test --single-stream can decompress bad-3-corrupt_lzma2.xz.
The first stream in this file is valid, so this tests that xz properly
stops after decompressing it.
2024-03-09 10:08:32 +08:00
Jia Tan
a67dcce610 Tests: Update RISC-V test files.
This increases code coverage and tests for possible shifting bugs.
2024-03-09 10:05:32 +08:00
Jia Tan
058337b0f1 liblzma: Fix typos in crc32_fast.c and crc64_fast.c. 2024-03-09 09:52:32 +08:00
Jia Tan
cd5de9c1bb Tests: Replace HAVE_MICROLZMA usage in CMake and Autotools builds.
This reverts commit adaacafde6661496ca2814b1e94a3ba5186428cb.
2024-03-09 09:49:55 +08:00
Jia Tan
651a1545c8 liblzma: Fix false Valgrind error report with GCC.
With GCC and a certain combination of flags, Valgrind will falsely
trigger an invalid write. This appears to be due to the omission of
instructions to properly save, set up, and restore the frame pointer.

The IFUNC resolver is a leaf function since it only calls a function
that is inlined. So sometimes GCC omits the frame pointer instructions
in the resolver unless this optimization is explictly disabled.

This fixes https://bugzilla.redhat.com/show_bug.cgi?id=2267598.
2024-03-09 09:20:57 +08:00
Lasse Collin
6e97b299f1 liblzma: Fix a typo in a comment in the RISC-V filter. 2024-03-05 23:21:26 +02:00
Jia Tan
4e1c97052b liblzma: Use attribute no_profile_instrument_function with ifunc.
Thanks to Sam James for determining this was the attribute needed to
workaround the GCC bug and for his version of the patch in Gentoo.
2024-03-05 00:34:46 +08:00
Jia Tan
ed957d3942 Build: Require attribute no_profile_instrument_function for ifunc usage.
Using __attribute__((__no_profile_instrument_function__)) on the ifunc
resolver works around a bug in GCC -fprofile-generate:
it adds profiling code even to ifunc resolvers which can make
the ifunc resolver crash at program startup. This attribute
was not introduced until GCC 7 and Clang 13, so ifunc won't
be used with prior versions of these compilers.

This bug was brought to our attention by:

    https://bugs.gentoo.org/925415

And was reported to upstream GCC by:

    https://gcc.gnu.org/bugzilla/show_bug.cgi?id=11411
2024-03-05 00:27:31 +08:00
Lasse Collin
e98ddaf85a liblzma: Fix a comment in the RISC-V filter. 2024-03-04 19:23:18 +02:00
Lasse Collin
319cec142f CMake: Warn if translated man pages are missing. 2024-02-29 16:35:52 +02:00
Lasse Collin
46c3e113d8 CMake: Warn if gettext tools and pre-created .gmo files are missing.
It's only done with CMake >= 3.20 and if library support
for translation was already found.

Sort of fixes: https://github.com/tukaani-project/xz/issues/82
2024-02-29 16:35:52 +02:00
Lasse Collin
86bec8334b xz: Add comments. 2024-02-28 18:33:34 +02:00
Jia Tan
5c91b454c2 xz: Change logging level for thread reduction to highest verbosity only.
Now that multi threaded encoding is the default, users do not need to
see a warning message everytime the number of threads is reduced. On
some machines, this could happen very often. It is not unreasonable for
users to need to set double verbose mode to see this kind of
information.

To see these warning messages -vv or --verbose --verbose must be passed
to set xz into the highest possible verbosity mode.

These warnings had caused automated testing frameworks to fail when they
expected no output to stderr.

Thanks to Sebastian Andrzej Siewior for reporting this and for the
initial version of the patch.
2024-02-28 18:31:04 +02:00
Lasse Collin
d0e57b2f15 Fix sorting in THANKS. 2024-02-28 18:31:04 +02:00
Jia Tan
d416be55ac Update THANKS. 2024-02-28 18:31:04 +02:00
Chien Wong
f06b33edd2 xz: Add missing RISC-V on the filter list in the man page
Signed-off-by: Chien Wong <m@xv97.com>
2024-02-28 18:31:04 +02:00
Jia Tan
a100f9111c Build: Fix Linux Landlock feature test in Autotools and CMake builds.
The previous Linux Landlock feature test assumed that having the
linux/landlock.h header file was enough. The new feature tests also
requires that prctl() and the required Landlock system calls are
supported.
2024-02-28 18:31:04 +02:00
Jia Tan
d85efdc891 Tests: Add test_microlzma to .gitignore and CMakeLists.txt. 2024-02-28 18:31:04 +02:00
Jia Tan
42ee425673 Tests: Correct license header in test_microlzma.c. 2024-02-28 18:31:04 +02:00
Jia Tan
c83349dfd9 Fix typos in NEWS and CMakeLists. 2024-02-28 18:31:04 +02:00
Jia Tan
2d7d862e3f Bump version and soname for 5.6.0. 2024-02-24 15:55:08 +08:00
168 changed files with 10809 additions and 30067 deletions

1
.gitattributes vendored
View File

@ -5,4 +5,3 @@
/.github export-ignore
/build-aux/ci_build.bash export-ignore
/doc/SHA256SUMS export-ignore

View File

@ -18,8 +18,6 @@ on:
# Allows running workflow manually
workflow_dispatch:
permissions: {}
jobs:
POSIX:
strategy:
@ -28,7 +26,7 @@ jobs:
build_system: [autotools, cmake]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v4.1.6
########################
# Install Dependencies #
@ -51,12 +49,12 @@ jobs:
if: ${{ matrix.os == 'ubuntu-latest' && 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 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
##################
# Build and Test #
@ -158,7 +156,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
- uses: actions/upload-artifact@v4.3.3
if: ${{ failure() }}
with:
name: ${{ matrix.os }} ${{ matrix.build_system }} Test Logs

View File

@ -1,54 +0,0 @@
# 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
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

View File

@ -1,39 +0,0 @@
# SPDX-License-Identifier: 0BSD
name: DragonflyBSD
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
workflow_dispatch:
permissions: {}
jobs:
DragonflyBSD:
runs-on: ubuntu-latest
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

View File

@ -9,47 +9,24 @@ on:
branches: [ master ]
workflow_dispatch:
permissions: {}
jobs:
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 }}
name: FreeBSD
FreeBSD-test:
runs-on: ubuntu-latest
name: Test xz on FreeBSD
steps:
- 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
- uses: actions/checkout@v4.1.6
- name: Test in FreeBSD
id: test
uses: vmactions/FreeBSD-vm@f8be330398166d1eb0601f01353839d4052367b2 #v1.0.7
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

View File

@ -1,91 +0,0 @@
# 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 }}
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

View File

@ -9,31 +9,24 @@ on:
branches: [ master ]
workflow_dispatch:
permissions: {}
jobs:
NetBSD:
NetBSD-test:
runs-on: ubuntu-latest
name: NetBSD
name: Test xz on NetBSD
steps:
- 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='-g -O2 -pipe -Wno-error=strict-overflow' -DCMAKE_COMPILE_WARNING_AS_ERROR=ON
ninja -C build
ctest --test-dir build --output-on-failure
- uses: actions/checkout@v4.1.6
- name: Test in NetBSD
id: test
uses: vmactions/NetBSD-vm@da9ed4d7cd0fb64f330e2342ac5c77ba529b6a11 #v1.0.7
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

View File

@ -9,31 +9,27 @@ on:
branches: [ master ]
workflow_dispatch:
permissions: {}
jobs:
OpenBSD:
OpenBSD-test:
runs-on: ubuntu-latest
name: OpenBSD
name: Test xz on OpenBSD
steps:
- 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
- uses: actions/checkout@v4.1.6
- name: Test in OpenBSD
id: test
uses: vmactions/OpenBSD-vm@eaa3d3f695a5a52971c23958f6dd4cd3397f959d #v1.0.8
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

View File

@ -9,25 +9,24 @@ on:
branches: [ master ]
workflow_dispatch:
permissions: {}
jobs:
Solaris:
solaris-test:
runs-on: ubuntu-latest
name: Solaris
name: Test xz on Solaris
steps:
- 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
- uses: actions/checkout@v4.1.6
- name: Test in Solaris
id: test
uses: vmactions/solaris-vm@548f790d1bc2b9342a76cbb47ddbb85875605559 #v1.0.2
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

View File

@ -24,7 +24,7 @@ Authors of XZ Utils
by Michał Górny.
Architecture-specific CRC optimizations were contributed by
Ilya Kurdyukov, Chenxi Mao, and Xi Ruoyao.
Ilya Kurdyukov, Hans Jansen, and Chenxi Mao.
Other authors:
- Jonathan Nieder

File diff suppressed because it is too large Load Diff

25
COPYING
View File

@ -40,12 +40,6 @@ XZ Utils Licensing
free software licenses. These aren't built or installed as
part of XZ Utils.
The following command may be helpful in finding per-file license
information. It works on xz.git and on a clean file tree extracted
from a release tarball.
sh build-aux/license-check.sh -v
For the files under the BSD Zero Clause License (0BSD), if
a copyright notice is needed, the following is sufficient:
@ -65,6 +59,25 @@ XZ Utils Licensing
- COPYING.GPLv2: GNU General Public License version 2
- COPYING.GPLv3: GNU General Public License version 3
A note about old XZ Utils releases:
XZ Utils releases 5.4.6 and older and 5.5.1alpha have a
significant amount of code put into the public domain and
that obviously remains so. The switch from public domain to
0BSD for newer releases was made in Febrary 2024 because
public domain has (real or perceived) legal ambiguities in
some jurisdictions.
There is very little *practical* difference between public
domain and 0BSD. The main difference likely is that one
shouldn't claim that 0BSD-licensed code is in the public
domain; 0BSD-licensed code is copyrighted but available under
an extremely permissive license. Neither 0BSD nor public domain
require retaining or reproducing author, copyright holder, or
license notices when distributing the software. (Compare to,
for example, BSD 2-Clause "Simplified" License which does have
such requirements.)
If you have questions, don't hesitate to ask for more information.
The contact information is in the README file.

147
INSTALL
View File

@ -16,7 +16,7 @@ XZ Utils Installation
1.2.8. DOS
1.2.9. z/OS
1.3. Adding support for new platforms
2. configure and CMake options
2. configure options
2.1. Static vs. dynamic linking of liblzma
2.2. Optimizing xzdec and lzmadec
3. xzgrep and other scripts
@ -76,11 +76,6 @@ XZ Utils Installation
you use CC=xlc instead, you must disable threading support
with --disable-threads (usually not recommended).
If building a 32-bit executable, the address space available to xz
might be limited to 256 MiB by default. To increase the address
space to 2 GiB, pass LDFLAGS=-Wl,-bmaxdata:0x80000000 as an argument
to configure.
1.2.2. IRIX
@ -218,53 +213,19 @@ XZ Utils Installation
in C89 or C++.
2. configure and CMake options
------------------------------
2. configure options
--------------------
In most cases, the defaults are what you want. Many of the options
below are useful only when building a size-optimized version of
liblzma or command line tools.
configure options are those that begin with two dashes "--"
or "gl_".
CMake options begin with "XZ_", "TUKLIB_", or "CMAKE_". To use
them on the command line, prefix them with "-D", for example,
"cmake -DCMAKE_COMPILE_WARNING_AS_ERROR=ON".
CMAKE_BUILD_TYPE=TYPE
CMake only:
For release builds, CMAKE_BUILD_TYPE=Release is fine.
On targets where CMake defaults to -O3, the default
value is overridden to -O2.
Empty value (CMAKE_BUILD_TYPE=) is fine if using custom
optimization options. *In this package* the empty build
type also disables debugging code just like "Release"
does. To enable debugging code with empty build type,
use -UNDEBUG in the CFLAGS environment variable or in
the CMAKE_C_FLAGS CMake variable to override -DNDEBUG.
Non-standard build types like "None" do NOT disable
debugging code! Such non-standard build types should
be avoided for production builds!
--enable-encoders=LIST
--disable-encoders
XZ_ENCODERS=LIST
Specify a LIST of filter encoders to build. In the
configure option the list is comma separated.
CMake lists are semicolon separated.
To see the exact list of available filter encoders:
- Autotools: ./configure --help
- CMake: Configure the tree normally first, then use
"cmake -LH ." to list the cache variables.
The default is to build all supported encoders.
Specify a comma-separated LIST of filter encoders to
build. See "./configure --help" for exact list of
available filter encoders. The default is to build all
supported encoders.
If LIST is empty or --disable-encoders is used, no filter
encoders will be built and also the code shared between
@ -276,12 +237,10 @@ XZ Utils Installation
--enable-decoders=LIST
--disable-decoders
XZ_DECODERS=LIST
This is like --enable-encoders but for decoders. The
default is to build all supported decoders.
--enable-match-finders=LIST
XZ_MATCH_FINDERS=LIST
liblzma includes two categories of match finders:
hash chains and binary trees. Hash chains (hc3 and hc4)
are quite fast but they don't provide the best compression
@ -298,11 +257,9 @@ XZ Utils Installation
or LZMA2 filter encoders are being built.
--enable-checks=LIST
XZ_CHECKS=LIST
liblzma support multiple integrity checks. CRC32 is
mandatory, and cannot be omitted. Supported check
types are "crc32", "crc64", and "sha256". By default
all supported check types are enabled.
mandatory, and cannot be omitted. See "./configure --help"
for exact list of available integrity check types.
liblzma and the command line tools can decompress files
which use unsupported integrity check type, but naturally
@ -313,7 +270,6 @@ XZ Utils Installation
it is known to not cause problems.
--enable-external-sha256
XZ_EXTERNAL_SHA256=ON
Try to use SHA-256 code from the operating system libc
or similar base system libraries. This doesn't try to
use OpenSSL or libgcrypt or such libraries.
@ -350,8 +306,6 @@ XZ Utils Installation
time xz --test foo.xz
--disable-microlzma
XZ_MICROLZMA_ENCODER=OFF
XZ_MICROLZMA_DECODER=OFF
Don't build MicroLZMA encoder and decoder. This omits
lzma_microlzma_encoder() and lzma_microlzma_decoder()
API functions from liblzma. These functions are needed
@ -359,7 +313,6 @@ XZ Utils Installation
erofs-utils but they may be used by others too.
--disable-lzip-decoder
XZ_LZIP_DECODER=OFF
Disable decompression support for .lz (lzip) files.
This omits the API function lzma_lzip_decoder() from
liblzma and .lz support from the xz tool.
@ -368,10 +321,6 @@ XZ Utils Installation
--disable-xzdec
--disable-lzmadec
--disable-lzmainfo
XZ_TOOL_XZ=OFF
XZ_TOOL_XZDEC=OFF
XZ_TOOL_LZMADEC=OFF
XZ_TOOL_LZMAINFO=OFF
Don't build and install the command line tool mentioned
in the option name.
@ -381,40 +330,29 @@ XZ Utils Installation
a dangling man page symlink lzmadec.1 -> xzdec.1 is
created.
XZ_TOOL_SYMLINKS=OFF
Don't create the unxz and xzcat symlinks. (There is
no "configure" option to disable these symlinks.)
--disable-lzma-links
XZ_TOOL_SYMLINKS_LZMA=OFF
Don't create symlinks for LZMA Utils compatibility.
This includes lzma, unlzma, and lzcat. If scripts are
installed, also lzdiff, lzcmp, lzgrep, lzegrep, lzfgrep,
lzmore, and lzless will be omitted if this option is used.
--disable-scripts
XZ_TOOL_SCRIPTS=OFF
Don't install the scripts xzdiff, xzgrep, xzmore, xzless,
and their symlinks.
--disable-doc
XZ_DOC=OFF
Don't install the documentation files to $docdir
(often /usr/doc/xz or /usr/local/doc/xz). Man pages
will still be installed. The $docdir can be changed
with --docdir=DIR.
--enable-doxygen
XZ_DOXYGEN=ON
Enable generation of the HTML version of the liblzma API
documentation using Doxygen. The resulting files are
installed to $docdir/api. This option assumes that
the 'doxygen' tool is available.
NOTE: --disable-doc or XZ_DOC=OFF don't affect this.
--disable-assembler
XZ_ASM_I386=OFF
This disables CRC32 and CRC64 assembly code on
32-bit x86. This option currently does nothing
on other architectures (not even on x86-64).
@ -427,16 +365,7 @@ XZ Utils Installation
pre-i686 systems, you may want to disable the assembler
code.
The assembly code is compatible with only certain OSes
and toolchains (it's not compatible with MSVC).
Since XZ Utils 5.7.1alpha, the 32-bit x86 assembly code
co-exists with the modern CLMUL code: CLMUL is used if
support for it is detected at runtime. On old processors
the assembly code is used.
--disable-clmul-crc
XZ_CLMUL_CRC=OFF
Disable the use of carryless multiplication for CRC
calculation even if compiler support for it is detected.
The code uses runtime detection of SSSE3, SSE4.1, and
@ -449,7 +378,6 @@ XZ Utils Installation
detection isn't used and the generic code is omitted.
--disable-arm64-crc32
XZ_ARM64_CRC32=OFF
Disable the use of the ARM64 CRC32 instruction extension
even if compiler support for it is detected. The code will
detect support for the instruction at runtime.
@ -459,16 +387,7 @@ XZ Utils Installation
and later) then runtime detection isn't used and the
generic code is omitted.
--disable-loongarch-crc32
XZ_LOONGARCH_CRC32=OFF
Disable the use of the 64-bit LoongArch CRC32
instruction extension even if compiler support for
it is detected. There is no runtime detection because
all 64-bit LoongArch processors should support
the CRC32 instructions.
--enable-unaligned-access
TUKLIB_FAST_UNALIGNED_ACCESS=ON
Allow liblzma to use unaligned memory access for 16-bit,
32-bit, and 64-bit loads and stores. This should be
enabled only when the hardware supports this, that is,
@ -516,7 +435,6 @@ XZ Utils Installation
how unaligned access is done in the C code.
--enable-unsafe-type-punning
TUKLIB_USE_UNSAFE_TYPE_PUNNING=ON
This enables use of code like
uint8_t *buf8 = ...;
@ -533,7 +451,6 @@ XZ Utils Installation
GCC 3 and early 4.x on x86, GCC < 6 on ARMv6 and ARMv7).
--enable-small
XZ_SMALL=ON
Reduce the size of liblzma by selecting smaller but
semantically equivalent version of some functions, and
omit precomputed lookup tables. This option tends to
@ -550,7 +467,6 @@ XZ Utils Installation
flag(s) to CFLAGS manually.
--enable-assume-ram=SIZE
XZ_ASSUME_RAM=SIZE
On the most common operating systems, XZ Utils is able to
detect the amount of physical memory on the system. This
information is used by the options --memlimit-compress,
@ -567,7 +483,6 @@ XZ Utils Installation
src/common/tuklib_physmem.c for details.
--enable-threads=METHOD
XZ_THREADS=METHOD
Threading support is enabled by default so normally there
is no need to specify this option.
@ -604,7 +519,6 @@ XZ Utils Installation
one thread, something bad may happen.
--enable-sandbox=METHOD
XZ_SANDBOX=METHOD
There is limited sandboxing support in the xz and xzdec
tools. If built with sandbox support, xz uses it
automatically when (de)compressing exactly one file to
@ -640,7 +554,6 @@ XZ Utils Installation
is found, configure will give an error.
--enable-symbol-versions[=VARIANT]
XZ_SYMBOL_VERSIONING=VARIANT
Use symbol versioning for liblzma shared library.
This is enabled by default on GNU/Linux (glibc only),
other GNU-based systems, and FreeBSD.
@ -685,25 +598,13 @@ XZ Utils Installation
run-time consistency checks. It makes the code slower, so
you normally don't want to have this enabled.
In CMake, the build type (CMAKE_BUILD_TYPE) controls if
-DNDEBUG is passed to the compiler. *In this package*,
an empty build type disables debugging code too.
Non-standard build types like "None" do NOT disable
debugging code!
To enable debugging code with empty build type in CMake,
use -UNDEBUG in the CFLAGS environment variable or in
the CMAKE_C_FLAGS CMake variable to override -DNDEBUG.
--enable-werror
CMAKE_COMPILE_WARNING_AS_ERROR=ON (CMake >= 3.24)
If building with GCC, make all compiler warnings an error,
that abort the compilation. This may help catching bugs,
and should work on most systems. This has no effect on the
resulting binaries.
--enable-path-for-scripts=PREFIX
(CMake determines this from the path of XZ_POSIX_SHELL)
If PREFIX isn't empty, PATH=PREFIX:$PATH will be set in
the beginning of the scripts (xzgrep and others).
The default is empty except on Solaris the default is
@ -720,36 +621,6 @@ XZ Utils Installation
the PATH for the scripts. It is described in section 3.2
and is supported in this xz version too.
gl_cv_posix_shell=/path/to/bin/sh
XZ_POSIX_SHELL=/path/to/bin/sh
POSIX shell to use for xzgrep and other scripts.
- configure should autodetect this well enough.
Typically it's /bin/sh but in some cases, like
Solaris, something else is used.
- CMake build uses /bin/sh except on Solaris the
default is /usr/xpg4/bin/sh.
CMAKE_DLL_NAME_WITH_SOVERSION=ON
CMake on native Windows (not Cygwin) only:
This changes the filename liblzma.dll to liblzma-5.dll.
The unversioned filename liblzma.dll has been used
since XZ Utils 5.0.0 when creating binary packages
using the included windows/build.bash. The same
unversioned filename is the default with CMake.
However, there are popular builds that, very
understandably and reasonably, use the versioned
filename produced by GNU Libtool.
This option should usually be left to its default value
(OFF). It can be set to ON if the liblzma DLL filename
must be compatible with the versioned filename
produced by GNU Libtool. For example, binaries
distributed in MSYS2 use a versioned DLL filename.
2.1. Static vs. dynamic linking of liblzma

View File

@ -53,7 +53,6 @@ EXTRA_DIST = \
PACKAGERS \
TODO \
autogen.sh \
build-aux/license-check.sh \
build-aux/manconv.sh \
build-aux/version.sh \
po/xz.pot-header
@ -71,11 +70,11 @@ manfiles = \
src/scripts/xzless.1 \
src/scripts/xzmore.1
# Create ChangeLog using "git log".
# Create ChangeLog from output of "git log --date=iso --stat".
# Convert the man pages to plain text (ASCII only) format.
dist-hook:
if test -d "$(srcdir)/.git" && type git > /dev/null 2>&1; then \
( cd "$(srcdir)" && git log --pretty=medium --date=iso --stat \
( cd "$(srcdir)" && git log --date=iso --stat \
b69da6d4bb6bb11fc0cf066920791990d2b22a06^..HEAD ) \
> "$(distdir)/ChangeLog"; \
fi
@ -89,7 +88,6 @@ dist-hook:
> "$$dest/txt/$$BASE.txt"; \
done; \
fi
cd "$(distdir)" && $(SHELL) "build-aux/license-check.sh"
# This works with GNU tar and gives cleaner package than normal 'make dist'.
# This also ensures that the translations are up to date (dist-hook
@ -100,12 +98,10 @@ mydist:
cd "$(srcdir)/po4a" && $(SHELL) update-po
VERSION=$(VERSION); \
if test -d "$(srcdir)/.git" && type git > /dev/null 2>&1; then \
$(SHELL) "$(srcdir)/build-aux/license-check.sh" || exit 1; \
SNAPSHOT=`cd "$(srcdir)" && git describe --abbrev=8 | cut -b2-`; \
SNAPSHOT=`cd "$(srcdir)" && git describe --abbrev=4 | cut -b2-`; \
test -n "$$SNAPSHOT" && VERSION=$$SNAPSHOT; \
fi; \
TAR_OPTIONS='--owner=0 --group=0 --numeric-owner --mode=u+rw,go+r-w --sort=name' \
LC_COLLATE=C \
TAR_OPTIONS='--owner=0 --group=0 --numeric-owner --mode=u+rw,go+r-w' \
$(MAKE) VERSION="$$VERSION" dist-gzip
# NOTE: This only creates the PDFs. The install rules are missing.

283
NEWS
View File

@ -2,290 +2,10 @@
XZ Utils Release Notes
======================
5.8.1 (2025-04-03)
IMPORTANT: This includes a security fix for CVE-2025-31115 which
affects XZ Utils from 5.3.3alpha to 5.8.0. No new 5.4.x or 5.6.x
releases will be made, but the fix is in the v5.4 and v5.6 branches
in the xz Git repository. A standalone patch for all affected
versions is available as well.
* Multithreaded .xz decoder (lzma_stream_decoder_mt()):
- Fix a bug that could at least result in a crash with
invalid input. (CVE-2025-31115)
- Fix a performance bug: Only one thread was used if the whole
input file was provided at once to lzma_code(), the output
buffer was big enough, timeout was disabled, and LZMA_FINISH
was used. There are no bug reports about this, thus it's
possible that no real-world application was affected.
* Avoid <stdalign.h> even with C11/C17 compilers. This fixes the
build with Oracle Developer Studio 12.6 on Solaris 10 when the
compiler is in C11 mode (the header doesn't exist).
* Autotools: Restore compatibility with GNU make versions older
than 4.0 by creating the package using GNU gettext 0.23.1
infrastructure instead of 0.24.
* Update Croatian translation.
5.8.0 (2025-03-25)
This bumps the minor version of liblzma because new features were
added. The API and ABI are still backward compatible with liblzma
5.6.x, 5.4.x, 5.2.x, and 5.0.x.
* liblzma on 32/64-bit x86: When possible, use SSE2 intrinsics
instead of memcpy() in the LZMA/LZMA2 decoder. In typical cases,
this may reduce decompression time by 0-5 %. However, when built
against musl libc, over 15 % time reduction was observed with
highly compressed files.
* CMake: Make the feature test macros match the Autotools-based
build on NetBSD, Darwin, and mingw-w64.
* Update the Croatian, Italian, Portuguese, and Romanian
translations.
* Update the German, Italian, Korean, Romanian, Serbian, and
Ukrainian man page translations.
Summary of changes in the 5.7.x development releases:
* Mark the following LZMA Utils script aliases as deprecated:
lzcmp, lzdiff, lzless, lzmore, lzgrep, lzegrep, and lzfgrep.
* liblzma:
- Improve LZMA/LZMA2 encoder speed on 64-bit PowerPC (both
endiannesses) and those 64-bit RISC-V processors that
support fast unaligned access.
- Add low-level APIs for RISC-V, ARM64, and x86 BCJ filters
to lzma/bcj.h. These are primarily for erofs-utils.
- x86/x86-64/E2K CLMUL CRC code was rewritten.
- Use the CRC32 instructions on LoongArch.
* xz:
- Synchronize the output file and its directory using fsync()
before deleting the input file. No syncing is done when xz
isn't going to delete the input file.
- Add --no-sync to disable the sync-before-delete behavior.
- Make --single-stream imply --keep.
* xz, xzdec, lzmainfo: When printing messages, replace
non-printable characters with question marks.
* xz and xzdec on Linux: Support Landlock ABI versions 5 and 6.
* CMake: Revise the configuration variables and some of their
options, and document them in the file INSTALL. CMake support
is no longer experimental. (It was already not experimental
when building for native Windows.)
* Add build-aux/license-check.sh.
5.7.2beta (2025-03-08)
* On the man pages, mark the following LZMA Utils script aliases as
deprecated: lzcmp, lzdiff, lzless, lzmore, lzgrep, lzegrep, and
lzfgrep. The commands that start with xz* instead of lz* have
identical behavior.
The LZMA Utils aliases lzma, unlzma, and lzcat aren't deprecated
because some of these aliases are still in common use. lzmadec
and lzmainfo aren't deprecated either.
* xz: In the ENVIRONMENT section of the man page, warn about
problems that some uses of XZ_DEFAULTS and XZ_OPT may create.
* Windows (native builds, not Cygwin): In xz, xzdec, and lzmadec,
avoid an error message on broken pipe.
* Autotools: Fix out-of-tree builds when using the bundled
getopt_long.
* Translations:
- Updated: Chinese (traditional), Croatian, Finnish, Georgian,
German, Korean, Polish, Romanian, Serbian, Spanish, Swedish,
Turkish, and Ukrainian
- Added: Dutch
* Man page translations:
- Updated: German, Korean, Romanian, and Ukrainian
- Added: Italian and Serbian
5.7.1alpha (2025-01-23)
* All fixes from 5.6.4.
* liblzma:
- Improve LZMA/LZMA2 encoder speed on 64-bit PowerPC (both
endiannesses) and those 64-bit RISC-V processors that
support fast unaligned access.
- x86/x86-64/E2K CLMUL CRC code was rewritten. It's faster and
doesn't cause false positives from sanitizers. Attributes
like __attribute__((__no_sanitize_address__)) are no longer
present.
- On 32-bit x86, CLMUL CRC and the old (but still good)
assembly versions now co-exist with runtime detection.
Both Autotools and CMake build systems handle this
automatically now.
- Use the CRC32 instructions on LoongArch to make CRC32
calculation faster.
- Add low-level APIs for RISC-V, ARM64, and x86 BCJ filters
to lzma/bcj.h. These are primarily for erofs-utils.
- Minor tweaks to ARM64 CRC32 code and BCJ filters were made.
* xz:
- Synchronize the output file and its directory before deleting
the input file using fsync(). This reduces the probability of
data loss after a system crash. However, it can be a major
performance hit if processing many small files.
NOTE: No syncing is done when xz isn't going to delete
the input file.
- Add a new option --no-sync to disable the sync-before-delete
behavior. It's useful when compressing many small files and
one doesn't worry about data loss in case of a system crash.
- Make --single-stream imply --keep.
- Use automatic word wrapping for the text in --help and
similar situations to hopefully make the strings easier for
majority of translators (no need to count spaces anymore).
* xz, xzdec, lzmainfo: When printing messages, replace
non-printable characters with question marks. This way
malicious filenames cannot be used to send escape sequences
to a terminal. This change is also applied to filenames shown
in "xz --robot --list".
* xz and xzdec on Linux: Add support for Landlock ABI versions 5
and 6.
* CMake updates:
- Increase the minimum required CMake version to 3.20.
- Revise the configuration variables and some of their options.
Document them in the file INSTALL.
- Attempt to produce liblzma.pc so that the paths are based on
${prefix}, which makes it simpler to override the paths
if the liblzma files have been moved.
- To enable translations, gettext-tools is now required. The
CMake build no longer supports installing pre-compiled
message catalog binary files (po/*.gmo).
- Apple: Use Mach-O shared library versioning that is
compatible with GNU Libtool. This should make it easier to
switch between the build systems on Apple OSes that enforce
the correct compatibility_version (macOS >= 12 doesn't?).
This change is backward compatible: binaries linked against
old CMake-built liblzma will run with liblzma that uses
Libtool style versioning.
- Windows (not Cygwin): Document CMAKE_DLL_NAME_WITH_SOVERSION
(CMake >= 3.27) in the file INSTALL. This option should
usually be left to its default value (OFF). It can be set
to ON if the liblzma DLL filename must be compatible with
the versioned filename produced by GNU Libtool. For example,
binaries distributed in MSYS2 use a versioned DLL filename.
- CMake support is no longer experimental. (It was already
not experimental when building for native Windows.)
* Windows: Building liblzma with Visual Studio 2013 is no longer
supported. Visual Studio 2015 or later (with CMake) can be used
to build liblzma and the command line tools.
* Add preliminary Georgian translation. This already contains
translations of most of the strings that are now automatically
word wrapped.
* Add build-aux/license-check.sh. Without arguments, it checks that
no license information has been forgotten. With the -v argument,
it shows the license info (or the lack of it) for each file.
If the .git directory is available, only the files in the
repository are checked. Without the .git directory, a clean tree
from an extracted release tarball is expected.
5.6.4 (2025-01-23)
* liblzma: Fix LZMA/LZMA2 encoder on big endian ARM64.
* xz:
- Fix --filters= and --filters1= ... --filters9= options
parsing. They require an argument, thus "xz --filters lzma2"
should work in addition to "xz --filters=lzma2".
- On the man page, note in the --compress and --decompress
options that the default behavior is to delete the input
file unless writing to standard output. It was already
documented in the DESCRIPTION section but new users in
a hurry might miss it.
* Windows (native builds, not Cygwin): Fix regressions introduced
in XZ Utils 5.6.3 which caused non-ASCII characters to display
incorrectly. Only builds with translation support were affected
(--enable-nls or ENABLE_NLS=ON). The following changes affect
builds that have translations enabled:
- Require UCRT because MSVCRT doesn't support UTF-8
locales and thus translations won't be readable on
Windows 10 version 1903 and later. (MSVCRT builds
are still possible with --disable-nls or ENABLE_NLS=OFF.)
- Require gettext-runtime >= 0.23.1 because older versions
don't autodetect the use of the UTF-8 code page. This
resulted in garbled non-ASCII characters even with UCRT.
- Partially fix alignment issues in xz --verbose --list
with translated messages. Chinese (simplified),
Chinese (traditional), and Korean column headings
are misaligned still because Windows and MinGW-w64
don't provide wcwidth() and XZ Utils doesn't include
a replacement function either.
* CMake: Explicitly disable unity builds. This prevents build
failures when another project uses XZ Utils via CMake's
FetchContent module, and that project enables unity builds.
* Update Chinese (traditional) and Serbian translations.
5.6.3 (2024-10-01)
IMPORTANT: This includes a Windows-specific security fix to
the command line tools (CVE-2024-47611). liblzma isn't affected
by this issue.
the command line tools. liblzma isn't affected by this issue.
* liblzma:
@ -335,7 +55,6 @@ XZ Utils Release Notes
which can be exploited with malicious filenames to do
argument injection or directory traversal attacks.
UTF-8 avoids best-fit mappings and thus fixes the issue.
(CVE-2024-47611)
Forcing the process code page to UTF-8 is possible only
on Windows 10 version 1903 and later. The command line

103
README
View File

@ -10,7 +10,6 @@ XZ Utils
2. Version numbering
3. Reporting bugs
4. Translations
4.1. Testing translations
5. Other implementations of the .xz format
6. Contact information
@ -204,47 +203,77 @@ XZ Utils
https://translationproject.org/html/translators.html
Updates to translations won't be accepted by methods that bypass
the Translation Project because there is a risk of duplicate work:
translation updates made in the xz repository aren't seen by the
translators in the Translation Project. If you have found bugs in
a translation, please report them to the Language-Team address
which can be found near the beginning of the PO file.
Below are notes and testing instructions specific to xz
translations.
If you find language problems in the original English strings,
feel free to suggest improvements. Ask if something is unclear.
4.1. Testing translations
Testing can be done by installing xz into a temporary directory.
If building from Git repository (not tarball), generate the
Autotools files:
./autogen.sh
Create a subdirectory for the build files. The tmp-build directory
can be deleted after testing.
mkdir tmp-build
cd tmp-build
../configure --disable-shared --enable-debug --prefix=$PWD/inst
Edit the .po file in the po directory. Then build and install to
the "tmp-build/inst" directory, and use translations.bash to see
how some of the messages look. Repeat these steps if needed:
Testing can be done by installing xz into a temporary directory:
./configure --disable-shared --prefix=/tmp/xz-test
# <Edit the .po file in the po directory.>
make -C po update-po
make -j"$(nproc)" install
bash ../debug/translation.bash | less
bash ../debug/translation.bash | less -S # For --list outputs
make install
bash debug/translation.bash | less
bash debug/translation.bash | less -S # For --list outputs
To test other languages, set the LANGUAGE environment variable
before running translations.bash. The value should match the PO file
name without the .po suffix. Example:
Repeat the above as needed (no need to re-run configure though).
export LANGUAGE=fi
Note especially the following:
- The output of --help and --long-help must look nice on
an 80-column terminal. It's OK to add extra lines if needed.
- In contrast, don't add extra lines to error messages and such.
They are often preceded with e.g. a filename on the same line,
so you have no way to predict where to put a \n. Let the terminal
do the wrapping even if it looks ugly. Adding new lines will be
even uglier in the generic case even if it looks nice in a few
limited examples.
- Be careful with column alignment in tables and table-like output
(--list, --list --verbose --verbose, --info-memory, --help, and
--long-help):
* All descriptions of options in --help should start in the
same column (but it doesn't need to be the same column as
in the English messages; just be consistent if you change it).
Check that both --help and --long-help look OK, since they
share several strings.
* --list --verbose and --info-memory print lines that have
the format "Description: %s". If you need a longer
description, you can put extra space between the colon
and %s. Then you may need to add extra space to other
strings too so that the result as a whole looks good (all
values start at the same column).
* The columns of the actual tables in --list --verbose --verbose
should be aligned properly. Abbreviate if necessary. It might
be good to keep at least 2 or 3 spaces between column headings
and avoid spaces in the headings so that the columns stand out
better, but this is a matter of opinion. Do what you think
looks best.
- Be careful to put a period at the end of a sentence when the
original version has it, and don't put it when the original
doesn't have it. Similarly, be careful with \n characters
at the beginning and end of the strings.
- Read the TRANSLATORS comments that have been extracted from the
source code and included in xz.pot. Some comments suggest
testing with a specific command which needs an .xz file. You
may use e.g. any tests/files/good-*.xz. However, these test
commands are included in translations.bash output, so reading
translations.bash output carefully can be enough.
- If you find language problems in the original English strings,
feel free to suggest improvements. Ask if something is unclear.
- The translated messages should be understandable (sometimes this
may be a problem with the original English messages too). Don't
make a direct word-by-word translation from English especially if
the result doesn't sound good in your language.
Thanks for your help!
5. Other implementations of the .xz format

40
THANKS
View File

@ -20,7 +20,6 @@ has been important. :-) In alphabetical order:
- Jakub Bogusz
- Adam Borowski
- Maarten Bosmans
- Roel Bouckaert
- Lukas Braune
- Benjamin Buch
- Trent W. Buck
@ -30,37 +29,26 @@ has been important. :-) In alphabetical order:
- Frank Busse
- Daniel Mealha Cabrita
- Milo Casagrande
- Cristiano Ceglia
- Marek Černocký
- Tomer Chachamu
- Aziz Chaudhry
- Vitaly Chikunov
- Antoine Cœur
- Elijah Almeida Coimbra
- Felix Collin
- Ryan Colyer
- Marcus Comstedt
- Vincent Cruz
- Gabi Davar
- Ron Desmond
- Antonio Diaz Diaz
- İhsan Doğan
- Chris Donawa
- Andrew Dudman
- Markus Duft
- İsmail Dönmez
- Dexter Castor Döpping
- Paul Eggert
- Robert Elz
- Gilles Espinasse
- Denis Excoffier
- Vincent Fazio
- Michael Felt
- Sean Fenian
- Michael Fox
- Andres Freund
- Mike Frysinger
- Collin Funk
- Daniel Richard G.
- Tomasz Gajc
- Bjarni Ingi Gislason
@ -69,14 +57,10 @@ has been important. :-) In alphabetical order:
- Matthew Good
- Michał Górny
- Jason Gorski
- Alexander M. Greenham
- Juan Manuel Guerrero
- Gabriela Gutierrez
- Diederik de Haas
- Jan Terje Hansen
- Tobias Lahrmann Hansen
- Joachim Henke
- Lizandro Heredia
- Christian Hesse
- Vincenzo Innocente
- Peter Ivanov
@ -92,11 +76,9 @@ has been important. :-) In alphabetical order:
- Per Øyvind Karlsen
- Firas Khalil Khana
- Iouri Kharon
- Kim Jinyeong
- Thomas Klausner
- Richard Koch
- Anton Kochkov
- Harri K. Koskinen
- Ville Koskinen
- Sergey Kosukhin
- Marcin Kowalczyk
@ -108,7 +90,6 @@ has been important. :-) In alphabetical order:
- James M Leddy
- Kelvin Lee
- Vincent Lefevre
- Daniel Leonard
- Hin-Tak Leung
- Andraž 'ruskie' Levstik
- Cary Lewis
@ -122,20 +103,14 @@ has been important. :-) In alphabetical order:
- Chenxi Mao
- Gregory Margo
- Julien Marrec
- Pierre-Yves Martin
- Ed Maste
- Martin Matuška
- Scott McAllister
- Chris McCrohan
- Derwin McGeary
- Ivan A. Melnikov
- Jim Meyering
- Arkadiusz Miskiewicz
- Nathan Moinvaziri
- Étienne Mollier
- Conley Moorhous
- Dirk Müller
- Rainer Müller
- Andrew Murray
- Rafał Mużyło
- Adrien Nader
@ -143,34 +118,28 @@ has been important. :-) In alphabetical order:
- Alexander Neumann
- Hongbo Ni
- Jonathan Nieder
- Asgeir Storesund Nilsen
- Andre Noll
- Ruarí Ødegaard
- Peter O'Gorman
- Dimitri Papadopoulos Orfanos
- Daniel Packard
- Filip Palian
- Peter Pallinger
- Kai Pastor
- Keith Patton
- Rui Paulo
- Igor Pavlov
- Diego Elio Pettenò
- Elbert Pol
- Guiorgy Potskhishvili
- Mikko Pouru
- Frank Prochnow
- Rich Prohaska
- Trần Ngọc Quân
- Pavel Raiskup
- Matthieu Rakotojaona
- Ole André Vadla Ravnås
- Eric S. Raymond
- Robert Readman
- Bernhard Reutner-Fischer
- Markus Rickert
- Cristian Rodríguez
- Jeroen Roovers
- Christian von Roques
- Boud Roukema
- Torsten Rupp
@ -187,7 +156,6 @@ has been important. :-) In alphabetical order:
- Dan Shechter
- Stuart Shelton
- Sebastian Andrzej Siewior
- Andrej Skenderija
- Ville Skyttä
- Brad Smith
- Bruce Stark
@ -213,28 +181,20 @@ has been important. :-) In alphabetical order:
- Christian Weisgerber
- Dan Weiss
- Bert Wesarg
- Mark Wielaard
- Fredrik Wikstrom
- Jim Wilcoxson
- Ralf Wildenhues
- Charles Wilson
- Lars Wirzenius
- Vincent Wixsom
- Pilorz Wojciech
- Chien Wong
- Xi Ruoyao
- Ryan Young
- Andreas Zieringer
- 榆柳松 (ZhengSen Wang)
Companies:
- Google
- Sandfly Security
Other credits:
- cleemy desu wayo working with Trend Micro Zero Day Initiative
- Orange Tsai and splitline from DEVCORE Research Team
Also thanks to all the people who have participated in the Tukaani project.
I have probably forgot to add some names to the above list. Sorry about

25
TODO
View File

@ -5,7 +5,12 @@ XZ Utils To-Do List
Known bugs
----------
The test suite is incomplete.
The test suite is too incomplete.
If the memory usage limit is less than about 13 MiB, xz is unable to
automatically scale down the compression settings enough even though
it would be possible by switching from BT2/BT3/BT4 match finder to
HC3/HC4.
XZ Utils compress some files significantly worse than LZMA Utils.
This is due to faster compression presets used by XZ Utils, and
@ -14,6 +19,9 @@ Known bugs
compress extremely well, so going from compression ratio of 0.003
to 0.004 means big relative increase in the compressed file size.
xz doesn't quote unprintable characters when it displays file names
given on the command line.
tuklib_exit() doesn't block signals => EINTR is possible.
If liblzma has created threads and fork() gets called, liblzma
@ -33,6 +41,9 @@ Missing features
be mostly useful when using a preset dictionary in LZMA2, but
it may have other uses too. Compare to deflateCopy() in zlib.
Support LZMA_FINISH in raw decoder to indicate end of LZMA1 and
other streams that don't have an end of payload marker.
Adjust dictionary size when the input file size is known.
Maybe do this only if an option is given.
@ -56,9 +67,9 @@ Missing features
Support LZMA_FULL_FLUSH for lzma_stream_decoder() to stop at
Block and Stream boundaries.
Error codes from lzma_code() aren't very specific. A more detailed
error message (string) could be provided too. It could be returned
by a new function or use a currently-reserved member of lzma_stream.
lzma_strerror() to convert lzma_ret to human readable form?
This is tricky, because the same error codes are used with
slightly different meanings, and this cannot be fixed anymore.
Make it possible to adjust LZMA2 options in the middle of a Block
so that the encoding speed vs. compression ratio can be optimized
@ -86,3 +97,9 @@ Documentation
Document the LZMA1 and LZMA2 algorithms.
Miscellaneous
------------
Try to get the media type for .xz registered at IANA.

View File

@ -166,7 +166,15 @@ then
CHECK_TYPE_TEMP=""
for crc in $(echo "$CHECK_TYPE" | sed "s/,/ /g"); do
case "$crc" in
crc32 | crc64 | sha256) ;;
# Remove "crc32" from cmake build, if specified.
crc32)
if [ "$BUILD_SYSTEM" = "cmake" ]
then
continue
fi
;;
crc64) ;;
sha256) ;;
*) echo "Invalid check type: $crc"; exit 1 ;;
esac
@ -230,22 +238,22 @@ then
add_to_filter_list "$BCJ" ";x86;powerpc;ia64;arm;armthumb;arm64;sparc;riscv"
add_to_filter_list "$DELTA" ";delta"
add_extra_option "$THREADS" "-DXZ_THREADS=yes" "-DXZ_THREADS=no"
add_extra_option "$THREADS" "-DENABLE_THREADS=ON" "-DENABLE_THREADS=OFF"
# Disable MicroLZMA if encoders are not configured.
add_extra_option "$ENCODERS" "-DXZ_ENCODERS=$FILTER_LIST" "-DXZ_ENCODERS= -DXZ_MICROLZMA_ENCODER=OFF"
add_extra_option "$ENCODERS" "-DENCODERS=$FILTER_LIST" "-DENCODERS= -DMICROLZMA_ENCODER=OFF"
# Disable MicroLZMA and lzip decoders if decoders are not configured.
add_extra_option "$DECODERS" "-DXZ_DECODERS=$FILTER_LIST" "-DXZ_DECODERS= -DXZ_MICROLZMA_DECODER=OFF -DXZ_LZIP_DECODER=OFF"
add_extra_option "$DECODERS" "-DDECODERS=$FILTER_LIST" "-DDECODERS= -DMICROLZMA_DECODER=OFF -DLZIP_DECODER=OFF"
# CMake disables the shared library by default.
add_extra_option "$SHARED" "-DBUILD_SHARED_LIBS=ON" ""
add_extra_option "$SMALL" "-DXZ_SMALL=ON" ""
add_extra_option "$SMALL" "-DHAVE_SMALL=ON" ""
# Remove old cache file to clear previous settings.
rm -f "CMakeCache.txt"
cmake "$SRC_DIR/CMakeLists.txt" -B "$DEST_DIR" $EXTRA_OPTIONS -DXZ_CHECKS="$CHECK_TYPE" -G "Unix Makefiles"
cmake "$SRC_DIR/CMakeLists.txt" -B "$DEST_DIR" $EXTRA_OPTIONS -DADDITIONAL_CHECK_TYPES="$CHECK_TYPE" -G "Unix Makefiles"
cmake --build "$DEST_DIR"
;;
esac
@ -273,7 +281,7 @@ then
;;
cmake)
cd "$DEST_DIR"
if ${WRAPPER} make CTEST_OUTPUT_ON_FAILURE=1 test
if ${WRAPPER} make test
then
:
else

View File

@ -1,177 +0,0 @@
#!/bin/sh
# SPDX-License-Identifier: 0BSD
###############################################################################
#
# Look for missing license info in xz.git
#
# The project doesn't conform to the FSFE REUSE specification for now.
# Instead, this script helps in finding files that lack license info.
# Pass -v as an argument to get license info from all files in xz.git or,
# when .git isn't available, from files extracted from a release tarball
# (in case of a release tarball, the tree must be clean of any extra files).
#
# NOTE: This relies on non-POSIX xargs -0. It's supported on GNU and *BSDs.
#
###############################################################################
#
# Author: Lasse Collin
#
###############################################################################
# Print good files too if -v is passed as an argument.
VERBOSE=false
case $1 in
'')
;;
-v)
VERBOSE=true
;;
*)
echo "Usage: $0 [-v]"
exit 1
;;
esac
# Use the C locale so that sorting is always the same.
LC_ALL=C
export LC_ALL
# String to match the SPDX license identifier tag.
# Spell it here in a way that doesn't match regular grep patterns.
SPDX_LI='SPDX''-License-''Identifier'':'
# Pattern for files that don't contain SPDX tags but they are under
# a free license that isn't 0BSD.
PAT_UNTAGGED_MISC='^COPYING\.
^INSTALL\.generic$'
# Pattern for files that are 0BSD but don't contain SPDX tags.
# (The two file format specification files are public domain but
# they can be treated as 0BSD too.)
PAT_UNTAGGED_0BSD='^(.*/)?\.gitattributes$
^(.*/)?\.gitignore$
^\.github/SECURITY\.md$
^AUTHORS$
^COPYING$
^ChangeLog$
^INSTALL$
^NEWS$
^PACKAGERS$
^(.*/)?README$
^THANKS$
^TODO$
^(.*/)?[^/]+\.txt$
^doc/SHA256SUMS$
^po/LINGUAS$
^src/common/w32_application\.manifest$
^tests/xzgrep_expected_output$
^tests/files/[^/]+\.(lz|lzma|xz)$'
# Pattern for files that must be ignored when Git isn't available. This is
# useful when this script is run right after extracting a release tarball.
PAT_TARBALL_IGNORE='^(m4/)?[^/]*\.m4$
^(.*/)?Makefile\.in(\.in)?$
^(po|po4a)/.*[^.]..$
^ABOUT-NLS$
^build-aux/(config\..*|ltmain\.sh|[^.]*)$
^config\.h\.in$
^configure$'
# Go to the top source dir.
cd "$(dirname "$0")/.." || exit 1
# Get the list of files to check from git if possible.
# Otherwise list the whole source tree. This script should pass
# if it is run right after extracting a release tarball.
if test -d .git && type git > /dev/null 2>&1; then
FILES=$(git ls-files) || exit 1
IS_TARBALL=false
else
FILES=$(find . -type f) || exit 1
FILES=$(printf '%s\n' "$FILES" | sed 's,^\./,,')
IS_TARBALL=true
fi
# Sort to keep the order consistent.
FILES=$(printf '%s\n' "$FILES" | sort)
# Find the tagged files.
TAGGED=$(printf '%s\n' "$FILES" \
| tr '\n' '\000' | xargs -0r grep -l "$SPDX_LI" --)
# Find the tagged 0BSD files.
TAGGED_0BSD=$(printf '%s\n' "$TAGGED" \
| tr '\n' '\000' | xargs -0r grep -l "$SPDX_LI 0BSD" --)
# Find the tagged non-0BSD files, that is, remove the 0BSD-tagged files
# from the list of tagged files.
TAGGED_MISC=$(printf '%s\n%s\n' "$TAGGED" "$TAGGED_0BSD" | sort | uniq -u)
# Remove the tagged files from the list.
FILES=$(printf '%s\n%s\n' "$FILES" "$TAGGED" | sort | uniq -u)
# Find the intentionally-untagged files.
UNTAGGED_0BSD=$(printf '%s\n' "$FILES" | grep -E "$PAT_UNTAGGED_0BSD")
UNTAGGED_MISC=$(printf '%s\n' "$FILES" | grep -E "$PAT_UNTAGGED_MISC")
# Remove the intentionally-untagged files from the list.
FILES=$(printf '%s\n' "$FILES" | grep -Ev \
-e "$PAT_UNTAGGED_0BSD" -e "$PAT_UNTAGGED_MISC")
# FIXME: Allow untagged translations if they have a public domain notice.
# These are old translations that haven't been updated after 2024-02-14.
# Eventually these should go away.
PD_PO=$(printf '%s\n' "$FILES" | grep '\.po$' | tr '\n' '\000' \
| xargs -0r grep -Fl '# This file is put in the public domain.' --)
if test -n "$PD_PO"; then
# Remove the public domain .po files from the list.
FILES=$(printf '%s\n%s\n' "$FILES" "$PD_PO" | sort | uniq -u)
fi
# Remove generated files from the list which don't have SPDX tags but which
# can be present in release tarballs. This step is skipped when the file list
# is from "git ls-files".
GENERATED=
if $IS_TARBALL; then
GENERATED=$(printf '%s\n' "$FILES" | grep -E "$PAT_TARBALL_IGNORE")
FILES=$(printf '%s\n' "$FILES" | grep -Ev "$PAT_TARBALL_IGNORE")
fi
if $VERBOSE; then
printf '# Tagged 0BSD files:\n%s\n\n' "$TAGGED_0BSD"
printf '# Intentionally untagged 0BSD:\n%s\n\n' "$UNTAGGED_0BSD"
# FIXME: Remove when no longer needed.
if test -n "$PD_PO"; then
printf '# Old public domain translations:\n%s\n\n' "$PD_PO"
fi
printf '# Tagged non-0BSD files:\n%s\n\n' "$TAGGED_MISC"
printf '# Intentionally untagged miscellaneous: \n%s\n\n' \
"$UNTAGGED_MISC"
if test -n "$GENERATED"; then
printf '# Generated files whose license was NOT checked:\n%s\n\n' \
"$GENERATED"
fi
fi
# Look for files with an unknown license and set the exit status accordingly.
STATUS=0
if test -n "$FILES"; then
printf '# ERROR: Licensing is unclear:\n%s\n' "$FILES"
STATUS=1
fi
exit "$STATUS"

View File

@ -17,5 +17,5 @@ sed -n 's/LZMA_VERSION_STABILITY_ALPHA/alpha/
s/LZMA_VERSION_STABILITY_STABLE//
s/^#define LZMA_VERSION_[MPS][AIT][AJNT][A-Z]* //p' \
src/liblzma/api/lzma/version.h \
| sed 'N; N; N; s/\n/./; s/\n/./; s/\n//g' \
| sed 'N; N; N; s/\n/./g; s/\.$//' \
| tr -d '\012\015\025'

View File

@ -26,29 +26,23 @@ endfunction()
# This is an over-simplified version of AC_USE_SYSTEM_EXTENSIONS in Autoconf
# or gl_USE_SYSTEM_EXTENSIONS in gnulib.
#
# NOTE: This is a macro because the changes to CMAKE_REQUIRED_DEFINITIONS
# must be visible in the calling scope.
macro(tuklib_use_system_extensions)
if(NOT MSVC)
add_compile_definitions(
_GNU_SOURCE # glibc, musl, mingw-w64
_NETBSD_SOURCE # NetBSD, MINIX 3
_OPENBSD_SOURCE # Also NetBSD!
__EXTENSIONS__ # Solaris
_POSIX_PTHREAD_SEMANTICS # Solaris
_DARWIN_C_SOURCE # macOS
_TANDEM_SOURCE # HP NonStop
_ALL_SOURCE # AIX, z/OS
macro(tuklib_use_system_extensions TARGET_OR_ALL)
if(NOT WIN32)
# FIXME? The Solaris-specific __EXTENSIONS__ should be conditional
# even on Solaris. See gnulib: git log m4/extensions.m4.
# FIXME? gnulib and autoconf.git has lots of new stuff.
tuklib_add_definitions("${TARGET_OR_ALL}"
_GNU_SOURCE
__EXTENSIONS__
_POSIX_PTHREAD_SEMANTICS
_TANDEM_SOURCE
_ALL_SOURCE
)
list(APPEND CMAKE_REQUIRED_DEFINITIONS
-D_GNU_SOURCE
-D_NETBSD_SOURCE
-D_OPENBSD_SOURCE
-D__EXTENSIONS__
-D_POSIX_PTHREAD_SEMANTICS
-D_DARWIN_C_SOURCE
-D_TANDEM_SOURCE
-D_ALL_SOURCE
)

View File

@ -9,7 +9,6 @@
#############################################################################
include("${CMAKE_CURRENT_LIST_DIR}/tuklib_common.cmake")
include(CMakePushCheckState)
include(CheckCSourceCompiles)
include(CheckIncludeFile)
@ -77,7 +76,6 @@ function(tuklib_cpucores_internal_check)
#
# We test sysctl() first and intentionally break the sysctl() test on QNX
# so that sysctl() is never used on QNX.
cmake_push_check_state()
check_include_file(sys/param.h HAVE_SYS_PARAM_H)
if(HAVE_SYS_PARAM_H)
list(APPEND CMAKE_REQUIRED_DEFINITIONS -DHAVE_SYS_PARAM_H)
@ -105,7 +103,6 @@ function(tuklib_cpucores_internal_check)
}
"
TUKLIB_CPUCORES_SYSCTL)
cmake_pop_check_state()
if(TUKLIB_CPUCORES_SYSCTL)
if(HAVE_SYS_PARAM_H)
set(TUKLIB_CPUCORES_DEFINITIONS

View File

@ -14,7 +14,6 @@
#############################################################################
include("${CMAKE_CURRENT_LIST_DIR}/tuklib_common.cmake")
include(CMakePushCheckState)
include(CheckCSourceCompiles)
function(tuklib_large_file_support TARGET_OR_ALL)

View File

@ -18,8 +18,4 @@ function(tuklib_mbstr TARGET_OR_ALL)
# NOTE: wcwidth() requires _GNU_SOURCE or _XOPEN_SOURCE on GNU/Linux.
check_symbol_exists(wcwidth wchar.h HAVE_WCWIDTH)
tuklib_add_definition_if("${TARGET_OR_ALL}" HAVE_WCWIDTH)
# NOTE: vasprintf() requires _GNU_SOURCE on GNU/Linux.
check_symbol_exists(vasprintf stdio.h HAVE_VASPRINTF)
tuklib_add_definition_if("${TARGET_OR_ALL}" HAVE_VASPRINTF)
endfunction()

View File

@ -12,7 +12,6 @@
#############################################################################
include("${CMAKE_CURRENT_LIST_DIR}/tuklib_common.cmake")
include(CMakePushCheckState)
include(CheckCSourceCompiles)
include(CheckIncludeFile)
@ -77,11 +76,11 @@ function(tuklib_physmem_internal_check)
endif()
# sysctl()
cmake_push_check_state()
check_include_file(sys/param.h HAVE_SYS_PARAM_H)
if(HAVE_SYS_PARAM_H)
list(APPEND CMAKE_REQUIRED_DEFINITIONS -DHAVE_SYS_PARAM_H)
endif()
check_c_source_compiles("
#ifdef HAVE_SYS_PARAM_H
# include <sys/param.h>
@ -97,7 +96,6 @@ function(tuklib_physmem_internal_check)
}
"
TUKLIB_PHYSMEM_SYSCTL)
cmake_pop_check_state()
if(TUKLIB_PHYSMEM_SYSCTL)
if(HAVE_SYS_PARAM_H)
set(TUKLIB_PHYSMEM_DEFINITIONS

View File

@ -358,13 +358,8 @@ if test "x$enable_assembler" = xyes; then
esac
fi
case $enable_assembler in
x86)
AC_DEFINE([HAVE_CRC_X86_ASM], [1], [Define to 1 if
the 32-bit x86 CRC assembly files are used.])
AC_MSG_RESULT([x86])
;;
no)
AC_MSG_RESULT([no])
x86 | no)
AC_MSG_RESULT([$enable_assembler])
;;
*)
AC_MSG_RESULT([])
@ -394,16 +389,6 @@ AC_ARG_ENABLE([arm64-crc32], AS_HELP_STRING([--disable-arm64-crc32],
[], [enable_arm64_crc32=yes])
################################
# LoongArch CRC32 instructions #
################################
AC_ARG_ENABLE([loongarch-crc32], AS_HELP_STRING([--disable-loongarch-crc32],
[Do not use LoongArch CRC32 instructions even if support for
them is detected.]),
[], [enable_loongarch_crc32=yes])
#####################
# Size optimization #
#####################
@ -642,32 +627,6 @@ AM_PROG_CC_C_O
AM_PROG_AS
AC_USE_SYSTEM_EXTENSIONS
# If using GCC or compatible compiler, verify that CFLAGS doesn't contain
# something that makes -Werror unhappy. It's important to check this after
# the above check for system extensions. It adds macros that can trigger,
# for example, -Wunused-macros.
if test "$GCC" = yes && test "x$SKIP_WERROR_CHECK" != xyes ; then
AC_MSG_CHECKING([if the -Werror option is usable])
OLD_CFLAGS=$CFLAGS
CFLAGS="$CFLAGS -Werror"
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[extern int foo; int foo;]])], [
AC_MSG_RESULT([yes])
], [
AC_MSG_RESULT([no])
AC_MSG_ERROR([
CFLAGS contains something that makes -Werror complain (see config.log).
This would break certain checks in 'configure'. It is strongly
recommended to modify CFLAGS to fix this. If you want to use noisy
warning options, for example, -Weverything, it is still possible to
add them later when running 'make': make CFLAGS+=-Weverything
In case you really want to continue with the current CFLAGS, pass
'SKIP_WERROR_CHECK=yes' as an argument to 'configure'.
])
])
CFLAGS=$OLD_CFLAGS
fi
AS_CASE([$enable_threads],
[posix], [
echo
@ -852,35 +811,6 @@ AM_GNU_GETTEXT_REQUIRE_VERSION([0.19.6])
AM_GNU_GETTEXT_VERSION([0.19.6])
AM_GNU_GETTEXT([external])
# The command line tools use UTF-8 on native Windows. Non-ASCII characters
# display correctly only when using UCRT and gettext-runtime >= 0.23.1.
AS_CASE([$USE_NLS-$host_os],
[yes-mingw*], [
AC_MSG_CHECKING([for UCRT and gettext-runtime >= 0.23.1])
AC_PREPROC_IFELSE([AC_LANG_SOURCE([[
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <libintl.h>
#ifndef _UCRT
#error "Not UCRT"
#endif
#if LIBINTL_VERSION < 0x001701
#error "gettext-runtime < 0.23.1"
#endif
]])], [
AC_MSG_RESULT([yes])
], [
AC_MSG_RESULT([no])
AC_MSG_ERROR([
Translation support (--enable-nls) on native Windows requires
UCRT and gettext-runtime >= 0.23.1. Use --disable-nls to build
with MSVCRT or old gettext-runtime.])
])
]
)
###############################################################################
# Checks for header files.
@ -926,6 +856,13 @@ AC_C_BIGENDIAN
# __attribute__((__constructor__)) can be used for one-time initializations.
# Use -Werror because some compilers accept unknown attributes and just
# give a warning.
#
# FIXME? Unfortunately -Werror can cause trouble if CFLAGS contains options
# that produce warnings for unrelated reasons. For example, GCC and Clang
# support -Wunused-macros which will warn about "#define _GNU_SOURCE 1"
# which will be among the #defines that Autoconf inserts to the beginning of
# the test program. There seems to be no nice way to prevent Autoconf from
# inserting the any defines to the test program.
AC_MSG_CHECKING([if __attribute__((__constructor__)) can be used])
have_func_attribute_constructor=no
OLD_CFLAGS="$CFLAGS"
@ -1160,36 +1097,6 @@ AS_IF([test "x$enable_arm64_crc32" = xyes], [
])
# LoongArch CRC32 intrinsics are in larchintrin.h.
# These are supported by at least GCC and Clang.
#
# Only 64-bit LoongArch is currently supported.
# It doesn't need runtime detection.
AC_MSG_CHECKING([if LoongArch CRC32 instructions are usable])
AS_IF([test "x$enable_loongarch_crc32" = xno], [
AC_MSG_RESULT([no, --disable-loongarch-crc32 was used])
], [
AC_LINK_IFELSE([AC_LANG_SOURCE([[
#if !(defined(__loongarch__) && __loongarch_grlen >= 64)
# error
#endif
#include <larchintrin.h>
int main(void)
{
return __crc_w_w_w(1, 2);
}
]])], [
AC_DEFINE([HAVE_LOONGARCH_CRC32], [1], [Define to 1 if
64-bit LoongArch CRC32 instructions are supported.])
enable_loongarch_crc32=yes
], [
enable_loongarch_crc32=no
])
AC_MSG_RESULT([$enable_loongarch_crc32])
])
# Check for sandbox support. If one is found, set enable_sandbox=found.
#
# About -fsanitize: Of our three sandbox methods, only Landlock is
@ -1235,9 +1142,8 @@ AS_CASE([$enable_sandbox],
]])], [
enable_sandbox=found
AS_CASE(["$CC $CFLAGS"], [*-fsanitize=*],
[AC_MSG_ERROR([
CC or CFLAGS contain '-fsanitize=' which is incompatible with the Landlock
AS_CASE([$CFLAGS], [*-fsanitize=*], [AC_MSG_ERROR([
CFLAGS contains '-fsanitize=' which is incompatible with the Landlock
sandboxing. Use --disable-sandbox when using '-fsanitize'.])])
AC_DEFINE([HAVE_LINUX_LANDLOCK], [1],
@ -1319,8 +1225,6 @@ AS_IF([test "$GCC" = yes], [
-Wmissing-prototypes \
-Wmissing-declarations \
-Wredundant-decls \
-Wimplicit-fallthrough \
-Wimplicit-fallthrough=5 \
\
-Wc99-compat \
-Wc11-extensions \

View File

@ -10,8 +10,8 @@
# cover most of the cases where mistakes can easily happen.
#
# Give the path and filename of the xz executable as an argument. If no
# arguments are given, this script uses src/xz/xz (relative to the current
# directory).
# arguments are given, this script uses ../src/xz/xz (relative to the
# location of this script).
#
# You may want to pipe the output of this script to less -S to view the
# tables printed by xz --list on a 80-column terminal. On the other hand,
@ -32,6 +32,10 @@ if [ -n "$1" ]; then
[ "x${XZ:0:1}" != "x/" ] && XZ="$PWD/$XZ"
fi
# Locate top_srcdir and go there.
top_srcdir="$(cd -- "$(dirname -- "$0")" && cd .. && pwd)"
cd -- "$top_srcdir"
# If XZ wasn't already set, use the default location.
XZ=${XZ-"$PWD/src/xz/xz"}
if [ "$(type -t "$XZ" || true)" != "file" ]; then
@ -41,20 +45,15 @@ if [ "$(type -t "$XZ" || true)" != "file" ]; then
fi
XZ=$(type -p -- "$XZ")
# Locate top_srcdir and go there.
top_srcdir="$(cd -- "$(dirname -- "$0")" && cd .. && pwd)"
cd -- "$top_srcdir"
# Print the xz version and locale information.
echo "$XZ --version"
"$XZ" --version
echo
if [ -d .git ] && type git > /dev/null 2>&1; then
echo "Source code version in $PWD:"
git describe --abbrev=8
git describe --abbrev=4
fi
echo
echo "LANGUAGE=$LANGUAGE"
locale
echo
@ -82,10 +81,13 @@ for CMD in \
"xz --lzma2=nice=50000" \
"xz --help" \
"xz --long-help" \
"xz --filters-help" \
"xz --list good-*lzma2*" \
"xz --list good-1-check* unsupported-check.xz" \
"xz --list --verbose --verbose good-1-arm64-lzma2-1.xz good-1-block_header-1.xz good-1-check-sha256.xz good-2-lzma2.xz"
"xz --list good-1-check*" \
"xz --list --verbose good-*lzma2*" \
"xz --list --verbose good-1-check*" \
"xz --list --verbose --verbose good-*lzma2*" \
"xz --list --verbose --verbose good-1-check*" \
"xz --list --verbose --verbose unsupported-check.xz"
do
echo "-----------------------------------------------------------"
echo

View File

@ -1,243 +0,0 @@
61e82b90203cd44c3a712fee5e1efb2a3de62c673cfbe010928856ef2a29b907 xz-4.999.9beta.tar
330312c4397608d8b7be362cc7edbfeafa6101614bc2164d816ea767656aa15c xz-4.999.9beta.tar.bz2
fa3901d1c034842da47fec1a24a9b5a5bd435f5ecfbb444c168512e2daddb86f xz-4.999.9beta.tar.gz
d6649124c7046caea616f599716a559c971c97947e4533c8f25f683310154e8c xz-4.999.9beta.tar.xz
0cb40c62ab80536c9cda0125bad445994c0c48f7f9e7c5a3839dbe2be7e7dabc xz-5.0.0.tar
47a89e65c4690364a0123871a221e663d23a9fbd1ca756a804b10dd4006056d8 xz-5.0.0.tar.bz2
eba9211990a642fc2c35ea02618b710c7fa898d78ccca48b546a07bdde03c44d xz-5.0.0.tar.gz
2da61184b5da24b7dd9266416259dbf65212d1ef83726202427233e7fcfe5754 xz-5.0.0.tar.xz
2485450f5bdfcdef701454c0ae61eeab144e852a20a14e07b0f3cba2f2a758e9 xz-5.0.0-dos.zip
ba46384f060b2c6646f2b342cc9de0e220d057f1ee148b5002eafe7156f27412 xz-5.0.0-windows.zip
e4103c00b237a7dfc0f2419ea0aafb739822405facea7e4ecc8fd10dcd82c734 xz-5.0.0-windows.7z
e0aa4e3d504d7b27b9d6b76107d0f3656a06a3217dd5006c401aa83d18931b40 xz-5.0.1.tar
9b380f502d37085a60821484a3a13747454638927cc36033be64970512451ed8 xz-5.0.1.tar.bz2
3770b8872a4322b9502937b4781d523303bf193962c4822899fd3a210878fc80 xz-5.0.1.tar.gz
0bd2cb93c172f6cce144493004755aa565d751cb40945bbbb5b5d210c037fce4 xz-5.0.1.tar.xz
47337530220b8eb5951c6be1bcdcaee49b32b843e39ea97e0da4c2791e994a98 xz-5.0.1-dos.zip
73488c8d475d6634484a65e32aa3ccdc9e56de21b6e8872feaee0d52dc1cd879 xz-5.0.1-windows.zip
0505cc1a49b5fd38226a28f145dff6d34bc7f14ff5a1d78a3e08b6fa3398425e xz-5.0.1-windows.7z
574b8b84359c263c0bb3c35ee13d53fdf36fac2ea89f0a6234cb5bdc5ae6fe87 xz-5.0.2.tar
216df1ddbd591f0da63de31d4b0837eed6d019ccb0e36e57812764c69af645bc xz-5.0.2.tar.bz2
57e979baaa40147dde1bbb284e3618f8f18b6532c932648bd57b5aee674b98a7 xz-5.0.2.tar.gz
b334483005639a65a37bcc3c33971de2df94764c11a1c3329ce388abb1d95334 xz-5.0.2.tar.xz
8d65f9e9b625394f98846fc9a19e79dafeacd7a905aba2e0f28397df099d57c9 xz-5.0.2-windows.zip
4e89d87fe9a3d795ed79b93f9d70478107e45ee51047758d4812ac070f13a54a xz-5.0.2-windows.7z
74984834d91aadd516f26bcf60e4f82adb74044f9a3f367dca5488ee3c97b8d4 xz-5.0.3.tar
5a11b9e17bfcda62319c5a8c4a2062dc81607a316d3f6adff89422d81ec1eae9 xz-5.0.3.tar.bz2
10eb4df72dffb2fb14c3d2d82b450e72282ffcb9ee3908a8e5b392b8f09681bf xz-5.0.3.tar.gz
3544421e3447fd3f668fd89fb384ff9d312d2730cb860f6b8e09564028de8e32 xz-5.0.3.tar.xz
f7e741635976eead2dd5ff592cc98a04261d96df81b7db94a957a96cc2b13cce xz-5.0.3-windows.zip
0ed3c11430735e81ec65fb3588b2b8cf4bea6953ad4dda99d9aef4ee231a6036 xz-5.0.3-windows.7z
403df1a612036569a1bf54a171a609b6c11370f6b774bcb4940533a72edda1f9 xz-5.0.4.tar
5cd9b060d3a1ad396b3be52c9b9311046a1c369e6062aea752658c435629ce92 xz-5.0.4.tar.bz2
d67405798dad645965fe51cf4e40c23d1201fb234378d3c44f5a3787142b83b6 xz-5.0.4.tar.gz
b7fd25be1ebead021447960804f91006e3fc2f151d7a19948c6a27b4db09b5e9 xz-5.0.4.tar.xz
45e5771ebb88bc71805a3fc183bcb49d1e24b21aa6f762d94be6bc11426d9101 xz-5.0.4-dos.zip
7ed7d59f71bbfac959a4d4c6eb86733440a0ca115677522c6f5f43ab0e106edc xz-5.0.4-windows.zip
7be3642f91ba2fe3339bcb6c458cad303cd9d8ab085537c7b4e96e14c5025de9 xz-5.0.4-windows.7z
dd665d739d07ff4b1cae5ecadfad929928fc069d3a617cf682435beadb568e3c xz-5.0.5.tar
166c48d2842519bc4f96333bff9e265f8cdda44d38e40594ef3f9bbb52890490 xz-5.0.5.tar.bz2
5dcffe6a3726d23d1711a65288de2e215b4960da5092248ce63c99d50093b93a xz-5.0.5.tar.gz
3515c74d170d0f6ec00820de63106ad16c07bae55a59c174b4741242c76264a4 xz-5.0.5.tar.xz
f5463e2a45788773e33a8056c931d8973da5a00122056df417da24033088daff xz-5.0.5-windows.zip
8dbe3357a6ad39cc3076e4f5f0cef9a4ef67461559d4db02f1f06841b74dec44 xz-5.0.5-windows.7z
1a8c89616655bf05b04b6dfb62642db02e5fe368d53ee033990be5c26f194a15 xz-5.0.5-with-libtool-2.4.2.418.tar
0b6fa3b002c8e15fcc4417001ef0327cfdf6ad53656d7e545c6069ff7657b26d xz-5.0.5-with-libtool-2.4.2.418.tar.gz
ea314028ba6aa221de52e0bb4b149db4704a3317e6676adde2607debd026054f xz-5.0.6.tar
2f444375cd1d66c04247127e9b5101ce8fb2a8726449f211f05c84c143289408 xz-5.0.6.tar.bz2
b6cf4cdc1313556a00848e722625bce40d2cd552c052b0465791c64c9202c3f1 xz-5.0.6.tar.gz
9d4136392b6266219fd0f1068256c34180f106ee4214752136c58c0f4864391c xz-5.0.6.tar.xz
97ab44b55b252cb2e1b851f6dbdb9811011bad7a80eb42445b0ea63bb1444dc3 xz-5.0.7.tar
e8851dc749df2340dac6c9297cb2653eff684e73c3dedf690930119502edd616 xz-5.0.7.tar.bz2
f4d2165553b9d0d82fd08bc2eacddeb48ebeb862a5686a603f8c044a2e52c93f xz-5.0.7.tar.gz
55146936f33a432282e399ef702b2c3ab06644d9f091a811b39ff483fd190e24 xz-5.0.7.tar.xz
e4cb781440e29b2c1e1700730f3fdabf7ccc62317a61931609a098c384bfca96 xz-5.0.8.tar
2286f9d90bb0a0de34cba990df1b10cfad0777f00cb2883def26b8ec1b326bda xz-5.0.8.tar.bz2
cac71b31ed322a487f1da1f10dfcf47f8855f97ff2c23b92680c7ae7be58babb xz-5.0.8.tar.gz
1b5c105c1f372f128bf23ed7a1fd9acf473c88adefb3243d2ea762edca2a0b79 xz-5.0.8.tar.xz
812fb3369dde3c81d0765e1a7e00afa0dcfa2e5fa63fdb57e7582147220b2491 xz-5.1.1alpha.tar
54e59a83690a4a0ec88a7d7c3bdef90c6b196c892a93463863c71c24fe87951a xz-5.1.1alpha.tar.gz
90d7162c001d388d6ef082ccda7b7852c6adc367c492a8935cdf170e49a9ccda xz-5.1.1alpha.tar.xz
5d1f5b39d19d1e0b5e7e446b11add769ce68fef781173e116bf8e7d533a90dcb xz-5.1.2alpha.tar
70e792d2a67cfbb8f2dffd0feab6ca6e5a4a618d65070fb44a367629d1ba94e5 xz-5.1.2alpha.tar.gz
7a9c8dbede0b62e70c75cc0dc14135760a39e9fc6504f87091a59fea87461e18 xz-5.1.2alpha.tar.xz
b77cfbdea2f805b69c4c3db40da311555af3fe78271097cf5dec06f7919f07c9 xz-5.1.3alpha.tar
9f94506e301d5b6863921bba861a99ba00de384dafb4e5f409679a93e41613d4 xz-5.1.3alpha.tar.gz
0413632457df9c65b1ce9dcf78495152fc9307bea5c3267c9996eebf708bf2b6 xz-5.1.3alpha.tar.xz
1b70584fdf6c872d7a921dea53772b89962dc0b292b0e3ec0d7a0ca5c860242b xz-5.1.4beta.tar
7c47b9e2cfb5be93245d9fcf2bec5b459412b7628c333896dded373dcd0cf0e0 xz-5.1.4beta.tar.gz
9f9c6a97959afbbd1315626f253f2d3d48c47e01a921c7f160dab4fde10678b5 xz-5.1.4beta.tar.xz
2d066a7ed58c98cd91111d8408fb8896b8100a8ee7e519ce5ea2315c284ba5b0 xz-5.2.0.tar
f7357d7455a1670229b3cca021da71dd5d13b789db62743c20624bdffc9cc4a5 xz-5.2.0.tar.bz2
231ef369982240bb20ed7cffa52bb12a4a297ce6871f480ab85e8a7ba98bf3d6 xz-5.2.0.tar.gz
5962fe32e0b42c7065b4410b7d8ffbf2895e197e97d410c4fc374ea0d7610a14 xz-5.2.0.tar.xz
490fc2ad09fea7bc3772bb23432b3dce32d0ef81d413b3b974730436599d9ec5 xz-5.2.0-dos.zip
b49c05f82cd05fa67031e72138e40f422d8fd6e2c9ca106016dfd24fae0e629e xz-5.2.0-windows.zip
13dfe89a796f4c50f28fac9059d33241746b8e66c540e54d2ac44fd3ea1fd027 xz-5.2.0-windows.7z
a9ebc19a511b650c4b678802375505302992214f578a40ce78db089f99c3341f xz-5.2.1.tar
679148f497e0bff2c1adce42dee5a23f746e71321c33ebb0f641a302e30c2a80 xz-5.2.1.tar.bz2
b918b6648076e74f8d7ae19db5ee663df800049e187259faf5eb997a7b974681 xz-5.2.1.tar.gz
6ecdd4d80b12001497df0741d6037f918d270fa0f9a1ab4e2664bf4157ae323c xz-5.2.1.tar.xz
e4150f52b2e9937cbe54f0e85325a25a3dc2da68cf643310bd973c9b5c121131 xz-5.2.1-dos.zip
2447f5e70dd105900a2957d6c2fad2b5872a6482ba59c1fa0513d03e8b2d10f4 xz-5.2.1-windows.zip
afc018a5ab327aac5c8d6e60dc20aae844204b4e86cfac56ec7dd455921dc2ce xz-5.2.1-windows.7z
f96b347204dbb984f6e58ecc98f01f823742d403133a461dd8a52993b237bb8c xz-5.2.2.tar
6ff5f57a4b9167155e35e6da8b529de69270efb2b4cf3fbabf41a4ee793840b5 xz-5.2.2.tar.bz2
73df4d5d34f0468bd57d09f2d8af363e95ed6cc3a4a86129d2f2c366259902a2 xz-5.2.2.tar.gz
f341b1906ebcdde291dd619399ae944600edc9193619dd0c0110a5f05bfcc89e xz-5.2.2.tar.xz
1a88e9645eca0c3d95e00e8fc4b1a155fa3e527a60bec5a667ca56ed36dbb29b xz-5.2.3.tar
fd9ca16de1052aac899ad3495ad20dfa906c27b4a5070102a2ec35ca3a4740c1 xz-5.2.3.tar.bz2
71928b357d0a09a12a4b4c5fafca8c31c19b0e7d3b8ebb19622e96f26dbf28cb xz-5.2.3.tar.gz
7876096b053ad598c31f6df35f7de5cd9ff2ba3162e5a5554e4fc198447e0347 xz-5.2.3.tar.xz
afe73c260e38fdebdd14c9eaab71c19b206ff74cebbdc744b0fa35b77b243220 xz-5.2.3-windows.zip
30352e7f1f1605ff0758d10e951f4b3eda108538ecd500b831124dc480e603f3 xz-5.2.3-windows.7z
7f77d67aec8207e4fef28c58f19919e51ef469621a58eafd13bf1f80ce956312 xz-5.2.4.tar
3313fd2a95f43d88e44264e6b015e7d03053e681860b0d5d3f9baca79c57b7bf xz-5.2.4.tar.bz2
b512f3b726d3b37b6dc4c8570e137b9311e7552e8ccbab4d39d47ce5f4177145 xz-5.2.4.tar.gz
9717ae363760dedf573dad241420c5fea86256b65bc21d2cf71b2b12f0544f4b xz-5.2.4.tar.xz
9a5163623f435b6fa0844b6b884babd6bf4f8d876ae2d8134deeb296afd49c61 xz-5.2.4-windows.zip
efb267a5c7b267cd9e7bf18b29857738b06845178c74f424e3c502609fbf9862 xz-5.2.4-windows.7z
cdd92f155d202979dace48d16ea9e1a7c93d09eb2c2c0ac9a207e7544ed4703a xz-5.2.5.tar
5117f930900b341493827d63aa910ff5e011e0b994197c3b71c08a20228a42df xz-5.2.5.tar.bz2
f6f4910fd033078738bd82bfba4f49219d03b17eb0794eb91efbae419f4aba10 xz-5.2.5.tar.gz
3e1e518ffc912f86608a8cb35e4bd41ad1aec210df2a47aaa1f95e7f5576ef56 xz-5.2.5.tar.xz
601ccfa756da378429eb246b60c52d5e9c7f7b41e95e187c487004c093112789 xz-5.2.5.tar.zst
98c6cb1042284fe704ec30083f3fc87364ce9ed2ea51f62bbb0ee9d3448717ec xzgrep-ZDI-CAN-16587.patch
0b77f9ac5af53dec0b14773087f8f53e699ad6ce97cc8bfc3ea3cf89535dd335 xz-5.2.5-dos.zip
d83b82ca75dfab39a13dda364367b34970c781a9df4d41264db922ac3a8f622d xz-5.2.5-windows.zip
bee788dcc8f4a16e232a5a91c5625be1cfad36085eade6983013d1a92a308cfc xz-5.2.5-windows.7z
49305a2e5804ba438aa4690377e9b630646da6ae9f3edd0e3e727f92b47dc661 xz-5.2.6.tar
13e3402e301b6018f6a71ef0e497f714c6d11e214ae82dab156b81c2a64acb25 xz-5.2.6.tar.bz2
a2105abee17bcd2ebd15ced31b4f5eda6e17efd6b10f921a01cda4a44c91b3a0 xz-5.2.6.tar.gz
e076ba3439cb7cfc45b908c869f51a8c89f3c9ee9ee982fde28849c015e723a7 xz-5.2.6.tar.xz
2716b4067763de99b3901bcc71d3bda233798045cb8189735e611b165b8a7f4f xz-5.2.6.tar.zst
6fd6dad79e5b0d3b24a43bc3f79472b62a48d210f1aaa02fb06e5dfad89a4ebc xz-5.2.6-windows.zip
88242ad128b131ae7340370cc3c17f8d35e8b238a1db528185b28be2e6c164e1 xz-5.2.6-windows.7z
050958af3ccf032f0dba7104743e48ee6ddd9fdf5c21ec905b237e92b221c524 xz-5.2.7.tar
b65f1d0c2708e57716f4dd2216989a73847ac6fdb4168ffceb155767e22b834b xz-5.2.7.tar.bz2
06327c2ddc81e126a6d9a78b0be5014b976a2c0832f492dcfc4755d7facf6d33 xz-5.2.7.tar.gz
8712e9acb0b6b49a97d443458a3067dc5c08a025e02dc5f773176c51dd7cfc69 xz-5.2.7.tar.xz
709372e665270acf21a8ef55a8e34ca1f2421e7b5cc3146f4d45cc717fb2bea4 xz-5.2.7.tar.zst
30837d396bb50d5cec2c2431686de6f94c537c0551dc884e5cd3ab5551e65f1e xz-5.2.7-windows.zip
e9eb1dc1b8beaa5e3c535fbeaaab3780869b08fdfea0aa3ac09a804cc8a84c1a xz-5.2.7-windows.7z
96ebba68e4cc33dcd6e47a6326a39babeccc78ed17a08f5db0c11942d2c6fbc4 xz-5.2.8.tar
1f8a43d9fcf325d049a31fe4514dc8c44a6d00ce8860d48c4212d1e349d2a3ed xz-5.2.8.tar.bz2
ec5cda9f0b91336ab1b881d3d144e8203fcca604e607caca8ae678ddbc29207d xz-5.2.8.tar.gz
2424b2711b1d40d2129645d550363896c6853c97528f085f7765092fe68679d4 xz-5.2.8.tar.xz
c4092edd7ca1416be97364548cb86d7ef40b07c48a417a7254fb053b68098794 xz-5.2.8.tar.zst
f4c1eb727301b9a2acb1ae065562ad0beb7a6512639f8088af1afefcbbcc6260 xz-5.2.8-windows.zip
13390e4bd6023e27985cd25a61087e93a248858e7cd01755af8a84f5eef11feb xz-5.2.8-windows.7z
18d594e0c3ca307c89c809d636a8878e3d067f0c26983cbc7dc5a586377bc0bd xz-5.2.9.tar
b194507fba3a462a753c553149ccdaa168337bcb7deefddd067ba987c83dfce6 xz-5.2.9.tar.bz2
e982ea31b81543d7ee2b6fa34c2ad11760e1c50c6f4475add8ba0f2f005f07b4 xz-5.2.9.tar.gz
287ef163e7e57561e9de590b2a9037457af24f03a46bbd12bf84f3263679e8d2 xz-5.2.9.tar.xz
45cb9dd8785dbb60341450a28c39228cc86146119b4eac48e754a6650bc26931 xz-5.2.9.tar.zst
62ac7ba1e223616b365bd7bf1f2231b1c7e0aad111d53e675bef77ef1ac65c43 xz-5.2.9-windows.zip
19810e26e202ab2f0b28b70ca785320c006a72826f7bf80c9c9db65db24a23cc xz-5.2.9-windows.7z
33aa379c788ffe5af0765296fd9d31fd1fd6d409088ded09af7ff60035694521 xz-5.2.10.tar
01b71df61521d9da698ce3c33148bff06a131628ff037398c09482f3a26e5408 xz-5.2.10.tar.bz2
eb7a3b2623c9d0135da70ca12808a214be9c019132baaa61c9e1d198d1d9ded3 xz-5.2.10.tar.gz
d615974a17299eaa1bf3d0f3b7afa172624755c8885111b17659051869d6f072 xz-5.2.10.tar.xz
4cb110fa88b6062758c1c7600f5fc497cbe10372690a7964c611adc3399c8e4b xz-5.2.10.tar.zst
02232767320c7587a9f16f9c1c42a1d0bdc94f33d93aa327bb0f0fb67a5f0beb xz-5.2.11.tar
7859c47a5e909299e77d0e87e2bafc52fb1d09e35abac48b6426c1be213c5b37 xz-5.2.11.tar.bz2
0089d47b966bd9ab48f1d01baf7ce146a3b591716c7477866b807010de3d96ab xz-5.2.11.tar.gz
503b4a9fb405e70e1d3912e418fdffe5de27e713e58925fb67e12d20d03a77bc xz-5.2.11.tar.xz
1facb7ec3c0950a95e7d5396488fd5c9710c7fec353292962291b2c103777989 xz-5.2.11.tar.zst
4d8837034498dcbe64d3cff5f71b5fb6584c1af027eda7548831832efba1c0f4 xz-5.2.12.tar
fbedff8eb67e229f2e95eb1ff920b255e405c86c9e1a53d4a6861d9823acff18 xz-5.2.12.tar.bz2
61bda930767dcb170a5328a895ec74cab0f5aac4558cdda561c83559db582a13 xz-5.2.12.tar.gz
f79a92b84101d19d76be833aecc93e68e56065b61ec737610964cd4f6c54ff2e xz-5.2.12.tar.xz
88e6796dada9b65b50ec80a3815be3e4d4ee5fbee17541f112a070d875d59a5d xz-5.2.12.tar.zst
515f41be4b7bfd4d2d1ddb939ebd028b8e979bec9baf28b7886e04637a8e54f0 xz-5.2.13.tar
620cdbfc31adbc7e3e5cd8c3c3aa9ffed9335f0ddc42719cf9afce5136a978c1 xz-5.2.13.tar.bz2
2942a1a8397cd37688f79df9584947d484dd658db088d51b790317eb3184827b xz-5.2.13.tar.gz
03eca718652bc8a77f0d2e9ad7744755818aece15cebbc11a3a069cc604ecd84 xz-5.2.13.tar.xz
9bbcac67b776385b4345d287e90e345f6c841d4285502aa386515a49696abd5d xz-5.3.1alpha.tar
55a92fe16b1dbf2067dda6c0d8fcfff5639b0c8fe926f2a6aad4785699095ec2 xz-5.3.1alpha.tar.xz
fe96db09fa3cd289a2e67af8b4045213117e47fbf7fb882bed606556edcf7d5c xz-5.3.2alpha.tar
36f4fe561714385eea08945a910a31e6ea5d48611eb7af2fe7966dd030b502d2 xz-5.3.2alpha.tar.gz
35b7e753a0da827020bd3fe9c55b34d86b888f69a82a8c5d981e8f89e555360d xz-5.3.2alpha.tar.xz
ed8fe42c7f36f707f8b65f70f106c8c06e4cc68322f3277ab31aa17b57ea0927 xz-5.3.3alpha.tar
c6d4789a79bab565440784db2e132d6bf03b2e75dd6d66a8102cf002d8dfe926 xz-5.3.3alpha.tar.gz
8d50c45575cb943d14dfef2a3f5b1199cc86b5066273d322556cf16e7f75411f xz-5.3.3alpha.tar.xz
f3dfc690c1207efd3bcb362dcb5d63df21817c9780ea058c46ef0236febf43e0 xz-5.3.4alpha.tar
829e7bc21334b163be9155cb6148f4ca80a573dc453b90e6f1e3bf023764e5f9 xz-5.3.4alpha.tar.gz
e0358fb10e59dac8da9b58c14aae59ed9b5b56cc075fbdd884b44d87a35971e9 xz-5.3.4alpha.tar.xz
9ad807c4e203ff21b921944c441d5de509d21262f5db81deeae6f56fc97c54ea xz-5.3.5beta.tar
542bb3549b2a1988d5d9ce871a5db189d117eb51371c9c1e675f5a0b1870f692 xz-5.3.5beta.tar.gz
e08932f382bed9c293a13a3cb72e07464b6caad6d6ceafe9a7545bee501f857c xz-5.3.5beta.tar.xz
d2f31178627378b6a2567e028194a4e7c18164925ac0d0364d439a8226bb06a4 xz-5.4.0.tar
795ea0494c66d509b052ddc36dc63bd634e59ff2a0f39c16a3b5644dd01d87e6 xz-5.4.0.tar.bz2
7471ef5991f690268a8f2be019acec2e0564b7b233ca40035f339fe9a07f830b xz-5.4.0.tar.gz
5f260e3b43f75cf43ca43d107dd18209f7d516782956a74ddd53288e02a83a31 xz-5.4.0.tar.xz
3d16dc30760af691318cd4bebbae9f7a177ee9a270dbaa47cb58cb1d271cac36 xz-5.4.0.tar.zst
48f8a02005c1b0f49eb629daa6567dfeccaa9cb9b6725feaf8b7cd1955bd049d xz-5.4.0-dos.zip
749fe4d7c0ce95b5c9cf35e725ed78d6158477e140cf84cde2107ec8465a5e9b xz-5.4.1.tar
dd172acb53867a68012f94c17389401b2f274a1aa5ae8f84cbfb8b7e383ea8d3 xz-5.4.1.tar.bz2
e4b0f81582efa155ccf27bb88275254a429d44968e488fc94b806f2a61cd3e22 xz-5.4.1.tar.gz
5d9827aa1875b21c288f78864bb26d2650b436ea8d2cad364e4921eb6266a5a5 xz-5.4.1.tar.xz
9b3d36dd65ecffc9cfef093010061ffe1d48ee34eef0cff69b63cf82b2d099c4 xz-5.4.1.tar.zst
3db1ec993b96cfee143df08d780b642ace8b40bb14043537db8a9c951317fafc xz-5.4.2.tar
aa49909cbd9028c4666a35fa4975f9a6203ed98154fbb8223ee43ef9ceee97c3 xz-5.4.2.tar.bz2
87947679abcf77cc509d8d1b474218fd16b72281e2797360e909deaee1ac9d05 xz-5.4.2.tar.gz
3ee13d0f40148625306b90f9622f8c9660b8082884051b0cfe46f18492f88955 xz-5.4.2.tar.xz
cd43589df77eb776956c8082a0cbae1d0cd1a2637a6930ea93ba5759639511b1 xz-5.4.2.tar.zst
475e09077f4a0cd57306ea1d4cf9ccdfd5add1a2744cf75956725e7fb531ce36 xz-5.4.3.tar
9243a04598d7a70c1f567a0143a255581ac5c64b140fd55fd5cbc1e00b0e6f90 xz-5.4.3.tar.bz2
1c382e0bc2e4e0af58398a903dd62fff7e510171d2de47a1ebe06d1528e9b7e9 xz-5.4.3.tar.gz
92177bef62c3824b4badc524f8abcce54a20b7dbcfb84cde0a2eb8b49159518c xz-5.4.3.tar.xz
da51e1105e152e62a72fd81acd9a3e325609b4aed5631c50de3ea58a7f162ebb xz-5.4.3.tar.zst
a9ffcc046c96908caed200e2d11b27a4af66b1b4351880f9ba88657a6b6b690c xz-5.4.4.tar
0b6fcde1ac38e90433a2556f500c065950b9bcd2d602006efc334782bdfe6296 xz-5.4.4.tar.bz2
aae39544e254cfd27e942d35a048d592959bd7a79f9a624afb0498bb5613bdf8 xz-5.4.4.tar.gz
705d0d96e94e1840e64dec75fc8d5832d34f6649833bec1ced9c3e08cf88132e xz-5.4.4.tar.xz
610c4d79ea3a56bfd1df178578aa17e10a88d58a362b0a7b3fa47321469bae20 xz-5.4.4.tar.zst
3ee65a3efb5c96da5e50a0f16567a926258f83f472d2773d40c4d19c8873daad xz-5.4.5.tar
8ccf5fff868c006f29522e386fb4c6a1b66463fbca65a4cfc3c4bd596e895e79 xz-5.4.5.tar.bz2
135c90b934aee8fbc0d467de87a05cb70d627da36abe518c357a873709e5b7d6 xz-5.4.5.tar.gz
da9dec6c12cf2ecf269c31ab65b5de18e8e52b96f35d5bcd08c12b43e6878803 xz-5.4.5.tar.xz
9ab5561ce9fed7860695c14b955a0ebec2df9a00fb171862a25910546a1737cc xz-5.4.5.tar.zst
b32e1195788a00ca01ea43bc5ea67ecf5bdbaf35ea8faa272da0066e795cb7e2 xz-5.4.6.tar
913851b274e8e1d31781ec949f1c23e8dbcf0ecf6e73a2436dc21769dd3e6f49 xz-5.4.6.tar.bz2
aeba3e03bf8140ddedf62a0a367158340520f6b384f75ca6045ccc6c0d43fd5c xz-5.4.6.tar.gz
b92d4e3a438affcf13362a1305cd9d94ed47ddda22e456a42791e630a5644f5c xz-5.4.6.tar.xz
21326933d567a87a7d7484a22cd5723387a71b5934b131dc91ea7495a813bdf3 xz-5.4.6.tar.zst
f30cdc66bb071622b382106b0a06ef0e28263e5656a96d88ff55cf92786391f9 xz-5.4.7.tar
9976ed9cd0764e962d852d7d519ee1c3a7f87aca3b86e5d021a45650ba3ecb41 xz-5.4.7.tar.bz2
8db6664c48ca07908b92baedcfe7f3ba23f49ef2476864518ab5db6723836e71 xz-5.4.7.tar.gz
016182c70bb5c7c9eb3465030e3a7f6baa25e17b0e8c0afe92772e6021843ce2 xz-5.4.7.tar.xz
f4a16279ebe33a607a41536fd203dc9337bdd6395ef72130cff47dc8276fd9ff xz-5.6.2.tar
e12aa03cbd200597bd4ce11d97be2d09a6e6d39a9311ce72c91ac7deacde3171 xz-5.6.2.tar.bz2
8bfd20c0e1d86f0402f2497cfa71c6ab62d4cd35fd704276e3140bfb71414519 xz-5.6.2.tar.gz
a9db3bb3d64e248a0fae963f8fb6ba851a26ba1822e504dc0efd18a80c626caf xz-5.6.2.tar.xz
31f58851acdf0d24d15bce14782dafa5a447ee922eaa39859170277dc9a8fae7 xz-5213-547-562-libtool.patch
b55087b6e30fb0cb0175e89022dafd4acb46190a4ec6831cb3e21172fc815186 xz-5.6.3.tar
a95a49147b2dbb5487517acc0adcd77f9c2032cf00664eeae352405357d14a6c xz-5.6.3.tar.bz2
b1d45295d3f71f25a4c9101bd7c8d16cb56348bbef3bbc738da0351e17c73317 xz-5.6.3.tar.gz
db0590629b6f0fa36e74aea5f9731dc6f8df068ce7b7bafa45301832a5eebc3a xz-5.6.3.tar.xz
c06b09e74a64616c36ce7c65c8af442d62031135f948d04c704f46d8c2cc2fef xz-5.6.4.tar
176d510c30d80a23b8050bbc048f2ecaacb823ae48b6821727ed6591f0df9200 xz-5.6.4.tar.bz2
269e3f2e512cbd3314849982014dc199a7b2148cf5c91cedc6db629acdf5e09b xz-5.6.4.tar.gz
829ccfe79d769748f7557e7a4429a64d06858e27e1e362e25d01ab7b931d9c95 xz-5.6.4.tar.xz
e5403003b4698967680ca57c733e11fdc110426858091cc83c8df8f4322957ee xz-5.6.4-windows.zip
a69d83338facb6e9a45147384beb7d7d8ed53b5e2a41e8c059ae0d0260b356ac xz-5.6.4-windows.7z
31199267fba9588305c0df3de5d6d9898d00c4ee02f5eee19f79baa427628519 xz-5.7.1alpha.tar
ae655a4bec0820f750985ecd270d6802ae0a987bb1cb03d41d9afa37abc2e87c xz-5.7.1alpha.tar.gz
c859193b8619f6818326141ee041870d9b76ba83f55c3c94ebcfcb71e1f79e5d xz-5.7.1alpha.tar.xz
b75a932fa38515e5d3953242b1e3c2e7edd882504b24280f0e9776d596e9cc0d xz-5.7.2beta.tar
608ed92561c9f27a1eead76653c6f63c6a40d0a20ec91753ed508ba40f9703b3 xz-5.7.2beta.tar.gz
98a61e45e5917b93ce17d826ef2d11f9331951882b2558675cdf115cdf3f77c8 xz-5.7.2beta.tar.xz
bdff4615bf19c46042bced4d7b8c52bdacce61261b39db464d482692c948dd02 xz-5.8.0.tar
8c107270289807e2047f35d687b4d7a5bb029137f7c89ebdcfa909cb3b674440 xz-5.8.0.tar.bz2
b523c5e47d1490338c5121bdf2a6ecca2bcf0dce05a83ad40a830029cbe6679b xz-5.8.0.tar.gz
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

View File

@ -45,15 +45,13 @@ SRCS_C = \
../src/common/tuklib_cpucores.c \
../src/common/tuklib_exit.c \
../src/common/tuklib_mbstr_fw.c \
../src/common/tuklib_mbstr_nonprint.c \
../src/common/tuklib_mbstr_width.c \
../src/common/tuklib_mbstr_wrap.c \
../src/common/tuklib_open_stdxxx.c \
../src/common/tuklib_physmem.c \
../src/common/tuklib_progname.c \
../src/liblzma/check/check.c \
../src/liblzma/check/crc32_fast.c \
../src/liblzma/check/crc64_fast.c \
../src/liblzma/check/crc32_table.c \
../src/liblzma/check/crc64_table.c \
../src/liblzma/check/sha256.c \
../src/liblzma/common/alone_decoder.c \
../src/liblzma/common/alone_encoder.c \

View File

@ -12,9 +12,6 @@
/* Define to 1 if sha256 integrity check is enabled. */
#define HAVE_CHECK_SHA256 1
/* Define to 1 if the 32-bit x86 CRC assembly files are used. */
#define HAVE_CRC_X86_ASM 1
/* Define to 1 if any of HAVE_DECODER_foo have been defined. */
#define HAVE_DECODERS 1

View File

@ -8,10 +8,10 @@ dnl with or without modifications, as long as this notice is preserved.
# This version has been modified to reduce complexity since we only need
# GNU getopt_long and do not care about replacing getopt.
#
# Pass gl_replace_getopt=yes (or any non-empty value instead of "yes") as
# an argument to configure to force the use of the getopt_long replacement.
# Check for a POSIX compliant getopt function with GNU extensions (such as
# options with optional arguments) and the functions getopt_long,
# getopt_long_only.
AC_DEFUN([gl_FUNC_GETOPT_GNU],
[
AC_REQUIRE([gl_GETOPT_CHECK_HEADERS])
@ -23,6 +23,8 @@ AC_DEFUN([gl_FUNC_GETOPT_GNU],
AC_DEFUN([gl_GETOPT_CHECK_HEADERS],
[
gl_replace_getopt=
if test -z "$gl_replace_getopt"; then
AC_CHECK_HEADERS([getopt.h], [], [gl_replace_getopt=yes])
fi

View File

@ -1,14 +1,13 @@
dnl SPDX-License-Identifier: FSFULLR
# posix-shell.m4
# serial 1
dnl Copyright (C) 2007-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
# Find a POSIX-conforming shell.
# Copyright (C) 2007-2008 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# Written by Paul Eggert.
# If a POSIX-conforming shell can be found, set POSIX_SHELL and
@ -20,22 +19,22 @@ AC_DEFUN([gl_POSIX_SHELL],
AC_CACHE_CHECK([for a shell that conforms to POSIX], [gl_cv_posix_shell],
[gl_test_posix_shell_script='
func_return () {
(exit [$]1)
(exit [$]1)
}
func_success () {
func_return 0
func_return 0
}
func_failure () {
func_return 1
func_return 1
}
func_ret_success () {
return 0
return 0
}
func_ret_failure () {
return 1
return 1
}
subshell_umask_sanity () {
(umask 22; (umask 0); test $(umask) -eq 22)
(umask 22; (umask 0); test $(umask) -eq 22)
}
test "[$](echo foo)" = foo &&
func_success &&
@ -46,11 +45,11 @@ AC_DEFUN([gl_POSIX_SHELL],
subshell_umask_sanity
'
for gl_cv_posix_shell in \
"$CONFIG_SHELL" "$SHELL" /bin/sh /bin/bash /bin/ksh /bin/sh5 no; do
"$CONFIG_SHELL" "$SHELL" /bin/sh /bin/bash /bin/ksh /bin/sh5 no; do
case $gl_cv_posix_shell in
/*)
"$gl_cv_posix_shell" -c "$gl_test_posix_shell_script" 2>/dev/null \
&& break;;
"$gl_cv_posix_shell" -c "$gl_test_posix_shell_script" 2>/dev/null \
&& break;;
esac
done])

View File

@ -27,5 +27,5 @@
AC_DEFUN_ONCE([TUKLIB_MBSTR], [
AC_REQUIRE([TUKLIB_COMMON])
AC_FUNC_MBRTOWC
AC_CHECK_FUNCS([wcwidth vasprintf])
AC_CHECK_FUNCS([wcwidth])
])dnl

View File

@ -9,9 +9,7 @@ fr
hr
hu
it
ka
ko
nl
pl
pt
pt_BR

View File

@ -14,7 +14,7 @@ subdir = po
top_builddir = ..
# These options get passed to xgettext.
XGETTEXT_OPTIONS = --add-location=file --no-wrap --keyword=_ --keyword=N_ '--keyword=W_:1,"This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care."'
XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ --add-location=file --no-wrap
# This is the copyright holder that gets inserted into the header of the
# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding

View File

@ -15,4 +15,3 @@ src/xz/suffix.c
src/xz/util.c
src/lzmainfo/lzmainfo.c
src/common/tuklib_exit.c
src/liblzma/common/string_conversion.c

960
po/ca.po

File diff suppressed because it is too large Load Diff

963
po/cs.po

File diff suppressed because it is too large Load Diff

687
po/da.po
View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: xz 5.2.4\n"
"Report-Msgid-Bugs-To: xz@tukaani.org\n"
"POT-Creation-Date: 2025-01-29 20:59+0200\n"
"POT-Creation-Date: 2024-05-29 17:41+0300\n"
"PO-Revision-Date: 2019-03-04 23:08+0100\n"
"Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n"
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
@ -55,8 +55,7 @@ msgstr "Kun en fil kan angives med »--files« eller »--files0«."
#. TRANSLATORS: This is a translatable
#. string because French needs a space
#. before the colon ("%s : %s").
#: src/xz/args.c src/xz/coder.c src/xz/file_io.c src/xz/list.c src/xz/options.c
#: src/xz/util.c
#: src/xz/args.c src/xz/coder.c src/xz/file_io.c src/xz/list.c
#, fuzzy, c-format
#| msgid "%s: "
msgid "%s: %s"
@ -232,18 +231,6 @@ msgstr "%s: Kan ikke angive filgruppen: %s"
msgid "%s: Cannot set the file permissions: %s"
msgstr "%s: Kan ikke angive filtilladelser: %s"
#: src/xz/file_io.c
#, fuzzy, c-format
#| msgid "%s: Closing the file failed: %s"
msgid "%s: Synchronizing the file failed: %s"
msgstr "%s: Lukning af filen fejlede: %s"
#: src/xz/file_io.c
#, fuzzy, c-format
#| msgid "%s: Closing the file failed: %s"
msgid "%s: Synchronizing the directory of the file failed: %s"
msgstr "%s: Lukning af filen fejlede: %s"
#: src/xz/file_io.c
#, c-format
msgid "Error getting the file status flags from standard input: %s"
@ -293,18 +280,6 @@ msgstr "Der opstod en fejl under gendannelse af statusflagene til standardind: %
msgid "Error getting the file status flags from standard output: %s"
msgstr "Der opstod en fejl under indhentelse af filstatusflag fra standardud: %s"
#: src/xz/file_io.c
#, fuzzy, c-format
#| msgid "%s: Closing the file failed: %s"
msgid "%s: Opening the directory failed: %s"
msgstr "%s: Lukning af filen fejlede: %s"
#: src/xz/file_io.c
#, fuzzy, c-format
#| msgid "%s: Not a regular file, skipping"
msgid "%s: Destination is not a regular file"
msgstr "%s: Er ikke en normal fil, udelader"
#: src/xz/file_io.c
#, c-format
msgid "Error restoring the O_APPEND flag to standard output: %s"
@ -587,9 +562,8 @@ msgid "No"
msgstr "Nej"
#: src/xz/list.c
#, fuzzy
#| msgid " Minimum XZ Utils version: %s\n"
msgid "Minimum XZ Utils version:"
#, c-format
msgid " Minimum XZ Utils version: %s\n"
msgstr " Minimum for XZ Utils-version: %s\n"
#. TRANSLATORS: %s is an integer. Only the plural form of this
@ -644,7 +618,7 @@ msgstr ""
#. of the line in messages. Usually it becomes "xz: ".
#. This is a translatable string because French needs
#. a space before a colon.
#: src/xz/message.c src/lzmainfo/lzmainfo.c
#: src/xz/message.c
#, c-format
msgid "%s: "
msgstr "%s: "
@ -706,497 +680,305 @@ msgstr "%s: Filterkæde: %s\n"
msgid "Try '%s --help' for more information."
msgstr "Prøv »%s --help« for yderligere information."
#: src/xz/message.c src/lzmainfo/lzmainfo.c
#, c-format
msgid "Error printing the help text (error code %d)"
msgstr ""
#: src/xz/message.c
#, c-format
msgid "Usage: %s [OPTION]... [FILE]...\n"
msgid ""
"Usage: %s [OPTION]... [FILE]...\n"
"Compress or decompress FILEs in the .xz format.\n"
"\n"
msgstr ""
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "Compress or decompress FILEs in the .xz format."
msgstr ""
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
#, fuzzy
#| msgid "Mandatory arguments to long options are mandatory for short options too.\n"
msgid "Mandatory arguments to long options are mandatory for short options too."
msgid "Mandatory arguments to long options are mandatory for short options too.\n"
msgstr ""
"Obligatoriske argumenter til lange tilvalg er også obligatoriske for korte\n"
"tilvalg.\n"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
#, fuzzy
#| msgid " Operation mode:\n"
msgid "Operation mode:"
msgid " Operation mode:\n"
msgstr " Operationstilstand:\n"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
#, fuzzy
#| msgid "Memory usage limit for decompression: "
msgid "force compression"
msgstr "Grænse for hukommelsesforbug til dekomprimering: "
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
#, fuzzy
#| msgid "Memory usage limit for decompression: "
msgid "force decompression"
msgstr "Grænse for hukommelsesforbug til dekomprimering: "
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "test compressed file integrity"
msgid ""
" -z, --compress force compression\n"
" -d, --decompress force decompression\n"
" -t, --test test compressed file integrity\n"
" -l, --list list information about .xz files"
msgstr ""
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "list information about .xz files"
msgstr ""
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
#, fuzzy
#| msgid ""
#| "\n"
#| " Operation modifiers:\n"
msgid "Operation modifiers:"
msgid ""
"\n"
" Operation modifiers:\n"
msgstr ""
"\n"
"Operationsændrere:\n"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "keep (don't delete) input files"
msgstr ""
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "force overwrite of output file and (de)compress links"
msgstr ""
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
#, fuzzy
#| msgid "Writing to standard output failed"
msgid "write to standard output and don't delete input files"
msgstr "Skrivning til standardud mislykkedes"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "don't synchronize the output file to the storage device before removing the input file"
msgstr ""
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "decompress only the first stream, and silently ignore possible remaining input data"
msgstr ""
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "do not create sparse files when decompressing"
msgid ""
" -k, --keep keep (don't delete) input files\n"
" -f, --force force overwrite of output file and (de)compress links\n"
" -c, --stdout write to standard output and don't delete input files"
msgstr ""
#: src/xz/message.c
msgid ".SUF"
msgstr ""
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "use the suffix '.SUF' on compressed files"
msgid ""
" --single-stream decompress only the first stream, and silently\n"
" ignore possible remaining input data"
msgstr ""
#: src/xz/message.c
msgid "FILE"
msgstr ""
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "read filenames to process from FILE; if FILE is omitted, filenames are read from the standard input; filenames must be terminated with the newline character"
msgstr ""
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "like --files but use the null character as terminator"
msgstr ""
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "Basic file format and compression options:"
msgid ""
" --no-sparse do not create sparse files when decompressing\n"
" -S, --suffix=.SUF use the suffix '.SUF' on compressed files\n"
" --files[=FILE] read filenames to process from FILE; if FILE is\n"
" omitted, filenames are read from the standard input;\n"
" filenames must be terminated with the newline character\n"
" --files0[=FILE] like --files but use the null character as terminator"
msgstr ""
#: src/xz/message.c
msgid "FORMAT"
msgstr ""
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "file format to encode or decode; possible values are 'auto' (default), 'xz', 'lzma', 'lzip', and 'raw'"
msgid ""
"\n"
" Basic file format and compression options:\n"
msgstr ""
#: src/xz/message.c
msgid "NAME"
msgstr ""
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "integrity check type: 'none' (use with caution), 'crc32', 'crc64' (default), or 'sha256'"
msgstr ""
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "don't verify the integrity check when decompressing"
msgstr ""
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "compression preset; default is 6; take compressor *and* decompressor memory usage into account before using 7-9!"
msgstr ""
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "try to improve compression ratio by using more CPU time; does not affect decompressor memory requirements"
msgstr ""
#. TRANSLATORS: Short for NUMBER. A longer string is fine but
#. wider than 5 columns makes --long-help a few lines longer.
#: src/xz/message.c
msgid "NUM"
msgstr ""
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "use at most NUM threads; the default is 0 which uses as many threads as there are processor cores"
msgid ""
" -F, --format=FMT file format to encode or decode; possible values are\n"
" 'auto' (default), 'xz', 'lzma', 'lzip', and 'raw'\n"
" -C, --check=CHECK integrity check type: 'none' (use with caution),\n"
" 'crc32', 'crc64' (default), or 'sha256'"
msgstr ""
#: src/xz/message.c
msgid "SIZE"
msgstr ""
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "start a new .xz block after every SIZE bytes of input; use this to set the block size for threaded compression"
msgid " --ignore-check don't verify the integrity check when decompressing"
msgstr ""
#: src/xz/message.c
msgid "BLOCKS"
msgstr ""
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "start a new .xz block after the given comma-separated intervals of uncompressed data; optionally, specify a filter chain number (0-9) followed by a ':' before the uncompressed data size"
msgstr ""
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "when compressing, if more than NUM milliseconds has passed since the previous flush and reading more input would block, all pending data is flushed out"
msgid ""
" -0 ... -9 compression preset; default is 6; take compressor *and*\n"
" decompressor memory usage into account before using 7-9!"
msgstr ""
#: src/xz/message.c
msgid "LIMIT"
msgid ""
" -e, --extreme try to improve compression ratio by using more CPU time;\n"
" does not affect decompressor memory requirements"
msgstr ""
#: src/xz/message.c
msgid ""
" -T, --threads=NUM use at most NUM threads; the default is 0 which uses\n"
" as many threads as there are processor cores"
msgstr ""
#: src/xz/message.c
msgid ""
" --block-size=SIZE\n"
" start a new .xz block after every SIZE bytes of input;\n"
" use this to set the block size for threaded compression"
msgstr ""
#: src/xz/message.c
msgid ""
" --block-list=BLOCKS\n"
" start a new .xz block after the given comma-separated\n"
" intervals of uncompressed data; optionally, specify a\n"
" filter chain number (0-9) followed by a ':' before the\n"
" uncompressed data size"
msgstr ""
#: src/xz/message.c
msgid ""
" --flush-timeout=TIMEOUT\n"
" when compressing, if more than TIMEOUT milliseconds has\n"
" passed since the previous flush and reading more input\n"
" would block, all pending data is flushed out"
msgstr ""
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
#, no-c-format
msgid "set memory usage limit for compression, decompression, threaded decompression, or all of these; LIMIT is in bytes, % of RAM, or 0 for defaults"
msgstr ""
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "if compression settings exceed the memory usage limit, give an error instead of adjusting the settings downwards"
msgstr ""
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "Custom filter chain for compression (an alternative to using presets):"
msgid ""
" --memlimit-compress=LIMIT\n"
" --memlimit-decompress=LIMIT\n"
" --memlimit-mt-decompress=LIMIT\n"
" -M, --memlimit=LIMIT\n"
" set memory usage limit for compression, decompression,\n"
" threaded decompression, or all of these; LIMIT is in\n"
" bytes, % of RAM, or 0 for defaults"
msgstr ""
#: src/xz/message.c
msgid "FILTERS"
msgstr ""
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "set the filter chain using the liblzma filter string syntax; use --filters-help for more information"
msgstr ""
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "set additional filter chains using the liblzma filter string syntax to use with --block-list"
msgstr ""
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "display more information about the liblzma filter string syntax and exit"
msgstr ""
#. TRANSLATORS: Short for OPTIONS.
#: src/xz/message.c
msgid "OPTS"
msgstr ""
#. TRANSLATORS: Use semicolon (or its fullwidth form)
#. in "(valid values; default)" even if it is weird in
#. your language. There are non-translatable strings
#. that look like "(foo, bar, baz; foo)" which list
#. the supported values and the default value.
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "LZMA1 or LZMA2; OPTS is a comma-separated list of zero or more of the following options (valid values; default):"
msgstr ""
#. TRANSLATORS: Short for PRESET. A longer string is
#. fine but wider than 4 columns makes --long-help
#. one line longer.
#: src/xz/message.c
msgid "PRE"
msgstr ""
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "reset options to a preset"
msgstr ""
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "dictionary size"
msgstr ""
#. TRANSLATORS: The word "literal" in "literal context
#. bits" means how many "context bits" to use when
#. encoding literals. A literal is a single 8-bit
#. byte. It doesn't mean "literally" here.
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "number of literal context bits"
msgstr ""
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "number of literal position bits"
msgstr ""
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "number of position bits"
msgid ""
" --no-adjust if compression settings exceed the memory usage limit,\n"
" give an error instead of adjusting the settings downwards"
msgstr ""
#: src/xz/message.c
msgid "MODE"
msgid ""
"\n"
" Custom filter chain for compression (alternative for using presets):"
msgstr ""
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
#, fuzzy
#| msgid " Operation mode:\n"
msgid "compression mode"
msgstr " Operationstilstand:\n"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "nice length of a match"
msgid ""
"\n"
" --filters=FILTERS set the filter chain using the liblzma filter string\n"
" syntax; use --filters-help for more information"
msgstr ""
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "match finder"
msgid ""
" --filters1=FILTERS ... --filters9=FILTERS\n"
" set additional filter chains using the liblzma filter\n"
" string syntax to use with --block-list"
msgstr ""
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "maximum search depth; 0=automatic (default)"
msgid ""
" --filters-help display more information about the liblzma filter string\n"
" syntax and exit."
msgstr ""
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "x86 BCJ filter (32-bit and 64-bit)"
msgid ""
"\n"
" --lzma1[=OPTS] LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n"
" --lzma2[=OPTS] more of the following options (valid values; default):\n"
" preset=PRE reset options to a preset (0-9[e])\n"
" dict=NUM dictionary size (4KiB - 1536MiB; 8MiB)\n"
" lc=NUM number of literal context bits (0-4; 3)\n"
" lp=NUM number of literal position bits (0-4; 0)\n"
" pb=NUM number of position bits (0-4; 2)\n"
" mode=MODE compression mode (fast, normal; normal)\n"
" nice=NUM nice length of a match (2-273; 64)\n"
" mf=NAME match finder (hc3, hc4, bt2, bt3, bt4; bt4)\n"
" depth=NUM maximum search depth; 0=automatic (default)"
msgstr ""
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "ARM BCJ filter"
msgid ""
"\n"
" --x86[=OPTS] x86 BCJ filter (32-bit and 64-bit)\n"
" --arm[=OPTS] ARM BCJ filter\n"
" --armthumb[=OPTS] ARM-Thumb BCJ filter\n"
" --arm64[=OPTS] ARM64 BCJ filter\n"
" --powerpc[=OPTS] PowerPC BCJ filter (big endian only)\n"
" --ia64[=OPTS] IA-64 (Itanium) BCJ filter\n"
" --sparc[=OPTS] SPARC BCJ filter\n"
" --riscv[=OPTS] RISC-V BCJ filter\n"
" Valid OPTS for all BCJ filters:\n"
" start=NUM start offset for conversions (default=0)"
msgstr ""
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "ARM-Thumb BCJ filter"
msgid ""
"\n"
" --delta[=OPTS] Delta filter; valid OPTS (valid values; default):\n"
" dist=NUM distance between bytes being subtracted\n"
" from each other (1-256; 1)"
msgstr ""
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "ARM64 BCJ filter"
msgstr ""
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "PowerPC BCJ filter (big endian only)"
msgstr ""
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "IA-64 (Itanium) BCJ filter"
msgstr ""
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "SPARC BCJ filter"
msgstr ""
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "RISC-V BCJ filter"
msgstr ""
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "Valid OPTS for all BCJ filters:"
msgstr ""
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "start offset for conversions (default=0)"
msgstr ""
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "Delta filter; valid OPTS (valid values; default):"
msgstr ""
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "distance between bytes being subtracted from each other"
msgstr ""
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
#, fuzzy
#| msgid ""
#| "\n"
#| " Other options:\n"
msgid "Other options:"
msgid ""
"\n"
" Other options:\n"
msgstr ""
"\n"
"Andre tilvalg:\n"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "suppress warnings; specify twice to suppress errors too"
msgid ""
" -q, --quiet suppress warnings; specify twice to suppress errors too\n"
" -v, --verbose be verbose; specify twice for even more verbose"
msgstr ""
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "be verbose; specify twice for even more verbose"
msgid " -Q, --no-warn make warnings not affect the exit status"
msgstr ""
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "make warnings not affect the exit status"
msgstr ""
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
#, fuzzy
#| msgid " --robot use machine-parsable messages (useful for scripts)"
msgid "use machine-parsable messages (useful for scripts)"
msgid " --robot use machine-parsable messages (useful for scripts)"
msgstr ""
" --robot brug beskeder der kan fortolkes maskinelt (nyttigt\n"
" for skripter)"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "display the total amount of RAM and the currently active memory usage limits, and exit"
msgid ""
" --info-memory display the total amount of RAM and the currently active\n"
" memory usage limits, and exit"
msgstr ""
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "display the short help (lists only the basic options)"
msgid ""
" -h, --help display the short help (lists only the basic options)\n"
" -H, --long-help display this long help and exit"
msgstr ""
" -h, --help vis den korte hjælpetekst (viser kun grundlæggende\n"
" tilvalg)\n"
" -H, --long-help vis den lange hjælpetekst og afslut"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "display this long help and exit"
msgid ""
" -h, --help display this short help and exit\n"
" -H, --long-help display the long help (lists also the advanced options)"
msgstr ""
" -h, --help vis den korte hjælpetekst og afslut\n"
" -H, --long-help vis den lange hjælpetekst (viser også de avancerede\n"
" tilvalg)"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "display this short help and exit"
msgstr ""
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "display the long help (lists also the advanced options)"
msgstr ""
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
#, fuzzy
#| msgid " -V, --version display the version number and exit"
msgid "display the version number and exit"
msgid " -V, --version display the version number and exit"
msgstr " -V, --version vis versionsnummer og afslut"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c src/lzmainfo/lzmainfo.c
#, fuzzy
#| msgid ""
#| "\n"
#| "With no FILE, or when FILE is -, read standard input.\n"
msgid "With no FILE, or when FILE is -, read standard input."
#, c-format
msgid ""
"\n"
"With no FILE, or when FILE is -, read standard input.\n"
msgstr ""
"\n"
"Med ingen FIL, eller når FIL er -, læs standardind.\n"
#. TRANSLATORS: This message indicates the bug reporting
#. address for this package. Please add another line saying
#. "\nReport translation bugs to <...>." with the email or WWW
#. address for translation bugs. Thanks!
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#. TRANSLATORS: This message indicates the bug reporting address
#. for this package. Please add _another line_ saying
#. "Report translation bugs to <...>\n" with the email or WWW
#. address for translation bugs. Thanks.
#: src/xz/message.c src/lzmainfo/lzmainfo.c
#, fuzzy, c-format
#| msgid "Report bugs to <%s> (in English or Finnish).\n"
msgid "Report bugs to <%s> (in English or Finnish)."
#, c-format
msgid "Report bugs to <%s> (in English or Finnish).\n"
msgstr ""
"Rapporter fejl til <%s> (på engelsk eller finsk).\n"
"Rapporter oversættelsesfejl til <dansk@dansk-gruppen.dk>.\n"
#. TRANSLATORS: The first %s is the name of this software.
#. The second <%s> is an URL.
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c src/lzmainfo/lzmainfo.c
#, fuzzy, c-format
#| msgid "%s home page: <%s>\n"
msgid "%s home page: <%s>"
#, c-format
msgid "%s home page: <%s>\n"
msgstr "%s hjemmeside: <%s>\n"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE."
msgstr "DETTE ER EN UDVIKLINGSVERSION - BRUG IKKE I PRODUKTION."
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
#, c-format
msgid "Filter chains are set using the --filters=FILTERS or --filters1=FILTERS ... --filters9=FILTERS options. Each filter in the chain can be separated by spaces or '--'. Alternatively a preset %s can be specified instead of a filter chain."
msgid ""
"Filter chains are set using the --filters=FILTERS or\n"
"--filters1=FILTERS ... --filters9=FILTERS options. Each filter in the chain\n"
"can be separated by spaces or '--'. Alternatively a preset <0-9>[e] can be\n"
"specified instead of a filter chain.\n"
msgstr ""
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
#, fuzzy
#| msgid "Unsupported filter chain or filter options"
msgid "The supported filters and their options are:"
msgstr "Filterkæde eller filterindstillinger er ikke understøttet"
#: src/xz/options.c src/liblzma/common/string_conversion.c
#, fuzzy
#: src/xz/options.c
#, fuzzy, c-format
#| msgid "%s: Options must be `name=value' pairs separated with commas"
msgid "Options must be 'name=value' pairs separated with commas"
msgid "%s: Options must be 'name=value' pairs separated with commas"
msgstr "%s: Tilvalg skal være »navne=værdi«-par adskilt med kommaer"
#: src/xz/options.c
@ -1204,10 +986,9 @@ msgstr "%s: Tilvalg skal være »navne=værdi«-par adskilt med kommaer"
msgid "%s: Invalid option name"
msgstr "%s: Ugyldigt tilvalgsnavn"
#: src/xz/options.c src/liblzma/common/string_conversion.c
#, fuzzy
#| msgid "%s: Invalid option value"
msgid "Invalid option value"
#: src/xz/options.c
#, c-format
msgid "%s: Invalid option value"
msgstr "%s: Ugyldigt tilvalgsværdi"
#: src/xz/options.c
@ -1215,7 +996,7 @@ msgstr "%s: Ugyldigt tilvalgsværdi"
msgid "Unsupported LZMA1/LZMA2 preset: %s"
msgstr "LZMA1/LZMA2-forhåndskonfiguration er ikke understøttet: %s"
#: src/xz/options.c src/liblzma/common/string_conversion.c
#: src/xz/options.c
msgid "The sum of lc and lp must not exceed 4"
msgstr "Summen af lc og lp må ikke være højere end 4"
@ -1235,10 +1016,9 @@ msgstr "%s: Filen har allrede endelsen »%s«, udelader."
msgid "%s: Invalid filename suffix"
msgstr "%s: Ugyldig filnavnendelse"
#: src/xz/util.c src/liblzma/common/string_conversion.c
#, fuzzy
#| msgid "%s: Value is not a non-negative decimal integer"
msgid "Value is not a non-negative decimal integer"
#: src/xz/util.c
#, c-format
msgid "%s: Value is not a non-negative decimal integer"
msgstr "%s: Værdi er ikke et positivt decimalheltal"
#: src/xz/util.c
@ -1268,12 +1048,9 @@ msgstr "Komprimerede data kan ikke skrives til en terminal"
#: src/lzmainfo/lzmainfo.c
#, c-format
msgid "Usage: %s [--help] [--version] [FILE]...\n"
msgstr ""
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/lzmainfo/lzmainfo.c
msgid "Show information stored in the .lzma file header."
msgid ""
"Usage: %s [--help] [--version] [FILE]...\n"
"Show information stored in the .lzma file header"
msgstr ""
#: src/lzmainfo/lzmainfo.c
@ -1294,96 +1071,6 @@ msgstr "Skrivning til standardud mislykkedes"
msgid "Unknown error"
msgstr "Ukendt fejl"
#: src/liblzma/common/string_conversion.c
#, fuzzy
#| msgid "Unsupported options"
msgid "Unsupported preset"
msgstr "Tilvalg er ikke understøttede"
#: src/liblzma/common/string_conversion.c
#, fuzzy
#| msgid "Unsupported filter chain or filter options"
msgid "Unsupported flag in the preset"
msgstr "Filterkæde eller filterindstillinger er ikke understøttet"
#: src/liblzma/common/string_conversion.c
#, fuzzy
#| msgid "%s: Invalid option name"
msgid "Unknown option name"
msgstr "%s: Ugyldigt tilvalgsnavn"
#: src/liblzma/common/string_conversion.c
msgid "Option value cannot be empty"
msgstr ""
#: src/liblzma/common/string_conversion.c
msgid "Value out of range"
msgstr ""
#: src/liblzma/common/string_conversion.c
msgid "This option does not support any multiplier suffixes"
msgstr ""
#. TRANSLATORS: Don't translate the
#. suffixes "KiB", "MiB", or "GiB"
#. because a user can only specify
#. untranslated suffixes.
#: src/liblzma/common/string_conversion.c
#, fuzzy
#| msgid "%s: Invalid multiplier suffix"
msgid "Invalid multiplier suffix (KiB, MiB, or GiB)"
msgstr "%s: Ugyldig multiplikatorendelse"
#: src/liblzma/common/string_conversion.c
#, fuzzy
#| msgid "%s: Unknown file format type"
msgid "Unknown filter name"
msgstr "%s: Ukendt filformattype"
#: src/liblzma/common/string_conversion.c
#, fuzzy
#| msgid "LZMA1 cannot be used with the .xz format"
msgid "This filter cannot be used in the .xz format"
msgstr "LZMA1 kan ikke bruges med .xz-formatet"
#: src/liblzma/common/string_conversion.c
msgid "Memory allocation failed"
msgstr ""
#: src/liblzma/common/string_conversion.c
msgid "Empty string is not allowed, try '6' if a default value is needed"
msgstr ""
#: src/liblzma/common/string_conversion.c
#, fuzzy
#| msgid "Maximum number of filters is four"
msgid "The maximum number of filters is four"
msgstr "Maksimalt antal filtre er fire"
#: src/liblzma/common/string_conversion.c
msgid "Filter name is missing"
msgstr ""
#: src/liblzma/common/string_conversion.c
msgid "Invalid filter chain ('lzma2' missing at the end?)"
msgstr ""
#~ msgid ""
#~ " -h, --help display the short help (lists only the basic options)\n"
#~ " -H, --long-help display this long help and exit"
#~ msgstr ""
#~ " -h, --help vis den korte hjælpetekst (viser kun grundlæggende\n"
#~ " tilvalg)\n"
#~ " -H, --long-help vis den lange hjælpetekst og afslut"
#~ msgid ""
#~ " -h, --help display this short help and exit\n"
#~ " -H, --long-help display the long help (lists also the advanced options)"
#~ msgstr ""
#~ " -h, --help vis den korte hjælpetekst og afslut\n"
#~ " -H, --long-help vis den lange hjælpetekst (viser også de avancerede\n"
#~ " tilvalg)"
#~ msgid "Sandbox is disabled due to incompatible command line arguments"
#~ msgstr "Sandkassen er deaktiveret på grund af inkompatible kommandolinjeargumenter"

862
po/de.po

File diff suppressed because it is too large Load Diff

962
po/eo.po

File diff suppressed because it is too large Load Diff

865
po/es.po

File diff suppressed because it is too large Load Diff

946
po/fi.po

File diff suppressed because it is too large Load Diff

932
po/fr.po

File diff suppressed because it is too large Load Diff

1037
po/hr.po

File diff suppressed because it is too large Load Diff

962
po/hu.po

File diff suppressed because it is too large Load Diff

1036
po/it.po

File diff suppressed because it is too large Load Diff

1264
po/ka.po

File diff suppressed because it is too large Load Diff

826
po/ko.po
View File

@ -1,14 +1,14 @@
# SPDX-License-Identifier: 0BSD
# Korean translation for the xz.
# This file is published under the BSD Zero Clause License.
# Seong-ho Cho <darkcircle.0426@gmail.com>, 2019, 2022, 2023, 2024, 2025.
# Seong-ho Cho <darkcircle.0426@gmail.com>, 2019, 2022, 2023, 2024.
#
msgid ""
msgstr ""
"Project-Id-Version: xz 5.7.1-dev1\n"
"Project-Id-Version: xz 5.6.0-pre2\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 23:22+0900\n"
"POT-Creation-Date: 2024-05-29 17:41+0300\n"
"PO-Revision-Date: 2024-02-18 01:45+0900\n"
"Last-Translator: Seong-ho Cho <darkcircle.0426@gmail.com>\n"
"Language-Team: Korean <translation-team-ko@googlegroups.com>\n"
"Language: ko\n"
@ -17,7 +17,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
"X-Generator: Poedit 3.5\n"
"X-Generator: Poedit 3.4.2\n"
#: src/xz/args.c
#, c-format
@ -55,8 +55,7 @@ msgstr "'--files' 또는 '--files0' 옵션에는 하나의 파일만 지정할
#. TRANSLATORS: This is a translatable
#. string because French needs a space
#. before the colon ("%s : %s").
#: src/xz/args.c src/xz/coder.c src/xz/file_io.c src/xz/list.c src/xz/options.c
#: src/xz/util.c
#: src/xz/args.c src/xz/coder.c src/xz/file_io.c src/xz/list.c
#, c-format
msgid "%s: %s"
msgstr "%s: %s"
@ -223,16 +222,6 @@ msgstr "%s: 파일 소유 그룹을 설정할 수 없음: %s"
msgid "%s: Cannot set the file permissions: %s"
msgstr "%s: 파일 권한을 설정할 수 없음: %s"
#: src/xz/file_io.c
#, c-format
msgid "%s: Synchronizing the file failed: %s"
msgstr "%s: 파일 동기화 실패: %s"
#: src/xz/file_io.c
#, c-format
msgid "%s: Synchronizing the directory of the file failed: %s"
msgstr "%s: 파일의 디렉터리 동기화 실패: %s"
#: src/xz/file_io.c
#, c-format
msgid "Error getting the file status flags from standard input: %s"
@ -282,16 +271,6 @@ msgstr "표준 입력으로의 상태 플래그 복원 오류: %s"
msgid "Error getting the file status flags from standard output: %s"
msgstr "표준 출력에서 파일 상태 플래그 가져오기 오류: %s"
#: src/xz/file_io.c
#, c-format
msgid "%s: Opening the directory failed: %s"
msgstr "%s: 디렉터리 열기 실패: %s"
#: src/xz/file_io.c
#, c-format
msgid "%s: Destination is not a regular file"
msgstr "%s: 대상이 일반 파일이 아닙니다"
#: src/xz/file_io.c
#, c-format
msgid "Error restoring the O_APPEND flag to standard output: %s"
@ -555,8 +534,9 @@ msgid "No"
msgstr "아니요"
#: src/xz/list.c
msgid "Minimum XZ Utils version:"
msgstr "최소 XZ 유틸리티 버전:"
#, c-format
msgid " Minimum XZ Utils version: %s\n"
msgstr " 최소 XZ 유틸리티 버전: %s\n"
#. TRANSLATORS: %s is an integer. Only the plural form of this
#. message is used (e.g. "2 files"). Test with "xz -l foo.xz bar.xz".
@ -609,7 +589,7 @@ msgstr "표준 출력에서 파일 이름을 읽을 때 표준 입력에서 데
#. of the line in messages. Usually it becomes "xz: ".
#. This is a translatable string because French needs
#. a space before a colon.
#: src/xz/message.c src/lzmainfo/lzmainfo.c
#: src/xz/message.c
#, c-format
msgid "%s: "
msgstr "%s: "
@ -670,471 +650,412 @@ msgstr "%s: 필터 체인: %s\n"
msgid "Try '%s --help' for more information."
msgstr "자세한 사용법은 '%s --help'를 입력하십시오."
#: src/xz/message.c src/lzmainfo/lzmainfo.c
#, c-format
msgid "Error printing the help text (error code %d)"
msgstr "도움말 텍스트 출력 오류(오류 코드 %d)"
#: src/xz/message.c
#, c-format
msgid "Usage: %s [OPTION]... [FILE]...\n"
msgstr "사용법: %s [옵션]... [파일]...\n"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "Compress or decompress FILEs in the .xz format."
msgstr ".xz 형식의 <파일>로 압축하거나 압축을 해제합니다."
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "Mandatory arguments to long options are mandatory for short options too."
msgstr "긴 옵션 버전의 필수 인자는 짧은 옵션에도 해당합니다."
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "Operation mode:"
msgstr "동작 방식:"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "force compression"
msgstr "강제 압축"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "force decompression"
msgstr "강제 압축 해제"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "test compressed file integrity"
msgstr "압축 파일 무결성을 시험합니다"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "list information about .xz files"
msgstr ".xz 파일에 대한 정보를 보여줍니다"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "Operation modifiers:"
msgstr "동작 지정자:"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "keep (don't delete) input files"
msgstr "입력 파일을 그대로 둡니다 (삭제 안함)"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "force overwrite of output file and (de)compress links"
msgstr "출력 파일을 강제로 덮어쓰고 링크 압축을 진행(해제)합니다"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "write to standard output and don't delete input files"
msgstr "표준 출력에 기록하고 입력 파일을 삭제하지 않습니다"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "don't synchronize the output file to the storage device before removing the input file"
msgstr "입력 파일을 제거하기 전 저장 장치로 출력 파일을 동기화하지 않습니다"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "decompress only the first stream, and silently ignore possible remaining input data"
msgstr "첫 스트림 압축만 해제하며, 가능한 나머지 입력 데이터는 무시합니다"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "do not create sparse files when decompressing"
msgstr "압축 해제시 희소 처리 파일을 만들지 않습니다"
msgid ""
"Usage: %s [OPTION]... [FILE]...\n"
"Compress or decompress FILEs in the .xz format.\n"
"\n"
msgstr ""
"사용법: %s [<옵션>]... [<파일>]...\n"
".xz 형식(으로) <파일> 다수를 압축(해제)합니다.\n"
"\n"
#: src/xz/message.c
msgid ".SUF"
msgstr ".SUF"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "use the suffix '.SUF' on compressed files"
msgstr "파일 압축시 접미사를 '.SUF'로 사용합니다"
msgid "Mandatory arguments to long options are mandatory for short options too.\n"
msgstr "긴 옵션 버전의 필수 인자는 짧은 옵션 버전에도 해당합니다.\n"
#: src/xz/message.c
msgid "FILE"
msgstr "<파일>"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "read filenames to process from FILE; if FILE is omitted, filenames are read from the standard input; filenames must be terminated with the newline character"
msgstr "<파일>에서 처리할 파일 이름을 읽습니다. <파일> 값을 생략하면, 표준 입ㄹ겨에서 파일 이름을 읽어들입니다. 파일 이름은 개행 문자로 끝나야 합니다"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "like --files but use the null character as terminator"
msgstr "--files와 비슷하나 널 문자를 종결 문자로 사용합니다"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "Basic file format and compression options:"
msgstr "기본 파일 형식 및 압축 옵션:"
msgid " Operation mode:\n"
msgstr " 동작 방식:\n"
#: src/xz/message.c
msgid "FORMAT"
msgstr "<형식>"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "file format to encode or decode; possible values are 'auto' (default), 'xz', 'lzma', 'lzip', and 'raw'"
msgstr "인코딩 또는 디코딩할 파일 형식입니다. 사용할 수 있는 값은 'auto'(기본), 'xz', 'lzma', 'lzip', 'raw'가 있습니다"
msgid ""
" -z, --compress force compression\n"
" -d, --decompress force decompression\n"
" -t, --test test compressed file integrity\n"
" -l, --list list information about .xz files"
msgstr ""
" -z, --compress 압축 강제\n"
" -d, --decompress 압축 해제 강제\n"
" -t, --test 압축 파일 무결성 검사\n"
" -l, --list .xz 파일 정보 출력"
#: src/xz/message.c
msgid "NAME"
msgstr "<이름>"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "integrity check type: 'none' (use with caution), 'crc32', 'crc64' (default), or 'sha256'"
msgstr "무결성 검사 형식: 'none'(사용에 유의), 'crc32', 'crc64' (기본값), 'sha256'"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "don't verify the integrity check when decompressing"
msgstr "압축 해제시"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "compression preset; default is 6; take compressor *and* decompressor memory usage into account before using 7-9!"
msgstr "압축 사전 설정. 기본값은 6 입니다. 7-9를 사용하려면 압축 메모리 사용량*과* 압축 해제 메모리 사용량을 지정하십시오!"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "try to improve compression ratio by using more CPU time; does not affect decompressor memory requirements"
msgstr "CPU 점유 시간을 더 확보하여 압축률을 개선합니다. 압축 해제시 메모리 요구 용량에는 영향을 주지 않습니다"
#. TRANSLATORS: Short for NUMBER. A longer string is fine but
#. wider than 5 columns makes --long-help a few lines longer.
#: src/xz/message.c
msgid "NUM"
msgstr "<숫자>"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "use at most NUM threads; the default is 0 which uses as many threads as there are processor cores"
msgstr "최대 스레드 <개수>를 사용합니다. 기본값은 실제 프로세서 코어 수 만큼의 스레드를 사용하도록 지정하는 0 값입니다"
msgid ""
"\n"
" Operation modifiers:\n"
msgstr ""
"\n"
" 동작 지정:\n"
#: src/xz/message.c
msgid "SIZE"
msgstr "<크기>"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "start a new .xz block after every SIZE bytes of input; use this to set the block size for threaded compression"
msgstr "모든 <크기>의 입력 다음 새 .xz 블록을 시작합니다. 스레드 압축의 블록 크기를 지정할 때 사용합니다"
msgid ""
" -k, --keep keep (don't delete) input files\n"
" -f, --force force overwrite of output file and (de)compress links\n"
" -c, --stdout write to standard output and don't delete input files"
msgstr ""
" -k, --keep 입력 파일을 유지합니다 (삭제 안함)\n"
" -f, --force 출력 파일을 강제로 덮어쓰고 링크도 압축(해제)합니다\n"
" -c, --stdout 표준 출력으로 기록하고 입력 파일을 삭제하지 않습니다"
#: src/xz/message.c
msgid "BLOCKS"
msgstr "<블록>"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "start a new .xz block after the given comma-separated intervals of uncompressed data; optionally, specify a filter chain number (0-9) followed by a ':' before the uncompressed data size"
msgstr "콤마로 구분한 연속 지정값 만큼 압축 해제한 데이터 용량 다음, 새 .xz 블록을 시작합니다. 압축 해제 데이터 크기 앞에 콜론(':') 표기 후 필터 체인 번호(0-9)를 추가로 지정할 수 있습니다"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "when compressing, if more than NUM milliseconds has passed since the previous flush and reading more input would block, all pending data is flushed out"
msgstr "압축하는 동안, 이전 데이터를 플러싱한 후 더 많은 블록 입력을 읽어들일 때 <숫자> 만큼의 밀리초단위 제한시간을 넘기면 모든 대기 데이터를 소거합니다"
msgid ""
" --single-stream decompress only the first stream, and silently\n"
" ignore possible remaining input data"
msgstr ""
" --single-stream 첫번째 스트림만 압축해제하며, 나머지 입력 데이터는\n"
" 조용히 무시합니다"
#: src/xz/message.c
msgid "LIMIT"
msgstr "<제한>"
msgid ""
" --no-sparse do not create sparse files when decompressing\n"
" -S, --suffix=.SUF use the suffix '.SUF' on compressed files\n"
" --files[=FILE] read filenames to process from FILE; if FILE is\n"
" omitted, filenames are read from the standard input;\n"
" filenames must be terminated with the newline character\n"
" --files0[=FILE] like --files but use the null character as terminator"
msgstr ""
" --no-sparse 압축 해제에 활용할 분할 파일을 만들지 않습니다\n"
" -S, --suffix=.<확장자>\n"
" 압축 파일 확장자에 '.<확장자>'를 사용합니다\n"
" --files[=<파일>] <파일> 에서 처리할 파일 이름을 읽습니다.\n"
" <파일>을 생략하면 표준 입력에서 파일 이름을\n"
" 읽습니다. 파일 이름은 개행 문자로 끝나야 합니다\n"
" --files0[=<파일>]\n"
" --files 옵션과 비슷하지만 NULL 문자로 끝납니다"
#: src/xz/message.c
msgid ""
"\n"
" Basic file format and compression options:\n"
msgstr ""
"\n"
" 기본 파일 형식 및 압축 옵션:\n"
#: src/xz/message.c
msgid ""
" -F, --format=FMT file format to encode or decode; possible values are\n"
" 'auto' (default), 'xz', 'lzma', 'lzip', and 'raw'\n"
" -C, --check=CHECK integrity check type: 'none' (use with caution),\n"
" 'crc32', 'crc64' (default), or 'sha256'"
msgstr ""
" -F, --format=<형식> 인코딩 디코딩할 파일 형식입니다. 가능한 값:\n"
" 'auto' (기본), 'xz', 'lzma', 'lzip', 'raw'\n"
" -C, --check=<검사> 무결성 검사 형식: 'none' (위험),\n"
" 'crc32', 'crc64' (기본), 'sha256'"
#: src/xz/message.c
msgid " --ignore-check don't verify the integrity check when decompressing"
msgstr " --ignore-check 압축 해제시 무결성 검사를 수행하지 않습니다"
#: src/xz/message.c
msgid ""
" -0 ... -9 compression preset; default is 6; take compressor *and*\n"
" decompressor memory usage into account before using 7-9!"
msgstr ""
" -0 ... -9 압축 사전 설정. 기본값은 6 입니다. 7-9를 사용하려면 압축\n"
" 메모리 사용량*과* 압축 해제 메모리 사용량을 지정하십시오!"
#: src/xz/message.c
msgid ""
" -e, --extreme try to improve compression ratio by using more CPU time;\n"
" does not affect decompressor memory requirements"
msgstr ""
" -e, --extreme CPU 점유 시간을 더 확보하여 압축률을 개선합니다.\n"
" 압축 해제시 메모리 요구 용량에는 영향을 주지 않습니다"
#: src/xz/message.c
msgid ""
" -T, --threads=NUM use at most NUM threads; the default is 0 which uses\n"
" as many threads as there are processor cores"
msgstr ""
" -T, --threads=<개수>\n"
" 최대 스레드 <개수>를 사용합니다. 기본값은 실제 프로세서\n"
" 코어 수 만큼의 스레드를 사용하도록 지정하는 0 값입니다"
#: src/xz/message.c
msgid ""
" --block-size=SIZE\n"
" start a new .xz block after every SIZE bytes of input;\n"
" use this to set the block size for threaded compression"
msgstr ""
" --block-size=<크기>\n"
" 모든 <크기>의 입력 다음 새 .xz 블록을 시작합니다.\n"
" 스레드 압축에 블록 크기를 지정할 때 사용합니다"
#: src/xz/message.c
msgid ""
" --block-list=BLOCKS\n"
" start a new .xz block after the given comma-separated\n"
" intervals of uncompressed data; optionally, specify a\n"
" filter chain number (0-9) followed by a ':' before the\n"
" uncompressed data size"
msgstr ""
" --block-list=<크기>\n"
" 콤마로 구분한 연속 지정값 만큼 압축 해제한 데이터\n"
" 용량 다음, 새 .xz 블록을 시작합니다. 압축 해제 데이터\n"
" 크기 앞에 콜론(':') 표기 후 필터 체인 번호(0-9)를 추가로\n"
" 지정할 수 있습니다"
#: src/xz/message.c
msgid ""
" --flush-timeout=TIMEOUT\n"
" when compressing, if more than TIMEOUT milliseconds has\n"
" passed since the previous flush and reading more input\n"
" would block, all pending data is flushed out"
msgstr ""
" --flush-timeout=<제한시간>\n"
" 이전 데이터를 플러싱한 후 더 많은 블록 입력을 읽어들일 때\n"
" 밀리초단위 <제한시간>을 넘기면 모든 대기 데이터를\n"
" 플러싱아웃합니다"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
#, no-c-format
msgid "set memory usage limit for compression, decompression, threaded decompression, or all of these; LIMIT is in bytes, % of RAM, or 0 for defaults"
msgstr "압축, 해제, 스레드 분산 압축 해제, 또는 유사 동작 수행시 메모리 사용량 제한을 설정합니다. 바이트 단위 <제한>값, % 단위 RAM 사용량을 지정하든지 아니면 기본값으로 0을 지정하십시오"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "if compression settings exceed the memory usage limit, give an error instead of adjusting the settings downwards"
msgstr "압축 설정이 메모리 사용량 제한을 넘어서면 설정 값을 줄이는 대신 오류 메시지를 나타냅니다"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "Custom filter chain for compression (an alternative to using presets):"
msgstr "압축용 개별 필터 체인 설정 (사전 설정 사용을 대신함):"
msgid ""
" --memlimit-compress=LIMIT\n"
" --memlimit-decompress=LIMIT\n"
" --memlimit-mt-decompress=LIMIT\n"
" -M, --memlimit=LIMIT\n"
" set memory usage limit for compression, decompression,\n"
" threaded decompression, or all of these; LIMIT is in\n"
" bytes, % of RAM, or 0 for defaults"
msgstr ""
" --memlimit-compress=<제한용량>\n"
" --memlimit-decompress=<제한용량>\n"
" --memlimit-mt-decompress=<제한용량>\n"
" -M, --memlimit=<제한용량>\n"
" 압축, 압축해제, 또는 각각의 경우에 대한 메모리 사용량\n"
" 제한값을 설정합니다. <제한용량> 값 단위는 바이트 또는\n"
" 램 용량 백분율이며, 기본값은 0 입니다"
#: src/xz/message.c
msgid "FILTERS"
msgstr "<필터>"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "set the filter chain using the liblzma filter string syntax; use --filters-help for more information"
msgstr "liblzma 필터 문자열 문법으로 필터 체인을 설정합니다. 자세한 정보는 --filters-help 옵션을 사용하십시오"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "set additional filter chains using the liblzma filter string syntax to use with --block-list"
msgstr "--block-list 옵션을 함께 사용할 수 있는 liblzma 필터 문자열 문법으로 추가 필터 체인을 설정합니다"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "display more information about the liblzma filter string syntax and exit"
msgstr "liblzma 필터 문자열 문법 추가 정보를 나타낸 후 빠져나갑니다"
#. TRANSLATORS: Short for OPTIONS.
#: src/xz/message.c
msgid "OPTS"
msgstr "<옵션>"
#. TRANSLATORS: Use semicolon (or its fullwidth form)
#. in "(valid values; default)" even if it is weird in
#. your language. There are non-translatable strings
#. that look like "(foo, bar, baz; foo)" which list
#. the supported values and the default value.
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "LZMA1 or LZMA2; OPTS is a comma-separated list of zero or more of the following options (valid values; default):"
msgstr "LZMA1 또는 LZMA2입니다. <옵션> 값은 다음과 같은 0개 이상의 쉼표 구분 값입니다 (유효한 값. 기본값):"
#. TRANSLATORS: Short for PRESET. A longer string is
#. fine but wider than 4 columns makes --long-help
#. one line longer.
#: src/xz/message.c
msgid "PRE"
msgstr "<사전설정>"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "reset options to a preset"
msgstr "사전 설정 값으로 옵션 재설정"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "dictionary size"
msgstr "딕셔너리 크기"
#. TRANSLATORS: The word "literal" in "literal context
#. bits" means how many "context bits" to use when
#. encoding literals. A literal is a single 8-bit
#. byte. It doesn't mean "literally" here.
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "number of literal context bits"
msgstr "보이는 대로의 컨텍스트 비트 갯수"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "number of literal position bits"
msgstr "보이는 대로의 위치 비트 갯수"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "number of position bits"
msgstr "위치 비트 수"
msgid ""
" --no-adjust if compression settings exceed the memory usage limit,\n"
" give an error instead of adjusting the settings downwards"
msgstr ""
" --no-adjust 압축 설정이 메모리 사용량 제한을 넘어서면\n"
" 설정 값을 줄이는 대신 오류 정보를 나타냅니다"
#: src/xz/message.c
msgid "MODE"
msgstr "<모드>"
msgid ""
"\n"
" Custom filter chain for compression (alternative for using presets):"
msgstr ""
"\n"
" 압축용 개별 필터 체인 설정 (사전 설정 사용을 대신함):"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "compression mode"
msgstr "압축 모드"
msgid ""
"\n"
" --filters=FILTERS set the filter chain using the liblzma filter string\n"
" syntax; use --filters-help for more information"
msgstr ""
"\n"
" --filters=<필터> liblzma 필터 문자열 문법으로 필터 체인을 설정합니다.\n"
" 자세한 정보는 --filters-help 옵션을 사용하십시오"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "nice length of a match"
msgstr "일치하는 항목의 nice 길이"
msgid ""
" --filters1=FILTERS ... --filters9=FILTERS\n"
" set additional filter chains using the liblzma filter\n"
" string syntax to use with --block-list"
msgstr ""
" --filters1=<필터> ... --filters9=<필터>\n"
" --block-list 옵션을 함께 활용할 수 있는 liblzma 필터\n"
" 문자열 문법으로 추가 필터 체인을 설정합니다"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "match finder"
msgstr "일치 항목 검색기"
msgid ""
" --filters-help display more information about the liblzma filter string\n"
" syntax and exit."
msgstr ""
" --filters-help liblzma 필터 문자열 문법 추가 정보를 나타낸 후\n"
" 빠져나갑니다."
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "maximum search depth; 0=automatic (default)"
msgstr "최대 검색 깊이 값. 0=자동 (기본값)"
msgid ""
"\n"
" --lzma1[=OPTS] LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n"
" --lzma2[=OPTS] more of the following options (valid values; default):\n"
" preset=PRE reset options to a preset (0-9[e])\n"
" dict=NUM dictionary size (4KiB - 1536MiB; 8MiB)\n"
" lc=NUM number of literal context bits (0-4; 3)\n"
" lp=NUM number of literal position bits (0-4; 0)\n"
" pb=NUM number of position bits (0-4; 2)\n"
" mode=MODE compression mode (fast, normal; normal)\n"
" nice=NUM nice length of a match (2-273; 64)\n"
" mf=NAME match finder (hc3, hc4, bt2, bt3, bt4; bt4)\n"
" depth=NUM maximum search depth; 0=automatic (default)"
msgstr ""
"\n"
" --lzma1[=<옵션>] LZMA1 또는 LZMA2. <옵션>은 하나도 지정하지 않거나,\n"
" --lzma2[=<옵션>] 다음 옵션 중 한개 이상을 쉼표로 구분하여 지정합니다\n"
" (유효값, 기본값):\n"
" preset=<프리셋> 옵션을 <프리셋>값으로 초기화(0-9[e])\n"
" dict=<숫자> 딕셔너리 크기(4KiB - 1536MiB, 8MiB)\n"
" lc=<숫자> 리터럴 컨텍스트 비트 수(0-4, 3)\n"
" lp=<숫자> 리터럴 위치 비트 수(0-4, 0)\n"
" pb=<숫자> 위치 비트 갯수(0-4, 2)\n"
" mode=<모드> 압축 모드 fast 또는 normal, normal)\n"
" nice=<숫자> nice 일치 길이 값(2-273, 64)\n"
" mf=<이름> 일치 탐색기(hc3, hc4, bt2, bt3, bt4\n"
" 중 하나. 기본값은 bt4)\n"
" depth=<숫자> 최대 검색 깊이. 0=자동(기본값)"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "x86 BCJ filter (32-bit and 64-bit)"
msgstr "x86 BCJ 필터 (32비트 및 64비트)"
msgid ""
"\n"
" --x86[=OPTS] x86 BCJ filter (32-bit and 64-bit)\n"
" --arm[=OPTS] ARM BCJ filter\n"
" --armthumb[=OPTS] ARM-Thumb BCJ filter\n"
" --arm64[=OPTS] ARM64 BCJ filter\n"
" --powerpc[=OPTS] PowerPC BCJ filter (big endian only)\n"
" --ia64[=OPTS] IA-64 (Itanium) BCJ filter\n"
" --sparc[=OPTS] SPARC BCJ filter\n"
" --riscv[=OPTS] RISC-V BCJ filter\n"
" Valid OPTS for all BCJ filters:\n"
" start=NUM start offset for conversions (default=0)"
msgstr ""
"\n"
" --x86[=<옵션>] x86 BCJ 필터(32-비트, 64-비트)\n"
" --arm[=<옵션>] ARM BCJ 필터\n"
" --armthumb[=<옵션>] ARM-Thumb BCJ 필터\n"
" --arm64[=<옵션>] ARM64 BCJ 필터\n"
" --powerpc[=<옵션>] PowerPC BCJ 필터 (빅 엔디언 전용)\n"
" --ia64[=<옵션>] IA-64 (아이태니엄) BCJ 필터\n"
" --sparc[=<옵션>] SPARC BCJ 필터\n"
" --riscv[=<옵션>] RISC-V BCJ 필터\n"
" 모든 BCJ 필터의 유효한 <옵션>:\n"
" start=<숫자> 변환 시작 오프셋(기본값=0)"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "ARM BCJ filter"
msgstr "ARM BCJ 필터"
msgid ""
"\n"
" --delta[=OPTS] Delta filter; valid OPTS (valid values; default):\n"
" dist=NUM distance between bytes being subtracted\n"
" from each other (1-256; 1)"
msgstr ""
"\n"
" --delta[=<옵션>] 델타 필터. 유효한 <옵션> (유효값, 기본값):\n"
" dist=<숫자> 각 바이트 값의 차이 값\n"
" (1-256, 1)"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "ARM-Thumb BCJ filter"
msgstr "ARM-Thumb BCJ 필터"
msgid ""
"\n"
" Other options:\n"
msgstr ""
"\n"
"기타 옵션:\n"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "ARM64 BCJ filter"
msgstr "ARM64 BCJ 필더"
msgid ""
" -q, --quiet suppress warnings; specify twice to suppress errors too\n"
" -v, --verbose be verbose; specify twice for even more verbose"
msgstr ""
" -q, --quiet 경고 메시지 끔. 오류 메시지도 끄려면 두번 지정합니다\n"
" -v, --verbose 자세히 표시. 더 자세히 표시하려면 두번 지정합니다"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "PowerPC BCJ filter (big endian only)"
msgstr "PowerPC BCJ 필터 (빅 엔디안 전용)"
msgid " -Q, --no-warn make warnings not affect the exit status"
msgstr " -Q, --no-warn 경고가 종료 상태에 영향을 주지 않게합니다"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "IA-64 (Itanium) BCJ filter"
msgstr "IA-64 (아이태니엄) BCJ 필터"
msgid " --robot use machine-parsable messages (useful for scripts)"
msgstr " --robot 기계 해석용 메시지를 사용합니다 (스크립트에 적합)"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "SPARC BCJ filter"
msgstr "SPARC BCJ 필터"
msgid ""
" --info-memory display the total amount of RAM and the currently active\n"
" memory usage limits, and exit"
msgstr ""
" --info-memory 총 사용 메모리양과 현재 활성 메모리 사용 제한 값을\n"
" 표시하고 빠져나갑니다"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "RISC-V BCJ filter"
msgstr "RISC-V BCJ 필터"
msgid ""
" -h, --help display the short help (lists only the basic options)\n"
" -H, --long-help display this long help and exit"
msgstr ""
" -h, --help 간단한 도움말을 표시합니다 (기본 옵션만 나열)\n"
" -H, --long-help 긴 도움말을 표시하고 빠져나갑니다"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "Valid OPTS for all BCJ filters:"
msgstr "모든 BCJ 필터에 대한 적절한 <옵션>값:"
msgid ""
" -h, --help display this short help and exit\n"
" -H, --long-help display the long help (lists also the advanced options)"
msgstr ""
" -h, --help 간단한 도움말을 표시하고 빠져나갑니다\n"
" -H, --long-help 긴 도움말을 표시합니다 (고급 옵션도 나열)"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "start offset for conversions (default=0)"
msgstr "변환 시작 오프셋 값 (기본값=0)"
msgid " -V, --version display the version number and exit"
msgstr " -V, --version 버전 번호를 표시하고 빠져나갑니다"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "Delta filter; valid OPTS (valid values; default):"
msgstr "델타 필터. 적절한 <옵션> (적절한 값. 기본값):"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "distance between bytes being subtracted from each other"
msgstr "바이트 값 차이 거리"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "Other options:"
msgstr "기타 옵션:"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "suppress warnings; specify twice to suppress errors too"
msgstr "경고문 숨김. 더 많은 오류 메시지를 숨가려면 두번 지정하십시오"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "be verbose; specify twice for even more verbose"
msgstr "자세하게 표시. 더 자세하게 출력하려면 두번 지정하십시오"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "make warnings not affect the exit status"
msgstr "경고가 종료 상태에 영향을 주지 않게합니다"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "use machine-parsable messages (useful for scripts)"
msgstr "기계 해석 가능한 메시지를 사용합니다 (스크립트 활용시 유용함)"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "display the total amount of RAM and the currently active memory usage limits, and exit"
msgstr "RAM 총 용량과 현재 활성 메모리 사용 한계값을 표시하고 나갑니다"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "display the short help (lists only the basic options)"
msgstr "간단한 도움말 표시 (기본 옵션만 표시)"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "display this long help and exit"
msgstr "이 긴 도움말을 보여주고 나갑니다"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "display this short help and exit"
msgstr "이 간단한 도움말을 보여주고 나갑니다"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "display the long help (lists also the advanced options)"
msgstr "긴 도움말 표시 (고급 옵션도 보여줍니다)"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "display the version number and exit"
msgstr "버전 번호를 표시하고 빠져나갑니다"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c src/lzmainfo/lzmainfo.c
msgid "With no FILE, or when FILE is -, read standard input."
msgstr "<파일> 값이 없거나, <파일> 값이 - 문자이면, 표준 입력을 읽어들입니다."
#. TRANSLATORS: This message indicates the bug reporting
#. address for this package. Please add another line saying
#. "\nReport translation bugs to <...>." with the email or WWW
#. address for translation bugs. Thanks!
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c src/lzmainfo/lzmainfo.c
#, c-format
msgid "Report bugs to <%s> (in English or Finnish)."
msgstr "<%s> (영문 또는 핀란드어)에 버그를 보고하십시오."
msgid ""
"\n"
"With no FILE, or when FILE is -, read standard input.\n"
msgstr ""
"\n"
"<파일> 값이 없거나, <파일> 값이 - 문자이면, 표준 입력을 읽습니다.\n"
#. TRANSLATORS: The first %s is the name of this software.
#. The second <%s> is an URL.
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#. TRANSLATORS: This message indicates the bug reporting address
#. for this package. Please add _another line_ saying
#. "Report translation bugs to <...>\n" with the email or WWW
#. address for translation bugs. Thanks.
#: src/xz/message.c src/lzmainfo/lzmainfo.c
#, c-format
msgid "%s home page: <%s>"
msgstr "%s 홈페이지: <%s>"
msgid "Report bugs to <%s> (in English or Finnish).\n"
msgstr "<%s> (영문 또는 핀란드어)에 버그를 보고하십시오.\n"
#: src/xz/message.c src/lzmainfo/lzmainfo.c
#, c-format
msgid "%s home page: <%s>\n"
msgstr "%s 홈페이지: <%s>\n"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE."
msgstr "!! 주의 !! 개발 버전이며 실제 사용 용도가 아닙니다."
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
#, c-format
msgid "Filter chains are set using the --filters=FILTERS or --filters1=FILTERS ... --filters9=FILTERS options. Each filter in the chain can be separated by spaces or '--'. Alternatively a preset %s can be specified instead of a filter chain."
msgid ""
"Filter chains are set using the --filters=FILTERS or\n"
"--filters1=FILTERS ... --filters9=FILTERS options. Each filter in the chain\n"
"can be separated by spaces or '--'. Alternatively a preset <0-9>[e] can be\n"
"specified instead of a filter chain.\n"
msgstr ""
"--filters=<필터> 또는 --filters1=<필터> ... --filters9=<필터> 옵션으로\n"
"필터 체인을 지정합니다. 체인의 각 필터는 공백 문자 또는 '--'으로 구분할 수 있습니다.\n"
"필터 체인 대신 %s 사전 설정 값을 지정할 수 있습니다."
"필터 체인 대신 <0-9>[e] 사전 설정 값을 지정할 수 있습니다.\n"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/xz/message.c
msgid "The supported filters and their options are:"
msgstr "지원하는 필터와 옵션은 다음과 같습니다:"
#: src/xz/options.c src/liblzma/common/string_conversion.c
msgid "Options must be 'name=value' pairs separated with commas"
msgstr "옵션은 쉼표로 구분한 '이름=값' 쌍이어야합니다"
#: src/xz/options.c
#, c-format
msgid "%s: Options must be 'name=value' pairs separated with commas"
msgstr "%s: 옵션은 쉼표로 구분한 '이름=값' 쌍이어야합니다"
#: src/xz/options.c
#, c-format
msgid "%s: Invalid option name"
msgstr "%s: 잘못된 옵션 이름"
#: src/xz/options.c src/liblzma/common/string_conversion.c
msgid "Invalid option value"
msgstr "잘못된 옵션 값"
#: src/xz/options.c
#, c-format
msgid "%s: Invalid option value"
msgstr "%s: 잘못된 옵션 값"
#: src/xz/options.c
#, c-format
msgid "Unsupported LZMA1/LZMA2 preset: %s"
msgstr "지원하지 않는 LZMA1/LZMA2 사전 설정: %s"
#: src/xz/options.c src/liblzma/common/string_conversion.c
#: src/xz/options.c
msgid "The sum of lc and lp must not exceed 4"
msgstr "lc값과 lp값의 합이 4를 초과하면 안됩니다"
@ -1153,9 +1074,10 @@ msgstr "%s: 파일에 이미 '%s' 확장자가 붙음, 건너뜀"
msgid "%s: Invalid filename suffix"
msgstr "%s: 잘못된 파일 이름 확장자"
#: src/xz/util.c src/liblzma/common/string_conversion.c
msgid "Value is not a non-negative decimal integer"
msgstr "값이 10진 양의 정수가 아닙니다"
#: src/xz/util.c
#, c-format
msgid "%s: Value is not a non-negative decimal integer"
msgstr "%s: 값은 10진 양수입니다"
#: src/xz/util.c
#, c-format
@ -1181,13 +1103,12 @@ msgstr "압축 데이터를 터미널에 기록할 수 없습니다"
#: src/lzmainfo/lzmainfo.c
#, c-format
msgid "Usage: %s [--help] [--version] [FILE]...\n"
msgstr "사용법: %s [--help] [--version] [<파일>]...\n"
#. This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care.
#: src/lzmainfo/lzmainfo.c
msgid "Show information stored in the .lzma file header."
msgstr ".lzma 파일 헤더에 저장한 정보를 보여줍니다."
msgid ""
"Usage: %s [--help] [--version] [FILE]...\n"
"Show information stored in the .lzma file header"
msgstr ""
"사용법: %s [--help] [--version] [<파일>]...\n"
".lzma 파일 헤더에 저장한 정보를 보여줍니다"
#: src/lzmainfo/lzmainfo.c
msgid "File is too small to be a .lzma file"
@ -1205,62 +1126,5 @@ msgstr "표준 출력 기록 실패"
msgid "Unknown error"
msgstr "알 수 없는 오류"
#: src/liblzma/common/string_conversion.c
msgid "Unsupported preset"
msgstr "지원하지 않는 사전 설정"
#: src/liblzma/common/string_conversion.c
msgid "Unsupported flag in the preset"
msgstr "지원하지 않는 사전 설정 플래그"
#: src/liblzma/common/string_conversion.c
msgid "Unknown option name"
msgstr "알 수 없는 옵션 이름"
#: src/liblzma/common/string_conversion.c
msgid "Option value cannot be empty"
msgstr "옵션 값을 비워둘 수 없습니다"
#: src/liblzma/common/string_conversion.c
msgid "Value out of range"
msgstr "값 범위 벗어남"
#: src/liblzma/common/string_conversion.c
msgid "This option does not support any multiplier suffixes"
msgstr "이 옵션은 배수 단위 접미사를 지원하지 않습니다"
#. TRANSLATORS: Don't translate the
#. suffixes "KiB", "MiB", or "GiB"
#. because a user can only specify
#. untranslated suffixes.
#: src/liblzma/common/string_conversion.c
msgid "Invalid multiplier suffix (KiB, MiB, or GiB)"
msgstr "잘못된 배수 단위 (KiB, MiB, 또는 GiB)"
#: src/liblzma/common/string_conversion.c
msgid "Unknown filter name"
msgstr "알 수 없는 파일 형식"
#: src/liblzma/common/string_conversion.c
msgid "This filter cannot be used in the .xz format"
msgstr ".xz 형식에 이 필터를 사용할 수 없습니다"
#: src/liblzma/common/string_conversion.c
msgid "Memory allocation failed"
msgstr "메모리 할당 실패"
#: src/liblzma/common/string_conversion.c
msgid "Empty string is not allowed, try '6' if a default value is needed"
msgstr "빈 문자열을 허용하지 않습니다. 기본값이 필요하다면 '6'을 넣으십시오"
#: src/liblzma/common/string_conversion.c
msgid "The maximum number of filters is four"
msgstr "최대 필터 갯수는 4 입니다"
#: src/liblzma/common/string_conversion.c
msgid "Filter name is missing"
msgstr "필터 이름이 빠졌습니다"
#: src/liblzma/common/string_conversion.c
msgid "Invalid filter chain ('lzma2' missing at the end?)"
msgstr "부적절한 필터 체인 ('lzma2'를 뺐습니까?)"
#~ msgid "Failed to enable the sandbox"
#~ msgstr "샌드박스 활성화 실패"

1269
po/nl.po

File diff suppressed because it is too large Load Diff

913
po/pl.po

File diff suppressed because it is too large Load Diff

1167
po/pt.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

872
po/ro.po

File diff suppressed because it is too large Load Diff

1169
po/sr.po

File diff suppressed because it is too large Load Diff

866
po/sv.po

File diff suppressed because it is too large Load Diff

925
po/tr.po

File diff suppressed because it is too large Load Diff

854
po/uk.po

File diff suppressed because it is too large Load Diff

946
po/vi.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -3,13 +3,13 @@
# This file is published under the BSD Zero Clause License.
# Copyright (C) The XZ Utils authors and contributors
#
# Mario Blättermann <mario.blaettermann@gmail.com>, 2015, 2019-2020, 2022-2025.
# Mario Blättermann <mario.blaettermann@gmail.com>, 2015, 2019-2020, 2022-2024.
msgid ""
msgstr ""
"Project-Id-Version: xz-man 5.8.0-pre1\n"
"Project-Id-Version: xz-man 5.6.0-pre2\n"
"Report-Msgid-Bugs-To: lasse.collin@tukaani.org\n"
"POT-Creation-Date: 2025-03-08 14:50+0200\n"
"PO-Revision-Date: 2025-03-10 16:39+0100\n"
"POT-Creation-Date: 2024-05-29 17:45+0300\n"
"PO-Revision-Date: 2024-02-15 19:18+0100\n"
"Last-Translator: Mario Blättermann <mario.blaettermann@gmail.com>\n"
"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
"Language: de\n"
@ -18,7 +18,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Lokalize 24.12.1\n"
"X-Generator: Lokalize 23.08.4\n"
#. type: TH
#: ../src/xz/xz.1
@ -27,10 +27,11 @@ msgid "XZ"
msgstr "XZ"
#. type: TH
#: ../src/xz/xz.1
#, no-wrap
msgid "2025-03-08"
msgstr "8. März 2025"
#: ../src/xz/xz.1 ../src/xzdec/xzdec.1
#, fuzzy, no-wrap
#| msgid "2024-02-25"
msgid "2024-04-08"
msgstr "25. Februar 2024"
#. type: TH
#: ../src/xz/xz.1 ../src/xzdec/xzdec.1 ../src/lzmainfo/lzmainfo.1
@ -216,8 +217,6 @@ msgstr "In Abhängigkeit von den gewählten Kompressionseinstellungen bewegt sic
msgid "Especially users of older systems may find the possibility of very large memory usage annoying. To prevent uncomfortable surprises, B<xz> has a built-in memory usage limiter, which is disabled by default. While some operating systems provide ways to limit the memory usage of processes, relying on it wasn't deemed to be flexible enough (for example, using B<ulimit>(1) to limit virtual memory tends to cripple B<mmap>(2))."
msgstr "Insbesondere für Benutzer älterer Systeme wird eventuell ein sehr großer Speicherbedarf ärgerlich sein. Um unangenehme Überraschungen zu vermeiden, verfügt B<xz> über eine eingebaute Begrenzung des Speicherbedarfs, die allerdings in der Voreinstellung deaktiviert ist. Zwar verfügen einige Betriebssysteme über eingebaute Möglichkeiten zur prozessabhängigen Speicherbegrenzung, doch diese sind zu unflexibel (zum Beispiel kann B<ulimit>(1) beim Begrenzen des virtuellen Speichers B<mmap>(2) beeinträchtigen)."
#. TRANSLATORS: Don't translate the uppercase XZ_DEFAULTS.
#. It's a name of an environment variable.
#. type: Plain text
#: ../src/xz/xz.1
msgid "The memory usage limiter can be enabled with the command line option B<--memlimit=>I<limit>. Often it is more convenient to enable the limiter by default by setting the environment variable B<XZ_DEFAULTS>, for example, B<XZ_DEFAULTS=--memlimit=150MiB>. It is possible to set the limits separately for compression and decompression by using B<--memlimit-compress=>I<limit> and B<--memlimit-decompress=>I<limit>. Using these two options outside B<XZ_DEFAULTS> is rarely useful because a single run of B<xz> cannot do both compression and decompression and B<--memlimit=>I<limit> (or B<-M> I<limit>) is shorter to type on the command line."
@ -326,27 +325,16 @@ msgstr "B<-z>, B<--compress>"
msgid "Compress. This is the default operation mode when no operation mode option is specified and no other operation mode is implied from the command name (for example, B<unxz> implies B<--decompress>)."
msgstr "Kompression. Dies ist der voreingestellte Aktionsmodus, sofern keiner angegeben ist und auch kein bestimmter Modus aus dem Befehlsnamen abgeleitet werden kann (der Befehl B<unxz> impliziert zum Beispiel B<--decompress>)."
#. The DESCRIPTION section already says this but it's good to repeat it
#. here because the default behavior is a bit dangerous and new users
#. in a hurry may skip reading the DESCRIPTION section.
#. type: Plain text
#: ../src/xz/xz.1
msgid "After successful compression, the source file is removed unless writing to standard output or B<--keep> was specified."
msgstr "Nach erfolgreicher Kompression wird die Quelldatei gelöscht, außer wenn in die Standardausgabe geschrieben wird oder B<--keep> angegeben wurde."
#. type: TP
#: ../src/xz/xz.1 ../src/xzdec/xzdec.1
#, no-wrap
msgid "B<-d>, B<--decompress>, B<--uncompress>"
msgstr "B<-d>, B<--decompress>, B<--uncompress>"
#. The DESCRIPTION section already says this but it's good to repeat it
#. here because the default behavior is a bit dangerous and new users
#. in a hurry may skip reading the DESCRIPTION section.
#. type: Plain text
#: ../src/xz/xz.1
msgid "Decompress. After successful decompression, the source file is removed unless writing to standard output or B<--keep> was specified."
msgstr "Dekomprimieren. Nach erfolgreicher Dekompression wird die Quelldatei gelöscht, außer wenn in die Standardausgabe geschrieben wird oder B<--keep> angegeben wurde."
msgid "Decompress."
msgstr "dekomprimpiert."
#. type: TP
#: ../src/xz/xz.1
@ -460,11 +448,6 @@ msgstr "B<xz> dekomprimiert niemals mehr als einen Datenstrom aus B<.lzma>-Datei
msgid "This option has no effect if the operation mode is not B<--decompress> or B<--test>."
msgstr "Diese Option ist wirkungslos, wenn der Aktionsmodus nicht B<--decompress> oder B<--test> ist."
#. type: Plain text
#: ../src/xz/xz.1
msgid "Since B<xz> 5.7.1alpha, B<--single-stream> implies B<--keep>."
msgstr "Seit der Programmversion B<xz> 5.7.1alpha impliziert B<--single-stream> zusätzlich die Option B<--keep>."
#. type: TP
#: ../src/xz/xz.1
#, no-wrap
@ -536,7 +519,6 @@ msgstr "B<-F> I<Format>, B<--format=>I<Format>"
msgid "Specify the file I<format> to compress or decompress:"
msgstr "gibt das I<Format> der zu komprimierenden oder dekomprimierenden Datei an:"
#. TRANSLATORS: Don't translate bold string B<auto>.
#. type: TP
#: ../src/xz/xz.1
#, no-wrap
@ -618,9 +600,6 @@ msgstr "gibt den Typ der Integritätsprüfung an. Die Prüfsumme wird aus den un
msgid "Supported I<check> types:"
msgstr "Folgende Typen von I<Prüfungen> werden unterstützt:"
#. TRANSLATORS: Don't translate the bold strings B<none>, B<crc32>,
#. B<crc64>, and B<sha256>. The command line option --check accepts
#. only the untranslated strings.
#. type: TP
#: ../src/xz/xz.1
#, no-wrap
@ -1265,27 +1244,6 @@ msgstr "Dieses Funktionsmerkmal ist außerhalb von POSIX-Systemen nicht verfügb
msgid "B<This feature is still experimental.> Currently B<xz> is unsuitable for decompressing the stream in real time due to how B<xz> does buffering."
msgstr "B<Dieses Funktionsmerkmal ist noch experimentell.> Gegenwärtig ist B<xz> aufgrund der Art und Weise, wie B<xz> puffert, für Dekompression in Echtzeit ungeeignet."
#. type: TP
#: ../src/xz/xz.1
#, no-wrap
msgid "B<--no-sync>"
msgstr "B<--no-sync>"
#. type: Plain text
#: ../src/xz/xz.1
msgid "Do not synchronize the target file and its directory to the storage device before removing the source file. This can improve performance if compressing or decompressing many small files. However, if the system crashes soon after the deletion, it is possible that the target file was not written to the storage device but the delete operation was. In that case neither the original source file nor the target file is available."
msgstr "synchronisiert die Zieldatei und deren Verzeichnis auf dem Speichergerät nicht, bevor die Quelldatei gelöscht wird. So kann die Performance beim Komprimieren oder Dekomprimieren vieler kleiner Dateien verbessert werden. Jedoch wäre es möglich, falls es kurz nach dem Löschen zu einem Systemabsturz kommt, dass die Zieldatei noch nicht auf dem Speichergerät geschrieben, aber der Löschvorgang bereits ausgeführt wurde. In diesem Fall gehen sowohl die Quelldatei als auch die Zieldatei verloren."
#. type: Plain text
#: ../src/xz/xz.1
msgid "This option has an effect only when B<xz> is going to remove the source file. In other cases synchronization is never done."
msgstr "Diese Option ist nur wirksam, wenn B<xz> die Quelldatei löscht. In anderen Fällen wird niemals synchronisiert."
#. type: Plain text
#: ../src/xz/xz.1
msgid "The synchronization and B<--no-sync> were added in B<xz> 5.7.1alpha."
msgstr "Die Synchronisierung und B<--no-sync> wurden in Version B<xz> 5.7.1alpha hinzugefügt."
#. type: TP
#: ../src/xz/xz.1
#, no-wrap
@ -1549,11 +1507,6 @@ msgstr "LZMA1 ist ein veralteter Filter, welcher nur wegen des veralteten B<.lzm
msgid "LZMA1 and LZMA2 share the same set of I<options>:"
msgstr "LZMA1 und LZMA2 haben die gleichen I<Optionen>:"
#. TRANSLATORS: Don't translate bold strings like B<preset>, B<dict>,
#. B<mode>, B<nice>, B<fast>, or B<normal> because those are command line
#. options. On the other hand, do translate the italic strings like
#. I<preset>, I<size>, and I<mode>, because such italic strings are
#. placeholders which a user replaces with an actual value.
#. type: TP
#: ../src/xz/xz.1
#, no-wrap
@ -2258,11 +2211,6 @@ msgstr "Listenmodus"
msgid "B<xz --robot --list> uses tab-separated output. The first column of every line has a string that indicates the type of the information found on that line:"
msgstr "B<xz --robot --list> verwendet eine durch Tabulatoren getrennte Ausgabe. In der ersten Spalte jeder Zeile bezeichnet eine Zeichenkette den Typ der Information, die in dieser Zeile enthalten ist:"
#. TRANSLATORS: The bold strings B<name>, B<file>, B<stream>, B<block>,
#. B<summary>, and B<totals> are produced by the xz tool for scripts to
#. parse, thus the untranslated strings must be included in the translated
#. man page. It may be useful to provide a translated string in parenthesis
#. without bold, for example: "B<name> (nimi)"
#. type: TP
#: ../src/xz/xz.1
#, no-wrap
@ -2396,13 +2344,10 @@ msgstr "Das Kompressionsverhältnis, zum Beispiel B<0.123>. Wenn das Verhältnis
msgid "7."
msgstr "7."
#. TRANSLATORS: Don't translate the bold strings B<None>, B<CRC32>,
#. B<CRC64>, B<SHA-256>, or B<Unknown-> here. In robot mode, xz produces
#. them in untranslated form for scripts to parse.
#. type: Plain text
#: ../src/xz/xz.1
msgid "Comma-separated list of integrity check names. The following strings are used for the known check types: B<None>, B<CRC32>, B<CRC64>, and B<SHA-256>. For unknown check types, B<Unknown->I<N> is used, where I<N> is the Check ID as a decimal number (one or two digits)."
msgstr "Durch Kommata getrennte Liste der Namen der Integritätsprüfungen. Für die bekannten Überprüfungstypen werden folgende Zeichenketten verwendet: B<None>, B<CRC32>, B<CRC64> und B<SHA-256>. B<Unknown->I<N> wird verwendet, wobei I<N> die Kennung der Überprüfung als Dezimalzahl angibt (ein- oder zweistellig)."
msgstr "Durch Kommata getrennte Liste der Namen der Integritätsprüfungen. Für die bekannten Überprüfungstypen werden folgende Zeichenketten verwendet: B<None>, B<CRC32>, B<CRC64> und B<SHA-256>. B<Unbek.>I<N> wird verwendet, wobei I<N> die Kennung der Überprüfung als Dezimalzahl angibt (ein- oder zweistellig)."
#. type: IP
#: ../src/xz/xz.1
@ -2780,7 +2725,6 @@ msgstr "Version"
msgid "B<xz --robot --version> prints the version number of B<xz> and liblzma in the following format:"
msgstr "B<xz --robot --version> gibt die Versionsnummern von B<xz> und Liblzma im folgenden Format aus:"
#. TRANSLATORS: Don't translate the uppercase XZ_VERSION or LIBLZMA_VERSION.
#. type: Plain text
#: ../src/xz/xz.1
msgid "B<XZ_VERSION=>I<XYYYZZZS>"
@ -2897,18 +2841,11 @@ msgstr "In die Standardausgabe geschriebene Hinweise (keine Warnungen oder Fehle
msgid "ENVIRONMENT"
msgstr "UMGEBUNGSVARIABLEN"
#. TRANSLATORS: Don't translate the uppercase XZ_DEFAULTS or XZ_OPT.
#. They are names of environment variables.
#. type: Plain text
#: ../src/xz/xz.1
msgid "B<xz> parses space-separated lists of options from the environment variables B<XZ_DEFAULTS> and B<XZ_OPT>, in this order, before parsing the options from the command line. Note that only options are parsed from the environment variables; all non-options are silently ignored. Parsing is done with B<getopt_long>(3) which is used also for the command line arguments."
msgstr "B<xz> wertet eine durch Leerzeichen getrennte Liste von Optionen in den Umgebungsvariablen B<XZ_DEFAULTS> und B<XZ_OPT> aus (in dieser Reihenfolge), bevor die Optionen aus der Befehlszeile ausgewertet werden. Beachten Sie, dass beim Auswerten der Umgebungsvariablen nur Optionen berücksichtigt werden; alle Einträge, die keine Optionen sind, werden stillschweigend ignoriert. Die Auswertung erfolgt mit B<getopt_long>(3), welches auch für die Befehlszeilenargumente verwendet wird."
#. 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 "B<Warnung:> Durch Setzen dieser Umgebungsvariablen könnte man effektiv Programme und Skripte modifizieren, die B<xz> ausführen. Meist ist es sicher, die Speichernutzungsbegrenzung und Kompressionsoptionen über die Umgebungsvariablen zu setzen. Dennoch können einige Optionen Skripte beeinflussen. Ein typisches Beispiel ist die Option B<--help>, die einen Hilfetext anzeigt, anstatt eine Datei zu komprimieren oder zu dekomprimieren. Weniger augenfällige Beispiele sind die Optionen B<--quiet> und B<--verbose>. In vielen Fällen funktioniert es gut, den Fortschrittsindikator mit B<--verbose> zu aktivieren, aber in einigen Situationen können die zusätzlichen Meldungen Probleme verursachen. Die Ausführlichkeitsstufe beeinflusst auch das Verhalten von B<--list>."
#. type: TP
#: ../src/xz/xz.1
#, no-wrap
@ -2917,8 +2854,8 @@ msgstr "B<XZ_DEFAULTS>"
#. type: Plain text
#: ../src/xz/xz.1
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 "Benutzerspezifische oder systemweite Standardoptionen. Typischerweise werden diese in einem Shell-Initialisierungsskript gesetzt, um die Speicherbedarfsbegrenzung von B<xz> standardmäßig zu aktivieren oder die Anzahl der Threads festzulegen. Außer bei Shell-Initialisierungsskripten und in ähnlichen Spezialfällen sollte die Variable B<XZ_DEFAULTS> in Skripten niemals gesetzt oder außer Kraft gesetzt werden."
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>."
msgstr "Benutzerspezifische oder systemweite Standardoptionen. Typischerweise werden diese in einem Shell-Initialisierungsskript gesetzt, um die Speicherbedarfsbegrenzung von B<xz> standardmäßig zu aktivieren. Außer bei Shell-Initialisierungsskripten und in ähnlichen Spezialfällen darf die Variable B<XZ_DEFAULTS> in Skripten niemals gesetzt oder außer Kraft gesetzt werden."
#. type: TP
#: ../src/xz/xz.1
@ -2933,9 +2870,10 @@ msgstr "Dies dient der Übergabe von Optionen an B<xz>, wenn es nicht möglich i
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid "CW<XZ_OPT=-2v tar caf foo.tar.xz foo>\n"
msgid "\\f(CRXZ_OPT=-2v tar caf foo.tar.xz foo\\fR\n"
msgstr "\\f(CRXZ_OPT=-2v tar caf foo.tar.xz foo\\fR\n"
msgstr "CW<XZ_OPT=-2v tar caf foo.tar.xz foo>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -2944,13 +2882,16 @@ msgstr "Skripte können B<XZ_OPT> zum Beispiel zum Setzen skriptspezifischer Sta
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid ""
#| "CW<XZ_OPT=${XZ_OPT-\"-7e\"}\n"
#| "export XZ_OPT>\n"
msgid ""
"\\f(CRXZ_OPT=${XZ_OPT-\"-7e\"}\n"
"export XZ_OPT\\fR\n"
msgstr ""
"\\f(CRXZ_OPT=${XZ_OPT-\"-7e\"}\n"
"export XZ_OPT\\fR\n"
"CW<XZ_OPT=${XZ_OPT-\"-7e\"}\n"
"export XZ_OPT>\n"
#. type: SH
#: ../src/xz/xz.1
@ -3182,9 +3123,10 @@ msgstr "Komprimiert die Datei I<foo> mit der Standard-Kompressionsstufe (B<-6>)
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid "CW<xz foo>\n"
msgid "\\f(CRxz foo\\fR\n"
msgstr "\\f(CRxz foo\\fR\n"
msgstr "CW<xz foo>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -3193,9 +3135,10 @@ msgstr "I<bar.xz> in I<bar> dekomprimieren und I<bar.xz> selbst dann nicht lösc
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid "CW<xz -dk bar.xz>\n"
msgid "\\f(CRxz -dk bar.xz\\fR\n"
msgstr "\\f(CRxz -dk bar.xz\\fR\n"
msgstr "CW<xz -dk bar.xz>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -3204,9 +3147,10 @@ msgstr "I<baz.tar.xz> mit der Voreinstellung B<-4e> (B<-4 --extreme>) erzeugen,
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid "CW<tar cf - baz | xz -4e E<gt> baz.tar.xz>\n"
msgid "\\f(CRtar cf - baz | xz -4e E<gt> baz.tar.xz\\fR\n"
msgstr "\\f(CRtar cf - baz | xz -4e E<gt> baz.tar.xz\\fR\n"
msgstr "CW<tar cf - baz | xz -4e E<gt> baz.tar.xz>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -3215,9 +3159,10 @@ msgstr "Eine Mischung aus komprimierten und unkomprimierten Dateien kann mit ein
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid "CW<xz -dcf a.txt b.txt.xz c.txt d.txt.lzma E<gt> abcd.txt>\n"
msgid "\\f(CRxz -dcf a.txt b.txt.xz c.txt d.txt.lzma E<gt> abcd.txt\\fR\n"
msgstr "\\f(CRxz -dcf a.txt b.txt.xz c.txt d.txt.lzma E<gt> abcd.txt\\fR\n"
msgstr "CW<xz -dcf a.txt b.txt.xz c.txt d.txt.lzma E<gt> abcd.txt>\n"
#. type: SS
#: ../src/xz/xz.1
@ -3232,13 +3177,16 @@ msgstr "Auf GNU- und *BSD-Systemen können B<find>(1) und B<xargs>(1) zum Parall
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid ""
#| "CW<find . -type f \\e! -name '*.xz' -print0 \\e\n"
#| " | xargs -0r -P4 -n16 xz -T1>\n"
msgid ""
"\\f(CRfind . -type f \\e! -name '*.xz' -print0 \\e\n"
" | xargs -0r -P4 -n16 xz -T1\\fR\n"
msgstr ""
"\\f(CRfind . -type f \\e! -name '*.xz' -print0 \\e\n"
" | xargs -0r -P4 -n16 xz -T1\\fR\n"
"CW<find . -type f \\e! -name '*.xz' -print0 \\e\n"
" | xargs -0r -P4 -n16 xz -T1>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -3263,9 +3211,10 @@ msgstr "Berechnen, wie viel Byte nach der Kompression mehrerer Dateien insgesamt
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid "CW<xz --robot --list *.xz | awk '/^totals/{print $5-$4}'>\n"
msgid "\\f(CRxz --robot --list *.xz | awk '/^totals/{print $5-$4}'\\fR\n"
msgstr "\\f(CRxz --robot --list *.xz | awk '/^totals/{print $5-$4}'\\fR\n"
msgstr "CW<xz --robot --list *.xz | awk '/^totals/{print $5-$4}'>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -3274,7 +3223,13 @@ msgstr "Ein Skript könnte abfragen wollen, ob es ein B<xz> verwendet, das aktue
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid ""
#| "CW<if ! eval \"$(xz --robot --version 2E<gt> /dev/null)\" ||\n"
#| " [ \"$XZ_VERSION\" -lt 50000002 ]; then\n"
#| " echo \"Your xz is too old.\"\n"
#| "fi\n"
#| "unset XZ_VERSION LIBLZMA_VERSION>\n"
msgid ""
"\\f(CRif ! eval \"$(xz --robot --version 2E<gt> /dev/null)\" ||\n"
" [ \"$XZ_VERSION\" -lt 50000002 ]; then\n"
@ -3282,11 +3237,11 @@ msgid ""
"fi\n"
"unset XZ_VERSION LIBLZMA_VERSION\\fR\n"
msgstr ""
"\\f(CRif ! eval \"$(xz --robot --version 2E<gt> /dev/null)\" ||\n"
"CW<if ! eval \"$(xz --robot --version 2E<gt> /dev/null)\" ||\n"
" [ \"$XZ_VERSION\" -lt 50000002 ]; then\n"
" echo \"Ihre Version von Xz ist zu alt.\"\n"
"fi\n"
"unset XZ_VERSION LIBLZMA_VERSION\\fR\n"
"unset XZ_VERSION LIBLZMA_VERSION>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -3295,7 +3250,14 @@ msgstr "Eine Speicherbedarfsbegrenzung für die Dekompression mit B<XZ_OPT> setz
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid ""
#| "CW<NEWLIM=$((123 E<lt>E<lt> 20))\\ \\ # 123 MiB\n"
#| "OLDLIM=$(xz --robot --info-memory | cut -f3)\n"
#| "if [ $OLDLIM -eq 0 -o $OLDLIM -gt $NEWLIM ]; then\n"
#| " XZ_OPT=\"$XZ_OPT --memlimit-decompress=$NEWLIM\"\n"
#| " export XZ_OPT\n"
#| "fi>\n"
msgid ""
"\\f(CRNEWLIM=$((123 E<lt>E<lt> 20))\\ \\ # 123 MiB\n"
"OLDLIM=$(xz --robot --info-memory | cut -f3)\n"
@ -3304,12 +3266,12 @@ msgid ""
" export XZ_OPT\n"
"fi\\fR\n"
msgstr ""
"\\f(CRNEWLIM=$((123 E<lt>E<lt> 20))\\ \\ # 123 MiB\n"
"CW<NEWLIM=$((123 E<lt>E<lt> 20))\\ \\ # 123 MiB\n"
"OLDLIM=$(xz --robot --info-memory | cut -f3)\n"
"if [ $OLDLIM -eq 0 -o $OLDLIM -gt $NEWLIM ]; then\n"
" XZ_OPT=\"$XZ_OPT --memlimit-decompress=$NEWLIM\"\n"
" export XZ_OPT\n"
"fi\\fR\n"
"fi>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -3328,9 +3290,10 @@ msgstr "Wenn Sie wissen, dass eine Datei für eine gute Kompression ein etwas gr
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid "CW<xz --lzma2=preset=1,dict=32MiB foo.tar>\n"
msgid "\\f(CRxz --lzma2=preset=1,dict=32MiB foo.tar\\fR\n"
msgstr "\\f(CRxz --lzma2=preset=1,dict=32MiB foo.tar\\fR\n"
msgstr "CW<xz --lzma2=preset=1,dict=32MiB foo.tar>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -3344,9 +3307,10 @@ msgstr "Wenn hoher Speicherbedarf für Kompression und Dekompression kein Proble
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid "CW<xz -vv --lzma2=dict=192MiB big_foo.tar>\n"
msgid "\\f(CRxz -vv --lzma2=dict=192MiB big_foo.tar\\fR\n"
msgstr "\\f(CRxz -vv --lzma2=dict=192MiB big_foo.tar\\fR\n"
msgstr "CW<xz -vv --lzma2=dict=192MiB big_foo.tar>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -3360,9 +3324,10 @@ msgstr "Manchmal spielt die Kompressionszeit keine Rolle, aber der Speicherbedar
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid "CW<xz --check=crc32 --lzma2=preset=6e,dict=64KiB foo>\n"
msgid "\\f(CRxz --check=crc32 --lzma2=preset=6e,dict=64KiB foo\\fR\n"
msgstr "\\f(CRxz --check=crc32 --lzma2=preset=6e,dict=64KiB foo\\fR\n"
msgstr "CW<xz --check=crc32 --lzma2=preset=6e,dict=64KiB foo>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -3371,9 +3336,10 @@ msgstr "Wenn Sie so viele Byte wie möglich herausquetschen wollen, kann die Anp
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid "CW<xz --lzma2=preset=6e,pb=0,lc=4 source_code.tar>\n"
msgid "\\f(CRxz --lzma2=preset=6e,pb=0,lc=4 source_code.tar\\fR\n"
msgstr "\\f(CRxz --lzma2=preset=6e,pb=0,lc=4 source_code.tar\\fR\n"
msgstr "CW<xz --lzma2=preset=6e,pb=0,lc=4 Quellcode.tar>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -3382,9 +3348,10 @@ msgstr "Die Verwendung eines anderen Filters mit LZMA2 kann die Kompression bei
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid "CW<xz --x86 --lzma2 libfoo.so>\n"
msgid "\\f(CRxz --x86 --lzma2 libfoo.so\\fR\n"
msgstr "\\f(CRxz --x86 --lzma2 libfoo.so\\fR\n"
msgstr "CW<xz --x86 --lzma2 libfoo.so>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -3403,9 +3370,10 @@ msgstr "Das Bild muss in einem unkomprimierten Format gespeichert werden, zum Be
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid "CW<xz --delta=dist=3 --lzma2=pb=0 foo.tiff>\n"
msgid "\\f(CRxz --delta=dist=3 --lzma2=pb=0 foo.tiff\\fR\n"
msgstr "\\f(CRxz --delta=dist=3 --lzma2=pb=0 foo.tiff\\fR\n"
msgstr "CW<xz --delta=dist=3 --lzma2=pb=0 foo.tiff>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -3446,12 +3414,6 @@ msgstr "LZMA-SDK: E<lt>https://7-zip.org/sdk.htmlE<gt>"
msgid "XZDEC"
msgstr "XZDEC"
#. type: TH
#: ../src/xzdec/xzdec.1
#, no-wrap
msgid "2024-04-08"
msgstr "8. August 2024"
#. type: Plain text
#: ../src/xzdec/xzdec.1
msgid "xzdec, lzmadec - Small .xz and .lzma decompressors"
@ -3592,11 +3554,10 @@ msgid "XZDIFF"
msgstr "XZDIFF"
#. type: TH
#: ../src/scripts/xzdiff.1 ../src/scripts/xzgrep.1 ../src/scripts/xzless.1
#: ../src/scripts/xzmore.1
#: ../src/scripts/xzdiff.1 ../src/scripts/xzgrep.1
#, no-wrap
msgid "2025-03-06"
msgstr "6. März 2025"
msgid "2024-02-13"
msgstr "13. Februar 2024"
#. type: Plain text
#: ../src/scripts/xzdiff.1
@ -3615,13 +3576,13 @@ msgstr "B<xzdiff> \\&…"
#. type: Plain text
#: ../src/scripts/xzdiff.1
msgid "B<lzcmp> \\&... (DEPRECATED)"
msgstr "B<lzcmp> \\&… (VERALTET)"
msgid "B<lzcmp> \\&..."
msgstr "B<lzcmp> \\&…"
#. type: Plain text
#: ../src/scripts/xzdiff.1
msgid "B<lzdiff> \\&... (DEPRECATED)"
msgstr "B<lzdiff> \\&… (VERALTET)"
msgid "B<lzdiff> \\&..."
msgstr "B<lzdiff> \\&…"
#. type: Plain text
#: ../src/scripts/xzdiff.1
@ -3640,8 +3601,8 @@ msgstr "Falls nur ein Dateiname angegeben wird, muss I<Datei1> eine Endung eines
#. type: Plain text
#: ../src/scripts/xzdiff.1
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 "Die Befehle B<lzcmp> und B<lzdiff> dienen der Abwärtskompatibilität zu den LZMA-Dienstprogrammen. Sie werden als veraltet angesehen und werden in einer zukünftigen Version entfernt."
msgid "The commands B<lzcmp> and B<lzdiff> are provided for backward compatibility with LZMA Utils."
msgstr "Die Befehle B<lzcmp> und B<lzdiff> dienen der Abwärtskompatibilität zu den LZMA-Dienstprogrammen."
#. type: Plain text
#: ../src/scripts/xzdiff.1
@ -3681,18 +3642,18 @@ msgstr "B<xzfgrep> …"
#. type: Plain text
#: ../src/scripts/xzgrep.1
msgid "B<lzgrep> \\&... (DEPRECATED)"
msgstr "B<lzgrep> \\& (VERALTET)"
msgid "B<lzgrep> \\&..."
msgstr "B<lzgrep> …"
#. type: Plain text
#: ../src/scripts/xzgrep.1
msgid "B<lzegrep> \\&... (DEPRECATED)"
msgstr "B<lzegrep> \\& (VERALTET)"
msgid "B<lzegrep> \\&..."
msgstr "B<lzegrep> …"
#. type: Plain text
#: ../src/scripts/xzgrep.1
msgid "B<lzfgrep> \\&... (DEPRECATED)"
msgstr "B<lzfgrep> \\& (VERALTET)"
msgid "B<lzfgrep> \\&..."
msgstr "B<lzfgrep> …"
#. type: Plain text
#: ../src/scripts/xzgrep.1
@ -3761,8 +3722,8 @@ msgstr "B<xzegrep> ist ein Alias für B<xzgrep -E>. B<xzfgrep> ist ein Alias f
#. type: Plain text
#: ../src/scripts/xzgrep.1
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 "Die Befehle B<lzgrep>, B<lzegrep> und B<lzfgrep> dienen der Abwärtskompatibilität zu den LZMA-Dienstprogrammen. Sie werden als veraltet angesehen und werden in einer zukünftigen Version entfernt."
msgid "The commands B<lzgrep>, B<lzegrep>, and B<lzfgrep> are provided for backward compatibility with LZMA Utils."
msgstr "Die Befehle B<lzgrep>, B<lzegrep> und B<lzfgrep> dienen der Abwärtskompatibilität zu den LZMA-Dienstprogrammen."
#. type: Plain text
#: ../src/scripts/xzgrep.1
@ -3807,6 +3768,12 @@ msgstr "B<grep>(1), B<xz>(1), B<gzip>(1), B<bzip2>(1), B<lzop>(1), B<zstd>(1), B
msgid "XZLESS"
msgstr "XZLESS"
#. type: TH
#: ../src/scripts/xzless.1 ../src/scripts/xzmore.1
#, no-wrap
msgid "2024-02-12"
msgstr "12. Februar 2024"
#. type: Plain text
#: ../src/scripts/xzless.1
msgid "xzless, lzless - view xz or lzma compressed (text) files"
@ -3819,8 +3786,8 @@ msgstr "B<xzless> [I<Datei> …]"
#. type: Plain text
#: ../src/scripts/xzless.1
msgid "B<lzless> [I<file>...] (DEPRECATED)"
msgstr "B<lzless> [I<Datei> …] (VERALTET)"
msgid "B<lzless> [I<file>...]"
msgstr "B<lzless> [I<Datei> …]"
#. type: Plain text
#: ../src/scripts/xzless.1
@ -3830,12 +3797,12 @@ msgstr "B<xzless> ist ein Filter, der Text aus komprimierten Dateien in einem Te
#. type: Plain text
#: ../src/scripts/xzless.1
msgid "B<xzless> uses B<less>(1) to present its output. Unlike B<xzmore>, its choice of pager cannot be altered by setting an environment variable. Commands are based on both B<more>(1) and B<vi>(1) and allow back and forth movement and searching. See the B<less>(1) manual for more information."
msgstr "B<xzless> verwendet B<less>(1) zur Darstellung der Ausgabe. Im Gegensatz zu B<xzmore> können Sie das zu verwendende Textanzeigeprogramm nicht durch Setzen einer Umgebungsvariable ändern. Die Befehle basieren auf B<more>(1) und B<vi>(1) und ermöglichen Vorwärts- und Rückwärtssprünge sowie Suchvorgänge. In der Handbuchseite zu B<less>(1) finden Sie weitere Informationen."
msgstr "B<xzless> verwendet B<less>(1) zur Darstellung der Ausgabe. Im Gegensatz zu B<xzmore> können Sie das zu verwendende Textanzeigeprogramm nicht durch Setzen einer Umgebungsvariable ändern. Die Befehle basieren auf B<more>(1) und B<vi>(1) und ermöglichen Vorwärts- und Rückwärtssprünge sowie Suchvorgänge. In der Handbuchseite zu B<less>(1) finden Sie weiter Information."
#. type: Plain text
#: ../src/scripts/xzless.1
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 "Der Befehl B<lzless> dient der Abwärtskompatibilität zu den LZMA-Dienstprogrammen. Er wird als veraltet angesehen und wird in einer zukünftigen Version entfernt."
msgid "The command named B<lzless> is provided for backward compatibility with LZMA Utils."
msgstr "Der Befehl B<lzless> dient der Abwärtskompatibilität zu den LZMA-Dienstprogrammen."
#. type: TP
#: ../src/scripts/xzless.1
@ -3882,8 +3849,8 @@ msgstr "B<xzmore> [I<Datei> …]"
#. type: Plain text
#: ../src/scripts/xzmore.1
msgid "B<lzmore> [I<file>...] (DEPRECATED)"
msgstr "B<lzmore> [I<Datei> …] (VERALTET)"
msgid "B<lzmore> [I<file>...]"
msgstr "B<lzmore> [I<Datei> …]"
#. type: Plain text
#: ../src/scripts/xzmore.1
@ -3897,11 +3864,9 @@ msgstr "Beachten Sie, dass Zurückrollen nicht möglich sein könnte, abhängig
#. type: Plain text
#: ../src/scripts/xzmore.1
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 "Der Befehl B<lzmore> dient der Abwärtskompatibilität zu den LZMA-Dienstprogrammen. Er wird als veraltet angesehen und wird in einer zukünftigen Version entfernt."
msgid "The command B<lzmore> is provided for backward compatibility with LZMA Utils."
msgstr "Der Befehl B<lzmore> dient der Abwärtskompatibilität zu den LZMA-Dienstprogrammen."
#. TRANSLATORS: Don't translate the uppercase PAGER.
#. It is a name of an environment variable.
#. type: TP
#: ../src/scripts/xzmore.1
#, no-wrap
@ -3911,9 +3876,13 @@ msgstr "B<PAGER>"
#. type: Plain text
#: ../src/scripts/xzmore.1
msgid "If B<PAGER> is set, its value is used as the pager instead of B<more>(1)."
msgstr "Falls die Umgebungsvariable B<PAGER> gesetzt ist, wird deren Wert als Pager (Textanzeigeprogramm) anstelle von B<more>(1) verwendet."
msgstr "Falls die Umgebungsvariable B<PAGER> gesetzt ist, wird diese als Pager (Textanzeigeprogramm) anstelle von B<more>(1) verwendet."
#. type: Plain text
#: ../src/scripts/xzmore.1
msgid "B<more>(1), B<xz>(1), B<xzless>(1), B<zmore>(1)"
msgstr "B<more>(1), B<xz>(1), B<xzless>(1), B<zmore>(1)"
#, no-wrap
#~ msgid "2024-01-19"
#~ msgstr "19. Januar 2024"

View File

@ -9,7 +9,7 @@
msgid ""
msgstr ""
"Project-Id-Version: XZ Utils 5.2.5\n"
"POT-Creation-Date: 2025-03-25 12:28+0200\n"
"POT-Creation-Date: 2024-05-29 17:45+0300\n"
"PO-Revision-Date: 2021-12-01 15:17+0100\n"
"Last-Translator: bubu <bubub@no-log.org> \n"
"Language-Team: French <debian-l10n-french@lists.debian.org> \n"
@ -27,9 +27,9 @@ msgid "XZ"
msgstr "XZ"
#. type: TH
#: ../src/xz/xz.1
#: ../src/xz/xz.1 ../src/xzdec/xzdec.1
#, no-wrap
msgid "2025-03-08"
msgid "2024-04-08"
msgstr ""
#. type: TH
@ -217,8 +217,6 @@ msgstr "L'utilisation de la mémoire par B<xz> varie de quelques centaines de ki
msgid "Especially users of older systems may find the possibility of very large memory usage annoying. To prevent uncomfortable surprises, B<xz> has a built-in memory usage limiter, which is disabled by default. While some operating systems provide ways to limit the memory usage of processes, relying on it wasn't deemed to be flexible enough (for example, using B<ulimit>(1) to limit virtual memory tends to cripple B<mmap>(2))."
msgstr ""
#. TRANSLATORS: Don't translate the uppercase XZ_DEFAULTS.
#. It's a name of an environment variable.
#. type: Plain text
#: ../src/xz/xz.1
msgid "The memory usage limiter can be enabled with the command line option B<--memlimit=>I<limit>. Often it is more convenient to enable the limiter by default by setting the environment variable B<XZ_DEFAULTS>, for example, B<XZ_DEFAULTS=--memlimit=150MiB>. It is possible to set the limits separately for compression and decompression by using B<--memlimit-compress=>I<limit> and B<--memlimit-decompress=>I<limit>. Using these two options outside B<XZ_DEFAULTS> is rarely useful because a single run of B<xz> cannot do both compression and decompression and B<--memlimit=>I<limit> (or B<-M> I<limit>) is shorter to type on the command line."
@ -327,27 +325,16 @@ msgstr "B<-z>, B<--compress>"
msgid "Compress. This is the default operation mode when no operation mode option is specified and no other operation mode is implied from the command name (for example, B<unxz> implies B<--decompress>)."
msgstr "Compresser. C'est le mode d'opération par défaut lorsque aucune option de mode opératoire n'est spécifiée ou qu'aucun autre mode d'opération n'est sous-entendu par le nom de la commande (par exemple B<unxz> sous-entend B<--decompress>)."
#. The DESCRIPTION section already says this but it's good to repeat it
#. here because the default behavior is a bit dangerous and new users
#. in a hurry may skip reading the DESCRIPTION section.
#. type: Plain text
#: ../src/xz/xz.1
msgid "After successful compression, the source file is removed unless writing to standard output or B<--keep> was specified."
msgstr ""
#. type: TP
#: ../src/xz/xz.1 ../src/xzdec/xzdec.1
#, no-wrap
msgid "B<-d>, B<--decompress>, B<--uncompress>"
msgstr "B<-d>, B<--decompress>, B<--uncompress>"
#. The DESCRIPTION section already says this but it's good to repeat it
#. here because the default behavior is a bit dangerous and new users
#. in a hurry may skip reading the DESCRIPTION section.
#. type: Plain text
#: ../src/xz/xz.1
msgid "Decompress. After successful decompression, the source file is removed unless writing to standard output or B<--keep> was specified."
msgstr ""
msgid "Decompress."
msgstr "Décompresser."
#. type: TP
#: ../src/xz/xz.1
@ -463,11 +450,6 @@ msgstr "B<xz> ne décompresse jamais plus d'un flux à partir de fichiers B<.lzm
msgid "This option has no effect if the operation mode is not B<--decompress> or B<--test>."
msgstr "Cette option n'a aucun effet si le mode d'opération n'est pas B<--decompress> ou B<--test>."
#. type: Plain text
#: ../src/xz/xz.1
msgid "Since B<xz> 5.7.1alpha, B<--single-stream> implies B<--keep>."
msgstr ""
#. type: TP
#: ../src/xz/xz.1
#, no-wrap
@ -539,7 +521,6 @@ msgstr "B<-F> I<format>, B<--format=>I<format>"
msgid "Specify the file I<format> to compress or decompress:"
msgstr "Indiquer le I<format> de fichier à compresser ou décompresser :"
#. TRANSLATORS: Don't translate bold string B<auto>.
#. type: TP
#: ../src/xz/xz.1
#, no-wrap
@ -621,9 +602,6 @@ msgstr "Spécifier le type d'intégrité à vérifier. La vérification est calc
msgid "Supported I<check> types:"
msgstr "Types de I<vérification> pris en charge :"
#. TRANSLATORS: Don't translate the bold strings B<none>, B<crc32>,
#. B<crc64>, and B<sha256>. The command line option --check accepts
#. only the untranslated strings.
#. type: TP
#: ../src/xz/xz.1
#, no-wrap
@ -1266,28 +1244,6 @@ msgstr "Cette option n'est pas disponible sur les systèmes qui ne sont pas POSI
msgid "B<This feature is still experimental.> Currently B<xz> is unsuitable for decompressing the stream in real time due to how B<xz> does buffering."
msgstr "B<Cette option est encore expérimentale.> Actuellement, B<xz> ne convient pas pour décompresser le flux en temps réel en raison de la façon dont B<xz> effectue la mise en mémoire tampon."
#. type: TP
#: ../src/xz/xz.1
#, fuzzy, no-wrap
#| msgid "B<--no-sparse>"
msgid "B<--no-sync>"
msgstr "B<--no-sparse>"
#. type: Plain text
#: ../src/xz/xz.1
msgid "Do not synchronize the target file and its directory to the storage device before removing the source file. This can improve performance if compressing or decompressing many small files. However, if the system crashes soon after the deletion, it is possible that the target file was not written to the storage device but the delete operation was. In that case neither the original source file nor the target file is available."
msgstr ""
#. type: Plain text
#: ../src/xz/xz.1
msgid "This option has an effect only when B<xz> is going to remove the source file. In other cases synchronization is never done."
msgstr ""
#. type: Plain text
#: ../src/xz/xz.1
msgid "The synchronization and B<--no-sync> were added in B<xz> 5.7.1alpha."
msgstr ""
#. type: TP
#: ../src/xz/xz.1
#, no-wrap
@ -1553,11 +1509,6 @@ msgstr "LZMA1 est un filtre historique, qui n'est pris en charge presque uniquem
msgid "LZMA1 and LZMA2 share the same set of I<options>:"
msgstr "LZMA1 et LZMA2 partagent le même ensemble d'I<options> :"
#. TRANSLATORS: Don't translate bold strings like B<preset>, B<dict>,
#. B<mode>, B<nice>, B<fast>, or B<normal> because those are command line
#. options. On the other hand, do translate the italic strings like
#. I<preset>, I<size>, and I<mode>, because such italic strings are
#. placeholders which a user replaces with an actual value.
#. type: TP
#: ../src/xz/xz.1
#, no-wrap
@ -2261,11 +2212,6 @@ msgstr "Mode liste"
msgid "B<xz --robot --list> uses tab-separated output. The first column of every line has a string that indicates the type of the information found on that line:"
msgstr "B<xz --robot --list> utilise une sortie séparée par des tabulations. La première colonne de toutes les lignes possède une chaîne qui indique le type d'information trouvée sur cette ligne :"
#. TRANSLATORS: The bold strings B<name>, B<file>, B<stream>, B<block>,
#. B<summary>, and B<totals> are produced by the xz tool for scripts to
#. parse, thus the untranslated strings must be included in the translated
#. man page. It may be useful to provide a translated string in parenthesis
#. without bold, for example: "B<name> (nimi)"
#. type: TP
#: ../src/xz/xz.1
#, no-wrap
@ -2398,9 +2344,6 @@ msgstr ""
msgid "7."
msgstr "7."
#. TRANSLATORS: Don't translate the bold strings B<None>, B<CRC32>,
#. B<CRC64>, B<SHA-256>, or B<Unknown-> here. In robot mode, xz produces
#. them in untranslated form for scripts to parse.
#. type: Plain text
#: ../src/xz/xz.1
msgid "Comma-separated list of integrity check names. The following strings are used for the known check types: B<None>, B<CRC32>, B<CRC64>, and B<SHA-256>. For unknown check types, B<Unknown->I<N> is used, where I<N> is the Check ID as a decimal number (one or two digits)."
@ -2787,7 +2730,6 @@ msgstr "Version"
msgid "B<xz --robot --version> prints the version number of B<xz> and liblzma in the following format:"
msgstr ""
#. TRANSLATORS: Don't translate the uppercase XZ_VERSION or LIBLZMA_VERSION.
#. type: Plain text
#: ../src/xz/xz.1
msgid "B<XZ_VERSION=>I<XYYYZZZS>"
@ -2904,18 +2846,11 @@ msgstr "Les notifications (pas les avertissements ou les erreurs) affichées sur
msgid "ENVIRONMENT"
msgstr "ENVIRONNEMENT"
#. TRANSLATORS: Don't translate the uppercase XZ_DEFAULTS or XZ_OPT.
#. They are names of environment variables.
#. type: Plain text
#: ../src/xz/xz.1
msgid "B<xz> parses space-separated lists of options from the environment variables B<XZ_DEFAULTS> and B<XZ_OPT>, in this order, before parsing the options from the command line. Note that only options are parsed from the environment variables; all non-options are silently ignored. Parsing is done with B<getopt_long>(3) which is used also for the command line arguments."
msgstr "B<xz> analyse les listes d'options séparées par des espaces à partir des variables d'environnement B<XZ_DEFAULTS> et B<XZ_OPT>, dans cet ordre, avant d'analyser les options de la ligne de commandes. Remarquez que seules les options sont analysées depuis l'environnement des variables ; toutes les non-options sont ignorées silencieusement. L'analyse est faite avec B<getopt_long>(3) qui est aussi utilisé pour les arguments de la ligne de commandes."
#. 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 ""
#. type: TP
#: ../src/xz/xz.1
#, no-wrap
@ -2924,9 +2859,7 @@ 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>."
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>."
msgstr "Options par défaut propres à l'utilisateur ou pour tout le système. Elles sont le plus souvent définies dans un script d'initialisation de l'interpréteur pour activer le limiteur d'utilisation de la mémoire de B<xz> par défaut. A part pour les scripts d'initialisation de l'interpréteur ou des cas similaires, les sripts ne doivent jamais définir ou désactiver B<XZ_DEFAULTS>."
#. type: TP
@ -3473,12 +3406,6 @@ msgstr ""
msgid "XZDEC"
msgstr "XZDEC"
#. type: TH
#: ../src/xzdec/xzdec.1
#, no-wrap
msgid "2024-04-08"
msgstr ""
#. type: Plain text
#: ../src/xzdec/xzdec.1
msgid "xzdec, lzmadec - Small .xz and .lzma decompressors"
@ -3619,12 +3546,10 @@ msgid "XZDIFF"
msgstr "XZDIFF"
#. type: TH
#: ../src/scripts/xzdiff.1 ../src/scripts/xzgrep.1 ../src/scripts/xzless.1
#: ../src/scripts/xzmore.1
#, fuzzy, no-wrap
#| msgid "2013-06-30"
msgid "2025-03-06"
msgstr "30-06-2013"
#: ../src/scripts/xzdiff.1 ../src/scripts/xzgrep.1
#, no-wrap
msgid "2024-02-13"
msgstr ""
#. type: Plain text
#: ../src/scripts/xzdiff.1
@ -3645,12 +3570,12 @@ msgstr ""
#. type: Plain text
#: ../src/scripts/xzdiff.1
msgid "B<lzcmp> \\&... (DEPRECATED)"
msgid "B<lzcmp> \\&..."
msgstr ""
#. type: Plain text
#: ../src/scripts/xzdiff.1
msgid "B<lzdiff> \\&... (DEPRECATED)"
msgid "B<lzdiff> \\&..."
msgstr ""
#. type: Plain text
@ -3672,7 +3597,7 @@ msgstr ""
#: ../src/scripts/xzdiff.1
#, fuzzy
#| msgid "The command named B<lzless> is 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."
msgid "The commands B<lzcmp> and B<lzdiff> are provided for backward compatibility with LZMA Utils."
msgstr "La commande nommée B<lzless> est fournie pour la rétrocompatibilité avec les utilitaires LZMA."
#. type: Plain text
@ -3717,17 +3642,17 @@ msgstr ""
#. type: Plain text
#: ../src/scripts/xzgrep.1
msgid "B<lzgrep> \\&... (DEPRECATED)"
msgid "B<lzgrep> \\&..."
msgstr ""
#. type: Plain text
#: ../src/scripts/xzgrep.1
msgid "B<lzegrep> \\&... (DEPRECATED)"
msgid "B<lzegrep> \\&..."
msgstr ""
#. type: Plain text
#: ../src/scripts/xzgrep.1
msgid "B<lzfgrep> \\&... (DEPRECATED)"
msgid "B<lzfgrep> \\&..."
msgstr ""
#. type: Plain text
@ -3813,7 +3738,7 @@ msgstr ""
#: ../src/scripts/xzgrep.1
#, fuzzy
#| msgid "The command named B<lzless> is 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."
msgid "The commands B<lzgrep>, B<lzegrep>, and B<lzfgrep> are provided for backward compatibility with LZMA Utils."
msgstr "La commande nommée B<lzless> est fournie pour la rétrocompatibilité avec les utilitaires LZMA."
#. type: Plain text
@ -3861,6 +3786,12 @@ msgstr "B<xzdec>(1), B<xzdiff>(1), B<xzgrep>(1), B<xzless>(1), B<xzmore>(1), B<g
msgid "XZLESS"
msgstr "XZLESS"
#. type: TH
#: ../src/scripts/xzless.1 ../src/scripts/xzmore.1
#, no-wrap
msgid "2024-02-12"
msgstr ""
#. type: Plain text
#: ../src/scripts/xzless.1
msgid "xzless, lzless - view xz or lzma compressed (text) files"
@ -3873,9 +3804,7 @@ msgstr "B<xzless> [I<fichier>...]"
#. type: Plain text
#: ../src/scripts/xzless.1
#, fuzzy
#| msgid "B<lzless> [I<file>...]"
msgid "B<lzless> [I<file>...] (DEPRECATED)"
msgid "B<lzless> [I<file>...]"
msgstr "B<lzless> [I<fichier>...]"
#. type: Plain text
@ -3890,9 +3819,7 @@ msgstr "B<xzless> utilise B<less>(1) pour afficher sa sortie. Contrairement à B
#. 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."
msgid "The command named B<lzless> is provided for backward compatibility with LZMA Utils."
msgstr "La commande nommée B<lzless> est fournie pour la rétrocompatibilité avec les utilitaires LZMA."
#. type: TP
@ -3944,7 +3871,7 @@ msgstr "B<xzless> [I<fichier>...]"
#: ../src/scripts/xzmore.1
#, fuzzy
#| msgid "B<lzless> [I<file>...]"
msgid "B<lzmore> [I<file>...] (DEPRECATED)"
msgid "B<lzmore> [I<file>...]"
msgstr "B<lzless> [I<fichier>...]"
#. type: Plain text
@ -3961,11 +3888,9 @@ msgstr ""
#: ../src/scripts/xzmore.1
#, fuzzy
#| msgid "The command named B<lzless> 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."
msgid "The command B<lzmore> is provided for backward compatibility with LZMA Utils."
msgstr "La commande nommée B<lzless> est fournie pour la rétrocompatibilité avec les utilitaires LZMA."
#. TRANSLATORS: Don't translate the uppercase PAGER.
#. It is a name of an environment variable.
#. type: TP
#: ../src/scripts/xzmore.1
#, no-wrap

3901
po4a/it.po

File diff suppressed because it is too large Load Diff

View File

@ -5,9 +5,9 @@
#
msgid ""
msgstr ""
"Project-Id-Version: xz-man 5.8.0-pre1\n"
"POT-Creation-Date: 2025-03-08 14:50+0200\n"
"PO-Revision-Date: 2025-03-11 01:03+0900\n"
"Project-Id-Version: xz-man 5.6.0-pre2\n"
"POT-Creation-Date: 2024-05-29 17:45+0300\n"
"PO-Revision-Date: 2024-02-21 00:14+0900\n"
"Last-Translator: Seong-ho Cho <darkcircle.0426@gmail.com>\n"
"Language-Team: Korean <translation-team-ko@googlegroups.com>\n"
"Language: ko\n"
@ -16,7 +16,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
"X-Generator: Poedit 3.5\n"
"X-Generator: Poedit 3.0.1\n"
#. type: TH
#: ../src/xz/xz.1
@ -25,10 +25,11 @@ msgid "XZ"
msgstr "XZ"
#. type: TH
#: ../src/xz/xz.1
#, no-wrap
msgid "2025-03-08"
msgstr "2025-03-08"
#: ../src/xz/xz.1 ../src/xzdec/xzdec.1
#, fuzzy, no-wrap
#| msgid "2024-02-25"
msgid "2024-04-08"
msgstr "2024-02-25"
#. type: TH
#: ../src/xz/xz.1 ../src/xzdec/xzdec.1 ../src/lzmainfo/lzmainfo.1
@ -213,8 +214,6 @@ msgstr "B<xz> 메모리 사용은 수백 킬로바이트로 시작하여 수 기
msgid "Especially users of older systems may find the possibility of very large memory usage annoying. To prevent uncomfortable surprises, B<xz> has a built-in memory usage limiter, which is disabled by default. While some operating systems provide ways to limit the memory usage of processes, relying on it wasn't deemed to be flexible enough (for example, using B<ulimit>(1) to limit virtual memory tends to cripple B<mmap>(2))."
msgstr "특히 이전 시스템 사용자의 경우 메모리 사용량이 엄청나게 늘어나는 점에 짜증이 날 수 있습니다. 이런 불편한 상황을 피하기 위해, B<xz>에 기본적으로 비활성 상태인 내장 메모리 사용 제한 기능을 넣었습니다. 일부 운영체제에서 처리 중 메모리 사용을 제한하는 수단을 제공하긴 하지만, 여기에 의지하기에는 충분히 유연하지 않습니다(예를 들면, B<ulimit>(1)을 사용하면 가상 메모리를 제한하여 B<mmap>(2)을 먹통으로 만듭니다)."
#. TRANSLATORS: Don't translate the uppercase XZ_DEFAULTS.
#. It's a name of an environment variable.
#. type: Plain text
#: ../src/xz/xz.1
msgid "The memory usage limiter can be enabled with the command line option B<--memlimit=>I<limit>. Often it is more convenient to enable the limiter by default by setting the environment variable B<XZ_DEFAULTS>, for example, B<XZ_DEFAULTS=--memlimit=150MiB>. It is possible to set the limits separately for compression and decompression by using B<--memlimit-compress=>I<limit> and B<--memlimit-decompress=>I<limit>. Using these two options outside B<XZ_DEFAULTS> is rarely useful because a single run of B<xz> cannot do both compression and decompression and B<--memlimit=>I<limit> (or B<-M> I<limit>) is shorter to type on the command line."
@ -323,27 +322,16 @@ msgstr "B<-z>, B<--compress>"
msgid "Compress. This is the default operation mode when no operation mode option is specified and no other operation mode is implied from the command name (for example, B<unxz> implies B<--decompress>)."
msgstr "압축합니다. 어떤 동작 모드 옵션도 지정하지 않고 다른 동작 모드를 명령행에 따로 지정하지 않았다면 이 동작 모드는 기본입니다(예: B<unxz> 는 B<--decompress>를 암시)."
#. The DESCRIPTION section already says this but it's good to repeat it
#. here because the default behavior is a bit dangerous and new users
#. in a hurry may skip reading the DESCRIPTION section.
#. type: Plain text
#: ../src/xz/xz.1
msgid "After successful compression, the source file is removed unless writing to standard output or B<--keep> was specified."
msgstr "압축을 제대로 끝내고 나면, 표준 출력에 기록하거나 B<--keep> 옵션을 지정하지 않았다면 원본 파일을 제거합니다."
#. type: TP
#: ../src/xz/xz.1 ../src/xzdec/xzdec.1
#, no-wrap
msgid "B<-d>, B<--decompress>, B<--uncompress>"
msgstr "B<-d>, B<--decompress>, B<--uncompress>"
#. The DESCRIPTION section already says this but it's good to repeat it
#. here because the default behavior is a bit dangerous and new users
#. in a hurry may skip reading the DESCRIPTION section.
#. type: Plain text
#: ../src/xz/xz.1
msgid "Decompress. After successful decompression, the source file is removed unless writing to standard output or B<--keep> was specified."
msgstr "압축 해제입니다. 압축 해제를 제대로 끝내고 나면, 표준 출력에 기록하거나 B<--keep> 옵션을 지정하지 않았다면 원본 파일을 제거합니다."
msgid "Decompress."
msgstr "압축을 해제합니다."
#. type: TP
#: ../src/xz/xz.1
@ -457,11 +445,6 @@ msgstr "B<xz>는 B<.lzma> 파일 또는 원시 스트림에서 온 하나 이상
msgid "This option has no effect if the operation mode is not B<--decompress> or B<--test>."
msgstr "이 옵션은 동작 모드가 B<--decompress> 또는 B<--test>가 아니면 동작에 아무런 영향을 주지 않습니다."
#. type: Plain text
#: ../src/xz/xz.1
msgid "Since B<xz> 5.7.1alpha, B<--single-stream> implies B<--keep>."
msgstr "B<xz> 5.7.1alpha 부터는 B<--single-stream> 옵션의 동작에 B<--keep> 동작이 들어갑니다."
#. type: TP
#: ../src/xz/xz.1
#, no-wrap
@ -533,7 +516,6 @@ msgstr "B<-F> I<format>, B<--format=>I<E<lt>형식E<gt>>"
msgid "Specify the file I<format> to compress or decompress:"
msgstr "압축 또는 압축해제 파일 I<E<lt>형식E<gt>>을 지정합니다:"
#. TRANSLATORS: Don't translate bold string B<auto>.
#. type: TP
#: ../src/xz/xz.1
#, no-wrap
@ -615,9 +597,6 @@ msgstr "무결성 검사 방식을 지정합니다. 검사 방식은 B<.xz> 파
msgid "Supported I<check> types:"
msgstr "지원 I<검사> 형식:"
#. TRANSLATORS: Don't translate the bold strings B<none>, B<crc32>,
#. B<crc64>, and B<sha256>. The command line option --check accepts
#. only the untranslated strings.
#. type: TP
#: ../src/xz/xz.1
#, no-wrap
@ -1259,27 +1238,6 @@ msgstr "이 기능은 POSIX 시스템이 아닌 곳에서는 사용할 수 없
msgid "B<This feature is still experimental.> Currently B<xz> is unsuitable for decompressing the stream in real time due to how B<xz> does buffering."
msgstr "B<이 기능은 여전히 시험중입니다>. 현재로서는, B<xz> 버퍼링 처리 방식 때문에 B<xz>의 실시간 스트림 압축 해제 기능 활용은 적절하지 않습니다."
#. type: TP
#: ../src/xz/xz.1
#, no-wrap
msgid "B<--no-sync>"
msgstr "B<--no-sync>"
#. type: Plain text
#: ../src/xz/xz.1
msgid "Do not synchronize the target file and its directory to the storage device before removing the source file. This can improve performance if compressing or decompressing many small files. However, if the system crashes soon after the deletion, it is possible that the target file was not written to the storage device but the delete operation was. In that case neither the original source file nor the target file is available."
msgstr "원본 파일을 제거하기 전까지는 스토릿지 장치에 대상 파일과 디렉터리를 동기화하지 않습니다. 작은 여러 파일을 압축하거나 압축해제할 때 성능을 개선할 수 있습니다. 그러나, 삭제 과정을 진행한 다음 시스템이 바로 치명적인 오류가 나타난다면, 대상 파일을 스토릿지 장치에 저장하지 않았지만 삭제 동작이 이루어졌을 수도 있습니다. 이 경우 원본 파일 뿐만 아니라 대상 파일도 나타나지 않습니다."
#. type: Plain text
#: ../src/xz/xz.1
msgid "This option has an effect only when B<xz> is going to remove the source file. In other cases synchronization is never done."
msgstr "이 옵션은 B<xz> 프로그램이 원본 파일을 삭제할 때만 동작합니다. 다른 경우에는 전혀 동기화가 이루어지지 않습니다."
#. type: Plain text
#: ../src/xz/xz.1
msgid "The synchronization and B<--no-sync> were added in B<xz> 5.7.1alpha."
msgstr "동기화 동작과 B<--no-sync> 옵션은 B<xz> 5.7.1alpha에 추가했습니다."
#. type: TP
#: ../src/xz/xz.1
#, no-wrap
@ -1542,11 +1500,6 @@ msgstr "LZMA1은 고전 필터로, LZMA1만 지원하는 고전 B<.lzma> 파일
msgid "LZMA1 and LZMA2 share the same set of I<options>:"
msgstr "LZMA1과 LZMA2는 동일한 I<E<lt>옵션E<gt>> 집합을 공유합니다:"
#. TRANSLATORS: Don't translate bold strings like B<preset>, B<dict>,
#. B<mode>, B<nice>, B<fast>, or B<normal> because those are command line
#. options. On the other hand, do translate the italic strings like
#. I<preset>, I<size>, and I<mode>, because such italic strings are
#. placeholders which a user replaces with an actual value.
#. type: TP
#: ../src/xz/xz.1
#, no-wrap
@ -1882,7 +1835,7 @@ msgstr "B<--sparc>[B<=>I<E<lt>옵션E<gt>>]"
#: ../src/xz/xz.1
#, no-wrap
msgid "B<--riscv>[B<=>I<options>]"
msgstr "B<--riscv>[B<=>I<options>]"
msgstr "B<--riscv>[B<=>I<E<lt>옵션E<gt>>]"
#. type: Plain text
#: ../src/xz/xz.1
@ -2249,16 +2202,11 @@ msgstr "목록 모드"
msgid "B<xz --robot --list> uses tab-separated output. The first column of every line has a string that indicates the type of the information found on that line:"
msgstr "B<xz --robot --list> 명령은 탭으로 구분한 출력 형태를 활용합니다. 모든 행의 첫번째 컬럼에는 해당 행에서 찾을 수 있는 정보의 형식을 나타냅니다:"
#. TRANSLATORS: The bold strings B<name>, B<file>, B<stream>, B<block>,
#. B<summary>, and B<totals> are produced by the xz tool for scripts to
#. parse, thus the untranslated strings must be included in the translated
#. man page. It may be useful to provide a translated string in parenthesis
#. without bold, for example: "B<name> (nimi)"
#. type: TP
#: ../src/xz/xz.1
#, no-wrap
msgid "B<name>"
msgstr "B<name>"
msgstr "B<이름>"
#. type: Plain text
#: ../src/xz/xz.1
@ -2269,51 +2217,51 @@ msgstr "이 행은 항상 파일 목록 시작 부분의 첫번째 줄에 있습
#: ../src/xz/xz.1
#, no-wrap
msgid "B<file>"
msgstr "B<file>"
msgstr "B<파일>"
#. type: Plain text
#: ../src/xz/xz.1
msgid "This line contains overall information about the B<.xz> file. This line is always printed after the B<name> line."
msgstr "이 행에는 B<.xz> 파일의 전반적인 정보가 들어있습니다. 이 행은 항상 B<name> 행 다음에 있습니다."
msgstr "이 행에는 B<.xz> 파일의 전반적인 정보가 들어있습니다. 이 행은 항상 B<이름> 행 다음에 있습니다."
#. type: TP
#: ../src/xz/xz.1
#, no-wrap
msgid "B<stream>"
msgstr "B<stream>"
msgstr "B<스트림>"
#. type: Plain text
#: ../src/xz/xz.1
msgid "This line type is used only when B<--verbose> was specified. There are as many B<stream> lines as there are streams in the B<.xz> file."
msgstr "이 행 형식은 B<--verbose> 옵션을 지정했을 때만 사용합니다. B<.xz> 파일의 B<stream> 행 수만큼 나타납니다."
msgstr "이 행 형식은 B<--verbose> 옵션을 지정했을 때만 사용합니다. B<.xz> 파일의 B<스트림> 행 수만큼 나타납니다."
#. type: TP
#: ../src/xz/xz.1
#, no-wrap
msgid "B<block>"
msgstr "B<block>"
msgstr "B<블록>"
#. type: Plain text
#: ../src/xz/xz.1
msgid "This line type is used only when B<--verbose> was specified. There are as many B<block> lines as there are blocks in the B<.xz> file. The B<block> lines are shown after all the B<stream> lines; different line types are not interleaved."
msgstr "이 행 형식은 B<--verbose> 옵션을 지정했을 때만 사용합니다. B<.xz> 파일의 블록 수만큼 B<block> 행이 나타납니다. B<block> 행은 모든 B<stream> 행 다음에 나타납니다. 다른 형식의 행이 끼어들지는 않습니다."
msgstr "이 행 형식은 B<--verbose> 옵션을 지정했을 때만 사용합니다. B<.xz> 파일의 블록 수만큼 B<블록> 행이 나타납니다. B<블록> 행은 모든 B<스트림> 행 다음에 나타납니다. 다른 형식의 행이 끼어들지는 않습니다."
#. type: TP
#: ../src/xz/xz.1
#, no-wrap
msgid "B<summary>"
msgstr "B<summary>"
msgstr "B<요약>"
#. type: Plain text
#: ../src/xz/xz.1
msgid "This line type is used only when B<--verbose> was specified twice. This line is printed after all B<block> lines. Like the B<file> line, the B<summary> line contains overall information about the B<.xz> file."
msgstr "이 행 형식은 B<--verbose> 옵션을 두번 지정했을 때만 사용합니다. 이 행은 모든 B<block> 행 다음에 출력합니다. B<file> 행과 비슷하게, B<summary> 행에는 B<.xz> 파일의 전반적인 정보가 담겨있습니다."
msgstr "이 행 형식은 B<--verbose> 옵션을 두번 지정했을 때만 사용합니다. 이 행은 모든 B<블록> 행 다음에 출력합니다. B<파일> 행과 비슷하게, B<요약> 행에는 B<.xz> 파일의 전반적인 정보가 담겨있습니다."
#. type: TP
#: ../src/xz/xz.1
#, no-wrap
msgid "B<totals>"
msgstr "B<totals>"
msgstr "B<총계>"
#. type: Plain text
#: ../src/xz/xz.1
@ -2323,7 +2271,7 @@ msgstr "이 행은 목록 출력의 가장 마지막에 항상 나타납니다.
#. type: Plain text
#: ../src/xz/xz.1
msgid "The columns of the B<file> lines:"
msgstr "B<file> 행 컬럼:"
msgstr "B<파일> 행 컬럼:"
#. type: IP
#: ../src/xz/xz.1
@ -2386,9 +2334,6 @@ msgstr "예를 들면, B<0.123>과 같은 압축율 입니다. 비율이 9.999
msgid "7."
msgstr "7."
#. TRANSLATORS: Don't translate the bold strings B<None>, B<CRC32>,
#. B<CRC64>, B<SHA-256>, or B<Unknown-> here. In robot mode, xz produces
#. them in untranslated form for scripts to parse.
#. type: Plain text
#: ../src/xz/xz.1
msgid "Comma-separated list of integrity check names. The following strings are used for the known check types: B<None>, B<CRC32>, B<CRC64>, and B<SHA-256>. For unknown check types, B<Unknown->I<N> is used, where I<N> is the Check ID as a decimal number (one or two digits)."
@ -2408,7 +2353,7 @@ msgstr "파일의 스트림 패딩 총 길이"
#. type: Plain text
#: ../src/xz/xz.1
msgid "The columns of the B<stream> lines:"
msgstr "B<stream> 행 컬럼:"
msgstr "B<스트림> 행 컬럼:"
#. type: Plain text
#: ../src/xz/xz.1
@ -2470,7 +2415,7 @@ msgstr "스트림 패딩 길이"
#. type: Plain text
#: ../src/xz/xz.1
msgid "The columns of the B<block> lines:"
msgstr "B<block> 행 컬럼:"
msgstr "B<블록> 행 컬럼:"
#. type: Plain text
#: ../src/xz/xz.1
@ -2505,7 +2450,7 @@ msgstr "총 블록 압축 크기 (헤더 포함)"
#. type: Plain text
#: ../src/xz/xz.1
msgid "If B<--verbose> was specified twice, additional columns are included on the B<block> lines. These are not displayed with a single B<--verbose>, because getting this information requires many seeks and can thus be slow:"
msgstr "B<--verbose>를 두 번 지정하면, 추가 컬럼을 B<block> 행에 넣습니다. B<--verbose> 단일 지정시에는 이 정보를 볼 때 탐색을 여러번 수행해야 하기 때문에 실행 과정이 느려질 수 있어서 나타내지 않습니다:"
msgstr "B<--verbose>를 두 번 지정하면, 추가 컬럼을 B<블록> 행에 넣습니다. B<--verbose> 단일 지정시에는 이 정보를 볼 때 탐색을 여러번 수행해야 하기 때문에 실행 과정이 느려질 수 있어서 나타내지 않습니다:"
#. type: IP
#: ../src/xz/xz.1
@ -2576,7 +2521,7 @@ msgstr "필터 체인. 대부분 사용하는 옵션은 압축 해제시 필요
#. type: Plain text
#: ../src/xz/xz.1
msgid "The columns of the B<summary> lines:"
msgstr "B<summary> 행 컬럼:"
msgstr "B<요약> 행 컬럼:"
#. type: Plain text
#: ../src/xz/xz.1
@ -2601,7 +2546,7 @@ msgstr "파일 압축 해제시 필요한 최소 B<xz> 버전"
#. type: Plain text
#: ../src/xz/xz.1
msgid "The columns of the B<totals> line:"
msgstr "B<totals> 행 컬럼:"
msgstr "B<총계> 행 컬럼:"
#. type: Plain text
#: ../src/xz/xz.1
@ -2636,12 +2581,12 @@ msgstr "스트림 패딩 길이"
#. type: Plain text
#: ../src/xz/xz.1
msgid "Number of files. This is here to keep the order of the earlier columns the same as on B<file> lines."
msgstr "파일 갯수. B<file> 행의 컬럼 순서를 따라갑니다."
msgstr "파일 갯수. B<파일> 행의 컬럼 순서를 따라갑니다."
#. type: Plain text
#: ../src/xz/xz.1
msgid "If B<--verbose> was specified twice, additional columns are included on the B<totals> line:"
msgstr "B<--verbose> 옵션을 두 번 지정하면, B<totals> 행에 추가 컬럼이 들어갑니다:"
msgstr "B<--verbose> 옵션을 두 번 지정하면, B<총계> 행에 추가 컬럼이 들어갑니다:"
#. type: Plain text
#: ../src/xz/xz.1
@ -2770,7 +2715,6 @@ msgstr "버전"
msgid "B<xz --robot --version> prints the version number of B<xz> and liblzma in the following format:"
msgstr "B<xz --robot --version> 은 B<xz> 와 liblzma의 버전 번호를 다음 형식으로 나타냅니다:"
#. TRANSLATORS: Don't translate the uppercase XZ_VERSION or LIBLZMA_VERSION.
#. type: Plain text
#: ../src/xz/xz.1
msgid "B<XZ_VERSION=>I<XYYYZZZS>"
@ -2887,18 +2831,11 @@ msgstr "표준 오류에 출력하는 알림(경고 또는 오류 아님)는 종
msgid "ENVIRONMENT"
msgstr "환경"
#. TRANSLATORS: Don't translate the uppercase XZ_DEFAULTS or XZ_OPT.
#. They are names of environment variables.
#. type: Plain text
#: ../src/xz/xz.1
msgid "B<xz> parses space-separated lists of options from the environment variables B<XZ_DEFAULTS> and B<XZ_OPT>, in this order, before parsing the options from the command line. Note that only options are parsed from the environment variables; all non-options are silently ignored. Parsing is done with B<getopt_long>(3) which is used also for the command line arguments."
msgstr "B<xz>는 빈칸으로 구분한 옵션 값 목록을 B<XZ_DEFAULTS>, B<XZ_OPT> 환경 변수에서 순서대로, 명령행에서 옵션을 해석하기 전에 불러옵니다. 참고로 환경 변수에서 옵션만 해석하며, 옵션이 아닌 부분은 조용히 무시합니다. 해석은 B<getopt_long>(3)으로 가능하며, 명령행 인자로 활용하기도 합니다."
#. 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 "B<경고:> 환경 변수를 설정하면, 프로그램과 B<xz>를 실행하는 스크립트의 동작이 바뀝니다. 대부분의 경우 메모리 사용 제한량, 스레드 수, 압축 옵션을 환경 변수로 설정하는게 안전합니다. 그러나 일부 옵션은 스크립트의 동작을 망가뜨릴 수 있습니다. 분명한 예제로는 B<xz>에서 파일의 압축 및 해제 대신 도움말 내용을 표시하는 B<--help> 옵션이 있습니다. 좀 더 묘한 예제로는 B<--quiet> 와 B<--verbose> 옵션이 있습니다. 대부분의 경우 B<--verbose> 옵션을 사용하여 프로세스 상황을 표시하는데 잘 동작하지만, 어떤 경우에는 추가 메시지가 나타나는 문제가 있습니다. 출력 상세 수준은 B<--list>의 동작에도 영향을 줍니다."
#. type: TP
#: ../src/xz/xz.1
#, no-wrap
@ -2907,8 +2844,8 @@ msgstr "B<XZ_DEFAULTS>"
#. type: Plain text
#: ../src/xz/xz.1
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> 환경 변수를 설정하지 거나 설정을 해제해야합니다."
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>."
msgstr "사용자별, 시스템 범위 기본 옵션입니다. 보통 B<xz>의 메모리 사용량 제한을 기본으로 걸어 경우 셸 초기화 스크립트에 설정합니다. 셸 초기화 스크립트와 별도의 유사한 경우를 제외하고라면, 스크립트에서는 B<XZ_DEFAULTS> 환경 변수를 설정하지 거나 설정을 해제해야합니다."
#. type: TP
#: ../src/xz/xz.1
@ -2923,9 +2860,10 @@ msgstr "B<xz> 명령행으로 옵션 설정 값을 직접 전달할 수 없을
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid "CW<XZ_OPT=-2v tar caf foo.tar.xz foo>\n"
msgid "\\f(CRXZ_OPT=-2v tar caf foo.tar.xz foo\\fR\n"
msgstr "\\f(CRXZ_OPT=-2v tar caf foo.tar.xz foo\\fR\n"
msgstr "CW<XZ_OPT=-2v tar caf foo.tar.xz foo>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -2934,13 +2872,16 @@ msgstr "예를 들면, 스크립트에서 B<XZ_OPT> 를 활용하여, 스크립
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid ""
#| "CW<XZ_OPT=${XZ_OPT-\"-7e\"}\n"
#| "export XZ_OPT>\n"
msgid ""
"\\f(CRXZ_OPT=${XZ_OPT-\"-7e\"}\n"
"export XZ_OPT\\fR\n"
msgstr ""
"\\f(CRXZ_OPT=${XZ_OPT-\"-7e\"}\n"
"export XZ_OPT\\fR\n"
"CW<XZ_OPT=${XZ_OPT-\"-7e\"}\n"
"export XZ_OPT>\n"
#. type: SH
#: ../src/xz/xz.1
@ -3172,9 +3113,10 @@ msgstr "I<foo> 파일을 기본 압축 수준 (B<-6>) 으로 I<foo.xz> 파일에
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid "CW<xz foo>\n"
msgid "\\f(CRxz foo\\fR\n"
msgstr "\\f(CRxz foo\\fR\n"
msgstr "CW<xz foo>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -3183,9 +3125,10 @@ msgstr "I<bar.xz>를 I<bar> 에 압축을 해제한 후 압축 해제가 무사
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid "CW<xz -dk bar.xz>\n"
msgid "\\f(CRxz -dk bar.xz\\fR\n"
msgstr "\\f(CRxz -dk bar.xz\\fR\n"
msgstr "CW<xz -dk bar.xz>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -3194,9 +3137,10 @@ msgstr "기본 사전 설정 B<-6> 보다는 느리지만, 압축 및 압축 해
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid "CW<tar cf - baz | xz -4e E<gt> baz.tar.xz>\n"
msgid "\\f(CRtar cf - baz | xz -4e E<gt> baz.tar.xz\\fR\n"
msgstr "\\f(CRtar cf - baz | xz -4e E<gt> baz.tar.xz\\fR\n"
msgstr "CW<tar cf - baz | xz -4e E<gt> baz.tar.xz>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -3205,9 +3149,10 @@ msgstr "압축 및 비압축 파일을 단일 명령으로 표준 출력에 압
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid "CW<xz -dcf a.txt b.txt.xz c.txt d.txt.lzma E<gt> abcd.txt>\n"
msgid "\\f(CRxz -dcf a.txt b.txt.xz c.txt d.txt.lzma E<gt> abcd.txt\\fR\n"
msgstr "\\f(CRxz -dcf a.txt b.txt.xz c.txt d.txt.lzma E<gt> abcd.txt\\fR\n"
msgstr "CW<xz -dcf a.txt b.txt.xz c.txt d.txt.lzma E<gt> abcd.txt>\n"
#. type: SS
#: ../src/xz/xz.1
@ -3222,13 +3167,16 @@ msgstr "GNU와 *BSD에서는 B<find>(1) 명령과 B<xargs>(1) 명령으로 여
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid ""
#| "CW<find . -type f \\e! -name '*.xz' -print0 \\e\n"
#| " | xargs -0r -P4 -n16 xz -T1>\n"
msgid ""
"\\f(CRfind . -type f \\e! -name '*.xz' -print0 \\e\n"
" | xargs -0r -P4 -n16 xz -T1\\fR\n"
msgstr ""
"\\f(CRfind . -type f \\e! -name '*.xz' -print0 \\e\n"
" | xargs -0r -P4 -n16 xz -T1\\fR\n"
"CW<find . -type f \\e! -name '*.xz' -print0 \\e\n"
" | xargs -0r -P4 -n16 xz -T1>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -3253,9 +3201,10 @@ msgstr "여러 파일을 압축한 후 저장할 바이트 용량을 계산합
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid "CW<xz --robot --list *.xz | awk '/^totals/{print $5-$4}'>\n"
msgid "\\f(CRxz --robot --list *.xz | awk '/^totals/{print $5-$4}'\\fR\n"
msgstr "\\f(CRxz --robot --list *.xz | awk '/^totals/{print $5-$4}'\\fR\n"
msgstr "CW<xz --robot --list *.xz | awk '/^totals/{print $5-$4}'>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -3264,7 +3213,13 @@ msgstr "이 스크립트에서는 충분히 최신의 B<xz> 명령을 사용하
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid ""
#| "CW<if ! eval \"$(xz --robot --version 2E<gt> /dev/null)\" ||\n"
#| " [ \"$XZ_VERSION\" -lt 50000002 ]; then\n"
#| " echo \"Your xz is too old.\"\n"
#| "fi\n"
#| "unset XZ_VERSION LIBLZMA_VERSION>\n"
msgid ""
"\\f(CRif ! eval \"$(xz --robot --version 2E<gt> /dev/null)\" ||\n"
" [ \"$XZ_VERSION\" -lt 50000002 ]; then\n"
@ -3272,11 +3227,11 @@ msgid ""
"fi\n"
"unset XZ_VERSION LIBLZMA_VERSION\\fR\n"
msgstr ""
"\\f(CRif ! eval \"$(xz --robot --version 2E<gt> /dev/null)\" ||\n"
"CW<if ! eval \"$(xz --robot --version 2E<gt> /dev/null)\" ||\n"
" [ \"$XZ_VERSION\" -lt 50000002 ]; then\n"
" echo \"Your xz is too old.\"\n"
"fi\n"
"unset XZ_VERSION LIBLZMA_VERSION\\fR\n"
"unset XZ_VERSION LIBLZMA_VERSION>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -3285,7 +3240,14 @@ msgstr "B<XZ_OPT> 환경 변수로 압축 해제시 메뢰 사용량 한계를
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid ""
#| "CW<NEWLIM=$((123 E<lt>E<lt> 20))\\ \\ # 123 MiB\n"
#| "OLDLIM=$(xz --robot --info-memory | cut -f3)\n"
#| "if [ $OLDLIM -eq 0 -o $OLDLIM -gt $NEWLIM ]; then\n"
#| " XZ_OPT=\"$XZ_OPT --memlimit-decompress=$NEWLIM\"\n"
#| " export XZ_OPT\n"
#| "fi>\n"
msgid ""
"\\f(CRNEWLIM=$((123 E<lt>E<lt> 20))\\ \\ # 123 MiB\n"
"OLDLIM=$(xz --robot --info-memory | cut -f3)\n"
@ -3294,12 +3256,12 @@ msgid ""
" export XZ_OPT\n"
"fi\\fR\n"
msgstr ""
"\\f(CRNEWLIM=$((123 E<lt>E<lt> 20))\\ \\ # 123 MiB\n"
"CW<NEWLIM=$((123 E<lt>E<lt> 20))\\ \\ # 123 MiB\n"
"OLDLIM=$(xz --robot --info-memory | cut -f3)\n"
"if [ $OLDLIM -eq 0 -o $OLDLIM -gt $NEWLIM ]; then\n"
" XZ_OPT=\"$XZ_OPT --memlimit-decompress=$NEWLIM\"\n"
" export XZ_OPT\n"
"fi\\fR\n"
"fi>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -3318,9 +3280,10 @@ msgstr "어떤 파일을 압축할 때 상당히 큰 딕셔너리(예: 32MiB)가
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid "CW<xz --lzma2=preset=1,dict=32MiB foo.tar>\n"
msgid "\\f(CRxz --lzma2=preset=1,dict=32MiB foo.tar\\fR\n"
msgstr "\\f(CRxz --lzma2=preset=1,dict=32MiB foo.tar\\fR\n"
msgstr "CW<xz --lzma2=preset=1,dict=32MiB foo.tar>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -3334,9 +3297,10 @@ msgstr "압축 프로그램과 압축 해제 프로그램에서 메모리를 엄
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid "CW<xz -vv --lzma2=dict=192MiB big_foo.tar>\n"
msgid "\\f(CRxz -vv --lzma2=dict=192MiB big_foo.tar\\fR\n"
msgstr "\\f(CRxz -vv --lzma2=dict=192MiB big_foo.tar\\fR\n"
msgstr "CW<xz -vv --lzma2=dict=192MiB big_foo.tar>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -3350,9 +3314,10 @@ msgstr "때로는 압축 시간이 딱히 상관이 없을 수도 있습니다
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid "CW<xz --check=crc32 --lzma2=preset=6e,dict=64KiB foo>\n"
msgid "\\f(CRxz --check=crc32 --lzma2=preset=6e,dict=64KiB foo\\fR\n"
msgstr "\\f(CRxz --check=crc32 --lzma2=preset=6e,dict=64KiB foo\\fR\n"
msgstr "CW<xz --check=crc32 --lzma2=preset=6e,dict=64KiB foo>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -3361,9 +3326,10 @@ msgstr "가능한 한 수 바이트를 더 쥐어 짜내고 싶을 때, 리터
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid "CW<xz --lzma2=preset=6e,pb=0,lc=4 source_code.tar>\n"
msgid "\\f(CRxz --lzma2=preset=6e,pb=0,lc=4 source_code.tar\\fR\n"
msgstr "\\f(CRxz --lzma2=preset=6e,pb=0,lc=4 source_code.tar\\fR\n"
msgstr "CW<xz --lzma2=preset=6e,pb=0,lc=4 source_code.tar>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -3372,9 +3338,10 @@ msgstr "LZMA2와 다른 필터를 함께 사용하면 일부 파일 형식에
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid "CW<xz --x86 --lzma2 libfoo.so>\n"
msgid "\\f(CRxz --x86 --lzma2 libfoo.so\\fR\n"
msgstr "\\f(CRxz --x86 --lzma2 libfoo.so\\fR\n"
msgstr "CW<xz --x86 --lzma2 libfoo.so>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -3393,9 +3360,10 @@ msgstr "예를 들어 이미지를 압축하지 않은 비압축 TIFF로 저장
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid "CW<xz --delta=dist=3 --lzma2=pb=0 foo.tiff>\n"
msgid "\\f(CRxz --delta=dist=3 --lzma2=pb=0 foo.tiff\\fR\n"
msgstr "\\f(CRxz --delta=dist=3 --lzma2=pb=0 foo.tiff\\fR\n"
msgstr "CW<xz --delta=dist=3 --lzma2=pb=0 foo.tiff>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -3418,12 +3386,12 @@ msgstr "B<xzdec>(1), B<xzdiff>(1), B<xzgrep>(1), B<xzless>(1), B<xzmore>(1), B<g
#. type: Plain text
#: ../src/xz/xz.1
msgid "XZ Utils: E<lt>https://tukaani.org/xz/E<gt>"
msgstr "XZ 유틸리티: E<lt>https://tukaani.org/xz/E<gt>"
msgstr "XZ 유틸리티: E<lt>https://tukaani.org/xz-utils/E<gt>"
#. type: Plain text
#: ../src/xz/xz.1 ../src/xzdec/xzdec.1
msgid "XZ Embedded: E<lt>https://tukaani.org/xz/embedded.htmlE<gt>"
msgstr "XZ 임베디드: E<lt>https://tukaani.org/xz/embedded.htmlE<gt>"
msgstr "XZ 임베디드: E<lt>https://tukaani.org/xz/embedded/E<gt>"
#. type: Plain text
#: ../src/xz/xz.1
@ -3436,12 +3404,6 @@ msgstr "LZMA SDK: E<lt>https://7-zip.org/sdk.htmlE<gt>"
msgid "XZDEC"
msgstr "XZDEC"
#. type: TH
#: ../src/xzdec/xzdec.1
#, no-wrap
msgid "2024-04-08"
msgstr "2024-04-08"
#. type: Plain text
#: ../src/xzdec/xzdec.1
msgid "xzdec, lzmadec - Small .xz and .lzma decompressors"
@ -3582,11 +3544,10 @@ msgid "XZDIFF"
msgstr "XZDIFF"
#. type: TH
#: ../src/scripts/xzdiff.1 ../src/scripts/xzgrep.1 ../src/scripts/xzless.1
#: ../src/scripts/xzmore.1
#: ../src/scripts/xzdiff.1 ../src/scripts/xzgrep.1
#, no-wrap
msgid "2025-03-06"
msgstr "2025-03-06"
msgid "2024-02-13"
msgstr "2024-02-13"
#. type: Plain text
#: ../src/scripts/xzdiff.1
@ -3605,13 +3566,13 @@ msgstr "B<xzdiff> \\&..."
#. type: Plain text
#: ../src/scripts/xzdiff.1
msgid "B<lzcmp> \\&... (DEPRECATED)"
msgstr "B<lzcmp> \\&... (사용 안 함)"
msgid "B<lzcmp> \\&..."
msgstr "B<lzcmp> \\&..."
#. type: Plain text
#: ../src/scripts/xzdiff.1
msgid "B<lzdiff> \\&... (DEPRECATED)"
msgstr "B<lzdiff> \\&... (사용 안 함)"
msgid "B<lzdiff> \\&..."
msgstr "B<lzdiff> \\&..."
#. type: Plain text
#: ../src/scripts/xzdiff.1
@ -3630,8 +3591,8 @@ msgstr "파일 이름을 하나만 지정한다면, I<E<lt>파일1E<gt>>의 확
#. type: Plain text
#: ../src/scripts/xzdiff.1
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 유틸리티 하위 호환용으로 제공합니다. 해당 명령은 오래되어 이후 버전에서 제거합니다."
msgid "The commands B<lzcmp> and B<lzdiff> are provided for backward compatibility with LZMA Utils."
msgstr "B<lzcmp>와 B<lzdiff> 명령은 LZMA 유틸리티 하위 호환용으로 제공합니다."
#. type: Plain text
#: ../src/scripts/xzdiff.1
@ -3671,18 +3632,18 @@ msgstr "B<xzfgrep> \\&..."
#. type: Plain text
#: ../src/scripts/xzgrep.1
msgid "B<lzgrep> \\&... (DEPRECATED)"
msgstr "B<lzgrep> \\&... (사용 안 함)"
msgid "B<lzgrep> \\&..."
msgstr "B<lzgrep> \\&..."
#. type: Plain text
#: ../src/scripts/xzgrep.1
msgid "B<lzegrep> \\&... (DEPRECATED)"
msgstr "B<lzegrep> \\&... (사용 안 함)"
msgid "B<lzegrep> \\&..."
msgstr "B<lzegrep> \\&..."
#. type: Plain text
#: ../src/scripts/xzgrep.1
msgid "B<lzfgrep> \\&... (DEPRECATED)"
msgstr "B<lzfgrep> \\&... (사용 안 함)"
msgid "B<lzfgrep> \\&..."
msgstr "B<lzfgrep> \\&..."
#. type: Plain text
#: ../src/scripts/xzgrep.1
@ -3751,8 +3712,8 @@ msgstr "B<xzegrep>은 B<xzgrep -E> 명령의 별칭입니다. B<xzfgrep>은 B<x
#. type: Plain text
#: ../src/scripts/xzgrep.1
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 유틸리티 하위 호환용으로 제공합니다. 해당 명령은 오래되어 이후 버전에서 제거합니다."
msgid "The commands B<lzgrep>, B<lzegrep>, and B<lzfgrep> are provided for backward compatibility with LZMA Utils."
msgstr "B<lzgrep>, B<lzegrep>, B<lzfgrep> 명령은 LZMA 유틸리티 하위 호환용으로 제공합니다."
#. type: Plain text
#: ../src/scripts/xzgrep.1
@ -3797,6 +3758,12 @@ msgstr "B<grep>(1), B<xz>(1), B<gzip>(1), B<bzip2>(1), B<lzop>(1), B<zstd>(1), B
msgid "XZLESS"
msgstr "XZLESS"
#. type: TH
#: ../src/scripts/xzless.1 ../src/scripts/xzmore.1
#, no-wrap
msgid "2024-02-12"
msgstr "2024-02-12"
#. type: Plain text
#: ../src/scripts/xzless.1
msgid "xzless, lzless - view xz or lzma compressed (text) files"
@ -3809,8 +3776,8 @@ msgstr "B<xzless> [I<E<lt>파일E<gt>>...]"
#. type: Plain text
#: ../src/scripts/xzless.1
msgid "B<lzless> [I<file>...] (DEPRECATED)"
msgstr "B<lzless> [I<file>...] (사용 안 함)"
msgid "B<lzless> [I<file>...]"
msgstr "B<lzless> [I<E<lt>파일E<gt>>...]"
#. type: Plain text
#: ../src/scripts/xzless.1
@ -3824,8 +3791,8 @@ msgstr "B<xzless> 는 B<less>(1) 를 사용하여 출력을 막습니다. B<xz
#. type: Plain text
#: ../src/scripts/xzless.1
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 유틸리티 하위 호환용으로 제공합니다. 해당 명령은 오래되어 이후 버전에서 제거합니다."
msgid "The command named B<lzless> is provided for backward compatibility with LZMA Utils."
msgstr "B<lzless> 명령은 LZMA 유틸리티 하위 호환용으로 제공합니다."
#. type: TP
#: ../src/scripts/xzless.1
@ -3872,8 +3839,8 @@ msgstr "B<xzmore> [I<E<lt>파일E<gt>>...]"
#. type: Plain text
#: ../src/scripts/xzmore.1
msgid "B<lzmore> [I<file>...] (DEPRECATED)"
msgstr "B<lzmore> [I<file>...] (사용 안 함)"
msgid "B<lzmore> [I<file>...]"
msgstr "B<lzmore> [I<E<lt>파일E<gt>>...]"
#. type: Plain text
#: ../src/scripts/xzmore.1
@ -3887,11 +3854,9 @@ msgstr "참고로 B<more>(1) 명령 구현체에 따라 반대 방향(윗방향)
#. type: Plain text
#: ../src/scripts/xzmore.1
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 유틸리티 하위 호환용으로 제공합니다. 해당 명령은 오래되어 이후 버전에서 제거합니다."
msgid "The command B<lzmore> is provided for backward compatibility with LZMA Utils."
msgstr "B<lzmore> 명령은 LZMA 유틸리티 하위 호환용으로 제공합니다."
#. TRANSLATORS: Don't translate the uppercase PAGER.
#. It is a name of an environment variable.
#. type: TP
#: ../src/scripts/xzmore.1
#, no-wrap
@ -3901,9 +3866,13 @@ msgstr "B<PAGER>"
#. type: Plain text
#: ../src/scripts/xzmore.1
msgid "If B<PAGER> is set, its value is used as the pager instead of B<more>(1)."
msgstr "B<PAGER> 환경변수 값을 설정했다면, B<more>(1) 대신 해당 환경변수 값을 화면 표시 프로그램으로 사용합니다."
msgstr "B<PAGER> 환경변수 값을 설정했다면 B<more>(1) 대신 해당 환경변수 값을 사용합니다."
#. type: Plain text
#: ../src/scripts/xzmore.1
msgid "B<more>(1), B<xz>(1), B<xzless>(1), B<zmore>(1)"
msgstr "B<more>(1), B<xz>(1), B<xzless>(1), B<zmore>(1)"
#, no-wrap
#~ msgid "2024-01-19"
#~ msgstr "2024-01-19"

View File

@ -4,7 +4,7 @@
# to get a new .po file. After translating the .po file, run
# "update-po" again to generate the translated man pages.
[po4a_langs] de fr it ko pt_BR ro sr uk
[po4a_langs] de fr ko pt_BR ro uk
[po4a_paths] xz-man.pot $lang:$lang.po
[type: man] ../src/xz/xz.1 $lang:man/$lang/xz.1 add_$lang:?$lang.po.authors

View File

@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: xz-man 5.4.0-pre2\n"
"POT-Creation-Date: 2025-03-25 12:28+0200\n"
"POT-Creation-Date: 2024-05-29 17:45+0300\n"
"PO-Revision-Date: 2023-01-26 13:29-0300\n"
"Last-Translator: Rafael Fontenelle <rafaelff@gnome.org>\n"
"Language-Team: Brazilian Portuguese <ldpbr-translation@lists.sourceforge.net>\n"
@ -25,9 +25,9 @@ msgid "XZ"
msgstr "XZ"
#. type: TH
#: ../src/xz/xz.1
#: ../src/xz/xz.1 ../src/xzdec/xzdec.1
#, no-wrap
msgid "2025-03-08"
msgid "2024-04-08"
msgstr ""
#. type: TH
@ -213,8 +213,6 @@ msgstr "O uso de memória de B<xz> varia de algumas centenas de kilobytes a vár
msgid "Especially users of older systems may find the possibility of very large memory usage annoying. To prevent uncomfortable surprises, B<xz> has a built-in memory usage limiter, which is disabled by default. While some operating systems provide ways to limit the memory usage of processes, relying on it wasn't deemed to be flexible enough (for example, using B<ulimit>(1) to limit virtual memory tends to cripple B<mmap>(2))."
msgstr "Especialmente os usuários de sistemas mais antigos podem achar irritante a possibilidade de uso de memória muito grande. Para evitar surpresas desconfortáveis, o B<xz> possui um limitador de uso de memória embutido, que está desabilitado por padrão. Embora alguns sistemas operacionais forneçam maneiras de limitar o uso de memória dos processos, confiar nele não foi considerado flexível o suficiente (por exemplo, usar B<ulimit>(1) para limitar a memória virtual tende a prejudicar B<mmap>(2))."
#. TRANSLATORS: Don't translate the uppercase XZ_DEFAULTS.
#. It's a name of an environment variable.
#. type: Plain text
#: ../src/xz/xz.1
msgid "The memory usage limiter can be enabled with the command line option B<--memlimit=>I<limit>. Often it is more convenient to enable the limiter by default by setting the environment variable B<XZ_DEFAULTS>, for example, B<XZ_DEFAULTS=--memlimit=150MiB>. It is possible to set the limits separately for compression and decompression by using B<--memlimit-compress=>I<limit> and B<--memlimit-decompress=>I<limit>. Using these two options outside B<XZ_DEFAULTS> is rarely useful because a single run of B<xz> cannot do both compression and decompression and B<--memlimit=>I<limit> (or B<-M> I<limit>) is shorter to type on the command line."
@ -323,27 +321,16 @@ msgstr "B<-z>, B<--compress>"
msgid "Compress. This is the default operation mode when no operation mode option is specified and no other operation mode is implied from the command name (for example, B<unxz> implies B<--decompress>)."
msgstr "Compacta. Este é o modo de operação padrão quando nenhuma opção de modo de operação é especificada e nenhum outro modo de operação está implícito no nome do comando (por exemplo, B<unxz> implica em B<--decompress>)."
#. The DESCRIPTION section already says this but it's good to repeat it
#. here because the default behavior is a bit dangerous and new users
#. in a hurry may skip reading the DESCRIPTION section.
#. type: Plain text
#: ../src/xz/xz.1
msgid "After successful compression, the source file is removed unless writing to standard output or B<--keep> was specified."
msgstr ""
#. type: TP
#: ../src/xz/xz.1 ../src/xzdec/xzdec.1
#, no-wrap
msgid "B<-d>, B<--decompress>, B<--uncompress>"
msgstr "B<-d>, B<--decompress>, B<--uncompress>"
#. The DESCRIPTION section already says this but it's good to repeat it
#. here because the default behavior is a bit dangerous and new users
#. in a hurry may skip reading the DESCRIPTION section.
#. type: Plain text
#: ../src/xz/xz.1
msgid "Decompress. After successful decompression, the source file is removed unless writing to standard output or B<--keep> was specified."
msgstr ""
msgid "Decompress."
msgstr "Descompacta."
#. type: TP
#: ../src/xz/xz.1
@ -457,11 +444,6 @@ msgstr "B<xz> nunca descompacta mais de um fluxo de arquivos B<.lzma> ou fluxos
msgid "This option has no effect if the operation mode is not B<--decompress> or B<--test>."
msgstr "Esta opção não tem efeito se o modo de operação não for B<--decompress> ou B<--test>."
#. type: Plain text
#: ../src/xz/xz.1
msgid "Since B<xz> 5.7.1alpha, B<--single-stream> implies B<--keep>."
msgstr ""
#. type: TP
#: ../src/xz/xz.1
#, no-wrap
@ -533,7 +515,6 @@ msgstr "B<-F> I<formato>, B<--format=>I<formato>"
msgid "Specify the file I<format> to compress or decompress:"
msgstr "Especifica o I<formato> de arquivo para compactar ou descompactar:"
#. TRANSLATORS: Don't translate bold string B<auto>.
#. type: TP
#: ../src/xz/xz.1
#, no-wrap
@ -615,9 +596,6 @@ msgstr "Especifica o tipo de verificação de integridade. A verificação é ca
msgid "Supported I<check> types:"
msgstr "Tipos de I<verificação> suportados:"
#. TRANSLATORS: Don't translate the bold strings B<none>, B<crc32>,
#. B<crc64>, and B<sha256>. The command line option --check accepts
#. only the untranslated strings.
#. type: TP
#: ../src/xz/xz.1
#, no-wrap
@ -1261,28 +1239,6 @@ msgstr "Este recurso não está disponível em sistemas não-POSIX."
msgid "B<This feature is still experimental.> Currently B<xz> is unsuitable for decompressing the stream in real time due to how B<xz> does buffering."
msgstr "B<Este recurso ainda é experimental.> Atualmente, B<xz> não é adequado para descompactar o fluxo em tempo real devido à forma como B<xz> faz o buffer."
#. type: TP
#: ../src/xz/xz.1
#, fuzzy, no-wrap
#| msgid "B<--no-sparse>"
msgid "B<--no-sync>"
msgstr "B<--no-sparse>"
#. type: Plain text
#: ../src/xz/xz.1
msgid "Do not synchronize the target file and its directory to the storage device before removing the source file. This can improve performance if compressing or decompressing many small files. However, if the system crashes soon after the deletion, it is possible that the target file was not written to the storage device but the delete operation was. In that case neither the original source file nor the target file is available."
msgstr ""
#. type: Plain text
#: ../src/xz/xz.1
msgid "This option has an effect only when B<xz> is going to remove the source file. In other cases synchronization is never done."
msgstr ""
#. type: Plain text
#: ../src/xz/xz.1
msgid "The synchronization and B<--no-sync> were added in B<xz> 5.7.1alpha."
msgstr ""
#. type: TP
#: ../src/xz/xz.1
#, no-wrap
@ -1547,11 +1503,6 @@ msgstr "LZMA1 é um filtro legado, que é suportado quase exclusivamente devido
msgid "LZMA1 and LZMA2 share the same set of I<options>:"
msgstr "LZMA1 e LZMA2 compartilham o mesmo conjunto de I<opções>:"
#. TRANSLATORS: Don't translate bold strings like B<preset>, B<dict>,
#. B<mode>, B<nice>, B<fast>, or B<normal> because those are command line
#. options. On the other hand, do translate the italic strings like
#. I<preset>, I<size>, and I<mode>, because such italic strings are
#. placeholders which a user replaces with an actual value.
#. type: TP
#: ../src/xz/xz.1
#, no-wrap
@ -2256,11 +2207,6 @@ msgstr "Modo lista"
msgid "B<xz --robot --list> uses tab-separated output. The first column of every line has a string that indicates the type of the information found on that line:"
msgstr "B<xz --robot --list> usa saída separada por tabulações. A primeira coluna de cada linha possui uma string que indica o tipo de informação encontrada naquela linha:"
#. TRANSLATORS: The bold strings B<name>, B<file>, B<stream>, B<block>,
#. B<summary>, and B<totals> are produced by the xz tool for scripts to
#. parse, thus the untranslated strings must be included in the translated
#. man page. It may be useful to provide a translated string in parenthesis
#. without bold, for example: "B<name> (nimi)"
#. type: TP
#: ../src/xz/xz.1
#, no-wrap
@ -2393,9 +2339,6 @@ msgstr "Taxa de compactação, por exemplo, B<0.123>. Se a proporção for super
msgid "7."
msgstr "7."
#. TRANSLATORS: Don't translate the bold strings B<None>, B<CRC32>,
#. B<CRC64>, B<SHA-256>, or B<Unknown-> here. In robot mode, xz produces
#. them in untranslated form for scripts to parse.
#. type: Plain text
#: ../src/xz/xz.1
msgid "Comma-separated list of integrity check names. The following strings are used for the known check types: B<None>, B<CRC32>, B<CRC64>, and B<SHA-256>. For unknown check types, B<Unknown->I<N> is used, where I<N> is the Check ID as a decimal number (one or two digits)."
@ -2782,7 +2725,6 @@ msgstr "Versão"
msgid "B<xz --robot --version> prints the version number of B<xz> and liblzma in the following format:"
msgstr ""
#. TRANSLATORS: Don't translate the uppercase XZ_VERSION or LIBLZMA_VERSION.
#. type: Plain text
#: ../src/xz/xz.1
msgid "B<XZ_VERSION=>I<XYYYZZZS>"
@ -2899,18 +2841,11 @@ msgstr "Observações (não avisos ou erros) impressas no erro padrão não afet
msgid "ENVIRONMENT"
msgstr "AMBIENTE"
#. TRANSLATORS: Don't translate the uppercase XZ_DEFAULTS or XZ_OPT.
#. They are names of environment variables.
#. type: Plain text
#: ../src/xz/xz.1
msgid "B<xz> parses space-separated lists of options from the environment variables B<XZ_DEFAULTS> and B<XZ_OPT>, in this order, before parsing the options from the command line. Note that only options are parsed from the environment variables; all non-options are silently ignored. Parsing is done with B<getopt_long>(3) which is used also for the command line arguments."
msgstr "B<xz> analisa listas de opções separadas por espaços das variáveis de ambiente B<XZ_DEFAULTS> e B<XZ_OPT>, nesta ordem, antes de analisar as opções da linha de comando. Observe que apenas as opções são analisadas a partir das variáveis de ambiente; todas as não opções são silenciosamente ignoradas. A análise é feita com B<getopt_long>(3) que também é usado para os argumentos da linha de comando."
#. 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 ""
#. type: TP
#: ../src/xz/xz.1
#, no-wrap
@ -2919,9 +2854,7 @@ 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>."
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>."
msgstr "Opções padrão específicas do usuário ou de todo o sistema. Normalmente, isso é definido em um script de inicialização do shell para habilitar o limitador de uso de memória do B<xz> por padrão. Excluindo scripts de inicialização de shell e casos especiais semelhantes, os scripts nunca devem definir ou remover a definição de B<XZ_DEFAULTS>."
#. type: TP
@ -3481,12 +3414,6 @@ msgstr ""
msgid "XZDEC"
msgstr "XZDEC"
#. type: TH
#: ../src/xzdec/xzdec.1
#, no-wrap
msgid "2024-04-08"
msgstr ""
#. type: Plain text
#: ../src/xzdec/xzdec.1
msgid "xzdec, lzmadec - Small .xz and .lzma decompressors"
@ -3627,12 +3554,10 @@ msgid "XZDIFF"
msgstr "XZDIFF"
#. type: TH
#: ../src/scripts/xzdiff.1 ../src/scripts/xzgrep.1 ../src/scripts/xzless.1
#: ../src/scripts/xzmore.1
#, fuzzy, no-wrap
#| msgid "2013-06-30"
msgid "2025-03-06"
msgstr "2013-06-30"
#: ../src/scripts/xzdiff.1 ../src/scripts/xzgrep.1
#, no-wrap
msgid "2024-02-13"
msgstr ""
#. type: Plain text
#: ../src/scripts/xzdiff.1
@ -3657,14 +3582,14 @@ msgstr "B<xzfgrep> \\&..."
#: ../src/scripts/xzdiff.1
#, fuzzy
#| msgid "B<lzgrep> \\&..."
msgid "B<lzcmp> \\&... (DEPRECATED)"
msgid "B<lzcmp> \\&..."
msgstr "B<lzgrep> \\&..."
#. type: Plain text
#: ../src/scripts/xzdiff.1
#, fuzzy
#| msgid "B<lzfgrep> \\&..."
msgid "B<lzdiff> \\&... (DEPRECATED)"
msgid "B<lzdiff> \\&..."
msgstr "B<lzfgrep> \\&..."
#. type: Plain text
@ -3686,7 +3611,7 @@ msgstr ""
#: ../src/scripts/xzdiff.1
#, fuzzy
#| msgid "The command named B<lzless> is 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."
msgid "The commands B<lzcmp> and B<lzdiff> are provided for backward compatibility with LZMA Utils."
msgstr "O comando denominado B<lzless> é fornecido para compatibilidade com versões anteriores do LZMA Utils."
#. type: Plain text
@ -3731,23 +3656,17 @@ msgstr "B<xzfgrep> \\&..."
#. type: Plain text
#: ../src/scripts/xzgrep.1
#, fuzzy
#| msgid "B<lzgrep> \\&..."
msgid "B<lzgrep> \\&... (DEPRECATED)"
msgid "B<lzgrep> \\&..."
msgstr "B<lzgrep> \\&..."
#. type: Plain text
#: ../src/scripts/xzgrep.1
#, fuzzy
#| msgid "B<lzegrep> \\&..."
msgid "B<lzegrep> \\&... (DEPRECATED)"
msgid "B<lzegrep> \\&..."
msgstr "B<lzegrep> \\&..."
#. type: Plain text
#: ../src/scripts/xzgrep.1
#, fuzzy
#| msgid "B<lzfgrep> \\&..."
msgid "B<lzfgrep> \\&... (DEPRECATED)"
msgid "B<lzfgrep> \\&..."
msgstr "B<lzfgrep> \\&..."
#. type: Plain text
@ -3833,7 +3752,7 @@ msgstr ""
#: ../src/scripts/xzgrep.1
#, fuzzy
#| msgid "The command named B<lzless> is 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."
msgid "The commands B<lzgrep>, B<lzegrep>, and B<lzfgrep> are provided for backward compatibility with LZMA Utils."
msgstr "O comando denominado B<lzless> é fornecido para compatibilidade com versões anteriores do LZMA Utils."
#. type: Plain text
@ -3881,6 +3800,12 @@ msgstr "B<xzdec>(1), B<xzdiff>(1), B<xzgrep>(1), B<xzless>(1), B<xzmore>(1), B<g
msgid "XZLESS"
msgstr "XZLESS"
#. type: TH
#: ../src/scripts/xzless.1 ../src/scripts/xzmore.1
#, no-wrap
msgid "2024-02-12"
msgstr ""
#. type: Plain text
#: ../src/scripts/xzless.1
msgid "xzless, lzless - view xz or lzma compressed (text) files"
@ -3893,9 +3818,7 @@ msgstr "B<xzless> [I<arquivo>...]"
#. type: Plain text
#: ../src/scripts/xzless.1
#, fuzzy
#| msgid "B<lzless> [I<file>...]"
msgid "B<lzless> [I<file>...] (DEPRECATED)"
msgid "B<lzless> [I<file>...]"
msgstr "B<lzless> [I<arquivo>...]"
#. type: Plain text
@ -3910,9 +3833,7 @@ msgstr "B<xzless> usa B<less>(1) para apresentar sua saída. Ao contrário de B<
#. 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."
msgid "The command named B<lzless> is provided for backward compatibility with LZMA Utils."
msgstr "O comando denominado B<lzless> é fornecido para compatibilidade com versões anteriores do LZMA Utils."
#. type: TP
@ -3964,7 +3885,7 @@ msgstr "B<xzless> [I<arquivo>...]"
#: ../src/scripts/xzmore.1
#, fuzzy
#| msgid "B<lzless> [I<file>...]"
msgid "B<lzmore> [I<file>...] (DEPRECATED)"
msgid "B<lzmore> [I<file>...]"
msgstr "B<lzless> [I<arquivo>...]"
#. type: Plain text
@ -3981,11 +3902,9 @@ msgstr ""
#: ../src/scripts/xzmore.1
#, fuzzy
#| msgid "The command named B<lzless> 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."
msgid "The command B<lzmore> is provided for backward compatibility with LZMA Utils."
msgstr "O comando denominado B<lzless> é fornecido para compatibilidade com versões anteriores do LZMA Utils."
#. TRANSLATORS: Don't translate the uppercase PAGER.
#. It is a name of an environment variable.
#. type: TP
#: ../src/scripts/xzmore.1
#, no-wrap

View File

@ -4,7 +4,7 @@
# Mesajele în limba română pentru manualul pachetului XZ Utils.
# This file is published under the BSD Zero Clause License.
#
# Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>, 2022 - 2025.
# Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>, 2022 - 2024.
#
# Cronologia traducerii fișierului „xz-man”:
# Traducerea inițială, făcută de R-GC, pentru versiunea xz-man 5.4.0-pre1.
@ -13,15 +13,13 @@
# Actualizare a traducerii pentru versiunea 5.4.4-pre1, făcută de R-GC, iul-2023.
# Actualizare a traducerii pentru versiunea 5.6.0-pre1, făcută de R-GC, feb-2024.
# Actualizare a traducerii pentru versiunea 5.6.0-pre2, făcută de R-GC, feb-2024.
# Actualizare a traducerii pentru versiunea 5.7.1-dev1, făcută de R-GC, ian-2025.
# Actualizare a traducerii pentru versiunea 5.8.0-pre1, făcută de R-GC, mar-2025.
# Actualizare a traducerii pentru versiunea Y, făcută de X, Z(luna-anul).
#
msgid ""
msgstr ""
"Project-Id-Version: xz-man 5.8.0-pre1\n"
"POT-Creation-Date: 2025-03-08 14:50+0200\n"
"PO-Revision-Date: 2025-03-09 20:57+0100\n"
"Project-Id-Version: xz-man 5.6.0-pre2\n"
"POT-Creation-Date: 2024-05-29 17:45+0300\n"
"PO-Revision-Date: 2024-02-16 14:15+0100\n"
"Last-Translator: Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>\n"
"Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
"Language: ro\n"
@ -30,7 +28,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: plural=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < 20)) ? 1 : 2);\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
"X-Generator: Poedit 3.5\n"
"X-Generator: Poedit 3.2.2\n"
#. type: TH
#: ../src/xz/xz.1
@ -39,10 +37,11 @@ msgid "XZ"
msgstr "XZ"
#. type: TH
#: ../src/xz/xz.1
#, no-wrap
msgid "2025-03-08"
msgstr "8 martie 2025"
#: ../src/xz/xz.1 ../src/xzdec/xzdec.1
#, fuzzy, no-wrap
#| msgid "2024-02-25"
msgid "2024-04-08"
msgstr "25 februarie 2024"
#. type: TH
#: ../src/xz/xz.1 ../src/xzdec/xzdec.1 ../src/lzmainfo/lzmainfo.1
@ -233,8 +232,6 @@ msgstr "Cantitatea de memorie utilizată de B<xz> variază de la câteva sute de
msgid "Especially users of older systems may find the possibility of very large memory usage annoying. To prevent uncomfortable surprises, B<xz> has a built-in memory usage limiter, which is disabled by default. While some operating systems provide ways to limit the memory usage of processes, relying on it wasn't deemed to be flexible enough (for example, using B<ulimit>(1) to limit virtual memory tends to cripple B<mmap>(2))."
msgstr "În special utilizatorii de sisteme mai vechi pot considera deranjantă posibilitatea unei utilizări foarte mari a memoriei. Pentru a preveni surprizele neplăcute, B<xz> are încorporat un limitator de utilizare a memoriei, care este dezactivat implicit. În timp ce unele sisteme de operare oferă modalități de a limita utilizarea memoriei proceselor, bazarea pe aceasta nu a fost considerată a fi suficient de flexibilă (de exemplu, utilizarea B<ulimit>(1) pentru a limita memoria virtuală tinde să paralizeze B<mmap>(2))."
#. TRANSLATORS: Don't translate the uppercase XZ_DEFAULTS.
#. It's a name of an environment variable.
#. type: Plain text
#: ../src/xz/xz.1
msgid "The memory usage limiter can be enabled with the command line option B<--memlimit=>I<limit>. Often it is more convenient to enable the limiter by default by setting the environment variable B<XZ_DEFAULTS>, for example, B<XZ_DEFAULTS=--memlimit=150MiB>. It is possible to set the limits separately for compression and decompression by using B<--memlimit-compress=>I<limit> and B<--memlimit-decompress=>I<limit>. Using these two options outside B<XZ_DEFAULTS> is rarely useful because a single run of B<xz> cannot do both compression and decompression and B<--memlimit=>I<limit> (or B<-M> I<limit>) is shorter to type on the command line."
@ -343,27 +340,16 @@ msgstr "B<-z>, B<--compress>"
msgid "Compress. This is the default operation mode when no operation mode option is specified and no other operation mode is implied from the command name (for example, B<unxz> implies B<--decompress>)."
msgstr "Comprimare. Acesta este modul de operare implicit atunci când nu este specificată nicio opțiune de mod de funcționare și nici un alt mod de operare nu este implicat din numele comenzii (de exemplu, B<unxz> implică B<--decompress>)."
#. The DESCRIPTION section already says this but it's good to repeat it
#. here because the default behavior is a bit dangerous and new users
#. in a hurry may skip reading the DESCRIPTION section.
#. type: Plain text
#: ../src/xz/xz.1
msgid "After successful compression, the source file is removed unless writing to standard output or B<--keep> was specified."
msgstr "După o comprimare reușită, fișierul sursă este eliminat, cu excepția cazului în care a fost specificată scrierea la ieșirea standard sau opțiunea B<--keep>."
#. type: TP
#: ../src/xz/xz.1 ../src/xzdec/xzdec.1
#, no-wrap
msgid "B<-d>, B<--decompress>, B<--uncompress>"
msgstr "B<-d>, B<--decompress>, B<--uncompress>"
#. The DESCRIPTION section already says this but it's good to repeat it
#. here because the default behavior is a bit dangerous and new users
#. in a hurry may skip reading the DESCRIPTION section.
#. type: Plain text
#: ../src/xz/xz.1
msgid "Decompress. After successful decompression, the source file is removed unless writing to standard output or B<--keep> was specified."
msgstr "Decomprimare. După o decomprimare reușită, fișierul sursă este eliminat, cu excepția cazului în care a fost specificată scrierea la ieșirea standard sau opțiunea B<--keep>."
msgid "Decompress."
msgstr "Decomprimare."
#. type: TP
#: ../src/xz/xz.1
@ -385,7 +371,7 @@ msgstr "B<-l>, B<--list>"
#. type: Plain text
#: ../src/xz/xz.1
msgid "Print information about compressed I<files>. No uncompressed output is produced, and no files are created or removed. In list mode, the program cannot read the compressed data from standard input or from other unseekable sources."
msgstr "Afișează informații despre I<fișiere> comprimate. Nu are loc nicio decomprimare la ieșire și nu sunt create sau eliminate fișiere. În modul listă, programul nu poate citi datele comprimate din intrarea standard sau din alte surse care nu pot fi explorate."
msgstr "Afișează informații despre I<fișiere> comprimate. Nu are loc nicio decomprimare la ieșire și nu sunt create sau eliminate fișiere. În modul listă, programul nu poate citi datele comprimate din intrarea standard sau din alte surse care nu pot fi căutate."
#. type: Plain text
#: ../src/xz/xz.1
@ -477,11 +463,6 @@ msgstr "B<xz> nu decomprimă niciodată mai mult de un flux din fișierele B<.lz
msgid "This option has no effect if the operation mode is not B<--decompress> or B<--test>."
msgstr "Această opțiune nu are efect dacă modul de funcționare nu este B<--decompress> sau B<--test>."
#. type: Plain text
#: ../src/xz/xz.1
msgid "Since B<xz> 5.7.1alpha, B<--single-stream> implies B<--keep>."
msgstr "Începând cu B<xz> 5.7.1alpha, B<--single-stream> implică B<--keep>."
#. type: TP
#: ../src/xz/xz.1
#, no-wrap
@ -553,7 +534,6 @@ msgstr "B<-F> I<format>, B<--format=>I<format>"
msgid "Specify the file I<format> to compress or decompress:"
msgstr "Specifică I<formatul> fișierului pentru comprimare sau decomprimare:"
#. TRANSLATORS: Don't translate bold string B<auto>.
#. type: TP
#: ../src/xz/xz.1
#, no-wrap
@ -635,9 +615,6 @@ msgstr "Specifică tipul verificării integrității. Verificarea este calculat
msgid "Supported I<check> types:"
msgstr "Tipuri de I<verificare> acceptate:"
#. TRANSLATORS: Don't translate the bold strings B<none>, B<crc32>,
#. B<crc64>, and B<sha256>. The command line option --check accepts
#. only the untranslated strings.
#. type: TP
#: ../src/xz/xz.1
#, no-wrap
@ -1286,27 +1263,6 @@ msgstr "Această caracteristică nu este disponibilă în sistemele non-POSIX."
msgid "B<This feature is still experimental.> Currently B<xz> is unsuitable for decompressing the stream in real time due to how B<xz> does buffering."
msgstr "B<Această caracteristică este încă experimentală>. În prezent, B<xz> este nepotrivit pentru decomprimarea fluxului în timp real datorită modului în care B<xz> utilizează memoria tampon."
#. type: TP
#: ../src/xz/xz.1
#, no-wrap
msgid "B<--no-sync>"
msgstr "B<--no-sync>"
#. type: Plain text
#: ../src/xz/xz.1
msgid "Do not synchronize the target file and its directory to the storage device before removing the source file. This can improve performance if compressing or decompressing many small files. However, if the system crashes soon after the deletion, it is possible that the target file was not written to the storage device but the delete operation was. In that case neither the original source file nor the target file is available."
msgstr "Nu sincronizează fișierul țintă și directorul acestuia cu dispozitivul de stocare înainte de a elimina fișierul sursă. Acest lucru poate îmbunătăți performanța în cazul comprimării sau decomprimării multor fișiere mici. Cu toate acestea, dacă sistemul se blochează imediat după ștergere, este posibil ca fișierul țintă să nu fi fost scris pe dispozitivul de stocare, dar operația de ștergere să fi fost. În acest caz, nici fișierul sursă original, nici fișierul țintă nu sunt disponibile."
#. type: Plain text
#: ../src/xz/xz.1
msgid "This option has an effect only when B<xz> is going to remove the source file. In other cases synchronization is never done."
msgstr "Această opțiune are efect numai atunci când B<xz> urmează să elimine fișierul sursă. În alte cazuri, sincronizarea nu se face niciodată."
#. type: Plain text
#: ../src/xz/xz.1
msgid "The synchronization and B<--no-sync> were added in B<xz> 5.7.1alpha."
msgstr "Sincronizarea și B<--no-sync> au fost adăugate în B<xz> 5.7.1alpha."
#. type: TP
#: ../src/xz/xz.1
#, no-wrap
@ -1569,11 +1525,6 @@ msgstr "LZMA1 este un filtru vechi, care este acceptat aproape exclusiv datorit
msgid "LZMA1 and LZMA2 share the same set of I<options>:"
msgstr "LZMA1 și LZMA2 au același set de I<opțiuni>:"
#. TRANSLATORS: Don't translate bold strings like B<preset>, B<dict>,
#. B<mode>, B<nice>, B<fast>, or B<normal> because those are command line
#. options. On the other hand, do translate the italic strings like
#. I<preset>, I<size>, and I<mode>, because such italic strings are
#. placeholders which a user replaces with an actual value.
#. type: TP
#: ../src/xz/xz.1
#, no-wrap
@ -2280,11 +2231,6 @@ msgstr "Modul listă"
msgid "B<xz --robot --list> uses tab-separated output. The first column of every line has a string that indicates the type of the information found on that line:"
msgstr "B<xz --robot --list> utilizează o ieșire separată de tabulatori. Prima coloană a fiecărei linii are un șir care indică tipul de informații găsite pe acea linie:"
#. TRANSLATORS: The bold strings B<name>, B<file>, B<stream>, B<block>,
#. B<summary>, and B<totals> are produced by the xz tool for scripts to
#. parse, thus the untranslated strings must be included in the translated
#. man page. It may be useful to provide a translated string in parenthesis
#. without bold, for example: "B<name> (nimi)"
#. type: TP
#: ../src/xz/xz.1
#, no-wrap
@ -2417,13 +2363,10 @@ msgstr "Raportul de comprimare, de exemplu, B<0,123>. Dacă raportul este peste
msgid "7."
msgstr "7."
#. TRANSLATORS: Don't translate the bold strings B<None>, B<CRC32>,
#. B<CRC64>, B<SHA-256>, or B<Unknown-> here. In robot mode, xz produces
#. them in untranslated form for scripts to parse.
#. type: Plain text
#: ../src/xz/xz.1
msgid "Comma-separated list of integrity check names. The following strings are used for the known check types: B<None>, B<CRC32>, B<CRC64>, and B<SHA-256>. For unknown check types, B<Unknown->I<N> is used, where I<N> is the Check ID as a decimal number (one or two digits)."
msgstr "Lista de nume de verificare a integrității, separate prin virgule. Următoarele șiruri sunt utilizate pentru tipurile de verificare cunoscute: B<None>, B<CRC32>, B<CRC64> și B<SHA-256>. Pentru tipurile de verificări necunoscute, se utilizează B<Unknown->I<N>, unde I<N> este ID-ul de verificare ca număr zecimal (una sau două cifre)."
msgstr "Lista de nume de verificare a integrității, separate prin virgule. Următoarele șiruri sunt utilizate pentru tipurile de verificare cunoscute: B<None>, B<CRC32>, B<CRC64> și B<SHA-256>. Pentru tipurile de verificări necunoscute, se utilizează B<None->I<N>, unde I<N> este ID-ul de verificare ca număr zecimal (una sau două cifre)."
#. type: IP
#: ../src/xz/xz.1
@ -2801,7 +2744,6 @@ msgstr "Versiunea"
msgid "B<xz --robot --version> prints the version number of B<xz> and liblzma in the following format:"
msgstr "B<xz --robot --version> va afișa numărul versiunii B<xz> și liblzma în următorul format:"
#. TRANSLATORS: Don't translate the uppercase XZ_VERSION or LIBLZMA_VERSION.
#. type: Plain text
#: ../src/xz/xz.1
msgid "B<XZ_VERSION=>I<XYYYZZZS>"
@ -2918,18 +2860,11 @@ msgstr "Notificările (nu avertismentele sau erorile) afișate la ieșirea de er
msgid "ENVIRONMENT"
msgstr "VARIABILE DE MEDIU"
#. TRANSLATORS: Don't translate the uppercase XZ_DEFAULTS or XZ_OPT.
#. They are names of environment variables.
#. type: Plain text
#: ../src/xz/xz.1
msgid "B<xz> parses space-separated lists of options from the environment variables B<XZ_DEFAULTS> and B<XZ_OPT>, in this order, before parsing the options from the command line. Note that only options are parsed from the environment variables; all non-options are silently ignored. Parsing is done with B<getopt_long>(3) which is used also for the command line arguments."
msgstr "B<xz> analizează liste de opțiuni separate prin spații din variabilele de mediu B<XZ_DEFAULTS> și B<XZ_OPT>, în această ordine, înainte de a analiza opțiunile din linia de comandă. Rețineți că numai opțiunile sunt analizate din variabilele de mediu; toate non-opțiunile sunt ignorate în tăcere. Analiza se face cu funcția B<getopt_long>(3) care este folosită și pentru argumentele liniei de comandă."
#. 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 "B<Avertisment:> Prin definirea acestor variabile de mediu, se modifică efectiv programele și scripturile care rulează B<xz>. De cele mai multe ori este sigur să se definească limitele de utilizare a memoriei, numărul de fire și opțiunile de comprimare prin intermediul variabilelor de mediu. Cu toate acestea, unele opțiuni pot întrerupe scripturile. Un exemplu evident este B<--help> care face ca B<xz> să afișeze textul de ajutor în loc să comprime sau să decomprime un fișier. Exemple mai subtile sunt B<--quiet> și B<--verbose>. În multe cazuri funcționează bine activarea indicatorului de progres folosind B<--verbose>, dar în unele situații mesajele suplimentare creează probleme. Nivelul de detaliere al mesajelor afectează, de asemenea, comportamentul lui B<--list>."
#. type: TP
#: ../src/xz/xz.1
#, no-wrap
@ -2938,8 +2873,8 @@ msgstr "B<XZ_DEFAULTS>"
#. type: Plain text
#: ../src/xz/xz.1
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 "Opțiuni implicite specifice utilizatorului sau la nivelul întregului sistem. De obicei, acest lucru este specificat într-un script de inițializare shell pentru a activa limitatorul de utilizare a memoriei lui B<xz> implicit sau pentru a stabili numărul implicit de fire. Excluzând scripturile de inițializare shell și cazurile speciale similare, scripturile nu trebuie niciodată să modifice sau să dezactiveze 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. Excluding shell initialization scripts and similar special cases, scripts must never set or unset B<XZ_DEFAULTS>."
msgstr "Opțiuni implicite specifice utilizatorului sau la nivelul întregului sistem. De obicei, acest lucru este specificat într-un script de inițializare shell pentru a activa limitatorul de utilizare a memoriei lui B<xz> implicit. Excluzând scripturile de inițializare shell și cazurile speciale similare, scripturile nu trebuie niciodată să modifice sau să dezactiveze B<XZ_DEFAULTS>."
#. type: TP
#: ../src/xz/xz.1
@ -2954,9 +2889,10 @@ msgstr "Acest lucru este pentru transmiterea opțiunilor către B<xz> atunci câ
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid "CW<XZ_OPT=-2v tar caf foo.tar.xz foo>\n"
msgid "\\f(CRXZ_OPT=-2v tar caf foo.tar.xz foo\\fR\n"
msgstr "\\f(CRXZ_OPT=-2v tar caf foo.tar.xz foo\\fR\n"
msgstr "CW<XZ_OPT=-2v tar caf foo.tar.xz foo>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -2965,13 +2901,16 @@ msgstr "Scripturile pot folosi B<XZ_OPT>, de exemplu, pentru a configura opțiun
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid ""
#| "CW<XZ_OPT=${XZ_OPT-\"-7e\"}\n"
#| "export XZ_OPT>\n"
msgid ""
"\\f(CRXZ_OPT=${XZ_OPT-\"-7e\"}\n"
"export XZ_OPT\\fR\n"
msgstr ""
"\\f(CRXZ_OPT=${XZ_OPT-\"-7e\"}\n"
"export XZ_OPT\\fR\n"
"CW<XZ_OPT=${XZ_OPT-\"-7e\"}\n"
"export XZ_OPT>\n"
#. type: SH
#: ../src/xz/xz.1
@ -3203,9 +3142,10 @@ msgstr "Comprimă fișierul I<foo> în I<foo.xz> folosind nivelul de comprimare
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid "CW<xz foo>\n"
msgid "\\f(CRxz foo\\fR\n"
msgstr "\\f(CRxz foo\\fR\n"
msgstr "CW<xz foo>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -3214,9 +3154,10 @@ msgstr "Decomprimă I<bar.xz> în I<bar> și nu elimină I<bar.xz> chiar dacă d
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid "CW<xz -dk bar.xz>\n"
msgid "\\f(CRxz -dk bar.xz\\fR\n"
msgstr "\\f(CRxz -dk bar.xz\\fR\n"
msgstr "CW<xz -dk bar.xz>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -3225,9 +3166,10 @@ msgstr "Creează I<baz.tar.xz> cu nivelul prestabilit B<-4e> (B<-4 --extreme>),
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid "CW<tar cf - baz | xz -4e E<gt> baz.tar.xz>\n"
msgid "\\f(CRtar cf - baz | xz -4e E<gt> baz.tar.xz\\fR\n"
msgstr "\\f(CRtar cf - baz | xz -4e E<gt> baz.tar.xz\\fR\n"
msgstr "CW<tar cf - baz | xz -4e E<gt> baz.tar.xz>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -3236,9 +3178,10 @@ msgstr "Un amestec de fișiere comprimate și necomprimate poate fi decomprimat
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid "CW<xz -dcf a.txt b.txt.xz c.txt d.txt.lzma E<gt> abcd.txt>\n"
msgid "\\f(CRxz -dcf a.txt b.txt.xz c.txt d.txt.lzma E<gt> abcd.txt\\fR\n"
msgstr "\\f(CRxz -dcf a.txt b.txt.xz c.txt d.txt.lzma E<gt> abcd.txt\\fR\n"
msgstr "CW<xz -dcf a.txt b.txt.xz c.txt d.txt.lzma E<gt> abcd.txt>\n"
#. type: SS
#: ../src/xz/xz.1
@ -3253,13 +3196,16 @@ msgstr "În sisteme GNU și *BSD, B<find>(1) și B<xargs>(1) pot fi utilizate pe
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid ""
#| "CW<find . -type f \\e! -name '*.xz' -print0 \\e\n"
#| " | xargs -0r -P4 -n16 xz -T1>\n"
msgid ""
"\\f(CRfind . -type f \\e! -name '*.xz' -print0 \\e\n"
" | xargs -0r -P4 -n16 xz -T1\\fR\n"
msgstr ""
"\\f(CRfind . -type f \\e! -name '*.xz' -print0 \\e\n"
" | xargs -0r -P4 -n16 xz -T1\\fR\n"
"CW<find . -type f \\e! -name '*.xz' -print0 \\e\n"
" | xargs -0r -P4 -n16 xz -T1>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -3284,9 +3230,10 @@ msgstr "Calculează câți octeți au fost salvați în total după comprimarea
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid "CW<xz --robot --list *.xz | awk '/^totals/{print $5-$4}'>\n"
msgid "\\f(CRxz --robot --list *.xz | awk '/^totals/{print $5-$4}'\\fR\n"
msgstr "\\f(CRxz --robot --list *.xz | awk '/^totals/{print $5-$4}'\\fR\n"
msgstr "CW<xz --robot --list *.xz | awk '/^totals/{print $5-$4}'>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -3295,7 +3242,13 @@ msgstr "Un script poate dori să afle dacă folosește o versiune B<xz> suficien
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid ""
#| "CW<if ! eval \"$(xz --robot --version 2E<gt> /dev/null)\" ||\n"
#| " [ \"$XZ_VERSION\" -lt 50000002 ]; then\n"
#| " echo \"Your xz is too old.\"\n"
#| "fi\n"
#| "unset XZ_VERSION LIBLZMA_VERSION>\n"
msgid ""
"\\f(CRif ! eval \"$(xz --robot --version 2E<gt> /dev/null)\" ||\n"
" [ \"$XZ_VERSION\" -lt 50000002 ]; then\n"
@ -3303,11 +3256,11 @@ msgid ""
"fi\n"
"unset XZ_VERSION LIBLZMA_VERSION\\fR\n"
msgstr ""
"\\f(CRif ! eval \"$(xz --robot --version 2E<gt> /dev/null)\" ||\n"
"CW<if ! eval \"$(xz --robot --version 2E<gt> /dev/null)\" ||\n"
" [ \"$XZ_VERSION\" -lt 50000002 ]; then\n"
" echo \"Versiunea dumneavoastră de „xz” este prea veche!\"\n"
"fi\n"
"unset XZ_VERSION LIBLZMA_VERSION\\fR\n"
"unset XZ_VERSION LIBLZMA_VERSION>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -3316,7 +3269,14 @@ msgstr "Stabilește o limită de utilizare a memoriei pentru decomprimare folosi
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid ""
#| "CW<NEWLIM=$((123 E<lt>E<lt> 20))\\ \\ # 123 MiB\n"
#| "OLDLIM=$(xz --robot --info-memory | cut -f3)\n"
#| "if [ $OLDLIM -eq 0 -o $OLDLIM -gt $NEWLIM ]; then\n"
#| " XZ_OPT=\"$XZ_OPT --memlimit-decompress=$NEWLIM\"\n"
#| " export XZ_OPT\n"
#| "fi>\n"
msgid ""
"\\f(CRNEWLIM=$((123 E<lt>E<lt> 20))\\ \\ # 123 MiB\n"
"OLDLIM=$(xz --robot --info-memory | cut -f3)\n"
@ -3325,12 +3285,12 @@ msgid ""
" export XZ_OPT\n"
"fi\\fR\n"
msgstr ""
"\\f(CRNEWLIM=$((123 E<lt>E<lt> 20))\\ \\ # 123 MiB\n"
"CW<NEWLIM=$((123 E<lt>E<lt> 20))\\ \\ # 123 MiB\n"
"OLDLIM=$(xz --robot --info-memory | cut -f3)\n"
"if [ $OLDLIM -eq 0 -o $OLDLIM -gt $NEWLIM ]; then\n"
" XZ_OPT=\"$XZ_OPT --memlimit-decompress=$NEWLIM\"\n"
" export XZ_OPT\n"
"fi\\fR\n"
"fi>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -3349,9 +3309,10 @@ msgstr "Dacă știți că un fișier necesită un dicționar oarecum mare (de ex
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid "CW<xz --lzma2=preset=1,dict=32MiB foo.tar>\n"
msgid "\\f(CRxz --lzma2=preset=1,dict=32MiB foo.tar\\fR\n"
msgstr "\\f(CRxz --lzma2=preset=1,dict=32MiB foo.tar\\fR\n"
msgstr "CW<xz --lzma2=preset=1,dict=32MiB foo.tar>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -3365,9 +3326,10 @@ msgstr "Dacă utilizarea unei mari cantități de memorie pentru comprimare și
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid "CW<xz -vv --lzma2=dict=192MiB big_foo.tar>\n"
msgid "\\f(CRxz -vv --lzma2=dict=192MiB big_foo.tar\\fR\n"
msgstr "\\f(CRxz -vv --lzma2=dict=192MiB big_foo.tar\\fR\n"
msgstr "CW<xz -vv --lzma2=dict=192MiB big_foo.tar>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -3381,9 +3343,10 @@ msgstr "Uneori, timpul de comprimare nu contează, dar utilizarea memoriei la de
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid "CW<xz --check=crc32 --lzma2=preset=6e,dict=64KiB foo>\n"
msgid "\\f(CRxz --check=crc32 --lzma2=preset=6e,dict=64KiB foo\\fR\n"
msgstr "\\f(CRxz --check=crc32 --lzma2=preset=6e,dict=64KiB foo\\fR\n"
msgstr "CW<xz --check=crc32 --lzma2=preset=6e,dict=64KiB foo>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -3392,9 +3355,10 @@ msgstr "Dacă doriți să stoarceți cât mai mulți octeți posibil, ajustarea
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid "CW<xz --lzma2=preset=6e,pb=0,lc=4 source_code.tar>\n"
msgid "\\f(CRxz --lzma2=preset=6e,pb=0,lc=4 source_code.tar\\fR\n"
msgstr "\\f(CRxz --lzma2=preset=6e,pb=0,lc=4 fișierul_sursă.tar\\fR\n"
msgstr "CW<xz --lzma2=preset=6e,pb=0,lc=4 fișierul_sursă.tar>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -3403,9 +3367,10 @@ msgstr "Utilizarea unui alt filtru împreună cu LZMA2 poate îmbunătăți comp
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid "CW<xz --x86 --lzma2 libfoo.so>\n"
msgid "\\f(CRxz --x86 --lzma2 libfoo.so\\fR\n"
msgstr "\\f(CRxz --x86 --lzma2 libfoo.so\\fR\n"
msgstr "CW<xz --x86 --lzma2 libfoo.so>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -3424,9 +3389,10 @@ msgstr "Imaginea trebuie să fie salvată în format necomprimat, de exemplu, ca
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid "CW<xz --delta=dist=3 --lzma2=pb=0 foo.tiff>\n"
msgid "\\f(CRxz --delta=dist=3 --lzma2=pb=0 foo.tiff\\fR\n"
msgstr "\\f(CRxz --delta=dist=3 --lzma2=pb=0 foo.tiff\\fR\n"
msgstr "CW<xz --delta=dist=3 --lzma2=pb=0 foo.tiff>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -3467,12 +3433,6 @@ msgstr "LZMA SDK: E<lt>https://7-zip.org/sdk.htmlE<gt>"
msgid "XZDEC"
msgstr "XZDEC"
#. type: TH
#: ../src/xzdec/xzdec.1
#, no-wrap
msgid "2024-04-08"
msgstr "8 aprilie 2024"
#. type: Plain text
#: ../src/xzdec/xzdec.1
msgid "xzdec, lzmadec - Small .xz and .lzma decompressors"
@ -3613,11 +3573,10 @@ msgid "XZDIFF"
msgstr "XZDIFF"
#. type: TH
#: ../src/scripts/xzdiff.1 ../src/scripts/xzgrep.1 ../src/scripts/xzless.1
#: ../src/scripts/xzmore.1
#: ../src/scripts/xzdiff.1 ../src/scripts/xzgrep.1
#, no-wrap
msgid "2025-03-06"
msgstr "6 martie 2025"
msgid "2024-02-13"
msgstr "13 februarie 2024"
#. type: Plain text
#: ../src/scripts/xzdiff.1
@ -3636,13 +3595,13 @@ msgstr "B<xzdiff> \\&..."
#. type: Plain text
#: ../src/scripts/xzdiff.1
msgid "B<lzcmp> \\&... (DEPRECATED)"
msgstr "B<lzcmp> \\&... (DEPRECIATĂ)"
msgid "B<lzcmp> \\&..."
msgstr "B<lzcmp> \\&..."
#. type: Plain text
#: ../src/scripts/xzdiff.1
msgid "B<lzdiff> \\&... (DEPRECATED)"
msgstr "B<lzdiff> \\&... (DEPRECIATĂ)"
msgid "B<lzdiff> \\&..."
msgstr "B<lzdiff> \\&..."
#. type: Plain text
#: ../src/scripts/xzdiff.1
@ -3661,8 +3620,8 @@ msgstr "În cazul în care se furnizează un singur nume de fișier, I<fișier1>
#. type: Plain text
#: ../src/scripts/xzdiff.1
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 "Comenzile B<lzcmp> și B<lzdiff> sunt furnizate pentru compatibilitate retroactivă cu LZMA Utils. Acestea sunt depreciate și vor fi eliminate într-o versiune viitoare."
msgid "The commands B<lzcmp> and B<lzdiff> are provided for backward compatibility with LZMA Utils."
msgstr "Comenzile B<lzcmp> și B<lzdiff> sunt furnizate pentru compatibilitate retroactivă cu LZMA Utils."
#. type: Plain text
#: ../src/scripts/xzdiff.1
@ -3702,18 +3661,18 @@ msgstr "B<xzfgrep> \\&..."
#. type: Plain text
#: ../src/scripts/xzgrep.1
msgid "B<lzgrep> \\&... (DEPRECATED)"
msgstr "B<lzgrep> \\&... (DEPRECIATĂ)"
msgid "B<lzgrep> \\&..."
msgstr "B<lzgrep> \\&..."
#. type: Plain text
#: ../src/scripts/xzgrep.1
msgid "B<lzegrep> \\&... (DEPRECATED)"
msgstr "B<lzegrep> \\&... (DEPRECIATĂ)"
msgid "B<lzegrep> \\&..."
msgstr "B<lzegrep> \\&..."
#. type: Plain text
#: ../src/scripts/xzgrep.1
msgid "B<lzfgrep> \\&... (DEPRECATED)"
msgstr "B<lzfgrep> \\&... (DEPRECIATĂ)"
msgid "B<lzfgrep> \\&..."
msgstr "B<lzfgrep> \\&..."
#. type: Plain text
#: ../src/scripts/xzgrep.1
@ -3782,8 +3741,8 @@ msgstr "B<xzegrep> este un alias pentru B<xzgrep -E>. B<xzfgrep> este un alias p
#. type: Plain text
#: ../src/scripts/xzgrep.1
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 "Comenzile B<lzgrep>, B<lzegrep> și B<lzfgrep> sunt furnizate pentru compatibilitate retroactivă cu LZMA Utils. Acestea sunt depreciate și vor fi eliminate într-o versiune viitoare."
msgid "The commands B<lzgrep>, B<lzegrep>, and B<lzfgrep> are provided for backward compatibility with LZMA Utils."
msgstr "Comenzile B<lzgrep>, B<lzegrep> și B<lzfgrep> sunt furnizate pentru compatibilitate retroactivă cu LZMA Utils."
#. type: Plain text
#: ../src/scripts/xzgrep.1
@ -3828,6 +3787,12 @@ msgstr "B<grep>(1), B<xz>(1), B<gzip>(1), B<bzip2>(1), B<lzop>(1), B<zstd>(1), B
msgid "XZLESS"
msgstr "XZLESS"
#. type: TH
#: ../src/scripts/xzless.1 ../src/scripts/xzmore.1
#, no-wrap
msgid "2024-02-12"
msgstr "12 februarie 2024"
#. type: Plain text
#: ../src/scripts/xzless.1
msgid "xzless, lzless - view xz or lzma compressed (text) files"
@ -3840,13 +3805,13 @@ msgstr "B<xzless> [I<fișier>...]"
#. type: Plain text
#: ../src/scripts/xzless.1
msgid "B<lzless> [I<file>...] (DEPRECATED)"
msgstr "B<lzless> [I<fișier>...] (DEPRECIATĂ)"
msgid "B<lzless> [I<file>...]"
msgstr "B<lzless> [I<fișier>...]"
#. type: Plain text
#: ../src/scripts/xzless.1
msgid "B<xzless> is a filter that displays text from compressed files to a terminal. Files supported by B<xz>(1) are decompressed; other files are assumed to be in uncompressed form already. If no I<files> are given, B<xzless> reads from standard input."
msgstr "B<xzless> este un filtru care afișează textul din fișierele comprimate pe un terminal. Fișierele acceptate de B<xz>(1) sunt decomprimate; se presupune că celelalte fișiere sunt deja în format necomprimat. Dacă nu se dă nici un I<fișier>, B<xzless> citește de la intrarea standard."
msgstr "B<xzless> este un filtru care afișează textul din fișierele comprimate pe un terminal. Fișierele acceptate de B<xz>(1) sunt decomprimate; se presupune că celelalte fișiere sunt deja în format necomprimat. Dacă nu se dă nici un I<fișier>, B<xzless> citește de la intrarea standard."
#. type: Plain text
#: ../src/scripts/xzless.1
@ -3855,8 +3820,8 @@ msgstr "B<xzless> folosește B<less>(1) pentru a-și prezenta rezultatul. Spre d
#. type: Plain text
#: ../src/scripts/xzless.1
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 "Comanda numită B<lzless> este furnizată pentru compatibilitatea cu LZMA Utils. Aceasta este depreciată și va fi eliminată într-o versiune viitoare."
msgid "The command named B<lzless> is provided for backward compatibility with LZMA Utils."
msgstr "Comanda numită B<lzless> este furnizată pentru compatibilitatea cu LZMA Utils."
#. type: TP
#: ../src/scripts/xzless.1
@ -3903,8 +3868,8 @@ msgstr "B<xzmore> [I<fișier>...]"
#. type: Plain text
#: ../src/scripts/xzmore.1
msgid "B<lzmore> [I<file>...] (DEPRECATED)"
msgstr "B<lzmore> [I<fișier>...] (DEPRECIATĂ)"
msgid "B<lzmore> [I<file>...]"
msgstr "B<lzmore> [I<fișier>...]"
#. type: Plain text
#: ../src/scripts/xzmore.1
@ -3918,11 +3883,9 @@ msgstr "Rețineți că este posibil ca derularea înapoi să nu fie posibilă î
#. type: Plain text
#: ../src/scripts/xzmore.1
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 "Comanda B<lzmore> este furnizată pentru compatibilitate retroactivă cu LZMA Utils. Aceasta este depreciată și va fi eliminată într-o versiune viitoare."
msgid "The command B<lzmore> is provided for backward compatibility with LZMA Utils."
msgstr "Comanda B<lzmore> este furnizată pentru compatibilitate retroactivă cu LZMA Utils."
#. TRANSLATORS: Don't translate the uppercase PAGER.
#. It is a name of an environment variable.
#. type: TP
#: ../src/scripts/xzmore.1
#, no-wrap
@ -3938,3 +3901,7 @@ msgstr "Dacă variabila de mediu B<PAGER>, este definită, valoarea sa este util
#: ../src/scripts/xzmore.1
msgid "B<more>(1), B<xz>(1), B<xzless>(1), B<zmore>(1)"
msgstr "B<more>(1), B<xz>(1), B<xzless>(1), B<zmore>(1)"
#, no-wrap
#~ msgid "2024-01-19"
#~ msgstr "19 ianuarie 2024"

3939
po4a/sr.po

File diff suppressed because it is too large Load Diff

View File

@ -1,15 +1,15 @@
# SPDX-License-Identifier: 0BSD
#
# Ukrainian translation for xz-man.
# This file is published under the BSD Zero Clause License.
# This file is distributed under the same license as the xz-man package.
# Copyright (C) The XZ Utils authors and contributors
#
# Yuri Chornoivan <yurchor@ukr.net>, 2019, 2022, 2023, 2024, 2025.
# Yuri Chornoivan <yurchor@ukr.net>, 2019, 2022, 2023, 2024.
msgid ""
msgstr ""
"Project-Id-Version: xz-man-5.8.0-pre1\n"
"POT-Creation-Date: 2025-03-08 14:50+0200\n"
"PO-Revision-Date: 2025-03-09 20:04+0200\n"
"Project-Id-Version: xz-man-5.6.0-pre2\n"
"POT-Creation-Date: 2024-05-29 17:45+0300\n"
"PO-Revision-Date: 2024-02-15 17:53+0200\n"
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <trans-uk@lists.fedoraproject.org>\n"
"Language: uk\n"
@ -18,7 +18,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Lokalize 23.04.3\n"
"X-Generator: Lokalize 23.04.1\n"
#. type: TH
#: ../src/xz/xz.1
@ -27,10 +27,11 @@ msgid "XZ"
msgstr "XZ"
#. type: TH
#: ../src/xz/xz.1
#, no-wrap
msgid "2025-03-08"
msgstr "8 березня 2025 року"
#: ../src/xz/xz.1 ../src/xzdec/xzdec.1
#, fuzzy, no-wrap
#| msgid "2024-02-25"
msgid "2024-04-08"
msgstr "25 лютого 2024 року"
#. type: TH
#: ../src/xz/xz.1 ../src/xzdec/xzdec.1 ../src/lzmainfo/lzmainfo.1
@ -215,8 +216,6 @@ msgstr "Використання B<xz> пам'яті може бути різн
msgid "Especially users of older systems may find the possibility of very large memory usage annoying. To prevent uncomfortable surprises, B<xz> has a built-in memory usage limiter, which is disabled by default. While some operating systems provide ways to limit the memory usage of processes, relying on it wasn't deemed to be flexible enough (for example, using B<ulimit>(1) to limit virtual memory tends to cripple B<mmap>(2))."
msgstr "Ймовірність високого рівня використання пам'яті може бути особливо дошкульною для користувачів застарілих комп'ютерів. Щоб запобігти прикрим несподіванкам, у B<xz> передбачено вбудований обмежувач пам'яті, який типово вимкнено. Хоча у деяких операційних системах передбачено спосіб обмежити використання пам'яті процесами, сподівання на його ефективність не є аж надто гнучким (наприклад, використання B<ulimit>(1) для обмеження віртуальної пам'яті призводить до викривлення даних B<mmap>(2))."
#. TRANSLATORS: Don't translate the uppercase XZ_DEFAULTS.
#. It's a name of an environment variable.
#. type: Plain text
#: ../src/xz/xz.1
msgid "The memory usage limiter can be enabled with the command line option B<--memlimit=>I<limit>. Often it is more convenient to enable the limiter by default by setting the environment variable B<XZ_DEFAULTS>, for example, B<XZ_DEFAULTS=--memlimit=150MiB>. It is possible to set the limits separately for compression and decompression by using B<--memlimit-compress=>I<limit> and B<--memlimit-decompress=>I<limit>. Using these two options outside B<XZ_DEFAULTS> is rarely useful because a single run of B<xz> cannot do both compression and decompression and B<--memlimit=>I<limit> (or B<-M> I<limit>) is shorter to type on the command line."
@ -325,27 +324,16 @@ msgstr "B<-z>, B<--compress>"
msgid "Compress. This is the default operation mode when no operation mode option is specified and no other operation mode is implied from the command name (for example, B<unxz> implies B<--decompress>)."
msgstr "Стиснути. Це типовий режим дій, якщо не вказано параметр режиму дій, а назва команди неявним чином не визначає іншого режиму дій (наприклад, B<unxz> неявно визначає B<--decompress>)."
#. The DESCRIPTION section already says this but it's good to repeat it
#. here because the default behavior is a bit dangerous and new users
#. in a hurry may skip reading the DESCRIPTION section.
#. type: Plain text
#: ../src/xz/xz.1
msgid "After successful compression, the source file is removed unless writing to standard output or B<--keep> was specified."
msgstr "Після успішного пакування початковий файл буде вилучено, якщо виведення не відбувається до стандартного виведення або не вказано параметра B<--keep>."
#. type: TP
#: ../src/xz/xz.1 ../src/xzdec/xzdec.1
#, no-wrap
msgid "B<-d>, B<--decompress>, B<--uncompress>"
msgstr "B<-d>, B<--decompress>, B<--uncompress>"
#. The DESCRIPTION section already says this but it's good to repeat it
#. here because the default behavior is a bit dangerous and new users
#. in a hurry may skip reading the DESCRIPTION section.
#. type: Plain text
#: ../src/xz/xz.1
msgid "Decompress. After successful decompression, the source file is removed unless writing to standard output or B<--keep> was specified."
msgstr "Розпакувати. Після успішного розпаковування початковий файл буде вилучено, якщо виведення не відбувається до стандартного виведення або не вказано параметра B<--keep>."
msgid "Decompress."
msgstr "Розпакувати."
#. type: TP
#: ../src/xz/xz.1
@ -459,11 +447,6 @@ msgstr "B<xz> ніколи не виконуватиме спроби видоб
msgid "This option has no effect if the operation mode is not B<--decompress> or B<--test>."
msgstr "Цей параметр нічого не змінює, якщо режимом дій не є B<--decompress> або B<--test>."
#. type: Plain text
#: ../src/xz/xz.1
msgid "Since B<xz> 5.7.1alpha, B<--single-stream> implies B<--keep>."
msgstr "З B<xz> 5.7.1alpha, B<--single-stream> неявно визначає B<--keep>."
#. type: TP
#: ../src/xz/xz.1
#, no-wrap
@ -535,7 +518,6 @@ msgstr "B<-F> I<format>, B<--format=>I<формат>"
msgid "Specify the file I<format> to compress or decompress:"
msgstr "Вказати файл I<формат> для стискання або розпакування:"
#. TRANSLATORS: Don't translate bold string B<auto>.
#. type: TP
#: ../src/xz/xz.1
#, no-wrap
@ -617,9 +599,6 @@ msgstr "Вказати тип перевірки цілісності. Конт
msgid "Supported I<check> types:"
msgstr "Підтримувані типи I<перевірок>:"
#. TRANSLATORS: Don't translate the bold strings B<none>, B<crc32>,
#. B<crc64>, and B<sha256>. The command line option --check accepts
#. only the untranslated strings.
#. type: TP
#: ../src/xz/xz.1
#, no-wrap
@ -1261,27 +1240,6 @@ msgstr "Ця можливість недоступна у системах, як
msgid "B<This feature is still experimental.> Currently B<xz> is unsuitable for decompressing the stream in real time due to how B<xz> does buffering."
msgstr "B<Ця можливість усе ще є експериментальною.> У поточній версії, B<xz> не може розпаковувати потік даних у режимі реального часу через те, у який спосіб B<xz> виконує буферизацію."
#. type: TP
#: ../src/xz/xz.1
#, no-wrap
msgid "B<--no-sync>"
msgstr "B<--no-sync>"
#. type: Plain text
#: ../src/xz/xz.1
msgid "Do not synchronize the target file and its directory to the storage device before removing the source file. This can improve performance if compressing or decompressing many small files. However, if the system crashes soon after the deletion, it is possible that the target file was not written to the storage device but the delete operation was. In that case neither the original source file nor the target file is available."
msgstr "Не синхронізувати файл призначення та його каталог із пристроєм зберігання даних до вилучення початкового файла. Це може підвищити швидкодію, якщо виконується стискання або розпаковування багатьох малих файлів. Втім, якщо система аварійно завершує роботу невдовзі після вилучення, можлива ситуація, коли файл призначення не буде записано на пристрій зберігання даних, а дію з вилучення буде записано. У цьому випадку буде знищено дані як початкового файла, так і файла призначення."
#. type: Plain text
#: ../src/xz/xz.1
msgid "This option has an effect only when B<xz> is going to remove the source file. In other cases synchronization is never done."
msgstr "Цей параметр матиме хоч який вплив, лише якщо B<xz> вилучає початковий файл. В інших випадках синхронізація не виконується."
#. type: Plain text
#: ../src/xz/xz.1
msgid "The synchronization and B<--no-sync> were added in B<xz> 5.7.1alpha."
msgstr "Синхронізацію і B<--no-sync> було додано у версії B<xz> 5.7.1alpha."
#. type: TP
#: ../src/xz/xz.1
#, no-wrap
@ -1544,11 +1502,6 @@ msgstr "LZMA1 є застарілим фільтром, підтримку як
msgid "LZMA1 and LZMA2 share the same set of I<options>:"
msgstr "LZMA1 і LZMA2 спільно використовують той самий набір I<параметрів>:"
#. TRANSLATORS: Don't translate bold strings like B<preset>, B<dict>,
#. B<mode>, B<nice>, B<fast>, or B<normal> because those are command line
#. options. On the other hand, do translate the italic strings like
#. I<preset>, I<size>, and I<mode>, because such italic strings are
#. placeholders which a user replaces with an actual value.
#. type: TP
#: ../src/xz/xz.1
#, no-wrap
@ -2253,16 +2206,11 @@ msgstr "Режим списку"
msgid "B<xz --robot --list> uses tab-separated output. The first column of every line has a string that indicates the type of the information found on that line:"
msgstr "У B<xz --robot --list> використано табуляції для поділу виведених даних. Першим стовпчиком у кожному рядку є рядок, що вказує на тип відомостей, які можна знайти у цьому рядку:"
#. TRANSLATORS: The bold strings B<name>, B<file>, B<stream>, B<block>,
#. B<summary>, and B<totals> are produced by the xz tool for scripts to
#. parse, thus the untranslated strings must be included in the translated
#. man page. It may be useful to provide a translated string in parenthesis
#. without bold, for example: "B<name> (nimi)"
#. type: TP
#: ../src/xz/xz.1
#, no-wrap
msgid "B<name>"
msgstr "B<name>"
msgstr "B<назва>"
#. type: Plain text
#: ../src/xz/xz.1
@ -2273,7 +2221,7 @@ msgstr "Це завжди перший рядок на початку списк
#: ../src/xz/xz.1
#, no-wrap
msgid "B<file>"
msgstr "B<file>"
msgstr "B<файл>"
#. type: Plain text
#: ../src/xz/xz.1
@ -2390,9 +2338,6 @@ msgstr "Коефіцієнт стискання, наприклад, B<0.123>.
msgid "7."
msgstr "7."
#. TRANSLATORS: Don't translate the bold strings B<None>, B<CRC32>,
#. B<CRC64>, B<SHA-256>, or B<Unknown-> here. In robot mode, xz produces
#. them in untranslated form for scripts to parse.
#. type: Plain text
#: ../src/xz/xz.1
msgid "Comma-separated list of integrity check names. The following strings are used for the known check types: B<None>, B<CRC32>, B<CRC64>, and B<SHA-256>. For unknown check types, B<Unknown->I<N> is used, where I<N> is the Check ID as a decimal number (one or two digits)."
@ -2774,7 +2719,6 @@ msgstr "Версія"
msgid "B<xz --robot --version> prints the version number of B<xz> and liblzma in the following format:"
msgstr "B<xz --robot --version> виведе назву версії B<xz> і liblzma у такому форматі:"
#. TRANSLATORS: Don't translate the uppercase XZ_VERSION or LIBLZMA_VERSION.
#. type: Plain text
#: ../src/xz/xz.1
msgid "B<XZ_VERSION=>I<XYYYZZZS>"
@ -2891,18 +2835,11 @@ msgstr "Зауваження (не попередження або помилк
msgid "ENVIRONMENT"
msgstr "СЕРЕДОВИЩЕ"
#. TRANSLATORS: Don't translate the uppercase XZ_DEFAULTS or XZ_OPT.
#. They are names of environment variables.
#. type: Plain text
#: ../src/xz/xz.1
msgid "B<xz> parses space-separated lists of options from the environment variables B<XZ_DEFAULTS> and B<XZ_OPT>, in this order, before parsing the options from the command line. Note that only options are parsed from the environment variables; all non-options are silently ignored. Parsing is done with B<getopt_long>(3) which is used also for the command line arguments."
msgstr "B<xz> обробляє списки відокремлених пробілами параметрів зі змінних середовища B<XZ_DEFAULTS> і B<XZ_OPT>, перш ніж обробляти параметри з рядка команди. Зауважте, що буде оброблено лише параметри зі змінних середовища; усі непараметричні записи буде без повідомлень проігноровано. Обробку буде виконано за допомогою функції B<getopt_long>(3), яку також використовують для аргументів рядка команди."
#. 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 "B<Попередження:> Встановлюючи ці змінні середовища, ви насправді змінюєте програми та скрипти, які виконують B<xz>. У більшості випадків без проблем можна встановлювати обмеження на використання пам'яті, кількість потоків і параметри стиснення за допомогою змінних середовища. Однак деякі параметри можуть порушити роботу скриптів. Очевидним прикладом є B<--help>, який змушує B<xz> показувати текст довідки замість стискання або розпаковування файла. Менш очевидними є приклади B<--quiet> і B<--verbose>. У багатьох випадках усе працюватиме добре, якщо увімкнути індикатор поступу за допомогою B<--verbose>, але у деяких ситуаціях додаткові повідомлення створюють проблеми. Рівень докладності також впливає на поведінку B<--list>."
#. type: TP
#: ../src/xz/xz.1
#, no-wrap
@ -2911,8 +2848,8 @@ msgstr "B<XZ_DEFAULTS>"
#. type: Plain text
#: ../src/xz/xz.1
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> у скриптах."
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>."
msgstr "Специфічні для користувача або загальносистемні типові параметри. Зазвичай, їх встановлюють у скрипті ініціалізації оболонки для типового вмикання обмеження на використання пам'яті у B<xz>. Окрім скриптів ініціалізації оболонки і подібних особливих випадків, не слід встановлювати або скасовувати встановлення значення B<XZ_DEFAULTS> у скриптах."
#. type: TP
#: ../src/xz/xz.1
@ -2927,9 +2864,10 @@ msgstr "Цю змінну призначено для передавання п
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid "CW<XZ_OPT=-2v tar caf foo.tar.xz foo>\n"
msgid "\\f(CRXZ_OPT=-2v tar caf foo.tar.xz foo\\fR\n"
msgstr "\\f(CRXZ_OPT=-2v tar caf foo.tar.xz foo\\fR\n"
msgstr "CW<XZ_OPT=-2v tar caf foo.tar.xz foo>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -2938,13 +2876,16 @@ msgstr "Скрипти можуть використовувати B<XZ_OPT>, н
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid ""
#| "CW<XZ_OPT=${XZ_OPT-\"-7e\"}\n"
#| "export XZ_OPT>\n"
msgid ""
"\\f(CRXZ_OPT=${XZ_OPT-\"-7e\"}\n"
"export XZ_OPT\\fR\n"
msgstr ""
"\\f(CRXZ_OPT=${XZ_OPT-\"-7e\"}\n"
"export XZ_OPT\\fR\n"
"CW<XZ_OPT=${XZ_OPT-\"-7e\"}\n"
"export XZ_OPT>\n"
#. type: SH
#: ../src/xz/xz.1
@ -3176,9 +3117,10 @@ msgstr "Стиснути файл I<foo> до I<foo.xz> за допомогою
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid "CW<xz foo>\n"
msgid "\\f(CRxz foo\\fR\n"
msgstr "\\f(CRxz foo\\fR\n"
msgstr "CW<xz foo>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -3187,9 +3129,10 @@ msgstr "Розпакувати I<bar.xz> до I<bar> і не вилучати I<
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid "CW<xz -dk bar.xz>\n"
msgid "\\f(CRxz -dk bar.xz\\fR\n"
msgstr "\\f(CRxz -dk bar.xz\\fR\n"
msgstr "CW<xz -dk bar.xz>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -3198,9 +3141,10 @@ msgstr "Створити I<baz.tar.xz> з використанням шабло
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid "CW<tar cf - baz | xz -4e E<gt> baz.tar.xz>\n"
msgid "\\f(CRtar cf - baz | xz -4e E<gt> baz.tar.xz\\fR\n"
msgstr "\\f(CRtar cf - baz | xz -4e E<gt> baz.tar.xz\\fR\n"
msgstr "CW<tar cf - baz | xz -4e E<gt> baz.tar.xz>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -3209,9 +3153,10 @@ msgstr "Суміш стиснених і нестиснених файлів м
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid "CW<xz -dcf a.txt b.txt.xz c.txt d.txt.lzma E<gt> abcd.txt>\n"
msgid "\\f(CRxz -dcf a.txt b.txt.xz c.txt d.txt.lzma E<gt> abcd.txt\\fR\n"
msgstr "\\f(CRxz -dcf a.txt b.txt.xz c.txt d.txt.lzma E<gt> abcd.txt\\fR\n"
msgstr "CW<xz -dcf a.txt b.txt.xz c.txt d.txt.lzma E<gt> abcd.txt>\n"
#. type: SS
#: ../src/xz/xz.1
@ -3226,13 +3171,16 @@ msgstr "У GNU і *BSD можна скористатися B<find>(1) і B<xargs
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid ""
#| "CW<find . -type f \\e! -name '*.xz' -print0 \\e\n"
#| " | xargs -0r -P4 -n16 xz -T1>\n"
msgid ""
"\\f(CRfind . -type f \\e! -name '*.xz' -print0 \\e\n"
" | xargs -0r -P4 -n16 xz -T1\\fR\n"
msgstr ""
"\\f(CRfind . -type f \\e! -name '*.xz' -print0 \\e\n"
" | xargs -0r -P4 -n16 xz -T1\\fR\n"
"CW<find . -type f \\e! -name '*.xz' -print0 \\e\n"
" | xargs -0r -P4 -n16 xz -T1>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -3257,9 +3205,10 @@ msgstr "Обчислити скільки байтів було заощадже
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid "CW<xz --robot --list *.xz | awk '/^totals/{print $5-$4}'>\n"
msgid "\\f(CRxz --robot --list *.xz | awk '/^totals/{print $5-$4}'\\fR\n"
msgstr "\\f(CRxz --robot --list *.xz | awk '/^totals/{print $5-$4}'\\fR\n"
msgstr "CW<xz --robot --list *.xz | awk '/^totals/{print $5-$4}'>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -3268,7 +3217,13 @@ msgstr "Скрипту можуть знадобитися дані щодо т
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid ""
#| "CW<if ! eval \"$(xz --robot --version 2E<gt> /dev/null)\" ||\n"
#| " [ \"$XZ_VERSION\" -lt 50000002 ]; then\n"
#| " echo \"Your xz is too old.\"\n"
#| "fi\n"
#| "unset XZ_VERSION LIBLZMA_VERSION>\n"
msgid ""
"\\f(CRif ! eval \"$(xz --robot --version 2E<gt> /dev/null)\" ||\n"
" [ \"$XZ_VERSION\" -lt 50000002 ]; then\n"
@ -3276,11 +3231,11 @@ msgid ""
"fi\n"
"unset XZ_VERSION LIBLZMA_VERSION\\fR\n"
msgstr ""
"\\f(CRif ! eval \"$(xz --robot --version 2E<gt> /dev/null)\" ||\n"
"CW<if ! eval \"$(xz --robot --version 2E<gt> /dev/null)\" ||\n"
" [ \"$XZ_VERSION\" -lt 50000002 ]; then\n"
" echo \"Your xz is too old.\"\n"
"fi\n"
"unset XZ_VERSION LIBLZMA_VERSION\\fR\n"
"unset XZ_VERSION LIBLZMA_VERSION>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -3289,7 +3244,14 @@ msgstr "Встановити обмеження на використання п
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid ""
#| "CW<NEWLIM=$((123 E<lt>E<lt> 20))\\ \\ # 123 MiB\n"
#| "OLDLIM=$(xz --robot --info-memory | cut -f3)\n"
#| "if [ $OLDLIM -eq 0 -o $OLDLIM -gt $NEWLIM ]; then\n"
#| " XZ_OPT=\"$XZ_OPT --memlimit-decompress=$NEWLIM\"\n"
#| " export XZ_OPT\n"
#| "fi>\n"
msgid ""
"\\f(CRNEWLIM=$((123 E<lt>E<lt> 20))\\ \\ # 123 MiB\n"
"OLDLIM=$(xz --robot --info-memory | cut -f3)\n"
@ -3298,12 +3260,12 @@ msgid ""
" export XZ_OPT\n"
"fi\\fR\n"
msgstr ""
"\\f(CRNEWLIM=$((123 E<lt>E<lt> 20))\\ \\ # 123 MiB\n"
"CW<NEWLIM=$((123 E<lt>E<lt> 20))\\ \\ # 123 MiB\n"
"OLDLIM=$(xz --robot --info-memory | cut -f3)\n"
"if [ $OLDLIM -eq 0 -o $OLDLIM -gt $NEWLIM ]; then\n"
" XZ_OPT=\"$XZ_OPT --memlimit-decompress=$NEWLIM\"\n"
" export XZ_OPT\n"
"fi\\fR\n"
"fi>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -3322,9 +3284,10 @@ msgstr "Якщо вам відомо, що певний файл потребу
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid "CW<xz --lzma2=preset=1,dict=32MiB foo.tar>\n"
msgid "\\f(CRxz --lzma2=preset=1,dict=32MiB foo.tar\\fR\n"
msgstr "\\f(CRxz --lzma2=preset=1,dict=32MiB foo.tar\\fR\n"
msgstr "CW<xz --lzma2=preset=1,dict=32MiB foo.tar>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -3338,9 +3301,10 @@ msgstr "Якщо дуже високий рівень використання
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid "CW<xz -vv --lzma2=dict=192MiB big_foo.tar>\n"
msgid "\\f(CRxz -vv --lzma2=dict=192MiB big_foo.tar\\fR\n"
msgstr "\\f(CRxz -vv --lzma2=dict=192MiB big_foo.tar\\fR\n"
msgstr "CW<xz -vv --lzma2=dict=192MiB big_foo.tar>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -3354,9 +3318,10 @@ msgstr "Іноді час стискання не має значення, ал
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid "CW<xz --check=crc32 --lzma2=preset=6e,dict=64KiB foo>\n"
msgid "\\f(CRxz --check=crc32 --lzma2=preset=6e,dict=64KiB foo\\fR\n"
msgstr "\\f(CRxz --check=crc32 --lzma2=preset=6e,dict=64KiB foo\\fR\n"
msgstr "CW<xz --check=crc32 --lzma2=preset=6e,dict=64KiB foo>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -3365,9 +3330,10 @@ msgstr "Якщо вам потрібно витиснути зі стискан
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid "CW<xz --lzma2=preset=6e,pb=0,lc=4 source_code.tar>\n"
msgid "\\f(CRxz --lzma2=preset=6e,pb=0,lc=4 source_code.tar\\fR\n"
msgstr "\\f(CRxz --lzma2=preset=6e,pb=0,lc=4 source_code.tar\\fR\n"
msgstr "CW<xz --lzma2=preset=6e,pb=0,lc=4 source_code.tar>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -3376,9 +3342,10 @@ msgstr "Використання іншого фільтра разом із LZM
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid "CW<xz --x86 --lzma2 libfoo.so>\n"
msgid "\\f(CRxz --x86 --lzma2 libfoo.so\\fR\n"
msgstr "\\f(CRxz --x86 --lzma2 libfoo.so\\fR\n"
msgstr "CW<xz --x86 --lzma2 libfoo.so>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -3397,9 +3364,10 @@ msgstr "Зображення слід берегти у нестисненому
#. type: Plain text
#: ../src/xz/xz.1
#, no-wrap
#, fuzzy, no-wrap
#| msgid "CW<xz --delta=dist=3 --lzma2=pb=0 foo.tiff>\n"
msgid "\\f(CRxz --delta=dist=3 --lzma2=pb=0 foo.tiff\\fR\n"
msgstr "\\f(CRxz --delta=dist=3 --lzma2=pb=0 foo.tiff\\fR\n"
msgstr "CW<xz --delta=dist=3 --lzma2=pb=0 foo.tiff>\n"
#. type: Plain text
#: ../src/xz/xz.1
@ -3440,12 +3408,6 @@ msgstr "LZMA SDK: E<lt>https://7-zip.org/sdk.htmlE<gt>"
msgid "XZDEC"
msgstr "XZDEC"
#. type: TH
#: ../src/xzdec/xzdec.1
#, no-wrap
msgid "2024-04-08"
msgstr "8 квітня 2024 року"
#. type: Plain text
#: ../src/xzdec/xzdec.1
msgid "xzdec, lzmadec - Small .xz and .lzma decompressors"
@ -3586,11 +3548,10 @@ msgid "XZDIFF"
msgstr "XZDIFF"
#. type: TH
#: ../src/scripts/xzdiff.1 ../src/scripts/xzgrep.1 ../src/scripts/xzless.1
#: ../src/scripts/xzmore.1
#: ../src/scripts/xzdiff.1 ../src/scripts/xzgrep.1
#, no-wrap
msgid "2025-03-06"
msgstr "6 березня 2025 року"
msgid "2024-02-13"
msgstr "13 лютого 2024 року"
#. type: Plain text
#: ../src/scripts/xzdiff.1
@ -3609,13 +3570,13 @@ msgstr "B<xzdiff> \\&..."
#. type: Plain text
#: ../src/scripts/xzdiff.1
msgid "B<lzcmp> \\&... (DEPRECATED)"
msgstr "B<lzcmp> \\&... (ЗАСТАРІЛО)"
msgid "B<lzcmp> \\&..."
msgstr "B<lzcmp> \\&..."
#. type: Plain text
#: ../src/scripts/xzdiff.1
msgid "B<lzdiff> \\&... (DEPRECATED)"
msgstr "B<lzdiff> \\&... (ЗАСТАРІЛО)"
msgid "B<lzdiff> \\&..."
msgstr "B<lzdiff> \\&..."
#. type: Plain text
#: ../src/scripts/xzdiff.1
@ -3634,8 +3595,8 @@ msgstr "Якщо вказано лише одну назву файла, I<фа
#. type: Plain text
#: ../src/scripts/xzdiff.1
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. Ці команди вважаються застарілими, їх буде вилучено у майбутній версії комплекту програм."
msgid "The commands B<lzcmp> and B<lzdiff> are provided for backward compatibility with LZMA Utils."
msgstr "Працездатність команд B<lzcmp> і B<lzdiff> забезпечено для зворотної сумісності із LZMA Utils."
#. type: Plain text
#: ../src/scripts/xzdiff.1
@ -3675,18 +3636,18 @@ msgstr "B<xzfgrep> \\&..."
#. type: Plain text
#: ../src/scripts/xzgrep.1
msgid "B<lzgrep> \\&... (DEPRECATED)"
msgstr "B<lzgrep> \\&... (ЗАСТАРІЛО)"
msgid "B<lzgrep> \\&..."
msgstr "B<lzgrep> \\&..."
#. type: Plain text
#: ../src/scripts/xzgrep.1
msgid "B<lzegrep> \\&... (DEPRECATED)"
msgstr "B<lzegrep> \\&... (ЗАСТАРІЛО)"
msgid "B<lzegrep> \\&..."
msgstr "B<lzegrep> \\&..."
#. type: Plain text
#: ../src/scripts/xzgrep.1
msgid "B<lzfgrep> \\&... (DEPRECATED)"
msgstr "B<lzfgrep> \\&... (ЗАСТАРІЛО)"
msgid "B<lzfgrep> \\&..."
msgstr "B<lzfgrep> \\&..."
#. type: Plain text
#: ../src/scripts/xzgrep.1
@ -3755,8 +3716,8 @@ msgstr "B<xzegrep> є альтернативним записом B<xzgrep -E>.
#. type: Plain text
#: ../src/scripts/xzgrep.1
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. Ці команди вважаються застарілими, їх буде вилучено у майбутній версії комплекту програм."
msgid "The commands B<lzgrep>, B<lzegrep>, and B<lzfgrep> are provided for backward compatibility with LZMA Utils."
msgstr "Працездатність команд B<lzgrep>, B<lzegrep> і B<lzfgrep> забезпечено для зворотної сумісності із LZMA Utils."
#. type: Plain text
#: ../src/scripts/xzgrep.1
@ -3801,6 +3762,12 @@ msgstr "B<grep>(1), B<xz>(1), B<gzip>(1), B<bzip2>(1), B<lzop>(1), B<zstd>(1), B
msgid "XZLESS"
msgstr "XZLESS"
#. type: TH
#: ../src/scripts/xzless.1 ../src/scripts/xzmore.1
#, no-wrap
msgid "2024-02-12"
msgstr "12 лютого 2024 року"
#. type: Plain text
#: ../src/scripts/xzless.1
msgid "xzless, lzless - view xz or lzma compressed (text) files"
@ -3813,8 +3780,8 @@ msgstr "B<xzless> [I<файл>...]"
#. type: Plain text
#: ../src/scripts/xzless.1
msgid "B<lzless> [I<file>...] (DEPRECATED)"
msgstr "B<lzless> [I<файл>...] (ЗАСТАРІЛО)"
msgid "B<lzless> [I<file>...]"
msgstr "B<lzless> [I<файл>...]"
#. type: Plain text
#: ../src/scripts/xzless.1
@ -3828,8 +3795,8 @@ msgstr "Для показу виведених даних B<xzless> викори
#. type: Plain text
#: ../src/scripts/xzless.1
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. Ця команда вважається застарілою, її буде вилучено у майбутній версії комплекту програм."
msgid "The command named B<lzless> is provided for backward compatibility with LZMA Utils."
msgstr "Команду B<lzless> реалізовано для забезпечення зворотної сумісності з LZMA Utils."
#. type: TP
#: ../src/scripts/xzless.1
@ -3876,8 +3843,8 @@ msgstr "B<xzmore> [I<файл>...]"
#. type: Plain text
#: ../src/scripts/xzmore.1
msgid "B<lzmore> [I<file>...] (DEPRECATED)"
msgstr "B<lzmore> [I<файл>...] (ЗАСТАРІЛО)"
msgid "B<lzmore> [I<file>...]"
msgstr "B<lzmore> [I<файл>...]"
#. type: Plain text
#: ../src/scripts/xzmore.1
@ -3891,11 +3858,9 @@ msgstr "Зауважте, що гортання у зворотному напр
#. type: Plain text
#: ../src/scripts/xzmore.1
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. Ця команда вважається застарілою, її буде вилучено у майбутній версії комплекту програм."
msgid "The command B<lzmore> is provided for backward compatibility with LZMA Utils."
msgstr "Команду B<lzmore> реалізовано для забезпечення зворотної сумісності з LZMA Utils."
#. TRANSLATORS: Don't translate the uppercase PAGER.
#. It is a name of an environment variable.
#. type: TP
#: ../src/scripts/xzmore.1
#, no-wrap
@ -3911,3 +3876,7 @@ msgstr "Якщо встановлено значення B<PAGER>, значен
#: ../src/scripts/xzmore.1
msgid "B<more>(1), B<xz>(1), B<xzless>(1), B<zmore>(1)"
msgstr "B<more>(1), B<xz>(1), B<xzless>(1), B<zmore>(1)"
#, no-wrap
#~ msgid "2024-01-19"
#~ msgstr "19 січня 2024 року"

View File

@ -17,7 +17,6 @@ endif
EXTRA_DIST = \
common/common_w32res.rc \
common/my_landlock.h \
common/mythread.h \
common/sysdefs.h \
common/tuklib_common.h \
@ -28,13 +27,9 @@ EXTRA_DIST = \
common/tuklib_exit.h \
common/tuklib_gettext.h \
common/tuklib_integer.h \
common/tuklib_mbstr.h \
common/tuklib_mbstr_fw.c \
common/tuklib_mbstr_nonprint.c \
common/tuklib_mbstr_nonprint.h \
common/tuklib_mbstr.h \
common/tuklib_mbstr_width.c \
common/tuklib_mbstr_wrap.c \
common/tuklib_mbstr_wrap.h \
common/tuklib_open_stdxxx.c \
common/tuklib_open_stdxxx.h \
common/tuklib_physmem.c \

View File

@ -1,141 +0,0 @@
// SPDX-License-Identifier: 0BSD
///////////////////////////////////////////////////////////////////////////////
//
/// \file my_landlock.h
/// \brief Linux Landlock sandbox helper functions
//
// Author: Lasse Collin
//
///////////////////////////////////////////////////////////////////////////////
#ifndef MY_LANDLOCK_H
#define MY_LANDLOCK_H
#include "sysdefs.h"
#include <linux/landlock.h>
#include <sys/syscall.h>
#include <sys/prctl.h>
/// \brief Initialize Landlock ruleset attributes to forbid everything
///
/// The supported Landlock ABI is checked at runtime and only the supported
/// actions are forbidden in the attributes. Thus, if the attributes are
/// used with my_landlock_create_ruleset(), it shouldn't fail.
///
/// \return On success, the Landlock ABI version is returned (a positive
/// integer). If Landlock isn't supported, -1 is returned.
static int
my_landlock_ruleset_attr_forbid_all(struct landlock_ruleset_attr *attr)
{
memzero(attr, sizeof(*attr));
const int abi_version = syscall(SYS_landlock_create_ruleset,
(void *)NULL, 0, LANDLOCK_CREATE_RULESET_VERSION);
if (abi_version <= 0)
return -1;
// ABI 1 except the few at the end
attr->handled_access_fs
= LANDLOCK_ACCESS_FS_EXECUTE
| LANDLOCK_ACCESS_FS_WRITE_FILE
| LANDLOCK_ACCESS_FS_READ_FILE
| LANDLOCK_ACCESS_FS_READ_DIR
| LANDLOCK_ACCESS_FS_REMOVE_DIR
| LANDLOCK_ACCESS_FS_REMOVE_FILE
| LANDLOCK_ACCESS_FS_MAKE_CHAR
| LANDLOCK_ACCESS_FS_MAKE_DIR
| LANDLOCK_ACCESS_FS_MAKE_REG
| LANDLOCK_ACCESS_FS_MAKE_SOCK
| LANDLOCK_ACCESS_FS_MAKE_FIFO
| LANDLOCK_ACCESS_FS_MAKE_BLOCK
| LANDLOCK_ACCESS_FS_MAKE_SYM
#ifdef LANDLOCK_ACCESS_FS_REFER
| LANDLOCK_ACCESS_FS_REFER // ABI 2
#endif
#ifdef LANDLOCK_ACCESS_FS_TRUNCATE
| LANDLOCK_ACCESS_FS_TRUNCATE // ABI 3
#endif
#ifdef LANDLOCK_ACCESS_FS_IOCTL_DEV
| LANDLOCK_ACCESS_FS_IOCTL_DEV // ABI 5
#endif
;
#ifdef LANDLOCK_ACCESS_NET_BIND_TCP
// ABI 4
attr->handled_access_net
= LANDLOCK_ACCESS_NET_BIND_TCP
| LANDLOCK_ACCESS_NET_CONNECT_TCP;
#endif
#ifdef LANDLOCK_SCOPE_SIGNAL
// ABI 6
attr->scoped
= LANDLOCK_SCOPE_ABSTRACT_UNIX_SOCKET
| LANDLOCK_SCOPE_SIGNAL;
#endif
// Disable flags that require a new ABI version.
switch (abi_version) {
case 1:
#ifdef LANDLOCK_ACCESS_FS_REFER
attr->handled_access_fs &= ~LANDLOCK_ACCESS_FS_REFER;
#endif
FALLTHROUGH;
case 2:
#ifdef LANDLOCK_ACCESS_FS_TRUNCATE
attr->handled_access_fs &= ~LANDLOCK_ACCESS_FS_TRUNCATE;
#endif
FALLTHROUGH;
case 3:
#ifdef LANDLOCK_ACCESS_NET_BIND_TCP
attr->handled_access_net = 0;
#endif
FALLTHROUGH;
case 4:
#ifdef LANDLOCK_ACCESS_FS_IOCTL_DEV
attr->handled_access_fs &= ~LANDLOCK_ACCESS_FS_IOCTL_DEV;
#endif
FALLTHROUGH;
case 5:
#ifdef LANDLOCK_SCOPE_SIGNAL
attr->scoped = 0;
#endif
FALLTHROUGH;
default:
// We only know about the features of the ABIs 1-6.
break;
}
return abi_version;
}
/// \brief Wrapper for the landlock_create_ruleset(2) syscall
///
/// Syscall wrappers provide argument type checking.
///
/// \note Remember to call `prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0)` too!
static inline int
my_landlock_create_ruleset(const struct landlock_ruleset_attr *attr,
size_t size, uint32_t flags)
{
return syscall(SYS_landlock_create_ruleset, attr, size, flags);
}
/// \brief Wrapper for the landlock_restrict_self(2) syscall
static inline int
my_landlock_restrict_self(int ruleset_fd, uint32_t flags)
{
return syscall(SYS_landlock_restrict_self, ruleset_fd, flags);
}
#endif

View File

@ -23,29 +23,17 @@
# include <config.h>
#endif
// Choose if MinGW-w64's stdio replacement functions should be used.
// The default has varied slightly in the past so it's clearest to always
// set it explicitly.
// This #define ensures that C99 and POSIX compliant stdio functions are
// available with MinGW-w64 (both 32-bit and 64-bit). Modern MinGW-w64 adds
// this automatically, for example, when the compiler is in C99 (or later)
// mode when building against msvcrt.dll. It still doesn't hurt to be explicit
// that we always want this and #define this unconditionally.
//
// Modern MinGW-w64 enables the replacement functions even with UCRT
// when _GNU_SOURCE is defined. That's good because UCRT doesn't support
// the POSIX thousand separator flag in printf (like "%'u"). Otherwise
// XZ Utils works with the UCRT stdio functions.
//
// The replacement functions add over 20 KiB to each executable. For
// size-optimized builds (HAVE_SMALL), disable the replacements.
// Then thousand separators aren't shown in xz's messages but this is
// a minor downside compare to the slower speed of the HAVE_SMALL builds.
//
// The legacy MSVCRT is pre-C99 and it's best to always use the stdio
// replacements functions from MinGW-w64.
#if defined(__MINGW32__) && !defined(__USE_MINGW_ANSI_STDIO)
// With Universal CRT (UCRT) this is less important because UCRT contains
// C99-compatible stdio functions. It's still nice to #define this as UCRT
// doesn't support the POSIX thousand separator flag in printf (like "%'u").
#ifdef __MINGW32__
# define __USE_MINGW_ANSI_STDIO 1
# include <_mingw.h>
# if defined(_UCRT) && defined(HAVE_SMALL)
# undef __USE_MINGW_ANSI_STDIO
# define __USE_MINGW_ANSI_STDIO 0
# endif
#endif
// size_t and NULL
@ -168,26 +156,17 @@ typedef unsigned char _Bool;
# define __bool_true_false_are_defined 1
#endif
// We may need alignas from C11/C17/C23.
#if __STDC_VERSION__ >= 202311
// alignas is a keyword in C23. Do nothing.
#elif __STDC_VERSION__ >= 201112
// Oracle Developer Studio 12.6 lacks <stdalign.h>.
// For simplicity, avoid the header with all C11/C17 compilers.
# define alignas _Alignas
#elif defined(__GNUC__) || defined(__clang__)
# define alignas(n) __attribute__((__aligned__(n)))
#else
# define alignas(n)
#endif
#include <string.h>
// MSVC v19.00 (VS 2015 version 14.0) and later should work.
// Visual Studio 2013 update 2 supports only __inline, not inline.
// MSVC v19.0 / VS 2015 and newer support both.
//
// MSVC v19.27 (VS 2019 version 16.7) added support for restrict.
// Older ones support only __restrict.
#ifdef _MSC_VER
# if _MSC_VER < 1900 && !defined(inline)
# define inline __inline
# endif
# if _MSC_VER < 1927 && !defined(restrict)
# define restrict __restrict
# endif
@ -217,13 +196,4 @@ typedef unsigned char _Bool;
# define lzma_attr_alloc_size(x)
#endif
#if __STDC_VERSION__ >= 202311
# define FALLTHROUGH [[__fallthrough__]]
#elif (defined(__GNUC__) && __GNUC__ >= 7) \
|| (defined(__clang_major__) && __clang_major__ >= 10)
# define FALLTHROUGH __attribute__((__fallthrough__))
#else
# define FALLTHROUGH ((void)0)
#endif
#endif

View File

@ -56,13 +56,6 @@
# define TUKLIB_GNUC_REQ(major, minor) 0
#endif
#if defined(__GNUC__) || defined(__clang__)
# define tuklib_attr_format_printf(fmt_index, args_index) \
__attribute__((__format__(__printf__, fmt_index, args_index)))
#else
# define tuklib_attr_format_printf(fmt_index, args_index)
#endif
// tuklib_attr_noreturn attribute is used to mark functions as non-returning.
// We cannot use "noreturn" as the macro name because then C23 code that
// uses [[noreturn]] would break as it would expand to [[ [[noreturn]] ]].
@ -75,7 +68,9 @@
// __attribute__((nonnull(1)))
// extern void foo(const char *s);
//
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311
// FIXME: Update __STDC_VERSION__ for the final C23 version. 202000 is used
// by GCC 13 and Clang 15 with -std=c2x.
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202000
# define tuklib_attr_noreturn [[noreturn]]
#elif defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112
# define tuklib_attr_noreturn _Noreturn

View File

@ -40,15 +40,4 @@
#endif
#define N_(msgid) msgid
// Optional: Strings that are word wrapped using tuklib_mbstr_wrap may be
// marked with W_("foo) in the source code. xgettext can then add a comment
// to all such strings to inform translators. The following option needs to
// be added to XGETTEXT_OPTIONS in po/Makevars or in an equivalent place:
//
// '--keyword=W_:1,"This is word wrapped at spaces. The Unicode character U+00A0 works as a non-breaking space. Tab (\t) is interpret as a zero-width space (the tab itself is not displayed); U+200B is NOT supported. Manual word wrapping with \n is supported but requires care."'
//
// NOTE: The double-quotes in the --keyword argument above must be passed to
// xgettext as is, thus one needs the single-quotes in Makevars.
#define W_(msgid) _(msgid)
#endif

View File

@ -27,7 +27,10 @@ extern size_t tuklib_mbstr_width(const char *str, size_t *bytes);
///
/// This is somewhat similar to wcswidth() but works on multibyte strings.
///
/// \param str String whose width is to be calculated.
/// \param str String whose width is to be calculated. If the
/// current locale uses a multibyte character set
/// that has shift states, the string must begin
/// and end in the initial shift state.
/// \param bytes If this is not NULL, *bytes is set to the
/// value returned by strlen(str) (even if an
/// error occurs when calculating the width).
@ -35,24 +38,8 @@ extern size_t tuklib_mbstr_width(const char *str, size_t *bytes);
/// \return On success, the number of columns needed to display the
/// string e.g. in a terminal emulator is returned. On error,
/// (size_t)-1 is returned. Possible errors include invalid,
/// partial, or non-printable multibyte character in str.
#define tuklib_mbstr_width_mem TUKLIB_SYMBOL(tuklib_mbstr_width_mem)
extern size_t tuklib_mbstr_width_mem(const char *str, size_t len);
///<
/// \brief Get the number of columns needed for the multibyte buffer
///
/// This is like tuklib_mbstr_width() except that this takes the buffer
/// length in bytes as the second argument. This allows using the function
/// for buffers that aren't terminated with '\0'.
///
/// \param str String whose width is to be calculated.
/// \param len Number of bytes to read from str.
///
/// \return On success, the number of columns needed to display the
/// string e.g. in a terminal emulator is returned. On error,
/// (size_t)-1 is returned. Possible errors include invalid,
/// partial, or non-printable multibyte character in str.
/// partial, or non-printable multibyte character in str, or
/// that str doesn't end in the initial shift state.
#define tuklib_mbstr_fw TUKLIB_SYMBOL(tuklib_mbstr_fw)
extern int tuklib_mbstr_fw(const char *str, int columns_min);

View File

@ -1,162 +0,0 @@
// SPDX-License-Identifier: 0BSD
///////////////////////////////////////////////////////////////////////////////
//
/// \file tuklib_mbstr_nonprint.c
/// \brief Find and replace non-printable characters with question marks
//
// Author: Lasse Collin
//
///////////////////////////////////////////////////////////////////////////////
#include "tuklib_mbstr_nonprint.h"
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#ifdef HAVE_MBRTOWC
# include <wchar.h>
# include <wctype.h>
#else
# include <ctype.h>
#endif
static bool
is_next_printable(const char *str, size_t len, size_t *next_len)
{
#ifdef HAVE_MBRTOWC
// This assumes that character sets with locking shift states aren't
// used, and thus mbsinit() is never needed.
mbstate_t ps;
memset(&ps, 0, sizeof(ps));
wchar_t wc;
*next_len = mbrtowc(&wc, str, len, &ps);
if (*next_len == (size_t)-2) {
// Incomplete multibyte sequence: Treat the whole sequence
// as a single non-printable multibyte character that ends
// the string.
*next_len = len;
return false;
}
// Check more broadly than just ret == (size_t)-1 to be safe
// in case mbrtowc() returns something weird. This check
// covers (size_t)-1 (that is, SIZE_MAX) too because len is from
// strlen() and the terminating '\0' isn't part of the length.
if (*next_len < 1 || *next_len > len) {
// Invalid multibyte sequence: Treat the first byte as
// a non-printable single-byte character. Decoding will
// be restarted from the next byte on the next call to
// this function.
*next_len = 1;
return false;
}
# if defined(_WIN32) && !defined(__CYGWIN__)
// On Windows, wchar_t stores UTF-16 code units, thus characters
// outside the Basic Multilingual Plane (BMP) don't fit into
// a single wchar_t. In an UTF-8 locale, UCRT's mbrtowc() returns
// successfully when the input is a non-BMP character but the
// output is the replacement character U+FFFD.
//
// iswprint() returns 0 for U+FFFD on Windows for some reason. Treat
// U+FFFD as printable and thus also all non-BMP chars as printable.
if (wc == 0xFFFD)
return true;
# endif
return iswprint((wint_t)wc) != 0;
#else
(void)len;
*next_len = 1;
return isprint((unsigned char)str[0]) != 0;
#endif
}
static bool
has_nonprint(const char *str, size_t len)
{
for (size_t i = 0; i < len; ) {
size_t next_len;
if (!is_next_printable(str + i, len - i, &next_len))
return true;
i += next_len;
}
return false;
}
extern bool
tuklib_has_nonprint(const char *str)
{
const int saved_errno = errno;
const bool ret = has_nonprint(str, strlen(str));
errno = saved_errno;
return ret;
}
extern const char *
tuklib_mask_nonprint_r(const char *str, char **mem)
{
const int saved_errno = errno;
// Free the old string, if any.
free(*mem);
*mem = NULL;
// If the whole input string contains only printable characters,
// return the input string.
const size_t len = strlen(str);
if (!has_nonprint(str, len)) {
errno = saved_errno;
return str;
}
// Allocate memory for the masked string. Since we use the single-byte
// character '?' to mask non-printable characters, it's possible that
// a few bytes less memory would be needed in reality if multibyte
// characters are masked.
//
// If allocation fails, return "???" because it should be safer than
// returning the unmasked string.
*mem = malloc(len + 1);
if (*mem == NULL) {
errno = saved_errno;
return "???";
}
// Replace all non-printable characters with '?'.
char *dest = *mem;
for (size_t i = 0; i < len; ) {
size_t next_len;
if (is_next_printable(str + i, len - i, &next_len)) {
memcpy(dest, str + i, next_len);
dest += next_len;
} else {
*dest++ = '?';
}
i += next_len;
}
*dest = '\0';
errno = saved_errno;
return *mem;
}
extern const char *
tuklib_mask_nonprint(const char *str)
{
static char *mem = NULL;
return tuklib_mask_nonprint_r(str, &mem);
}

View File

@ -1,71 +0,0 @@
// SPDX-License-Identifier: 0BSD
///////////////////////////////////////////////////////////////////////////////
//
/// \file tuklib_mbstr_nonprint.h
/// \brief Find and replace non-printable characters with question marks
///
/// If mbrtowc(3) is available, it and iswprint(3) is used to check if all
/// characters are printable. Otherwise single-byte character set is assumed
/// and isprint(3) is used.
//
// Author: Lasse Collin
//
///////////////////////////////////////////////////////////////////////////////
#ifndef TUKLIB_MBSTR_NONPRINT_H
#define TUKLIB_MBSTR_NONPRINT_H
#include "tuklib_common.h"
TUKLIB_DECLS_BEGIN
#define tuklib_has_nonprint TUKLIB_SYMBOL(tuklib_has_nonprint)
extern bool tuklib_has_nonprint(const char *str);
///<
/// \brief Check if a string contains any non-printable characters
///
/// \return false if str contains only valid multibyte characters and
/// iswprint(3) returns non-zero for all of them; true otherwise.
/// The value of errno is preserved.
///
/// \note In case mbrtowc(3) isn't available, single-byte character set
/// is assumed and isprint(3) is used instead of iswprint(3).
#define tuklib_mask_nonprint_r TUKLIB_SYMBOL(tuklib_mask_nonprint_r)
extern const char *tuklib_mask_nonprint_r(const char *str, char **mem);
///<
/// \brief Replace non-printable characters with question marks
///
/// \param str Untrusted string, for example, a filename
/// \param mem This function always calls free(*mem) to free the old
/// allocation and then sets *mem = NULL. Before the first
/// call, *mem should be initialized to NULL. If this
/// function needs to allocate memory for a modified
/// string, a pointer to the allocated memory will be
/// stored to *mem. Otherwise *mem will remain NULL.
///
/// \return If tuklib_has_nonprint(str) returns false, this function
/// returns str. Otherwise memory is allocated to hold a modified
/// string and a pointer to that is returned. The pointer to the
/// allocated memory is also stored to *mem. A modified string
/// has the problematic characters replaced by '?'. If memory
/// allocation fails, "???" is returned and *mem is NULL.
/// The value of errno is preserved.
#define tuklib_mask_nonprint TUKLIB_SYMBOL(tuklib_mask_nonprint)
extern const char *tuklib_mask_nonprint(const char *str);
///<
/// \brief Replace non-printable characters with question marks
///
/// This is a convenience function for single-threaded use. This calls
/// tuklib_mask_nonprint_r() using an internal static variable to hold
/// the possible allocation.
///
/// \param str Untrusted string, for example, a filename
///
/// \return See tuklib_mask_nonprint_r().
///
/// \note This function is not thread safe!
TUKLIB_DECLS_END
#endif

View File

@ -12,7 +12,7 @@
#include "tuklib_mbstr.h"
#include <string.h>
#ifdef HAVE_MBRTOWC
#if defined(HAVE_MBRTOWC) && defined(HAVE_WCWIDTH)
# include <wchar.h>
#endif
@ -24,17 +24,9 @@ tuklib_mbstr_width(const char *str, size_t *bytes)
if (bytes != NULL)
*bytes = len;
return tuklib_mbstr_width_mem(str, len);
}
extern size_t
tuklib_mbstr_width_mem(const char *str, size_t len)
{
#ifndef HAVE_MBRTOWC
#if !(defined(HAVE_MBRTOWC) && defined(HAVE_WCWIDTH))
// In single-byte mode, the width of the string is the same
// as its length.
(void)str;
return len;
#else
@ -49,35 +41,21 @@ tuklib_mbstr_width_mem(const char *str, size_t len)
while (i < len) {
wchar_t wc;
const size_t ret = mbrtowc(&wc, str + i, len - i, &state);
if (ret < 1 || ret > len - i)
if (ret < 1 || ret > len)
return (size_t)-1;
i += ret;
#ifdef HAVE_WCWIDTH
const int wc_width = wcwidth(wc);
if (wc_width < 0)
return (size_t)-1;
width += (size_t)wc_width;
#else
// Without wcwidth() (like in a native Windows build),
// assume that one multibyte char == one column. With
// UTF-8, this is less bad than one byte == one column.
// This way quite a few languages will be handled correctly
// in practice; CJK chars will be very wrong though.
++width;
#endif
}
// It's good to check that the string ended in the initial state.
// However, in practice this is redundant:
//
// - No one will use this code with character sets that have
// locking shift states.
//
// - We already checked that mbrtowc() didn't return (size_t)-2
// which would indicate a partial multibyte character.
// Require that the string ends in the initial shift state.
// This way the caller can be combine the string with other
// strings without needing to worry about the shift states.
if (!mbsinit(&state))
return (size_t)-1;

View File

@ -1,294 +0,0 @@
// SPDX-License-Identifier: 0BSD
///////////////////////////////////////////////////////////////////////////////
//
/// \file tuklib_mbstr_wrap.c
/// \brief Word wraps a string and prints it to a FILE stream
///
/// This depends on tuklib_mbstr_width.c.
//
// Author: Lasse Collin
//
///////////////////////////////////////////////////////////////////////////////
#include "tuklib_mbstr.h"
#include "tuklib_mbstr_wrap.h"
#include <stdarg.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
extern int
tuklib_wraps(FILE *outfile, const struct tuklib_wrap_opt *opt, const char *str)
{
// left_cont may be less than left_margin. In that case, if the first
// word is extremely long, it will stay on the first line even if
// the line then gets overlong.
//
// On the other hand, left2_cont < left2_margin isn't allowed because
// it could result in inconsistent behavior when a very long word
// comes right after a \v.
//
// It is fine to have left2_margin < left_margin although it would be
// an odd use case.
if (!(opt->left_margin < opt->right_margin
&& opt->left_cont < opt->right_margin
&& opt->left2_margin <= opt->left2_cont
&& opt->left2_cont < opt->right_margin))
return TUKLIB_WRAP_ERR_OPT;
// This is set to TUKLIB_WRAP_WARN_OVERLONG if one or more
// output lines extend past opt->right_margin columns.
int warn_overlong = 0;
// Indentation of the first output line after \n or \r.
// \v sets this to opt->left2_margin.
// \r resets this back to the original value.
size_t first_indent = opt->left_margin;
// Indentation of the output lines that occur due to word wrapping.
// \v sets this to opt->left2_cont and \r back to the original value.
size_t cont_indent = opt->left_cont;
// If word wrapping occurs, the newline isn't printed unless more
// text would be put on the continuation line. This is also used
// when \v needs to start on a new line.
bool pending_newline = false;
// Spaces are printed only when there is something else to put
// after the spaces on the line. This avoids unwanted empty lines
// in the output and makes it possible to ignore possible spaces
// before a \v character.
size_t pending_spaces = first_indent;
// Current output column. When cur_col == pending_spaces, nothing
// has been actually printed to the current output line.
size_t cur_col = pending_spaces;
while (true) {
// Number of bytes until the *next* line-break opportunity.
size_t len = 0;
// Number of columns until the *next* line-break opportunity.
size_t width = 0;
// Text between a pair of \b characters is treated as
// an unbreakable block even if it contains spaces.
// It must not contain any control characters before
// the closing \b.
bool unbreakable = false;
while (true) {
// Find the next character that we handle specially.
// In an unbreakable block, search only for the
// closing \b; if missing, the unbreakable block
// extends to the end of the string.
const size_t n = strcspn(str + len,
unbreakable ? "\b" : " \t\n\r\v\b");
// Calculate how many columns the characters need.
const size_t w = tuklib_mbstr_width_mem(str + len, n);
if (w == (size_t)-1)
return TUKLIB_WRAP_ERR_STR;
width += w;
len += n;
// \b isn't a line-break opportunity so it has to
// be handled here. For simplicity, empty blocks
// are treated as zero-width characters.
if (str[len] == '\b') {
++len;
unbreakable = !unbreakable;
continue;
}
break;
}
// Determine if adding this chunk of text would make the
// current output line exceed opt->right_margin columns.
const bool too_long = cur_col + width > opt->right_margin;
// Wrap the line if needed. However:
//
// - Don't wrap if the current column is less than where
// the continuation line would begin. In that case
// the chunk wouldn't fit on the next line either so
// we just have to produce an overlong line.
//
// - Don't wrap if so far the line only contains spaces.
// Wrapping in that case would leave a weird empty line.
// NOTE: This "only contains spaces" condition is the
// reason why left2_margin > left2_cont isn't allowed.
if (too_long && cur_col > cont_indent
&& cur_col > pending_spaces) {
// There might be trailing spaces or zero-width spaces
// which need to be ignored to keep the output pretty.
//
// Spaces need to be ignored because in some
// writing styles there are two spaces after
// a full stop. Example string:
//
// "Foo bar. Abc def."
// ^
// If the first space after the first full stop
// triggers word wrapping, both spaces must be
// ignored. Otherwise the next line would be
// indented too much.
//
// Zero-width spaces are ignored the same way
// because they are meaningless if an adjacent
// character is a space.
while (*str == ' ' || *str == '\t')
++str;
// Don't print the newline here; only mark it as
// pending. This avoids an unwanted empty line if
// there is a \n or \r or \0 after the spaces have
// been ignored.
pending_newline = true;
pending_spaces = cont_indent;
cur_col = pending_spaces;
// Since str may have been incremented due to the
// ignored spaces, the loop needs to be restarted.
continue;
}
// Print the current chunk of text before the next
// line-break opportunity. If the chunk was empty,
// don't print anything so that the pending newline
// and pending spaces aren't printed on their own.
if (len > 0) {
if (pending_newline) {
pending_newline = false;
if (putc('\n', outfile) == EOF)
return TUKLIB_WRAP_ERR_IO;
}
while (pending_spaces > 0) {
if (putc(' ', outfile) == EOF)
return TUKLIB_WRAP_ERR_IO;
--pending_spaces;
}
for (size_t i = 0; i < len; ++i) {
// Ignore unbreakable block characters (\b).
const int c = (unsigned char)str[i];
if (c != '\b' && putc(c, outfile) == EOF)
return TUKLIB_WRAP_ERR_IO;
}
str += len;
cur_col += width;
// Remember if the line got overlong. If no other
// errors occur, we return warn_overlong. It might
// help in catching problematic strings.
if (too_long)
warn_overlong = TUKLIB_WRAP_WARN_OVERLONG;
}
// Handle the special character after the chunk of text.
switch (*str) {
case ' ':
// Regular space.
++cur_col;
++pending_spaces;
break;
case '\v':
// Set the alternative indentation settings.
first_indent = opt->left2_margin;
cont_indent = opt->left2_cont;
if (first_indent > cur_col) {
// Add one or more spaces to reach
// the column specified in first_indent.
pending_spaces += first_indent - cur_col;
} else {
// There is no room to add even one space
// before reaching the column first_indent.
pending_newline = true;
pending_spaces = first_indent;
}
cur_col = first_indent;
break;
case '\0': // Implicit newline at the end of the string.
case '\r': // Newline that also resets the effect of \v.
case '\n': // Newline without resetting the indentation mode.
if (putc('\n', outfile) == EOF)
return TUKLIB_WRAP_ERR_IO;
if (*str == '\0')
return warn_overlong;
if (*str == '\r') {
first_indent = opt->left_margin;
cont_indent = opt->left_cont;
}
pending_newline = false;
pending_spaces = first_indent;
cur_col = first_indent;
break;
}
// Skip the specially-handled character.
++str;
}
}
extern int
tuklib_wrapf(FILE *stream, const struct tuklib_wrap_opt *opt,
const char *fmt, ...)
{
va_list ap;
char *buf;
#ifdef HAVE_VASPRINTF
va_start(ap, fmt);
#ifdef __clang__
# pragma GCC diagnostic push
# pragma GCC diagnostic ignored "-Wformat-nonliteral"
#endif
const int n = vasprintf(&buf, fmt, ap);
#ifdef __clang__
# pragma GCC diagnostic pop
#endif
va_end(ap);
if (n == -1)
return TUKLIB_WRAP_ERR_FORMAT;
#else
// Fixed buffer size is dumb but in practice one shouldn't need
// huge strings for *formatted* output. This simple method is safe
// with pre-C99 vsnprintf() implementations too which don't return
// the required buffer size (they return -1 or buf_size - 1) or
// which might not null-terminate the buffer in case it's too small.
const size_t buf_size = 128 * 1024;
buf = malloc(buf_size);
if (buf == NULL)
return TUKLIB_WRAP_ERR_FORMAT;
va_start(ap, fmt);
const int n = vsnprintf(buf, buf_size, fmt, ap);
va_end(ap);
if (n <= 0 || n >= (int)(buf_size - 1)) {
free(buf);
return TUKLIB_WRAP_ERR_FORMAT;
}
#endif
const int ret = tuklib_wraps(stream, opt, buf);
free(buf);
return ret;
}

View File

@ -1,204 +0,0 @@
// SPDX-License-Identifier: 0BSD
///////////////////////////////////////////////////////////////////////////////
//
/// \file tuklib_mbstr_wrap.h
/// \brief Word wrapping for multibyte strings
///
/// The word wrapping functions are intended to be usable, for example,
/// for printing --help text in command line tools. While manually-wrapped
/// --help text allows precise formatting, such freedom requires translators
/// to count spaces and determine where line breaks should occur. It's
/// tedious and error prone, and experience has shown that only some
/// translators do it well. Automatic word wrapping is less flexible but
/// results in polished-enough look with less effort from everyone.
/// Right-to-left languages and languages that don't use spaces between
/// words will still need extra effort though.
//
// Author: Lasse Collin
//
///////////////////////////////////////////////////////////////////////////////
#ifndef TUKLIB_MBSTR_WRAP_H
#define TUKLIB_MBSTR_WRAP_H
#include "tuklib_common.h"
#include <stdio.h>
TUKLIB_DECLS_BEGIN
/// One or more output lines exceeded right_margin.
/// This only a warning; everything was still printed successfully.
#define TUKLIB_WRAP_WARN_OVERLONG 0x01
/// Error writing to to the output FILE. The error flag in the FILE
/// should have been set as well.
#define TUKLIB_WRAP_ERR_IO 0x02
/// Invalid options in struct tuklib_wrap_opt.
/// Nothing was printed.
#define TUKLIB_WRAP_ERR_OPT 0x04
/// Invalid or unsupported multibyte character in the input string:
/// either mbrtowc() failed or wcwidth() returned a negative value.
#define TUKLIB_WRAP_ERR_STR 0x08
/// Only tuklib_wrapf(): Error in converting the format string.
/// It's either a memory allocation failure or something bad with the
/// format string or arguments.
#define TUKLIB_WRAP_ERR_FORMAT 0x10
/// Options for tuklib_wraps() and tuklib_wrapf()
struct tuklib_wrap_opt {
/// Indentation of the first output line after `\n` or `\r`.
/// This can be anything less than right_margin.
unsigned short left_margin;
/// Column where word-wrapped continuation lines start.
/// This can be anything less than right_margin.
unsigned short left_cont;
/// Column where the text after `\v` will start, either on the current
/// line (when there is room to add at least one space) or on a new
/// empty line.
unsigned short left2_margin;
/// Like left_cont but for text after a `\v`. However, this must
/// be greater than or equal to left2_margin in addition to being
/// less than right_margin.
unsigned short left2_cont;
/// For 80-column terminals, it is recommended to use 79 here for
/// maximum portability. 80 will work most of the time but it will
/// result in unwanted empty lines in the rare case where a terminal
/// moves the cursor to the beginning of the next line immediately
/// when the last column has been used.
unsigned short right_margin;
};
#define tuklib_wraps TUKLIB_SYMBOL(tuklib_wraps)
extern int tuklib_wraps(FILE *stream, const struct tuklib_wrap_opt *opt,
const char *str);
///<
/// \brief Word wrap a multibyte string and write it to a FILE
///
/// Word wrapping is done only at spaces and at the special control characters
/// described below. Multiple consecutive spaces are handled properly: strings
/// that have two (or more) spaces after a full sentence will look good even
/// when the spaces occur at a word wrapping boundary. Trailing spaces are
/// ignored at the end of a line or at the end of a string.
///
/// The following control characters have been repurposed:
///
/// - `\t` = Zero-width space allows a line break without producing any
/// output by itself. This can be useful after hard hyphens as
/// hyphens aren't otherwise used for line breaking. This can also
/// be useful in languages that don't use spaces between words.
/// (The Unicode character U+200B isn't supported.)
/// - `\b` = Text between a pair of `\b` characters is treated as an
/// unbreakable block (not wrapped even if there are spaces).
/// For example, a non-breaking space can be done like
/// in `"123\b \bMiB"`. Control characters (like `\n` or `\t`)
/// aren't allowed before the closing `\b`. If closing `\b` is
/// missing, the block extends to the end of the string. Empty
/// blocks are treated as zero-width characters. If line breaks
/// are possible around an empty block (like in `"foo \b\b bar"`
/// or `"foo \b"`), it can result in weird output.
/// - `\v` = Change to alternative indentation (left2_margin).
/// - `\r` = Reset back to the initial indentation and add a newline.
/// The next line will be indented by left_margin.
/// - `\n` = Add a newline without resetting the effect of `\v`. The
/// next line will be indented by left_margin or left2_margin
/// (not left_cont or left2_cont).
///
/// Only `\n` should appear in translatable strings. `\t` works too but
/// even that might confuse some translators even if there is a TRANSLATORS
/// comment explaining its meaning.
///
/// To use the other control characters in messages, one should use
/// tuklib_wrapf() with appropriate printf format string to combine
/// translatable strings with non-translatable portions. For example:
///
/// \code{.c}
/// static const struct tuklib_wrap_opt wrap2 = { 2, 2, 22, 22, 79 };
/// int e = 0;
/// ...
/// e |= tuklib_wrapf(stdout, &wrap2,
/// "-h, --help\v%s\r"
/// " --version\v%s",
/// W_("display this help and exit"),
/// W_("display version information and exit"));
/// ...
/// if (e != 0) {
/// // Handle warning or error.
/// ...
/// }
/// \endcode
///
/// Control characters other than `\n` and `\t` are unusable in
/// translatable strings:
///
/// - Gettext tools show annoying warnings if C escape sequences other
/// than `\n` or `\t` are seen. (Otherwise they still work perfectly
/// fine though.)
///
/// - While at least Poedit and Lokalize support all escapes, some
/// editors only support `\n` and `\t`.
///
/// - They could confuse some translators, resulting in broken
/// translations.
///
/// Using non-control characters would solve some issues but it wouldn't
/// help with the unfortunate real-world issue that some translators would
/// likely have trouble understanding a new syntax. The Gettext manual
/// specifically warns about this, see the subheading "No unusual markup"
/// in `info (gettext)Preparing Strings`. (While using `\t` for zero-width
/// space is such custom markup, most translators will never need it.)
///
/// Translators can use the Unicode character U+00A0 (or U+202F) if they
/// need a non-breaking space. For example, in French a non-breaking space
/// may be needed before colons and question marks (U+00A0 is common in
/// real-world French PO files).
///
/// Using a non-ASCII char in a string in the C code (like `"123\u00A0MiB"`)
/// can work if one tells xgettext that input encoding is UTF-8, one
/// ensures that the C compiler uses UTF-8 as the input charset, and one
/// is certain that the program is *always* run under an UTF-8 locale.
/// Unfortunately a portable program cannot make this kind of assumptions,
/// which means that there is no pretty way to have a non-breaking space in
/// a translatable string.
///
/// Optional: To tell translators which strings are automatically word
/// wrapped, see the macro `W_` in tuklib_gettext.h.
///
/// \param stream Output FILE stream. For decent performance, it
/// should be in buffered mode because this function
/// writes the output one byte at a time with fputc().
/// \param opt Word wrapping options.
/// \param str Null-terminated multibyte string that is in
/// the encoding used by the current locale.
///
/// \return Returns 0 on success. If an error or warning occurs, one of
/// TUKLIB_WRAP_* codes is returned. Those codes are powers
/// of two. When warning/error detection can be delayed, the
/// return values can be accumulated from multiple calls using
/// bitwise-or into a single variable which can be checked after
/// all strings have (hopefully) been printed.
#define tuklib_wrapf TUKLIB_SYMBOL(tuklib_wrapf)
tuklib_attr_format_printf(3, 4)
extern int tuklib_wrapf(FILE *stream, const struct tuklib_wrap_opt *opt,
const char *fmt, ...);
///<
/// \brief Format and word-wrap a multibyte string and write it to a FILE
///
/// This is like tuklib_wraps() except that this takes a printf
/// format string.
///
/// \note On platforms that lack vasprintf(), the intermediate
/// result from vsnprintf() must fit into a 128 KiB buffer.
/// TUKLIB_WRAP_ERR_FORMAT is returned if it doesn't but
/// only on platforms that lack vasprintf().
TUKLIB_DECLS_END
#endif

View File

@ -91,11 +91,18 @@ tuklib_physmem(void)
// supports reporting values greater than 4 GiB. To keep the
// code working also on older Windows versions, use
// GlobalMemoryStatusEx() conditionally.
HMODULE kernel32 = GetModuleHandleA("kernel32.dll");
HMODULE kernel32 = GetModuleHandle(TEXT("kernel32.dll"));
if (kernel32 != NULL) {
typedef BOOL (WINAPI *gmse_type)(LPMEMORYSTATUSEX);
#ifdef CAN_DISABLE_WCAST_FUNCTION_TYPE
# pragma GCC diagnostic push
# pragma GCC diagnostic ignored "-Wcast-function-type"
#endif
gmse_type gmse = (gmse_type)GetProcAddress(
kernel32, "GlobalMemoryStatusEx");
#ifdef CAN_DISABLE_WCAST_FUNCTION_TYPE
# pragma GCC diagnostic pop
#endif
if (gmse != NULL) {
MEMORYSTATUSEX meminfo;
meminfo.dwLength = sizeof(meminfo);
@ -148,7 +155,7 @@ tuklib_physmem(void)
ret += entries[i].end - entries[i].start + 1;
#elif defined(TUKLIB_PHYSMEM_AIX)
ret = (uint64_t)_system_configuration.physmem;
ret = _system_configuration.physmem;
#elif defined(TUKLIB_PHYSMEM_SYSCONF)
const long pagesize = sysconf(_SC_PAGESIZE);

View File

@ -67,13 +67,6 @@ This is useful for programs that use main():
to the UTF-8 code page and aren't distinguishable from
filenames that contain the actual replacement character U+FFFD.
FindFirstFileA() and FindFirstFileExA() also suffer from the above
issue where unpaired surrogates become U+FFFD. Another issue is
that filenames may require more bytes in UTF-8 than in a legacy
code page. In UTF-8, a very long filename may exceed MAX_PATH bytes
and thus these APIs cannot list such filenames anymore because
WIN32_FIND_DATAA has a member "CHAR cFileName[MAX_PATH]".
If different programs use different code pages, compatibility issues
are possible. For example, if one program produces a list of
filenames and another program reads it, both programs should use
@ -89,18 +82,11 @@ when writing to console with printf(). With UCRT it works.
Long path names
---------------
The manifest enables support for path names longer than 260 wide
characters (UTF-16 code units) if the feature has been enabled in
the Windows registry. Omit the longPathAware element from the manifest
if the application isn't compatible with it. For example, some uses
of MAX_PATH might be a sign of incompatibility.
Note that UTF-8 encoded filenames can exceed MAX_PATH (260) bytes when
the UTF-16 form is still within MAX_PATH wide characters. In this
situation the application doesn't need to be long path aware: functions
like _open() work with UTF-8 names that exceed MAX_PATH bytes if the
wide character form stays within MAX_PATH wide characters. (MAX_PATH
includes the terminating null character.)
The manifest enables support for path names longer than 259
characters if the feature has been enabled in the Windows registry.
Omit the longPathAware element from the manifest if the application
isn't compatible with it. For example, uses of MAX_PATH might be
a sign of incompatibility.
Documentation of the registry setting:
https://learn.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=registry#enable-long-paths-in-windows-10-version-1607-and-later
@ -137,9 +123,9 @@ trustInfo
longPathAware
Declare the application as long path aware. This way many file
system operations aren't limited to MAX_PATH (260) wide characters
(including the terminating null character). The feature has to be
enabled in the Windows registry too.
system operations aren't limited by MAX_PATH (260 characters
including the terminating null character) if the feature has
also been enabled in the Windows registry.
activeCodePage

View File

@ -20,7 +20,7 @@ liblzma_la_CPPFLAGS = \
-I$(top_srcdir)/src/liblzma/simple \
-I$(top_srcdir)/src/common \
-DTUKLIB_SYMBOL_PREFIX=lzma_
liblzma_la_LDFLAGS = -no-undefined -version-info 13:1:8
liblzma_la_LDFLAGS = -no-undefined -version-info 11:3:6
EXTRA_DIST += liblzma_generic.map liblzma_linux.map validate_map.sh
if COND_SYMVERS_GENERIC

View File

@ -96,100 +96,3 @@ typedef struct {
uint32_t start_offset;
} lzma_options_bcj;
/**
* \brief Raw ARM64 BCJ encoder
*
* This is for special use cases only.
*
* \param start_offset The lowest 32 bits of the offset in the
* executable being filtered. For the ARM64
* filter, this must be a multiple of four.
* For the very best results, this should also
* be in sync with 4096-byte page boundaries
* in the executable due to how ARM64's ADRP
* instruction works.
* \param buf Buffer to be filtered in place
* \param size Size of the buffer
*
* \return Number of bytes that were processed in `buf`. This is at most
* `size`. With the ARM64 filter, the return value is always
* a multiple of 4, and at most 3 bytes are left unfiltered.
*
* \since 5.7.1alpha
*/
extern LZMA_API(size_t) lzma_bcj_arm64_encode(
uint32_t start_offset, uint8_t *buf, size_t size) lzma_nothrow;
/**
* \brief Raw ARM64 BCJ decoder
*
* See lzma_bcj_arm64_encode().
*
* \since 5.7.1alpha
*/
extern LZMA_API(size_t) lzma_bcj_arm64_decode(
uint32_t start_offset, uint8_t *buf, size_t size) lzma_nothrow;
/**
* \brief Raw RISC-V BCJ encoder
*
* This is for special use cases only.
*
* \param start_offset The lowest 32 bits of the offset in the
* executable being filtered. For the RISC-V
* filter, this must be a multiple of 2.
* \param buf Buffer to be filtered in place
* \param size Size of the buffer
*
* \return Number of bytes that were processed in `buf`. This is at most
* `size`. With the RISC-V filter, the return value is always
* a multiple of 2, and at most 7 bytes are left unfiltered.
*
* \since 5.7.1alpha
*/
extern LZMA_API(size_t) lzma_bcj_riscv_encode(
uint32_t start_offset, uint8_t *buf, size_t size) lzma_nothrow;
/**
* \brief Raw RISC-V BCJ decoder
*
* See lzma_bcj_riscv_encode().
*
* \since 5.7.1alpha
*/
extern LZMA_API(size_t) lzma_bcj_riscv_decode(
uint32_t start_offset, uint8_t *buf, size_t size) lzma_nothrow;
/**
* \brief Raw x86 BCJ encoder
*
* This is for special use cases only.
*
* \param start_offset The lowest 32 bits of the offset in the
* executable being filtered. For the x86
* filter, all values are valid.
* \param buf Buffer to be filtered in place
* \param size Size of the buffer
*
* \return Number of bytes that were processed in `buf`. This is at most
* `size`. For the x86 filter, the return value is always
* a multiple of 1, and at most 4 bytes are left unfiltered.
*
* \since 5.7.1alpha
*/
extern LZMA_API(size_t) lzma_bcj_x86_encode(
uint32_t start_offset, uint8_t *buf, size_t size) lzma_nothrow;
/**
* \brief Raw x86 BCJ decoder
*
* See lzma_bcj_x86_encode().
*
* \since 5.7.1alpha
*/
extern LZMA_API(size_t) lzma_bcj_x86_decode(
uint32_t start_offset, uint8_t *buf, size_t size) lzma_nothrow;

View File

@ -573,7 +573,7 @@ extern LZMA_API(lzma_ret) lzma_stream_buffer_encode(
* The action argument must be LZMA_FINISH and the return value will never be
* LZMA_OK. Thus the encoding is always done with a single lzma_code() after
* the initialization. The benefit of the combination of initialization
* function and lzma_code() is that memory allocations can be reused for
* function and lzma_code() is that memory allocations can be re-used for
* better performance.
*
* lzma_code() will try to encode as much input as is possible to fit into
@ -843,7 +843,8 @@ extern LZMA_API(lzma_ret) lzma_alone_decoder(
/**
* \brief Initialize .lz (lzip) decoder (a foreign file format)
*
* This decoder supports the .lz format versions 0 and 1:
* This decoder supports the .lz format version 0 and the unextended .lz
* format version 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
@ -852,12 +853,12 @@ 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.
*
* - 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.
* 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.
*
* Just like with lzma_stream_decoder() for .xz files, LZMA_CONCATENATED
* should be used when decompressing normal standalone .lz files.

View File

@ -461,7 +461,7 @@ typedef struct {
*
* ext_size_low holds the least significant 32 bits of the
* uncompressed size. The most significant 32 bits must be set
* in ext_size_high. The macro lzma_set_ext_size(opt_lzma, u64size)
* in ext_size_high. The macro lzma_ext_size_set(opt_lzma, u64size)
* can be used to set these members.
*
* The 64-bit uncompressed size is split into two uint32_t variables

View File

@ -19,10 +19,10 @@
#define LZMA_VERSION_MAJOR 5
/** \brief Minor version number of the liblzma release. */
#define LZMA_VERSION_MINOR 8
#define LZMA_VERSION_MINOR 6
/** \brief Patch version number of the liblzma release. */
#define LZMA_VERSION_PATCH 1
#define LZMA_VERSION_PATCH 3
/**
* \brief Version stability marker

View File

@ -5,7 +5,6 @@
## currently crc32 is always enabled.
EXTRA_DIST += \
check/crc_clmul_consts_gen.c \
check/crc32_tablegen.c \
check/crc64_tablegen.c
@ -14,18 +13,19 @@ liblzma_la_SOURCES += \
check/check.h \
check/crc_common.h \
check/crc_x86_clmul.h \
check/crc32_arm64.h \
check/crc32_loongarch.h
check/crc32_arm64.h
if COND_SMALL
liblzma_la_SOURCES += check/crc32_small.c
else
liblzma_la_SOURCES += \
check/crc32_fast.c \
check/crc32_table.c \
check/crc32_table_le.h \
check/crc32_table_be.h
if COND_ASM_X86
liblzma_la_SOURCES += check/crc32_x86.S
else
liblzma_la_SOURCES += check/crc32_fast.c
endif
endif
@ -34,11 +34,13 @@ if COND_SMALL
liblzma_la_SOURCES += check/crc64_small.c
else
liblzma_la_SOURCES += \
check/crc64_fast.c \
check/crc64_table.c \
check/crc64_table_le.h \
check/crc64_table_be.h
if COND_ASM_X86
liblzma_la_SOURCES += check/crc64_x86.S
else
liblzma_la_SOURCES += check/crc64_fast.c
endif
endif
endif

View File

@ -95,6 +95,24 @@ typedef struct {
} lzma_check_state;
/// lzma_crc32_table[0] is needed by LZ encoder so we need to keep
/// the array two-dimensional.
#ifdef HAVE_SMALL
lzma_attr_visibility_hidden
extern uint32_t lzma_crc32_table[1][256];
extern void lzma_crc32_init(void);
#else
lzma_attr_visibility_hidden
extern const uint32_t lzma_crc32_table[8][256];
lzma_attr_visibility_hidden
extern const uint64_t lzma_crc64_table[4][256];
#endif
/// \brief Initialize *check depending on type
extern void lzma_check_init(lzma_check_state *check, lzma_check type);

View File

@ -7,7 +7,7 @@
//
// Authors: Chenxi Mao
// Jia Tan
// Lasse Collin
// Hans Jansen
//
///////////////////////////////////////////////////////////////////////////////
@ -49,50 +49,25 @@ crc32_arch_optimized(const uint8_t *buf, size_t size, uint32_t crc)
{
crc = ~crc;
if (size >= 8) {
// Align the input buffer because this was shown to be
// significantly faster than unaligned accesses.
const size_t align = (0 - (uintptr_t)buf) & 7;
// Align the input buffer because this was shown to be
// significantly faster than unaligned accesses.
const size_t align_amount = my_min(size, (0U - (uintptr_t)buf) & 7);
if (align & 1)
crc = __crc32b(crc, *buf++);
for (const uint8_t *limit = buf + align_amount; buf < limit; ++buf)
crc = __crc32b(crc, *buf);
if (align & 2) {
crc = __crc32h(crc, aligned_read16le(buf));
buf += 2;
}
size -= align_amount;
if (align & 4) {
crc = __crc32w(crc, aligned_read32le(buf));
buf += 4;
}
size -= align;
// Process 8 bytes at a time. The end point is determined by
// ignoring the least significant three bits of size to
// ensure we do not process past the bounds of the buffer.
// This guarantees that limit is a multiple of 8 and is
// strictly less than size.
for (const uint8_t *limit = buf + (size & ~(size_t)7);
buf < limit; buf += 8)
crc = __crc32d(crc, aligned_read64le(buf));
size &= 7;
}
// Process 8 bytes at a time. The end point is determined by
// ignoring the least significant three bits of size to ensure
// we do not process past the bounds of the buffer. This guarantees
// that limit is a multiple of 8 and is strictly less than size.
for (const uint8_t *limit = buf + (size & ~(size_t)7);
buf < limit; buf += 8)
crc = __crc32d(crc, aligned_read64le(buf));
// Process the remaining bytes that are not 8 byte aligned.
if (size & 4) {
crc = __crc32w(crc, aligned_read32le(buf));
buf += 4;
}
if (size & 2) {
crc = __crc32h(crc, aligned_read16le(buf));
buf += 2;
}
if (size & 1)
for (const uint8_t *limit = buf + (size & 7); buf < limit; ++buf)
crc = __crc32b(crc, *buf);
return ~crc;

View File

@ -7,6 +7,7 @@
//
// Authors: Lasse Collin
// Ilya Kurdyukov
// Hans Jansen
//
///////////////////////////////////////////////////////////////////////////////
@ -14,12 +15,10 @@
#include "crc_common.h"
#if defined(CRC_X86_CLMUL)
# define BUILDING_CRC_CLMUL 32
# define BUILDING_CRC32_CLMUL
# include "crc_x86_clmul.h"
#elif defined(CRC32_ARM64)
# include "crc32_arm64.h"
#elif defined(CRC32_LOONGARCH)
# include "crc32_loongarch.h"
#endif
@ -29,19 +28,8 @@
// Generic CRC32 //
///////////////////
#ifdef WORDS_BIGENDIAN
# include "crc32_table_be.h"
#else
# include "crc32_table_le.h"
#endif
#ifdef HAVE_CRC_X86_ASM
extern uint32_t lzma_crc32_generic(
const uint8_t *buf, size_t size, uint32_t crc);
#else
static uint32_t
lzma_crc32_generic(const uint8_t *buf, size_t size, uint32_t crc)
crc32_generic(const uint8_t *buf, size_t size, uint32_t crc)
{
crc = ~crc;
@ -97,8 +85,7 @@ lzma_crc32_generic(const uint8_t *buf, size_t size, uint32_t crc)
return ~crc;
}
#endif // HAVE_CRC_X86_ASM
#endif // CRC32_GENERIC
#endif
#if defined(CRC32_GENERIC) && defined(CRC32_ARCH_OPTIMIZED)
@ -132,7 +119,7 @@ static crc32_func_type
crc32_resolve(void)
{
return is_arch_extension_supported()
? &crc32_arch_optimized : &lzma_crc32_generic;
? &crc32_arch_optimized : &crc32_generic;
}
@ -177,6 +164,27 @@ extern LZMA_API(uint32_t)
lzma_crc32(const uint8_t *buf, size_t size, uint32_t crc)
{
#if defined(CRC32_GENERIC) && defined(CRC32_ARCH_OPTIMIZED)
// On x86-64, if CLMUL is available, it is the best for non-tiny
// inputs, being over twice as fast as the generic slice-by-four
// version. However, for size <= 16 it's different. In the extreme
// case of size == 1 the generic version can be five times faster.
// At size >= 8 the CLMUL starts to become reasonable. It
// varies depending on the alignment of buf too.
//
// The above doesn't include the overhead of mythread_once().
// At least on x86-64 GNU/Linux, pthread_once() is very fast but
// it still makes lzma_crc32(buf, 1, crc) 50-100 % slower. When
// size reaches 12-16 bytes the overhead becomes negligible.
//
// So using the generic version for size <= 16 may give better
// performance with tiny inputs but if such inputs happen rarely
// it's not so obvious because then the lookup table of the
// generic version may not be in the processor cache.
#ifdef CRC_USE_GENERIC_FOR_SMALL_INPUTS
if (size <= 16)
return crc32_generic(buf, size, crc);
#endif
/*
#ifndef HAVE_FUNC_ATTRIBUTE_CONSTRUCTOR
// See crc32_dispatch(). This would be the alternative which uses
@ -191,6 +199,6 @@ lzma_crc32(const uint8_t *buf, size_t size, uint32_t crc)
return crc32_arch_optimized(buf, size, crc);
#else
return lzma_crc32_generic(buf, size, crc);
return crc32_generic(buf, size, crc);
#endif
}

View File

@ -1,65 +0,0 @@
// SPDX-License-Identifier: 0BSD
///////////////////////////////////////////////////////////////////////////////
//
/// \file crc32_loongarch.h
/// \brief CRC32 calculation with LoongArch optimization
//
// Authors: Xi Ruoyao
// Lasse Collin
//
///////////////////////////////////////////////////////////////////////////////
#ifndef LZMA_CRC32_LOONGARCH_H
#define LZMA_CRC32_LOONGARCH_H
#include <larchintrin.h>
static uint32_t
crc32_arch_optimized(const uint8_t *buf, size_t size, uint32_t crc_unsigned)
{
int32_t crc = (int32_t)~crc_unsigned;
if (size >= 8) {
const size_t align = (0 - (uintptr_t)buf) & 7;
if (align & 1)
crc = __crc_w_b_w((int8_t)*buf++, crc);
if (align & 2) {
crc = __crc_w_h_w((int16_t)aligned_read16le(buf), crc);
buf += 2;
}
if (align & 4) {
crc = __crc_w_w_w((int32_t)aligned_read32le(buf), crc);
buf += 4;
}
size -= align;
for (const uint8_t *limit = buf + (size & ~(size_t)7);
buf < limit; buf += 8)
crc = __crc_w_d_w((int64_t)aligned_read64le(buf), crc);
size &= 7;
}
if (size & 4) {
crc = __crc_w_w_w((int32_t)aligned_read32le(buf), crc);
buf += 4;
}
if (size & 2) {
crc = __crc_w_h_w((int16_t)aligned_read16le(buf), crc);
buf += 2;
}
if (size & 1)
crc = __crc_w_b_w((int8_t)*buf, crc);
return (uint32_t)~crc;
}
#endif // LZMA_CRC32_LOONGARCH_H

View File

@ -10,11 +10,8 @@
///////////////////////////////////////////////////////////////////////////////
#include "check.h"
#include "crc_common.h"
// The table is used by the LZ encoder too, thus it's not static like
// in crc64_small.c.
uint32_t lzma_crc32_table[1][256];

View File

@ -0,0 +1,42 @@
// SPDX-License-Identifier: 0BSD
///////////////////////////////////////////////////////////////////////////////
//
/// \file crc32_table.c
/// \brief Precalculated CRC32 table with correct endianness
//
// Author: Lasse Collin
//
///////////////////////////////////////////////////////////////////////////////
#include "common.h"
// FIXME: Compared to crc_common.h this has to check for __x86_64__ too
// so that in 32-bit builds crc32_x86.S won't break due to a missing table.
#if defined(HAVE_USABLE_CLMUL) && ((defined(__x86_64__) && defined(__SSSE3__) \
&& defined(__SSE4_1__) && defined(__PCLMUL__)) \
|| (defined(__e2k__) && __iset__ >= 6))
# define NO_CRC32_TABLE
#elif defined(HAVE_ARM64_CRC32) \
&& !defined(WORDS_BIGENDIAN) \
&& defined(__ARM_FEATURE_CRC32)
# define NO_CRC32_TABLE
#endif
#if !defined(HAVE_ENCODERS) && defined(NO_CRC32_TABLE)
// No table needed. Use a typedef to avoid an empty translation unit.
typedef void lzma_crc32_dummy;
#else
// Having the declaration here silences clang -Wmissing-variable-declarations.
extern const uint32_t lzma_crc32_table[8][256];
# ifdef WORDS_BIGENDIAN
# include "crc32_table_be.h"
# else
# include "crc32_table_le.h"
# endif
#endif

View File

@ -67,7 +67,7 @@ init_table(void)
#endif
#define MAKE_SYM_CAT(prefix, sym) prefix ## sym
#define MAKE_SYM(prefix, sym) MAKE_SYM_CAT(prefix, sym)
#define LZMA_CRC32 MAKE_SYM(__USER_LABEL_PREFIX__, lzma_crc32_generic)
#define LZMA_CRC32 MAKE_SYM(__USER_LABEL_PREFIX__, lzma_crc32)
#define LZMA_CRC32_TABLE MAKE_SYM(__USER_LABEL_PREFIX__, lzma_crc32_table)
/*
@ -82,9 +82,6 @@ init_table(void)
.text
.globl LZMA_CRC32
#ifdef __ELF__
.hidden LZMA_CRC32
#endif
#if !defined(__APPLE__) && !defined(_WIN32) && !defined(__CYGWIN__) \
&& !defined(__MSDOS__)
@ -293,7 +290,14 @@ LZMA_CRC32:
.indirect_symbol LZMA_CRC32_TABLE
.long 0
#elif !defined(_WIN32) && !defined(__CYGWIN__) && !defined(__MSDOS__)
#elif defined(_WIN32) || defined(__CYGWIN__)
# ifdef DLL_EXPORT
/* This is equivalent of __declspec(dllexport). */
.section .drectve
.ascii " -export:lzma_crc32"
# endif
#elif !defined(__MSDOS__)
/* ELF */
.size LZMA_CRC32, .-LZMA_CRC32
#endif

View File

@ -14,7 +14,7 @@
#include "crc_common.h"
#if defined(CRC_X86_CLMUL)
# define BUILDING_CRC_CLMUL 64
# define BUILDING_CRC64_CLMUL
# include "crc_x86_clmul.h"
#endif
@ -25,18 +25,6 @@
// Generic slice-by-four CRC64 //
/////////////////////////////////
#if defined(WORDS_BIGENDIAN)
# include "crc64_table_be.h"
#else
# include "crc64_table_le.h"
#endif
#ifdef HAVE_CRC_X86_ASM
extern uint64_t lzma_crc64_generic(
const uint8_t *buf, size_t size, uint64_t crc);
#else
#ifdef WORDS_BIGENDIAN
# define A1(x) ((x) >> 56)
#else
@ -46,7 +34,7 @@ extern uint64_t lzma_crc64_generic(
// See the comments in crc32_fast.c. They aren't duplicated here.
static uint64_t
lzma_crc64_generic(const uint8_t *buf, size_t size, uint64_t crc)
crc64_generic(const uint8_t *buf, size_t size, uint64_t crc)
{
crc = ~crc;
@ -90,8 +78,7 @@ lzma_crc64_generic(const uint8_t *buf, size_t size, uint64_t crc)
return ~crc;
}
#endif // HAVE_CRC_X86_ASM
#endif // CRC64_GENERIC
#endif
#if defined(CRC64_GENERIC) && defined(CRC64_ARCH_OPTIMIZED)
@ -110,7 +97,7 @@ static crc64_func_type
crc64_resolve(void)
{
return is_arch_extension_supported()
? &crc64_arch_optimized : &lzma_crc64_generic;
? &crc64_arch_optimized : &crc64_generic;
}
#ifdef HAVE_FUNC_ATTRIBUTE_CONSTRUCTOR
@ -147,15 +134,23 @@ extern LZMA_API(uint64_t)
lzma_crc64(const uint8_t *buf, size_t size, uint64_t crc)
{
#if defined(CRC64_GENERIC) && defined(CRC64_ARCH_OPTIMIZED)
#ifdef CRC_USE_GENERIC_FOR_SMALL_INPUTS
if (size <= 16)
return crc64_generic(buf, size, crc);
#endif
return crc64_func(buf, size, crc);
#elif defined(CRC64_ARCH_OPTIMIZED)
// If arch-optimized version is used unconditionally without runtime
// CPU detection then omitting the generic version and its 8 KiB
// lookup table makes the library smaller.
//
// FIXME: Lookup table isn't currently omitted on 32-bit x86,
// see crc64_table.c.
return crc64_arch_optimized(buf, size, crc);
#else
return lzma_crc64_generic(buf, size, crc);
return crc64_generic(buf, size, crc);
#endif
}

View File

@ -0,0 +1,37 @@
// SPDX-License-Identifier: 0BSD
///////////////////////////////////////////////////////////////////////////////
//
/// \file crc64_table.c
/// \brief Precalculated CRC64 table with correct endianness
//
// Author: Lasse Collin
//
///////////////////////////////////////////////////////////////////////////////
#include "common.h"
// FIXME: Compared to crc_common.h this has to check for __x86_64__ too
// so that in 32-bit builds crc64_x86.S won't break due to a missing table.
#if defined(HAVE_USABLE_CLMUL) && ((defined(__x86_64__) && defined(__SSSE3__) \
&& defined(__SSE4_1__) && defined(__PCLMUL__)) \
|| (defined(__e2k__) && __iset__ >= 6))
# define NO_CRC64_TABLE
#endif
#ifdef NO_CRC64_TABLE
// No table needed. Use a typedef to avoid an empty translation unit.
typedef void lzma_crc64_dummy;
#else
// Having the declaration here silences clang -Wmissing-variable-declarations.
extern const uint64_t lzma_crc64_table[4][256];
# if defined(WORDS_BIGENDIAN)
# include "crc64_table_be.h"
# else
# include "crc64_table_le.h"
# endif
#endif

View File

@ -57,7 +57,7 @@ init_table(void)
#endif
#define MAKE_SYM_CAT(prefix, sym) prefix ## sym
#define MAKE_SYM(prefix, sym) MAKE_SYM_CAT(prefix, sym)
#define LZMA_CRC64 MAKE_SYM(__USER_LABEL_PREFIX__, lzma_crc64_generic)
#define LZMA_CRC64 MAKE_SYM(__USER_LABEL_PREFIX__, lzma_crc64)
#define LZMA_CRC64_TABLE MAKE_SYM(__USER_LABEL_PREFIX__, lzma_crc64_table)
/*
@ -72,9 +72,6 @@ init_table(void)
.text
.globl LZMA_CRC64
#ifdef __ELF__
.hidden LZMA_CRC64
#endif
#if !defined(__APPLE__) && !defined(_WIN32) && !defined(__CYGWIN__) \
&& !defined(__MSDOS__)
@ -276,7 +273,14 @@ LZMA_CRC64:
.indirect_symbol LZMA_CRC64_TABLE
.long 0
#elif !defined(_WIN32) && !defined(__CYGWIN__) && !defined(__MSDOS__)
#elif defined(_WIN32) || defined(__CYGWIN__)
# ifdef DLL_EXPORT
/* This is equivalent of __declspec(dllexport). */
.section .drectve
.ascii " -export:lzma_crc64"
# endif
#elif !defined(__MSDOS__)
/* ELF */
.size LZMA_CRC64, .-LZMA_CRC64
#endif

Some files were not shown because too many files have changed in this diff Show More