1
0
mirror of https://git.tukaani.org/xz.git synced 2025-12-18 11:28:45 +00:00

Compare commits

..

203 Commits

Author SHA1 Message Date
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
213 changed files with 11701 additions and 36000 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,34 +18,26 @@ on:
# Allows running workflow manually
workflow_dispatch:
permissions: {}
jobs:
POSIX:
strategy:
matrix:
os: [ubuntu-latest, ubuntu-24.04-arm, macos-latest]
os: [ubuntu-latest, macos-latest]
build_system: [autotools, cmake]
runs-on: ${{ matrix.os }}
timeout-minutes: 20
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 #v4.1.0
########################
# Install Dependencies #
########################
# Install Autotools on Linux
- name: Install Dependencies
if: ${{ startsWith(matrix.os, 'ubuntu') && matrix.build_system == 'autotools' }}
run: |
sudo apt-get update
sudo apt-get install -y autoconf automake build-essential po4a autopoint doxygen musl-tools valgrind
- name: Install Dependencies
if: ${{ matrix.os == 'ubuntu-latest' && matrix.build_system == 'autotools' }}
run: |
sudo apt-get install -y gcc-multilib
sudo apt-get update
sudo apt-get install -y autoconf automake build-essential po4a autopoint gcc-multilib doxygen musl-tools valgrind
# Install Autotools on Mac
- name: Install Dependencies
@ -54,15 +46,15 @@ jobs:
# Install CMake on Linux
- name: Install Dependencies
if: ${{ startsWith(matrix.os, 'ubuntu') && matrix.build_system == 'cmake' }}
if: ${{ matrix.os == 'ubuntu-latest' && matrix.build_system == 'cmake' }}
run: |
sudo apt-get update
sudo apt-get install -y build-essential cmake gettext doxygen 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 doxygen
run: brew install cmake
##################
# Build and Test #
@ -78,44 +70,44 @@ jobs:
# done first.
- name: Build 32-bit
if: ${{ matrix.os == 'ubuntu-latest' && matrix.build_system == 'autotools' }}
run: ./build-aux/ci_build.bash -b autotools -p build -m "gcc -m32"
run: ./build-aux/ci_build.bash -b autotools -p build -f "-m32"
- name: Test 32-bit
if: ${{ matrix.os == 'ubuntu-latest' && matrix.build_system == 'autotools' }}
run: |
./build-aux/ci_build.bash -b autotools -p test -m "gcc -m32" -n 32_bit
./build-aux/ci_build.bash -b autotools -p test -f "-m32" -n 32_bit
cd ../xz_build && make distclean
# The sandbox must be disabled because it will prevent access to
# the /proc/ filesystem on Linux, which is used by the sanitizer's
# instrumentation.
- name: Build with -fsanitize=address,undefined
if: ${{ startsWith(matrix.os, 'ubuntu') && matrix.build_system == 'autotools' }}
if: ${{ matrix.os == 'ubuntu-latest' && matrix.build_system == 'autotools' }}
run: ./build-aux/ci_build.bash -b autotools -p build -f "-fsanitize=address,undefined" -d sandbox
- name: Test with -fsanitize=address,undefined
if: ${{ startsWith(matrix.os, 'ubuntu') && matrix.build_system == 'autotools' }}
if: ${{ matrix.os == 'ubuntu-latest' && matrix.build_system == 'autotools' }}
run: |
export UBSAN_OPTIONS=print_stacktrace=1:halt_on_error=1
./build-aux/ci_build.bash -b autotools -p test -f "-fsanitize=address,undefined" -d sandbox
cd ../xz_build && make distclean
- name: Build with Valgrind
if: ${{ startsWith(matrix.os, 'ubuntu') && matrix.build_system == 'autotools' }}
run: ./build-aux/ci_build.bash -b autotools -p build -d shared,sandbox
if: ${{ matrix.os == 'ubuntu-latest' && matrix.build_system == 'autotools' }}
run: ./build-aux/ci_build.bash -b autotools -p build -d sandbox
- name: Test with Valgrind
if: ${{ startsWith(matrix.os, 'ubuntu') && matrix.build_system == 'autotools' }}
if: ${{ matrix.os == 'ubuntu-latest' && matrix.build_system == 'autotools' }}
run: |
./build-aux/ci_build.bash -b autotools -p test -d sandbox -w "valgrind --quiet --trace-children=yes --trace-children-skip=*/cmp,*/cp,*/diff,*/grep,*/rm,*/sed --exit-on-first-error=yes --error-exitcode=1"
./build-aux/ci_build.bash -b autotools -p test -d sandbox -w "valgrind --quiet --trace-children=yes --exit-on-first-error=yes --error-exitcode=1"
cd ../xz_build && make distclean
- name: Build with musl libc
if: ${{ startsWith(matrix.os, 'ubuntu') }}
if: ${{ matrix.os == 'ubuntu-latest'}}
run: ./build-aux/ci_build.bash -b ${{ matrix.build_system }} -p build -m "/usr/bin/musl-gcc"
- name: Test with musl libc
if: ${{ startsWith(matrix.os, 'ubuntu') }}
if: ${{ matrix.os == 'ubuntu-latest'}}
run: |
./build-aux/ci_build.bash -b ${{ matrix.build_system }} -p test -m "/usr/bin/musl-gcc"
- name: Clean up musl libc run
if: ${{ startsWith(matrix.os, 'ubuntu') && matrix.build_system == 'autotools' }}
if: ${{ matrix.os == 'ubuntu-latest' && matrix.build_system == 'autotools' }}
run: cd ../xz_build && make distclean
- name: Build with full features
@ -164,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@c7d193f32edcb7bfad88892161225aeda64e9392 #v4.0.0
if: ${{ failure() }}
with:
name: ${{ matrix.os }} ${{ matrix.build_system }} Test Logs

View File

@ -1,55 +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
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
sanitizer: [ address, undefined, memory ]
steps:
- name: Build Fuzzers (${{ matrix.sanitizer }})
id: build
uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master
with:
oss-fuzz-project-name: 'xz'
# The language must match the one in project.yaml in OSS-Fuzz:
# https://github.com/google/oss-fuzz/blob/master/projects/xz/project.yaml
# Thus, use C++ even though there are no C++ files in XZ Utils.
language: c++
sanitizer: ${{ matrix.sanitizer }}
- name: Run Fuzzers (${{ matrix.sanitizer }})
uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master
with:
oss-fuzz-project-name: 'xz'
language: c++
sanitizer: ${{ matrix.sanitizer }}
fuzz-seconds: 600
report-timeouts: true
report-ooms: true
- name: Upload Crash
uses: actions/upload-artifact@v4
if: failure() && steps.build.outcome == 'success'
with:
name: ${{ matrix.sanitizer }}-artifacts
path: ./out/artifacts

View File

@ -1,38 +0,0 @@
# SPDX-License-Identifier: 0BSD
name: Coverity Scan
# We only want to test a special branch, per
# https://docs.travis-ci.com/user/coverity-scan/#build-submission-frequency
on:
push:
branches: [coverity_scan]
jobs:
coverity:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
sudo apt-get update -q
sudo apt-get install -qy autoconf automake build-essential autopoint gcc-multilib
- name: Run autogen.sh
run: ./autogen.sh --no-po4a
- name: Run configure
run: ./configure --enable-debug --disable-silent-rules
# Coverity doesn't understand what the inline asm does,
# which results in false positives.
- name: Disable complex inline assembly code
run: echo '#define LZMA_RANGE_DECODER_CONFIG 0' >> config.h
- name: Coverity Scan
uses: vapier/coverity-scan-action@2068473c7bdf8c2fb984a6a40ae76ee7facd7a85 # v1.8.0
with:
command: make -Oline -j$(nproc)
email: ${{ secrets.COVERITY_SCAN_EMAIL }}
token: ${{ secrets.COVERITY_SCAN_TOKEN }}

View File

@ -1,40 +0,0 @@
# SPDX-License-Identifier: 0BSD
name: DragonFly BSD
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
workflow_dispatch:
permissions: {}
jobs:
DragonflyBSD:
runs-on: ubuntu-latest
timeout-minutes: 10
name: DragonFly BSD
steps:
- uses: actions/checkout@v4
- name: Test in DragonFly BSD
id: test
uses: vmactions/dragonflybsd-vm@4ffb90652b45abc8156f89ede453c85f7ea257bb #v1.1.4
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,50 +9,23 @@ 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
# NOTE: Comment in the repo says that aarch64 VM is faster
# on x86_64 host compared to ubuntu-24.04-arm.
# - host: ubuntu-24.04-arm
# version: 15.0
# arch: aarch64
runs-on: ${{ matrix.host }}
timeout-minutes: 10
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@670398e4236735b8b65805c3da44b7a511fb8b27 #v1.3.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@8ade135a41bc03ea155e62e844d188df1ea18608 #v4
- 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: |
export LC_ALL=C LANG=C
uname -a
./autogen.sh
./configure --enable-werror
make
make check VERBOSE=1

View File

@ -1,138 +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-latest ]
runs-on: ${{ matrix.os }}
timeout-minutes: 10
steps:
- uses: actions/checkout@v4
- name: Configure Win32
run: >
cmake
-A Win32
-B build-msvc-win32
- name: Build Win32 Debug
run: >
cmake
--build build-msvc-win32
--config Debug
- name: Test Win32 Debug
run: >
ctest
--test-dir build-msvc-win32
--build-config Debug
--output-on-failure
- name: Build Win32 Release
run: >
cmake
--build build-msvc-win32
--config Release
# This fails with VS 2019 without b5a5d9e3f702.
- name: Test Win32 Release
run: >
ctest
--test-dir build-msvc-win32
--build-config Release
--output-on-failure
- name: Configure x64
run: >
cmake
-A x64
-B build-msvc-x64
- name: Build x64 Debug
run: >
cmake
--build build-msvc-x64
--config Debug
- name: Test x64 Debug
run: >
ctest
--test-dir build-msvc-x64
--build-config Debug
--output-on-failure
- name: Build x64 Release
run: >
cmake
--build build-msvc-x64
--config Release
- name: Test x64 Release
run: >
ctest
--test-dir build-msvc-x64
--build-config Release
--output-on-failure
- name: Configure ClangCL x64
run: >
cmake
-T ClangCL
-A x64
-B build-clangcl-x64
-DCMAKE_C_FLAGS="
-Wno-cast-align
-Wno-cast-qual
-Wno-covered-switch-default
-Wno-declaration-after-statement
-Wno-deprecated-declarations
-Wno-disabled-macro-expansion
-Wno-nonportable-system-include-path
-Wno-overlength-strings
-Wno-pre-c11-compat
-Wno-reserved-identifier
-Wno-unsafe-buffer-usage
-Wno-used-but-marked-unused"
- name: Build ClangCL x64 Debug
run: >
cmake
--build build-clangcl-x64
--config Debug
- name: Test ClangCL x64 Debug
run: >
ctest
--test-dir build-clangcl-x64
--build-config Debug
--output-on-failure
- name: Build ClangCL x64 Release
run: >
cmake
--build build-clangcl-x64
--config Release
- name: Test ClangCL x64 Release
run: >
ctest
--test-dir build-clangcl-x64
--build-config Release
--output-on-failure

View File

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

View File

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

View File

@ -9,32 +9,25 @@ on:
branches: [ master ]
workflow_dispatch:
permissions: {}
jobs:
OpenBSD:
OpenBSD-test:
runs-on: ubuntu-latest
timeout-minutes: 10
name: OpenBSD
name: Test xz on OpenBSD
steps:
- uses: actions/checkout@v4
- name: Test in OpenBSD
uses: vmactions/openbsd-vm@2e29de1eb150dfe1c9c97b84ff2b7896f14ca690 #v1.2.5
with:
usesh: true
prepare: >
/usr/sbin/pkg_add -I -v
autoconf-2.72p0
automake-1.17
gettext-tools
libtool
m4
run: |
set -e
export AUTOCONF_VERSION=2.72
export AUTOMAKE_VERSION=1.17
uname -a
./autogen.sh --no-po4a
./configure --disable-static --enable-debug --enable-werror --disable-nls --enable-external-sha256
make -j4 check
- uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 #v4
- 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: |
export LC_ALL=C LANG=C
export AUTOCONF_VERSION=2.71
export AUTOMAKE_VERSION=1.16
uname -a
./autogen.sh
./configure --enable-werror
make
make check VERBOSE=1

View File

@ -1,34 +0,0 @@
# SPDX-License-Identifier: 0BSD
name: Solaris
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
workflow_dispatch:
permissions: {}
jobs:
Solaris:
runs-on: ubuntu-latest
timeout-minutes: 10
name: Solaris
steps:
- uses: actions/checkout@v4
- name: Test in Solaris
uses: vmactions/solaris-vm@47bea106d03acaf91084e52548ee460556011602 #v1.1.8
with:
release: 11.4-gcc
usesh: true
run: |
set -e
uname -a
# /usr/xpg4/bin isn't in PATH by default.
echo "Environment variable PATH: $PATH"
./autogen.sh --no-po4a
./configure --disable-static --enable-debug --enable-werror
make check

124
.github/workflows/windows-ci.yml vendored Normal file
View File

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

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.

View File

@ -2,7 +2,7 @@
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
<https://fsf.org/>
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@ -304,7 +304,8 @@ the "copyright" line and a pointer to where the full notice is found.
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, see <https://www.gnu.org/licenses/>.
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Also add information on how to contact you by electronic and paper mail.
@ -328,8 +329,8 @@ necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Moe Ghoul>, 1 April 1989
Moe Ghoul, President of Vice
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may

View File

@ -2,7 +2,7 @@
Version 2.1, February 1999
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
<https://fsf.org/>
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@ -484,7 +484,8 @@ convey the exclusion of warranty; and each file should have at least the
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, see <https://www.gnu.org/licenses/>.
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
@ -495,7 +496,7 @@ necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
<signature of Moe Ghoul>, 1 April 1990
Moe Ghoul, President of Vice
<signature of Ty Coon>, 1 April 1990
Ty Coon, President of Vice
That's all there is to it!

149
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
@ -918,7 +789,7 @@ XZ Utils Installation
The configure script determines if assembler code can be used by
looking at the configure triplet; there is currently no check if
the assembler code can actually be built. The x86 assembler
the assembler code can actually actually be built. The x86 assembler
code should work on x86 GNU/Linux, *BSDs, Solaris, Darwin, MinGW,
Cygwin, and DJGPP. On other x86 systems, there may be problems and
the assembler code may need to be disabled with the configure option.

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.

478
NEWS
View File

@ -2,484 +2,6 @@
XZ Utils Release Notes
======================
5.8.2 (2025-12-17)
* liblzma:
- Fix the build on ARM64 on glibc versions older than
2.24 (2016). They don't have HWCAP_CRC32 in <sys/auxv.h>.
- Disable CLMUL CRC code when building for 32-bit x86 with
old MSVC versions. This avoids a compiler bug. The exact
compiler version in which the issue was fixed is unknown,
but VS 2022 17.13 (MSVC 19.43.34808) is known to work, so
CLMUL CRC on 32-bit x86 is disabled with MSVC versions
older than that.
* xz:
- Add a workaround for Red Hat Enterprise Linux 9 kernel bug
which made xz fail with "xz: Failed to enable the sandbox".
It only occurs with xz 5.8.0 and 5.8.1 binaries built for
other distros. For example, running Debian 13 in a container
on RHEL/CentOS 9 would trigger the issue.
The bug was introduced in RHEL 9 kernel 5.14.0-603.el9
(2025-07-30) and fixed in 5.14.0-648.el9 (2025-12-05).
However, as of writing, the fixed kernel isn't available
to RHEL 9 users yet, so including the workaround in this
xz release seems reasonable. The workaround will be removed
when it's no longer needed.
xzdec was also affected by this issue.
- On AIX, don't use fsync() on directories because it fails.
- Fix the build on Emscripten.
- Fix the build on clang-cl on Windows.
- Take resource limits (RLIMIT_DATA, RLIMIT_AS, and RLIMIT_VMEM)
into account when determining the default memory usage limit
for multithreaded mode. This should prevent xz from failing
when a resource limit has been set to a value that is less
than 1/4 of total RAM. Other memory limits can still trigger
the same issue, for example, Linux cgroup v2 memory.max.
* Build systems:
- When symbol versioning is enabled, pass --undefined-version
to the linker if the option is supported. This fixes the
build when using LLVM's lld and some liblzma features have
been disabled at build time.
- ARM64: Fix autodetection of fast unaligned memory access when
using GCC and -mstrict-align is in effect. Previously the
build systems would incorrectly guess that unaligned access
is fast, which would result in much slower binaries than
needed. The fix is a workaround for GCC bug 111555;
autodetection already worked with Clang.
- LoongArch: Autodetect if fast unaligned memory access is
supported. This can improve compression speed by 15 % (but
not decompression speed).
* Translations:
- Update the Spanish translation.
- Add Swedish man page translations.
- Update Italian, Korean, Romanian, Serbian, and Ukrainian
man page translations.
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.
* liblzma:
- Fix x86-64 inline assembly compatibility with GNU Binutils
older than 2.27.
- Fix the build with GCC 4.2 on OpenBSD/sparc64.
* xzdec: Display an error instead of failing silently if the
unsupported option -M is specified.
* lzmainfo: Fix integer overflows when rounding the dictionary and
uncompressed sizes to the nearest mebibyte.
* Windows (except Cygwin and MSYS2): Add an application manifest to
xz, xzdec, lzmadec, and lzmainfo executables:
- Declare them compatible with Vista/7/8/8.1/10/11. This way
the programs won't needlessly use Operating System Context
of Vista when running on later Windows versions. This setting
doesn't mean that the executables cannot run on even older
versions if otherwise built that way.
- Declare them as UAC-compliant. MSVC added this by default
already but it wasn't done with MinGW-w64, at least not
with all toolchain variants.
- Declare them long path aware. This makes long path names
work on Windows 10 and 11 if the feature has been enabled
in the Windows registry.
- Use the UTF-8 code page on Windows 10 version 1903 and later.
* Now command line tools can access files whose names
contain characters that don't exist in the current
legacy code page.
* The options --files and --files0 now expect file lists
to be in UTF-8 instead of the legacy code page.
* This fixes a security issue: If a command line contains
Unicode characters (for example, filenames) that don't
exist in the current legacy code page, the characters are
converted to similar-looking characters with best-fit
mapping. Some best-fit mappings result in ASCII
characters that change the meaning of the command line,
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
tools remain vulnerable if used on an old older
version of Windows.
This issue was discovered by Orange Tsai and splitline
from DEVCORE Research Team.
A related smaller issue remains: Windows filenames may
contain unpaired surrogates (invalid UTF-16). These are
converted to the replacement character U+FFFD in the
UTF-8 code page. Thus, filenames with different unpaired
surrogates appear identical and aren't distinguishable
from filenames that contain the actual replacement
character U+FFFD.
* When building with MinGW-w64, it is recommended to use
UCRT version instead of the old MSVCRT. For example,
non-ASCII characters from filenames won't print
correctly in messages to console with MSVCRT with
the UTF-8 code page (a cosmetic issue). liblzma-only
builds are still fine with MSVCRT.
- Cygwin and MSYS2 process command line options differently and
the above issues don't exist. There is no need to replace the
default application manifest on Cygwin and MSYS2.
* Autotools-based build:
- Fix feature checks with link-time optimization (-flto).
- Solaris: Fix a compatibility issue in version.sh. It matters
if one wants to regenerate configure by running autoconf.
* CMake:
- Use paths relative to ${prefix} in liblzma.pc when possible.
This is done only with CMake >= 3.20.
- MSVC: Install liblzma.pc as it can be useful with MSVC too.
- Windows: Fix liblzma filename prefix, for example:
* Cygwin: The DLL was incorrectly named liblzma-5.dll.
Now it is cyglzma-5.dll.
* MSVC: Rename import library from liblzma.lib to lzma.lib
while keeping liblzma.dll name as is. This helps with
"pkgconf --msvc-syntax --libs liblzma" because it mungles
"-llzma" in liblzma.pc to "lzma.lib".
* MinGW-w64: No changes.
- Windows: Use the correct resource file for lzmadec.exe.
Previously the resource file for xzdec.exe was used for both.
Autotools-based build isn't affected.
- Prefer a C11 compiler over a C99 compiler but accept both.
- Link Threads::Threads against liblzma using PRIVATE so that
-pthread and such flags won't unnecessarily get included in
the usage requirements of shared liblzma. That is,
target_link_libraries(foo PRIVATE liblzma::liblzma) no
longer adds -pthread if using POSIX threads and linking
against shared liblzma. The threading flags are still added
if linking against static liblzma.
* Updated translations: Catalan, Chinese (simplified), and
Brazilian Portuguese.
5.6.2 (2024-05-29)
* Remove the backdoor (CVE-2024-3094).

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

394
THANKS
View File

@ -3,252 +3,178 @@ Thanks
======
Some people have helped more, some less, but nevertheless everyone's help
has been important. :-)
- Adam Borowski
- Adam Walling
- Adrien Nader
- Agostino Sarubbo
- Alexander Bluhm
- Alexander M. Greenham
- Alexander Neumann
- Alexandre Sauvé
- Alexey Tourbin
- Anders F. Björklund
- Andraž 'ruskie' Levstik
- Andre Noll
- Andreas K. Hüttel
- Andreas Müller
- Andreas Schwab
- Andreas Zieringer
- Andrej Skenderija
- Andres Freund
- Andrew Dudman
- Andrew Murray
- Antoine Cœur
- Anton Kochkov
- Antonio Diaz Diaz
- Arkadiusz Miskiewicz
- Asgeir Storesund Nilsen
- Aziz Chaudhry
- Bela Lubkin
- Ben Boeckel
- Benjamin Buch
- Benno Schulenberg
- Bernhard Reutner-Fischer
- Bert Wesarg
- Bhargava Shastry
- Bill Glessner
- Bjarni Ingi Gislason
- Boud Roukema
- Brad Smith
- Bruce Stark
- Cary Lewis
- Charles Wilson
- Chenxi Mao
- Chien Wong
- Chris Donawa
- Chris McCrohan
- Christian Hesse
- Christian Kujau
- Christian von Roques
- Christian Weisgerber
- Christoph Junghans
- Collin Funk
- Conley Moorhous
- Cristian Rodríguez
- Cristiano Ceglia
- Dan Shechter
- Dan Stromberg
- Dan Weiss
- Daniel Leonard
- Daniel Mealha Cabrita
- Daniel Packard
- Daniel Richard G.
- David Burklund
- Denis Excoffier
- Derwin McGeary
- Dexter Castor Döpping
- Diederik de Haas
- Diego Elio Pettenò
- Dimitri Papadopoulos Orfanos
- Dirk Müller
- Douglas Thor
- Ed Maste
- Elbert Pol
- Eli Schwartz
- Elijah Almeida Coimbra
- Émilie Labbé
- Emmanuel Blot
- Eric Lindblad
- Eric S. Raymond
- Étienne Mollier
- Evan Nemerson
- Fangrui Song
- Felix Collin
- Filip Palian
- Firas Khalil Khana
- François Etcheverry
- Frank Busse
- Frank Prochnow
- Fredrik Wikstrom
- Gabi Davar
- Gabriela Gutierrez
- Gilles Espinasse
- Gregory Margo
- Guillaume Outters
- Guiorgy Potskhishvili
has been important. :-) In alphabetical order:
- Mark Adler
- Kian-Meng Ang
- H. Peter Anvin
- Hajin Jang
- Hans Jansen
- Harri K. Koskinen
- Hin-Tak Leung
- H.J. Lu
- Hongbo Ni
- Igor Pavlov
- İhsan Doğan
- Ilya Kurdyukov
- Iouri Kharon
- İsmail Dönmez
- Ivan A. Melnikov
- Jakub Bogusz
- James Buren
- James M Leddy
- Jan Kratochvil
- Jan Terje Hansen
- Jason Gorski
- Jeff Bastian
- Jeffrey Walton
- Jeroen Roovers
- Jim Meyering
- Jim Wilcoxson
- Joachim Henke
- John Paul Adrian Glaubitz
- Jonathan Nieder
- Jonathan Stott
- Joona Kannisto
- Jouk Jansen
- Juan Manuel Guerrero
- Jukka Salmi
- Julien Marrec
- Jun I Jin
- Kai Pastor
- Nelson H. F. Beebe
- Karl Beldan
- Karl Berry
- Keith Patton
- Kelvin Lee
- Kevin R. Bulgrien
- Kian-Meng Ang
- Kim Jinyeong
- Kirill A. Korinsky
- Kiyoshi Kanazawa
- Lars Wirzenius
- Li Chenggang
- Lizandro Heredia
- Loganaden Velvindron
- Lorenzo De Liso
- Lukas Braune
- Maarten Bosmans
- Maksym Vatsyk
- Marcin Kowalczyk
- Marcus Comstedt
- Marcus Tillmanns
- Marek Černocký
- Mark Adler
- Mark Wielaard
- Markus Duft
- Markus Rickert
- Martin Blumenstingl
- Martin Matuška
- Martin Storsjö
- Martin Väth
- Mathieu Vachon
- Matthew Good
- Matthieu Rakotojaona
- Anders F. Björklund
- Emmanuel Blot
- Melanie Blower
- Alexander Bluhm
- Martin Blumenstingl
- Ben Boeckel
- Jakub Bogusz
- Adam Borowski
- Maarten Bosmans
- Lukas Braune
- Benjamin Buch
- Trent W. Buck
- Kevin R. Bulgrien
- James Buren
- David Burklund
- Frank Busse
- Daniel Mealha Cabrita
- Milo Casagrande
- Marek Černocký
- Tomer Chachamu
- Vitaly Chikunov
- Antoine Cœur
- Gabi Davar
- İhsan Doğan
- Chris Donawa
- Andrew Dudman
- Markus Duft
- İsmail Dönmez
- Paul Eggert
- Robert Elz
- Gilles Espinasse
- Denis Excoffier
- Vincent Fazio
- Michael Felt
- Michael Fox
- Michał Górny
- Andres Freund
- Mike Frysinger
- Mikko Pouru
- Milo Casagrande
- Mohammed Adnène Trojette
- Nathan Moinvaziri
- Nelson H. F. Beebe
- Nicholas Jackson
- Ole André Vadla Ravnås
- Orange Tsai
- Orgad Shaneh
- Patrick J. Volkerding
- Paul Eggert
- Paul Townsend
- Pavel Raiskup
- Per Øyvind Karlsen
- Peter Ivanov
- Peter Lawler
- Peter O'Gorman
- Peter Pallinger
- Peter Seiderer
- Pierre-Yves Martin
- Pilorz Wojciech
- Pippijn van Steenhoven
- Rafał Mużyło
- Rainer Müller
- Ralf Wildenhues
- Rich Prohaska
- Richard Koch
- Richard W.M. Jones
- Robert Elz
- Robert Readman
- Roel Bouckaert
- Ron Desmond
- Ruarí Ødegaard
- Rui Paulo
- Ryan Colyer
- Ryan Young
- Sam James
- Scott McAllister
- Sean Fenian
- Sebastian Andrzej Siewior
- Sergey Kosukhin
- Simon Josefsson
- Siteshwar Vashisht
- Steffen Nurpmeso
- Stephan Kulow
- Stephen Sachs
- Stuart Shelton
- Taiki Tsunekawa
- Thomas Klausner
- Tobias Lahrmann Hansen
- Tobias Stoeckmann
- Daniel Richard G.
- Tomasz Gajc
- Tomer Chachamu
- Torsten Rupp
- Trần Ngọc Quân
- Trent W. Buck
- Victoria Alexia
- Vijay Sarvepalli
- Ville Koskinen
- Ville Skyttä
- Vincent Cruz
- Vincent Fazio
- Vincent Lefevre
- Vincent Torri
- Vincent Wixsom
- Bjarni Ingi Gislason
- John Paul Adrian Glaubitz
- Bill Glessner
- Matthew Good
- Michał Górny
- Jason Gorski
- Juan Manuel Guerrero
- Gabriela Gutierrez
- Diederik de Haas
- Joachim Henke
- Christian Hesse
- Vincenzo Innocente
- Vitaly Chikunov
- Peter Ivanov
- Nicholas Jackson
- Sam James
- Hajin Jang
- Hans Jansen
- Jouk Jansen
- Jun I Jin
- Kiyoshi Kanazawa
- Joona Kannisto
- Per Øyvind Karlsen
- Iouri Kharon
- Thomas Klausner
- Richard Koch
- Anton Kochkov
- Ville Koskinen
- Sergey Kosukhin
- Marcin Kowalczyk
- Jan Kratochvil
- Christian Kujau
- Stephan Kulow
- Ilya Kurdyukov
- Peter Lawler
- James M Leddy
- Kelvin Lee
- Vincent Lefevre
- Hin-Tak Leung
- Andraž 'ruskie' Levstik
- Cary Lewis
- Wim Lewis
- Xi Ruoyao
- Xin Li
- Yifeng Li
- 榆柳松 (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
- Eric Lindblad
- Lorenzo De Liso
- H.J. Lu
- Bela Lubkin
- Chenxi Mao
- Gregory Margo
- Julien Marrec
- Ed Maste
- Martin Matuška
- Ivan A. Melnikov
- Jim Meyering
- Arkadiusz Miskiewicz
- Nathan Moinvaziri
- Étienne Mollier
- Conley Moorhous
- Rafał Mużyło
- Adrien Nader
- Evan Nemerson
- Hongbo Ni
- Jonathan Nieder
- Andre Noll
- Peter O'Gorman
- Dimitri Papadopoulos Orfanos
- Daniel Packard
- Filip Palian
- Peter Pallinger
- Rui Paulo
- Igor Pavlov
- Diego Elio Pettenò
- Elbert Pol
- Mikko Pouru
- Rich Prohaska
- Trần Ngọc Quân
- Pavel Raiskup
- Ole André Vadla Ravnås
- Eric S. Raymond
- Robert Readman
- Bernhard Reutner-Fischer
- Markus Rickert
- Cristian Rodríguez
- Christian von Roques
- Boud Roukema
- Torsten Rupp
- Stephen Sachs
- Jukka Salmi
- Agostino Sarubbo
- Alexandre Sauvé
- Benno Schulenberg
- Andreas Schwab
- Bhargava Shastry
- Dan Shechter
- Stuart Shelton
- Sebastian Andrzej Siewior
- Ville Skyttä
- Brad Smith
- Bruce Stark
- Pippijn van Steenhoven
- Martin Storsjö
- Jonathan Stott
- Dan Stromberg
- Vincent Torri
- Alexey Tourbin
- Paul Townsend
- Mohammed Adnène Trojette
- Taiki Tsunekawa
- Maksym Vatsyk
- Loganaden Velvindron
- Patrick J. Volkerding
- Martin Väth
- Adam Walling
- Jeffrey Walton
- Christian Weisgerber
- Dan Weiss
- Bert Wesarg
- Fredrik Wikstrom
- Jim Wilcoxson
- Ralf Wildenhues
- Charles Wilson
- Lars Wirzenius
- Pilorz Wojciech
- Chien Wong
- Ryan Young
- Andreas Zieringer
Also thanks to all the people who have participated in the Tukaani project.

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

@ -19,7 +19,7 @@ ${AUTOMAKE:-automake} -acf --foreign
# Generate the translated man pages if the "po4a" tool is available.
# This is *NOT* done by "autoreconf -fi" or when "make" is run.
# Pass --no-po4a to this script to skip this step.
# Pass --no-po4a o this script to skip this step.
# It can be useful when you know that po4a isn't available and
# don't want autogen.sh to exit with non-zero exit status.
generate_po4a="y"

View File

@ -43,7 +43,6 @@ NATIVE_LANG_SUPPORT="y"
SMALL="n"
CLMUL="y"
SANDBOX="y"
DOXYGEN="y"
SRC_DIR="$ABS_DIR/../"
DEST_DIR="$SRC_DIR/../xz_build"
PHASE="all"
@ -92,7 +91,6 @@ while getopts a:b:c:d:l:m:n:s:p:f:w:h opt; do
small) SMALL="y";;
clmul) CLMUL="n";;
sandbox) SANDBOX="n";;
doxygen) DOXYGEN="n";;
*) echo "Invalid disable value: $disable_arg"; exit 1 ;;
esac
done
@ -115,10 +113,6 @@ while getopts a:b:c:d:l:m:n:s:p:f:w:h opt; do
;;
w) WRAPPER="$OPTARG"
;;
*)
echo "Unsupported option: $opt"
exit 1
;;
esac
done
@ -172,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
@ -213,17 +215,7 @@ then
add_extra_option "$NATIVE_LANG_SUPPORT" "" "--disable-nls"
add_extra_option "$SMALL" "--enable-small" ""
add_extra_option "$CLMUL" "" "--disable-clmul-crc"
add_extra_option "$SANDBOX" "" "--disable-sandbox"
add_extra_option "$DOXYGEN" "--enable-doxygen" ""
# Workaround a bug in too old config.guess. Version with
# timestamp='2022-05-08' would be needed but the autotools-dev
# package has 2022-01-09 in Ubuntu 22.04LTS and 24.04LTS. The
# bug breaks i386 assembler usage autodetection.
if "$SRC_DIR/build-aux/config.guess" | grep -q x86_64-pc-linux-gnux32
then
EXTRA_OPTIONS="$EXTRA_OPTIONS --build=i686-pc-linux-gnu"
fi
add_extra_option "$SANDBOX" "" "--enable-sandbox=no"
# Run configure script
"$SRC_DIR"/configure --enable-werror --enable-checks="$CHECK_TYPE" $EXTRA_OPTIONS --config-cache
@ -237,24 +229,26 @@ 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 "$NATIVE_LANG_SUPPORT" "" "-DXZ_NLS=OFF"
add_extra_option "$SMALL" "-DXZ_SMALL=ON" ""
add_extra_option "$DOXYGEN" "-DXZ_DOXYGEN=ON" ""
add_extra_option "$SMALL" "-DHAVE_SMALL=ON" ""
if test -n "$CC" ; then
EXTRA_OPTIONS="$EXTRA_OPTIONS -DCMAKE_C_COMPILER=$CC"
fi
# 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
@ -282,7 +276,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

@ -42,12 +42,12 @@ case $FORMAT in
groff -t -mandoc -Tutf8 -P-c | col -bx
;;
ps)
sed "$SED_PD" | groff -dpaper="$PAPER" -t -mandoc \
-rC1 -rS"$FONT" -Tps -P-p"$PAPER"
sed "$SED_PD" | groff -dpaper=$PAPER -t -mandoc \
-rC1 -rS$FONT -Tps -P-p$PAPER
;;
pdf)
sed "$SED_PD" | groff -dpaper="$PAPER" -t -mandoc \
-rC1 -rS"$FONT" -Tps -P-p"$PAPER" | ps2pdf - -
sed "$SED_PD" | groff -dpaper=$PAPER -t -mandoc \
-rC1 -rS$FONT -Tps -P-p$PAPER | ps2pdf - -
;;
*)
echo 'Invalid arguments' >&2

View File

@ -17,5 +17,6 @@ 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' \
| tr -d '\012\015\025'
| tr '\n' '|' \
| sed 's/|/./; s/|/./; s/|//g' \
| tr -d '\r\n'

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,69 +14,6 @@ include(CheckCSourceCompiles)
include(CheckIncludeFile)
include(CheckSymbolExists)
# An internal helper for tuklib_integer that attempts to detect if
# -mstrict-align or -mno-strict-align is in effect. This sets the
# cache variable TUKLIB_INTEGER_STRICT_ALIGN to ON if OBJDUMP_REGEX
# matches the objdump output of a check program. Otherwise it is set to OFF.
function(tuklib_integer_internal_strict_align OBJDUMP_REGEX)
if(NOT DEFINED TUKLIB_INTEGER_STRICT_ALIGN)
# Build a static library because then the function won't be optimized
# away, and there won't be any unrelated startup code either.
set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
# CMake >= 3.25 wouldn't require us to create a temporary file,
# but the following method is compatible with 3.20.
file(WRITE "${CMAKE_BINARY_DIR}/tuklib_integer_strict_align.c" "
#include <string.h>
unsigned int check_strict_align(const void *p)
{
unsigned int i;
memcpy(&i, p, sizeof(i));
return i;
}
")
# Force -O2 because memcpy() won't be optimized out if optimizations
# are disabled.
try_compile(
TRY_COMPILE_RESULT
"${CMAKE_BINARY_DIR}"
"${CMAKE_BINARY_DIR}/tuklib_integer_strict_align.c"
COMPILE_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS}"
CMAKE_FLAGS "-DCOMPILE_DEFINITIONS=${CMAKE_REQUIRED_FLAGS} -O2"
COPY_FILE "${CMAKE_BINARY_DIR}/tuklib_integer_strict_align.a"
)
if(NOT TRY_COMPILE_RESULT)
message(FATAL_ERROR
"Compilation of the strict align check failed. "
"Either the specified compiler flags are broken "
"or ${CMAKE_CURRENT_FUNCTION_LIST_FILE} has a bug.")
endif()
# Use WORKING_DIRECTORY instead of passing the full path to objdump.
# This ensures that the pathname won't affect the objdump output,
# which could result in an unwanted regex match in the next step.
execute_process(
COMMAND "${CMAKE_OBJDUMP}" -d "tuklib_integer_strict_align.a"
WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
OUTPUT_VARIABLE OBJDUMP_OUTPUT
RESULT_VARIABLE OBJDUMP_RESULT
)
# FIXME? Should we remove the temporary files here?
# Look for instructions that load unsigned bytes. If none are found,
# assume that -mno-strict-align is in effect.
if(OBJDUMP_RESULT STREQUAL "0" AND
OBJDUMP_OUTPUT MATCHES "${OBJDUMP_REGEX}")
set(TUKLIB_INTEGER_STRICT_ALIGN ON CACHE INTERNAL "")
else()
set(TUKLIB_INTEGER_STRICT_ALIGN OFF CACHE INTERNAL "")
endif()
endif()
endfunction()
function(tuklib_integer TARGET_OR_ALL)
# Check for endianness. Unlike the Autoconf's AC_C_BIGENDIAN, this doesn't
# support Apple universal binaries. The CMake module will leave the
@ -123,145 +60,61 @@ function(tuklib_integer TARGET_OR_ALL)
endif()
endif()
# Autodetect if unaligned memory access is fast when the cache variable
# TUKLIB_FAST_UNALIGNED_ACCESS isn't set. The result is stored in
# FAST_UNALIGNED_GUESS. Assume that unaligned access shouldn't be used.
# Initialize the variable here so that it's never undefined in the
# option() command after the if()...endif() block.
# Guess that unaligned access is fast on these archs:
# - 32/64-bit x86 / x86-64
# - 32/64-bit big endian PowerPC
# - 64-bit little endian PowerPC
# - Some 32-bit ARM
# - Some 64-bit ARM64 (AArch64)
# - Some 32/64-bit RISC-V
#
# CMake doesn't provide a standardized/normalized list of processor arch
# names. For example, x86-64 may be "x86_64" (Linux), "AMD64" (Windows),
# or even "EM64T" (64-bit WinXP).
set(FAST_UNALIGNED_GUESS OFF)
if(NOT DEFINED TUKLIB_FAST_UNALIGNED_ACCESS)
message(CHECK_START "Check if unaligned memory access should be used")
string(TOLOWER "${CMAKE_SYSTEM_PROCESSOR}" PROCESSOR)
# Guess that unaligned access is fast on these archs:
# - 32/64-bit x86 / x86-64
# - 32/64-bit big endian PowerPC
# - 64-bit little endian PowerPC
# - 32/64-bit Loongarch (*)
# - Some 32-bit ARM
# - Some 64-bit ARM64 (AArch64)
# - Some 32/64-bit RISC-V
#
# (*) See sections 7.4, 8.1, and 8.2:
# https://github.com/loongson/la-softdev-convention/blob/v0.2/la-softdev-convention.adoc
#
# That is, desktop and server processors likely support
# unaligned access in hardware but embedded processors
# might not. GCC defaults to -mno-strict-align and so
# do majority of GNU/Linux distributions. As of
# GCC 15.2, there is no predefined macro to detect
# if -mstrict-align or -mno-strict-align is in effect.
# We use heuristics based on compiler output.
#
# CMake < 4.1 doesn't provide a standardized/normalized list of arch
# names. For example, x86-64 may be "x86_64" (Linux),
# "AMD64" (Windows), or even "EM64T" (64-bit WinXP).
string(TOLOWER "${CMAKE_SYSTEM_PROCESSOR}" PROCESSOR)
# There is no ^ in the first regex branch to allow "i" at the beginning
# so it can match "i386" to "i786", and "x86_64".
if(PROCESSOR MATCHES "[x34567]86|^x64|^amd64|^em64t")
set(FAST_UNALIGNED_GUESS ON)
# CMake 4.1 made CMAKE_<LANG>_COMPILER_ARCHITECTURE_ID useful on many
# targets. In earlier versions it's still useful with MSVC with which
# CMAKE_SYSTEM_PROCESSOR can refer to the build machine.
if(NOT CMAKE_C_COMPILER_ARCHITECTURE_ID STREQUAL "")
# CMake 4.2.0 docs say that the list typically has only one entry
# except possibly on macOS. On macOS, most (all?) archs support
# unaligned access. Just pick the first one from the list.
list(GET CMAKE_C_COMPILER_ARCHITECTURE_ID 0 PROCESSOR)
string(TOLOWER "${PROCESSOR}" PROCESSOR)
endif()
# There is no ^ in the first regex branch to allow "i" at
# the beginning so it can match "i386" to "i786", and "x86_64".
if(PROCESSOR MATCHES "[x34567]86|^x64|^amd64|^em64t")
elseif(PROCESSOR MATCHES "^powerpc|^ppc")
if(WORDS_BIGENDIAN OR PROCESSOR MATCHES "64")
set(FAST_UNALIGNED_GUESS ON)
elseif(PROCESSOR MATCHES "^powerpc|^ppc")
if(WORDS_BIGENDIAN OR PROCESSOR MATCHES "64")
set(FAST_UNALIGNED_GUESS ON)
endif()
elseif(PROCESSOR MATCHES "^arm|^riscv" AND
NOT PROCESSOR MATCHES "^arm64")
# On 32-bit ARM, GCC and Clang # #define __ARM_FEATURE_UNALIGNED
# if and only if unaligned access is supported.
#
# RISC-V C API Specification says that if
# __riscv_misaligned_fast is defined then
# unaligned access is known to be fast.
#
# MSVC is handled as a special case: We assume that
# 32-bit ARM supports fast unaligned access.
# If MSVC gets RISC-V support then this will assume
# fast unaligned access on RISC-V too.
check_c_source_compiles("
#if !defined(__ARM_FEATURE_UNALIGNED) \
&& !defined(__riscv_misaligned_fast) \
&& !defined(_MSC_VER)
compile error
#endif
int main(void) { return 0; }
"
TUKLIB_FAST_UNALIGNED_DEFINED_BY_PREPROCESSOR)
if(TUKLIB_FAST_UNALIGNED_DEFINED_BY_PREPROCESSOR)
set(FAST_UNALIGNED_GUESS ON)
endif()
elseif(PROCESSOR MATCHES "^aarch64|^arm64")
# On ARM64, Clang defines __ARM_FEATURE_UNALIGNED if and only if
# unaligned access is supported. However, GCC (at least up to 15.2.0)
# defines it even when using -mstrict-align, so autodetection with
# this macro doesn't work with GCC on ARM64. (It does work on
# 32-bit ARM.) See:
#
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111555
#
# We need three checks:
#
# 1. If __ARM_FEATURE_UNALIGNED is defined and the
# compiler isn't GCC, unaligned access is enabled.
# If the compiler is MSVC, unaligned access is
# enabled even without __ARM_FEATURE_UNALIGNED.
check_c_source_compiles("
#if defined(__ARM_FEATURE_UNALIGNED) \
&& (!defined(__GNUC__) || defined(__clang__))
#elif defined(_MSC_VER)
#else
compile error
#endif
int main(void) { return 0; }
"
TUKLIB_FAST_UNALIGNED_DEFINED_BY_PREPROCESSOR)
if(TUKLIB_FAST_UNALIGNED_DEFINED_BY_PREPROCESSOR)
set(FAST_UNALIGNED_GUESS ON)
else()
# 2. If __ARM_FEATURE_UNALIGNED is not defined,
# unaligned access is disabled.
check_c_source_compiles("
#ifdef __ARM_FEATURE_UNALIGNED
compile error
#endif
int main(void) { return 0; }
"
TUKLIB_FAST_UNALIGNED_NOT_DEFINED_BY_PREPROCESSOR)
if(NOT TUKLIB_FAST_UNALIGNED_NOT_DEFINED_BY_PREPROCESSOR)
# 3. Use heuristics to detect if -mstrict-align is
# in effect when building with GCC.
tuklib_integer_internal_strict_align("[ \t]ldrb[ \t]")
if(NOT TUKLIB_INTEGER_STRICT_ALIGN)
set(FAST_UNALIGNED_GUESS ON)
endif()
endif()
endif()
elseif(PROCESSOR MATCHES "^loongarch")
tuklib_integer_internal_strict_align("[ \t]ld\\.bu[ \t]")
if(NOT TUKLIB_INTEGER_STRICT_ALIGN)
set(FAST_UNALIGNED_GUESS ON)
endif()
endif()
if(FAST_UNALIGNED_GUESS)
message(CHECK_PASS "yes")
else()
message(CHECK_PASS "no")
elseif(PROCESSOR MATCHES "^arm|^aarch64|^riscv")
# On 32-bit and 64-bit ARM, GCC and Clang
# #define __ARM_FEATURE_UNALIGNED if
# unaligned access is supported.
#
# Exception: GCC at least up to 13.2.0
# defines it even when using -mstrict-align
# so in that case this autodetection goes wrong.
# Most of the time -mstrict-align isn't used so it
# shouldn't be a common problem in practice. See:
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111555
#
# RISC-V C API Specification says that if
# __riscv_misaligned_fast is defined then
# unaligned access is known to be fast.
#
# MSVC is handled as a special case: We assume that
# 32/64-bit ARM supports fast unaligned access.
# If MSVC gets RISC-V support then this will assume
# fast unaligned access on RISC-V too.
check_c_source_compiles("
#if !defined(__ARM_FEATURE_UNALIGNED) \
&& !defined(__riscv_misaligned_fast) \
&& !defined(_MSC_VER)
compile error
#endif
int main(void) { return 0; }
"
TUKLIB_FAST_UNALIGNED_DEFINED_BY_PREPROCESSOR)
if(TUKLIB_FAST_UNALIGNED_DEFINED_BY_PREPROCESSOR)
set(FAST_UNALIGNED_GUESS ON)
endif()
endif()

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,38 +627,12 @@ 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
echo "POSIX threading support:"
AX_PTHREAD([:]) dnl We don't need the HAVE_PTHREAD macro.
LIBS="$PTHREAD_LIBS $LIBS"
LIBS="$LIBS $PTHREAD_LIBS"
AM_CFLAGS="$AM_CFLAGS $PTHREAD_CFLAGS"
dnl NOTE: PTHREAD_CC is ignored. It would be useful on AIX,
@ -758,7 +717,6 @@ fi
# --with-pic and --without-pic though. As long as neither --with-pic nor
# --without-pic is used then we can use #ifdef PIC to detect if the file is
# being built for a shared library.
LINKER_FLAG_UNDEFINED_VERSION=
AS_IF([test "x$enable_symbol_versions" = xno], [
enable_symbol_versions=no
AC_MSG_RESULT([no])
@ -832,34 +790,12 @@ AS_IF([test "x$enable_symbol_versions" = xno], [
AC_MSG_ERROR([unknown symbol versioning variant '$enable_symbol_versions'])
fi
AC_MSG_RESULT([yes ($enable_symbol_versions)])
# If features are disabled in liblzma, some symbols may be missing.
# LLVM's lld defaults to --no-undefined-version and the build breaks
# if not all symbols in the version script exist. That is good for
# catching errors like typos, but in our case the downside is too big.
# Avoid the problem by using --undefined-version if the linker
# supports it.
#
# GNU ld has had --no-undefined-version for a long time but it's not
# the default. The opposite option --undefined-version was only added
# in 2022, thus we must use --undefined-version conditionally.
AC_MSG_CHECKING([if linker supports --undefined-version])
OLD_LDFLAGS=$LDFLAGS
LDFLAGS="$LDFLAGS -Wl,--undefined-version"
AC_LINK_IFELSE([AC_LANG_SOURCE([[int main(void) { return 0; }]])], [
LINKER_FLAG_UNDEFINED_VERSION=-Wl,--undefined-version
AC_MSG_RESULT([yes])
], [
AC_MSG_RESULT([no])
])
LDFLAGS=$OLD_LDFLAGS
])
AM_CONDITIONAL([COND_SYMVERS_LINUX],
[test "x$enable_symbol_versions" = xlinux])
AM_CONDITIONAL([COND_SYMVERS_GENERIC],
[test "x$enable_symbol_versions" = xgeneric])
AC_SUBST([LINKER_FLAG_UNDEFINED_VERSION])
###############################################################################
@ -875,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.
@ -949,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"
@ -1008,8 +922,8 @@ AC_CHECK_DECL([CLOCK_MONOTONIC], [AC_DEFINE([HAVE_CLOCK_MONOTONIC], [1],
# Find the best function to set timestamps.
AC_CHECK_FUNCS([futimens futimes futimesat utimes _futime utime], [break])
# These are nice to have but not mandatory.
AC_CHECK_FUNCS([getrlimit posix_fadvise])
# This is nice to have but not mandatory.
AC_CHECK_FUNCS([posix_fadvise])
TUKLIB_PROGNAME
TUKLIB_INTEGER
@ -1096,15 +1010,11 @@ AC_CHECK_DECL([_mm_movemask_epi8],
#
# If everything above is supported, runtime detection will be used to keep the
# binaries working on systems that don't support the required extensions.
#
# NOTE: Use a check that links and not merely compiles to ensure that
# missing intrinsics don't get accepted with compilers that allow
# implicit function declarations.
AC_MSG_CHECKING([if _mm_clmulepi64_si128 is usable])
AS_IF([test "x$enable_clmul_crc" = xno], [
AC_MSG_RESULT([no, --disable-clmul-crc was used])
], [
AC_LINK_IFELSE([AC_LANG_SOURCE([[
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
#include <immintrin.h>
// CLMUL works on older E2K instruction set but it is slow due to emulation.
@ -1118,11 +1028,10 @@ AS_IF([test "x$enable_clmul_crc" = xno], [
#if (defined(__GNUC__) || defined(__clang__)) && !defined(__EDG__)
__attribute__((__target__("ssse3,sse4.1,pclmul")))
#endif
int main(void)
__m128i my_clmul(__m128i a)
{
__m128i a = _mm_set_epi64x(1, 2);
a = _mm_clmulepi64_si128(a, a, 0);
return 0;
const __m128i b = _mm_set_epi64x(1, 2);
return _mm_clmulepi64_si128(a, b, 0);
}
]])], [
AC_DEFINE([HAVE_USABLE_CLMUL], [1],
@ -1144,16 +1053,24 @@ AC_MSG_CHECKING([if ARM64 CRC32 instruction is usable])
AS_IF([test "x$enable_arm64_crc32" = xno], [
AC_MSG_RESULT([no, --disable-arm64-crc32 was used])
], [
AC_LINK_IFELSE([AC_LANG_SOURCE([[
# Set -Werror here because some versions of Clang (14 and older)
# do not report the unsupported __attribute__((__target__("+crc")))
# or __crc32d() as an error, only as a warning. This does not need
# to be done with CMake because tests will attempt to link and the
# error will be reported then.
OLD_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -Werror"
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
#include <arm_acle.h>
#include <stdint.h>
#if (defined(__GNUC__) || defined(__clang__)) && !defined(__EDG__)
__attribute__((__target__("+crc")))
#endif
int main(void)
uint32_t my_crc(uint32_t a, uint64_t b)
{
return __crc32d(1, 2) != 0;
return __crc32d(a, b);
}
]])], [
AC_DEFINE([HAVE_ARM64_CRC32], [1],
@ -1164,56 +1081,19 @@ int main(void)
enable_arm64_crc32=no
])
AC_MSG_RESULT([$enable_arm64_crc32])
CFLAGS="$OLD_CFLAGS"
])
# Check for ARM64 CRC32 instruction runtime detection.
#
# - getauxval() is supported on Linux. We also need HWCAP_CRC32 which was
# added in glibc 2.24.
#
# - elf_aux_info() is supported on FreeBSD and OpenBSD >= 7.6.
#
# - sysctlbyname("hw.optional.armv8_crc32", ...) is supported on Darwin
# (macOS, iOS, etc.). Note that sysctlbyname() is supported on FreeBSD,
# NetBSD, and possibly others too but the string is specific to Apple
# OSes. The C code is responsible for checking defined(__APPLE__)
# before using sysctlbyname("hw.optional.armv8_crc32", ...).
#
# getauxval() is supported on Linux, elf_aux_info() on FreeBSD, and
# sysctlbyname("hw.optional.armv8_crc32", ...) is supported on Darwin
# (macOS, iOS, etc.). Note that sysctlbyname() is supported on FreeBSD,
# NetBSD, and possibly others too but the string is specific to Apple OSes.
# The C code is responsible for checking defined(__APPLE__) before using
# sysctlbyname("hw.optional.armv8_crc32", ...).
AS_IF([test "x$enable_arm64_crc32" = xyes], [
AC_CHECK_FUNCS([getauxval elf_aux_info sysctlbyname], [break])
AC_CHECK_DECL([HWCAP_CRC32], [AC_DEFINE([HAVE_HWCAP_CRC32], [1],
[Define to 1 if 'HWCAP_CRC32' is declared in <sys/auxv.h>.])],
[], [[#include <sys/auxv.h>]])
])
# 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])
])
@ -1246,25 +1126,24 @@ AS_CASE([$enable_sandbox],
# A compile check is done here because some systems have
# linux/landlock.h, but do not have the syscalls defined
# in order to actually use Linux Landlock.
AC_LINK_IFELSE([AC_LANG_SOURCE([[
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
#include <linux/landlock.h>
#include <sys/syscall.h>
#include <sys/prctl.h>
int main(void)
void my_sandbox(void)
{
(void)prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0);
(void)SYS_landlock_create_ruleset;
(void)SYS_landlock_restrict_self;
(void)LANDLOCK_CREATE_RULESET_VERSION;
return 0;
return;
}
]])], [
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],
@ -1346,8 +1225,6 @@ AS_IF([test "$GCC" = yes], [
-Wmissing-prototypes \
-Wmissing-declarations \
-Wredundant-decls \
-Wimplicit-fallthrough \
-Wimplicit-fallthrough=5 \
\
-Wc99-compat \
-Wc11-extensions \
@ -1360,7 +1237,6 @@ AS_IF([test "$GCC" = yes], [
-Wdocumentation \
-Wduplicate-enum \
-Wempty-translation-unit \
-Wextra-semi-stmt \
-Wflexible-array-extensions \
-Wmissing-variable-declarations \
-Wnewline-eof \

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,249 +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
b4c8a939220546e275456fac3d19540b152a85dfdb13d6e36289ed8fb49cb700 xz-5.8.2.tar
60345d7c0b9c8d7ffa469e96898c300def3669f5047fc76219b819340839f3d8 xz-5.8.2.tar.bz2
ce09c50a5962786b83e5da389c90dd2c15ecd0980a258dd01f70f9e7ce58a8f1 xz-5.8.2.tar.gz
890966ec3f5d5cc151077879e157c0593500a522f413ac50ba26d22a9a145214 xz-5.8.2.tar.xz
c90c4044b9562594d2125409dd4969ce0e281b9db60d2224c2f4a5419c7e2a4e xz-5.8.2-windows.zip
a64996b3219461bd959735376eb413fecfe71a6247bcdb870a7be30bf2040fd8 xz-5.8.2-windows.7z

View File

@ -45,7 +45,7 @@ init_encoder(lzma_stream *strm)
}
// Now we could customize the LZMA2 options if we wanted. For example,
// we could set the dictionary size (opt_lzma2.dict_size) to
// we could set the the dictionary size (opt_lzma2.dict_size) to
// something else than the default (8 MiB) of the default preset.
// See lzma/lzma12.h for details of all LZMA2 options.
//

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

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

@ -71,7 +71,7 @@ main(void)
# -lfreebsd-glue when linking and thus in the current form this would
# fail on GNU/kFreeBSD. The above test for sched_getaffinity() matches
# on GNU/kFreeBSD so the test below should never run on that OS.
AC_LINK_IFELSE([AC_LANG_SOURCE([[
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
#include <sys/param.h>
#include <sys/cpuset.h>
@ -92,7 +92,7 @@ main(void)
#
# We test sysctl() first and intentionally break the sysctl() test on QNX
# so that sysctl() is never used on QNX.
AC_LINK_IFELSE([AC_LANG_SOURCE([[
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
#ifdef __QNX__
compile error
#endif
@ -116,7 +116,7 @@ main(void)
}
]])], [tuklib_cv_cpucores_method=sysctl], [
AC_LINK_IFELSE([AC_LANG_SOURCE([[
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
#include <unistd.h>
int
main(void)
@ -133,7 +133,7 @@ main(void)
}
]])], [tuklib_cv_cpucores_method=sysconf], [
AC_LINK_IFELSE([AC_LANG_SOURCE([[
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
#include <sys/param.h>
#include <sys/pstat.h>

View File

@ -62,58 +62,6 @@ main(void)
fi
])
# On archs that we use tuklib_integer_strict_align() (see below), we need
# objdump to detect support for unaligned access. (Libtool needs objdump
# too, so Libtool does this same tool check as well.)
AC_CHECK_TOOL([OBJDUMP], [objdump], [false])
# An internal helper that attempts to detect if -mstrict-align or
# -mno-strict-align is in effect. This sets enable_unaligned_access=yes
# if compilation succeeds and the regex passed as an argument does *not*
# match the objdump output of a check program. Otherwise this sets
# enable_unaligned_access=no.
tuklib_integer_strict_align ()
{
# First guess no.
enable_unaligned_access=no
# Force -O2 because without optimizations the memcpy()
# won't be optimized out.
tuklib_integer_saved_CFLAGS=$CFLAGS
CFLAGS="$CFLAGS -O2"
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
#include <string.h>
unsigned int check_strict_align(const void *p)
{
unsigned int i;
memcpy(&i, p, sizeof(i));
return i;
}
]])], [
# Disassemble the test function from the object file.
if $OBJDUMP -d conftest.$ac_objext > conftest.s ; then
# This function should be passed a regex that
# matches if there are instructions that load
# unsigned bytes. Such instructions indicate
# that -mstrict-align is in effect.
#
# NOTE: Use braces to avoid M4 parameter
# expansion.
if grep -- "${1}" conftest.s > /dev/null ; then
:
else
# No single-byte unsigned load
# instructions were found,
# so it seems that -mno-strict-align
# is in effect.
# Override our earlier guess.
enable_unaligned_access=yes
fi
fi
])
CFLAGS=$tuklib_integer_saved_CFLAGS
}
AC_MSG_CHECKING([if unaligned memory access should be used])
AC_ARG_ENABLE([unaligned-access], AS_HELP_STRING([--enable-unaligned-access],
[Enable if the system supports *fast* unaligned memory access
@ -130,90 +78,34 @@ if test "x$enable_unaligned_access" = xauto ; then
i?86|x86_64|powerpc|powerpc64|powerpc64le)
enable_unaligned_access=yes
;;
arm*|riscv*)
# On 32-bit ARM, GCC and Clang
# #define __ARM_FEATURE_UNALIGNED
# if and only if unaligned access is supported.
arm*|aarch64*|riscv*)
# On 32-bit and 64-bit ARM, GCC and Clang
# #define __ARM_FEATURE_UNALIGNED if
# unaligned access is supported.
#
# Exception: GCC at least up to 13.2.0
# defines it even when using -mstrict-align
# so in that case this autodetection goes wrong.
# Most of the time -mstrict-align isn't used so it
# shouldn't be a common problem in practice. See:
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111555
#
# RISC-V C API Specification says that if
# __riscv_misaligned_fast is defined then
# unaligned access is known to be fast.
#
# MSVC is handled as a special case: We assume that
# 32-bit ARM supports fast unaligned access.
# 32/64-bit ARM supports fast unaligned access.
# If MSVC gets RISC-V support then this will assume
# fast unaligned access on RISC-V too.
AC_COMPILE_IFELSE([AC_LANG_SOURCE([
#if !defined(__ARM_FEATURE_UNALIGNED) \
&& !defined(__riscv_misaligned_fast) \
&& !defined(_MSC_VER)
compile error
#endif
int main(void) { return 0; }
])],
[enable_unaligned_access=yes],
[enable_unaligned_access=no])
;;
aarch64*)
# On ARM64, Clang defines __ARM_FEATURE_UNALIGNED
# if and only if unaligned access is supported.
# However, GCC (at least up to 15.2.0) defines it
# even when using -mstrict-align, so autodetection
# with this macro doesn't work with GCC on ARM64.
# (It does work on 32-bit ARM.) See:
#
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111555
#
# We need three checks:
#
# 1. If __ARM_FEATURE_UNALIGNED is defined and the
# compiler isn't GCC, unaligned access is enabled.
# If the compiler is MSVC, unaligned access is
# enabled even without __ARM_FEATURE_UNALIGNED.
AC_COMPILE_IFELSE([AC_LANG_SOURCE([
#if defined(__ARM_FEATURE_UNALIGNED) \
&& (!defined(__GNUC__) \
|| defined(__clang__))
#elif defined(_MSC_VER)
#else
compile error
#endif
int main(void) { return 0; }
])], [enable_unaligned_access=yes])
# 2. If __ARM_FEATURE_UNALIGNED is not defined,
# unaligned access is disabled.
if test "x$enable_unaligned_access" = xauto ; then
AC_COMPILE_IFELSE([AC_LANG_SOURCE([
#ifdef __ARM_FEATURE_UNALIGNED
compile error
#endif
int main(void) { return 0; }
])], [enable_unaligned_access=no])
fi
# 3. Use heuristics to detect if -mstrict-align is
# in effect when building with GCC.
if test "x$enable_unaligned_access" = xauto ; then
[tuklib_integer_strict_align \
'[[:blank:]]ldrb[[:blank:]]']
fi
;;
loongarch*)
# See sections 7.4, 8.1, and 8.2:
# https://github.com/loongson/la-softdev-convention/blob/v0.2/la-softdev-convention.adoc
#
# That is, desktop and server processors likely support
# unaligned access in hardware but embedded processors
# might not. GCC defaults to -mno-strict-align and so
# do majority of GNU/Linux distributions. As of
# GCC 15.2, there is no predefined macro to detect
# if -mstrict-align or -mno-strict-align is in effect.
# Use heuristics based on compiler output.
[
tuklib_integer_strict_align \
'[[:blank:]]ld\.bu[[:blank:]]'
]
#if !defined(__ARM_FEATURE_UNALIGNED) \
&& !defined(__riscv_misaligned_fast) \
&& !defined(_MSC_VER)
compile error
#endif
int main(void) { return 0; }
])], [enable_unaligned_access=yes], [enable_unaligned_access=no])
;;
*)
enable_unaligned_access=no

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

@ -65,11 +65,6 @@ compile error
# Look for AIX-specific solution before sysconf(), because the test
# for sysconf() will pass on AIX but won't actually work
# (sysconf(_SC_PHYS_PAGES) compiles but always returns -1 on AIX).
#
# NOTE: There is no need to link the check program because it's not calling
# any functions and thus implicit function declarations aren't a problem.
# The unused reference to _system_configuration.physmem might get optimized
# away, and thus the linker might not see that symbol anyway.
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
#include <sys/systemcfg.h>
@ -81,7 +76,7 @@ main(void)
}
]])], [tuklib_cv_physmem_method=aix], [
AC_LINK_IFELSE([AC_LANG_SOURCE([[
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
#include <unistd.h>
int
main(void)
@ -93,7 +88,7 @@ main(void)
}
]])], [tuklib_cv_physmem_method=sysconf], [
AC_LINK_IFELSE([AC_LANG_SOURCE([[
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
#ifdef HAVE_SYS_PARAM_H
# include <sys/param.h>
#endif
@ -109,7 +104,7 @@ main(void)
}
]])], [tuklib_cv_physmem_method=sysctl], [
AC_LINK_IFELSE([AC_LANG_SOURCE([[
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
#include <sys/sysinfo.h>
#include <machine/hal_sysinfo.h>
@ -123,7 +118,7 @@ main(void)
}
]])], [tuklib_cv_physmem_method=getsysinfo],[
AC_LINK_IFELSE([AC_LANG_SOURCE([[
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
#include <sys/param.h>
#include <sys/pstat.h>
@ -138,7 +133,7 @@ main(void)
}
]])], [tuklib_cv_physmem_method=pstat_getstatic],[
AC_LINK_IFELSE([AC_LANG_SOURCE([[
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
#include <invent.h>
int
main(void)
@ -155,7 +150,7 @@ main(void)
# different sysinfo() so we must check $host_os.
case $host_os in
linux*)
AC_LINK_IFELSE([AC_LANG_SOURCE([[
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
#include <sys/sysinfo.h>
int
main(void)

1
po/.gitignore vendored
View File

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

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

@ -10,10 +10,8 @@ src/xz/main.c
src/xz/message.c
src/xz/mytime.c
src/xz/options.c
src/xz/sandbox.c
src/xz/signals.c
src/xz/suffix.c
src/xz/util.c
src/lzmainfo/lzmainfo.c
src/common/tuklib_exit.c
src/liblzma/common/string_conversion.c

1141
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

867
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

3896
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.2-pre1\n"
"POT-Creation-Date: 2025-10-31 13:23+0200\n"
"PO-Revision-Date: 2025-11-01 23:14+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.7\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
@ -580,8 +562,13 @@ msgstr "압축 해제시 B<.lz> 파일만 받아들입니다. 압축은 지원
#. type: Plain text
#: ../src/xz/xz.1
msgid "The B<.lz> format versions 0 and 1 are supported. Version 0 files were produced by B<lzip> 1.3 and older. Such files aren't common but may be found from file archives as a few source packages were released in this format. People might have old personal files in this format too. Decompression support for the format version 0 was removed in B<lzip> 1.18. B<lzip> 1.4 and later create files in the format version 1."
msgstr "B<.lz> 형식 버전 0과 1을 지원합니다. 버전 0파일은 B<lzip> 1.3 이전에서만 만듭니다. 일반적이진 않지만 일부 파일의 경우 이 형식의 원본 패키지로 보관한 파일을 찾을 수도 있습니다. 개인적으로 이 형식으로 압축한 오래된 개인 파일을 가지고 있을 수도 있습니다. 형식 버전 0 압축 해제 지원은 B<lzip> 1.18에서 제거했습니다. B<lzip> 1.4 이후의 버전에서는 버전 1 형식 파일을 만듭니다."
msgid "The B<.lz> format version 0 and the unextended version 1 are supported. Version 0 files were produced by B<lzip> 1.3 and older. Such files aren't common but may be found from file archives as a few source packages were released in this format. People might have old personal files in this format too. Decompression support for the format version 0 was removed in B<lzip> 1.18."
msgstr "B<.lz> 형식 버전 0과 비확장 버전 1을 지원합니다. 버전 0파일은 B<lzip> 1.3 이전에서만 만듭니다. 일반적이진 않지만 일부 파일의 경우 이 형식과 관련된 원본 패키지로 보관한 파일을 찾을 수도 있습니다. 개인적으로 이 형식으로 압축한 오래된 개인 파일을 가지고 있을 수도 있습니다. 형식 버전 0 압축 해제 지원은 B<lzip> 1.18에서 제거했습니다."
#. type: Plain text
#: ../src/xz/xz.1
msgid "B<lzip> 1.4 and later create files in the format version 1. The sync flush marker extension to the format version 1 was added in B<lzip> 1.6. This extension is rarely used and isn't supported by B<xz> (diagnosed as corrupt input)."
msgstr "B<lzip> 1.4 이상에서는 버전 1형식의 파일을 만듭니다. 형식 버전 1로의 동기화 제거 마커 확장은 B<lzip> 1.6에 추가했습니다. 이 확장은 거의 쓰지 않으며 B<xz> 에서 조차도 지원하지 않습니다(손상된 입력 파일로 진단함)."
#. type: TP
#: ../src/xz/xz.1
@ -610,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
@ -1254,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
@ -1537,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
@ -1877,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
@ -2244,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
@ -2264,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
@ -2318,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
@ -2381,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)."
@ -2403,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
@ -2465,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
@ -2500,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
@ -2571,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
@ -2596,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
@ -2631,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
@ -2765,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>"
@ -2882,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
@ -2902,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
@ -2918,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
@ -2929,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
@ -3167,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
@ -3178,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
@ -3189,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
@ -3200,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
@ -3217,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
@ -3248,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
@ -3259,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"
@ -3267,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
@ -3280,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"
@ -3289,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
@ -3313,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
@ -3329,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
@ -3345,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
@ -3356,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
@ -3367,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
@ -3388,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
@ -3413,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
@ -3431,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"
@ -3577,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
@ -3600,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
@ -3625,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
@ -3666,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
@ -3746,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
@ -3792,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"
@ -3804,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
@ -3819,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
@ -3867,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
@ -3882,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
@ -3896,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 sv 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,16 +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 5.8.2-pre1, făcută de R-GC, oct-2025.
# Actualizare a traducerii pentru versiunea Y, făcută de X, Z(luna-anul).
#
msgid ""
msgstr ""
"Project-Id-Version: xz-man 5.8.2-pre1\n"
"POT-Creation-Date: 2025-10-31 13:23+0200\n"
"PO-Revision-Date: 2025-10-31 18:03+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"
@ -31,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.6\n"
"X-Generator: Poedit 3.2.2\n"
#. type: TH
#: ../src/xz/xz.1
@ -40,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
@ -234,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."
@ -344,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
@ -386,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
@ -478,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
@ -554,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
@ -601,8 +580,13 @@ msgstr "Acceptă numai fișierele B<.lz> când decomprimă. Comprimarea nu este
#. type: Plain text
#: ../src/xz/xz.1
msgid "The B<.lz> format versions 0 and 1 are supported. Version 0 files were produced by B<lzip> 1.3 and older. Such files aren't common but may be found from file archives as a few source packages were released in this format. People might have old personal files in this format too. Decompression support for the format version 0 was removed in B<lzip> 1.18. B<lzip> 1.4 and later create files in the format version 1."
msgstr "Sunt acceptate versiunile 0 și 1 ale formatului B<.lz>. Fișierele versiunii 0 au fost create cu B<lzip> 1.3 și versiuni mai vechi. Astfel de fișiere nu sunt comune, dar pot fi găsite în arhivele de fișiere, deoarece câteva pachete sursă au fost lansate în acest format. Este posibil ca oamenii să aibă și fișiere personale vechi în acest format. Suportul pentru decomprimare pentru versiunea 0 a formatului a fost eliminat în B<lzip> 1.18. B<lzip> 1.4 și versiunile ulterioare creează fișiere în versiunea 1 a formatului."
msgid "The B<.lz> format version 0 and the unextended version 1 are supported. Version 0 files were produced by B<lzip> 1.3 and older. Such files aren't common but may be found from file archives as a few source packages were released in this format. People might have old personal files in this format too. Decompression support for the format version 0 was removed in B<lzip> 1.18."
msgstr "Formatul B<.lz> versiunea 0 și versiunea neextinsă 1 sunt acceptate. Fișierele versiunea 0 au fost produse de B<lzip> cu versiunea 1.3 sau mai veche. Astfel de fișiere nu sunt obișnuite, dar pot fi găsite în arhivele de fișiere, deoarece câteva pachete sursă au fost lansate în acest format. Oamenii ar putea avea și fișiere personale vechi în acest format. Suportul de decomprimare pentru versiunea de format 0 a fost eliminat în B<lzip> 1.18."
#. type: Plain text
#: ../src/xz/xz.1
msgid "B<lzip> 1.4 and later create files in the format version 1. The sync flush marker extension to the format version 1 was added in B<lzip> 1.6. This extension is rarely used and isn't supported by B<xz> (diagnosed as corrupt input)."
msgstr "B<lzip> 1.4 și versiunile ulterioare creează fișiere în formatul versiunea 1. Extensia „sync flush marker” pentru versiunea 1 de format a fost adăugată în B<lzip> 1.6. Această extensie este folosită rar și nu este acceptată de B<xz> (diagnosticată ca intrare coruptă)."
#. type: TP
#: ../src/xz/xz.1
@ -631,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
@ -1282,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
@ -1565,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
@ -2276,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
@ -2413,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
@ -2797,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>"
@ -2914,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
@ -2934,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
@ -2950,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
@ -2961,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
@ -3199,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
@ -3210,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
@ -3221,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
@ -3232,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
@ -3249,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
@ -3280,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
@ -3291,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"
@ -3299,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
@ -3312,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"
@ -3321,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
@ -3345,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
@ -3361,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
@ -3377,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
@ -3388,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
@ -3399,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
@ -3420,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
@ -3463,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"
@ -3609,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
@ -3632,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
@ -3657,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
@ -3698,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
@ -3778,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
@ -3824,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"
@ -3836,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
@ -3851,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
@ -3899,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
@ -3914,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
@ -3934,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"

3908
po4a/sr.po

File diff suppressed because it is too large Load Diff

3904
po4a/sv.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.2-pre1\n"
"POT-Creation-Date: 2025-10-31 13:23+0200\n"
"PO-Revision-Date: 2025-10-31 20:48+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
@ -582,8 +564,13 @@ msgstr "Приймати лише файли B<.lz> при розпакуван
#. type: Plain text
#: ../src/xz/xz.1
msgid "The B<.lz> format versions 0 and 1 are supported. Version 0 files were produced by B<lzip> 1.3 and older. Such files aren't common but may be found from file archives as a few source packages were released in this format. People might have old personal files in this format too. Decompression support for the format version 0 was removed in B<lzip> 1.18. B<lzip> 1.4 and later create files in the format version 1."
msgstr "Передбачено підтримку версії формату B<.lz> 0 та 1. Файли версії 0 було створено B<lzip> 1.3 та старішими версіями. Такі файли не є поширеними, але їх можна знайти у файлових архівах, оскільки певну незначну кількість пакунків із початковим кодом було випущено у цьому форматі. Також можуть існувати особисті файли у цьому форматі. Підтримку розпаковування для формату версії 0 було вилучено у B<lzip> 1.18. Версія B<lzip> 1.4 і новіші версії створюють файли у форматі версії 1."
msgid "The B<.lz> format version 0 and the unextended version 1 are supported. Version 0 files were produced by B<lzip> 1.3 and older. Such files aren't common but may be found from file archives as a few source packages were released in this format. People might have old personal files in this format too. Decompression support for the format version 0 was removed in B<lzip> 1.18."
msgstr "Передбачено підтримку версії формату B<.lz> 0 та нерозширеної версії 1. Файли версії 0 було створено B<lzip> 1.3 та старішими версіями. Такі файли не є поширеними, але їх можна знайти у файлових архівах, оскільки певну незначну кількість пакунків із початковим кодом було випущено у цьому форматі. Також можуть існувати особисті файли у цьому форматі. Підтримку розпаковування для формату версії 0 було вилучено у B<lzip> 1.18."
#. type: Plain text
#: ../src/xz/xz.1
msgid "B<lzip> 1.4 and later create files in the format version 1. The sync flush marker extension to the format version 1 was added in B<lzip> 1.6. This extension is rarely used and isn't supported by B<xz> (diagnosed as corrupt input)."
msgstr "B<lzip> 1.4 і пізніші версії створюють файли у форматі версії 1. Розширення синхронізації позначки витирання до формату версії 1 було додано у B<lzip> 1.6. Це розширення використовують не часто, його підтримки у B<xz> не передбачено (програма повідомлятиме про пошкоджені вхідні дані)."
#. type: TP
#: ../src/xz/xz.1
@ -612,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
@ -1256,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
@ -1539,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
@ -2248,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
@ -2268,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
@ -2385,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)."
@ -2769,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>"
@ -2886,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
@ -2906,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
@ -2922,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
@ -2933,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
@ -3171,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
@ -3182,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
@ -3193,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
@ -3204,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
@ -3221,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
@ -3252,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
@ -3263,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"
@ -3271,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
@ -3284,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"
@ -3293,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
@ -3317,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
@ -3333,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
@ -3349,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
@ -3360,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
@ -3371,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
@ -3392,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
@ -3435,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"
@ -3581,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
@ -3604,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
@ -3629,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
@ -3670,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
@ -3750,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
@ -3796,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"
@ -3808,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
@ -3823,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
@ -3871,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
@ -3886,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
@ -3906,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

@ -82,7 +82,7 @@ po4a --force --verbose \
# Remove the *.po.authors files that were generated above.
# This way they won't get included in distribution tarballs.
rm -f -- *.po.authors
rm -f *.po.authors
# Add the customized POT header which contains the SPDX license
# identifier and spells out the license name instead of saying

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,18 +27,12 @@ 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 \
common/tuklib_physmem.h \
common/tuklib_progname.c \
common/tuklib_progname.h \
common/w32_application.manifest \
common/w32_application.manifest.comments.txt
common/tuklib_progname.h

View File

@ -22,15 +22,14 @@
#define MY_PRODUCT PACKAGE_NAME " <" PACKAGE_URL ">"
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
VS_VERSION_INFO VERSIONINFO
FILEVERSION MY_VERSION
PRODUCTVERSION MY_VERSION
FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
FILEFLAGS 0
FILEOS VOS_NT_WINDOWS32
FILETYPE MY_TYPE
FILESUBTYPE 0x0L
FILEVERSION MY_VERSION
PRODUCTVERSION MY_VERSION
FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
FILEFLAGS 0
FILEOS VOS_NT_WINDOWS32
FILETYPE MY_TYPE
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
@ -50,8 +49,3 @@ BEGIN
VALUE "Translation", 0x409, 1200
END
END
/* Omit the manifest on Cygwin and MSYS2 (both define __CYGWIN__). */
#if MY_TYPE == VFT_APP && !defined(__CYGWIN__)
CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "w32_application.manifest"
#endif

View File

@ -1,184 +0,0 @@
// SPDX-License-Identifier: 0BSD
///////////////////////////////////////////////////////////////////////////////
//
/// \file my_landlock.h
/// \brief Linux Landlock sandbox helper functions
///
/// \note This uses static variables to cache the Landlock ABI version.
/// Only one file in an application should include this header.
/// Only one thread should call these 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>
#include <sys/utsname.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));
// Cache the Landlock ABI version:
// 0 = not checked yet
// -1 = Landlock not supported
// >0 = Landlock ABI version
static int abi_version = 0;
#ifdef LANDLOCK_SCOPE_SIGNAL
// Red Hat Enterprise Linux 9 kernel since 5.14.0-603.el9 (2025-07-30)
// claims ABI version 6 support, but as of 5.14.0-643.el9 (2025-11-22)
// it lacks LANDLOCK_SCOPE_SIGNAL. ABI version 6 was added in upstream
// Linux 6.12 while RHEL 9 has Linux 5.14 with lots of backports.
// We assume that any kernel version 5.14 with ABI version 6 is buggy.
static bool is_rhel9 = false;
#endif
if (abi_version == 0) {
abi_version = syscall(SYS_landlock_create_ruleset,
(void *)NULL, 0, LANDLOCK_CREATE_RULESET_VERSION);
#ifdef LANDLOCK_SCOPE_SIGNAL
if (abi_version == 6) {
static const char rel[] = "5.14.";
const size_t rel_len = sizeof(rel) - 1;
struct utsname un;
if (uname(&un) == 0 && strncmp(
un.release, rel, rel_len) == 0)
is_rhel9 = true;
}
#endif
}
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;
case 6:
#ifdef LANDLOCK_SCOPE_SIGNAL
if (is_rhel9)
attr->scoped &= ~LANDLOCK_SCOPE_SIGNAL;
#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

@ -78,8 +78,7 @@ do { \
} while (0)
#if !(defined(_WIN32) && !defined(__CYGWIN__)) \
&& (!defined(__wasm__) || defined(__EMSCRIPTEN__))
#if !(defined(_WIN32) && !defined(__CYGWIN__)) && !defined(__wasm__)
// Use sigprocmask() to set the signal mask in single-threaded programs.
#include <signal.h>

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

@ -86,15 +86,9 @@
#elif defined(HAVE_SYS_ENDIAN_H)
// *BSDs and Darwin
# include <sys/endian.h>
# ifdef __OpenBSD__
# define byteswap16(num) swap16(num)
# define byteswap32(num) swap32(num)
# define byteswap64(num) swap64(num)
# else
# define byteswap16(num) bswap16(num)
# define byteswap32(num) bswap32(num)
# define byteswap64(num) bswap64(num)
# endif
# define byteswap16(num) bswap16(num)
# define byteswap32(num) bswap32(num)
# define byteswap64(num) bswap64(num)
#elif defined(HAVE_SYS_BYTEORDER_H)
// Solaris
@ -243,7 +237,7 @@
// from the memcpy() method than from simple byte-by-byte shift-or code
// when reading a 32-bit integer:
//
// (1) It may be constructed on stack using four 8-bit loads,
// (1) It may be constructed on stack using using four 8-bit loads,
// four 8-bit stores to stack, and finally one 32-bit load from stack.
//
// (2) Especially with -Os, an actual memcpy() call may be emitted.

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;
}

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