aboutsummaryrefslogtreecommitdiff
path: root/src/xzdec (follow)
AgeCommit message (Collapse)AuthorFilesLines
2024-02-14Add SPDX license identifier into 0BSD source code files.Lasse Collin4-2/+7
2024-02-14Change most public domain parts to 0BSD.Lasse Collin5-15/+1
Translations and doc/xz-file-format.txt and doc/lzma-file-format.txt were not touched. COPYING.0BSD was added.
2024-01-19xz: Update website URLs in the man pages.Jia Tan1-2/+2
2023-12-19xzdec: Add sandbox support for Pledge, Capsicum, and Landlock.Jia Tan1-7/+139
A very strict sandbox is used when the last file is decompressed. The likely most common use case of xzdec is to decompress a single file. The Pledge sandbox is applied to the entire process with slightly more relaxed promises, until the last file is processed. Thanks to Christian Weisgerber for the initial patch adding Pledge sandboxing.
2023-09-22xz, xzdec, lzmainfo: Use tuklib_attr_noreturn.Lasse Collin1-3/+6
For compatibility with C23's [[noreturn]], tuklib_attr_noreturn must be at the beginning of declaration (before "extern" or "static", and even before any GNU C's __attribute__). This commit also moves all other function attributes to the beginning of function declarations. "extern" is kept at the beginning of a line so the attributes are listed on separate lines before "extern" or "static".
2023-09-22MSVC: xzdec: Use _fileno and _setmode.Kelvin Lee1-0/+4
2023-09-22MSVC: Don't #include <unistd.h>.Kelvin Lee1-1/+4
2020-02-07Build: Add support for translated man pages using po4a.Lasse Collin1-13/+42
The dependency on po4a is optional. It's never required to install the translated man pages when xz is built from a release tarball. If po4a is missing when building from xz.git, the translated man pages won't be generated but otherwise the build will work normally. The translations are only updated automatically by autogen.sh and by "make mydist". This makes it easy to keep po4a as an optional dependency and ensures that I won't forget to put updated translations to a release tarball. The translated man pages aren't installed if --disable-nls is used. The installation of translated man pages abuses Automake internals by calling "install-man" with redefined dist_man_MANS and man_MANS. This makes the hairy script code slightly less hairy. If it breaks some day, this code needs to be fixed; don't blame Automake developers. Also, this adds more quotes to the existing shell script code in the Makefile.am "-hook"s.
2019-06-23xzdec: Fix warnings from -Wsign-conversion.Lasse Collin1-1/+1
2017-04-19Update the home page URLs to HTTPS.Lasse Collin1-2/+2
2014-10-29Build: Prepare to support Automake's subdir-objects.Lasse Collin1-4/+4
Due to a bug in Automake, subdir-objects won't be enabled for now. http://debbugs.gnu.org/cgi/bugreport.cgi?bug=17354 Thanks to Daniel Richard G. for the original patches.
2014-04-25Build: Fix the combination of --disable-xzdec --enable-lzmadec.Lasse Collin1-1/+9
In this case "make install" could fail if the man page directory didn't already exist at the destination. If it did exist, a dangling symlink was created there. Now the link is omitted instead. This isn't the best fix but it's better than the old behavior.
2013-06-30Man pages: Use similar syntax for synopsis as in xz.Lasse Collin1-5/+5
The man pages of lzmainfo, xzmore, and xzdec had similar constructs as the man page of xz had before the commit eb6ca9854b8eb9fbf72497c1cf608d6b19d2d494. Eric S. Raymond didn't mention these man pages in his bug report, but it's nice to be consistent.
2013-04-15xzdec: Improve the --help message.Lasse Collin1-5/+5
The options are now ordered in the same order as in xz's help message. Descriptions were added to the options that are ignored. I left them in parenthesis even if it looks a bit weird because I find it easier to spot the ignored vs. non-ignored options from the list that way.
2011-05-17Add underscores to attributes (__attribute((__foo__))).Lasse Collin1-3/+3
2010-10-09Add missing public domain notice to lzmadec_w32res.rc.Lasse Collin1-0/+7
2010-10-08Build: Add options to disable individual command line tools.Lasse Collin1-2/+10
2010-10-05Build: Remove the static/dynamic tricks.Lasse Collin1-3/+1
Most distros want xz linked against shared liblzma, so it doesn't help much to require --enable-dynamic for that. Those who want to avoid PIC on x86-32 to get better performance, can still do it e.g. by using --disable-shared to compile xz and then another pass to compile shared liblzma. Part of these static/dynamic tricks were needed for Windows in the past. Nowadays we rely on GCC and binutils to do the right thing with auto-import. If the Autotooled build system needs to support some other toolchain on Windows in the future, this may need some rethinking.
2010-09-27Major man page updates.Lasse Collin1-12/+27
Lots of content was updated on the xz man page. Technical improvements: - Start a new sentence on a new line. - Use fairly short lines. - Use constant-width font for examples (where supported). - Some minor cleanups. Thanks to Jonathan Nieder for some language fixes.
2010-08-07Disable the memory usage limiter by default.Lasse Collin2-213/+8
For several people, the limiter causes bigger problems that it solves, so it is better to have it disabled by default. Those who want to have a limiter by default need to enable it via the environment variable XZ_DEFAULTS. Support for environment variable XZ_DEFAULTS was added. It is parsed before XZ_OPT and technically identical with it. The intended uses differ quite a bit though; see the man page. The memory usage limit can now be set separately for compression and decompression using --memlimit-compress and --memlimit-decompress. To set both at once, -M or --memlimit can be used. --memory was retained as a legacy alias for --memlimit for backwards compatibility. The semantics of --info-memory were changed in backwards incompatible way. Compatibility wasn't meaningful due to changes in the memory usage limiter functionality. The memory usage limiter info is no longer shown at the bottom of xz --long -help. The memory usage limiter support for removed completely from xzdec. xz's man page was updated to match the above changes. Various unrelated fixes were also made to the man page.
2010-06-11Fix string to uint64_t conversion.Lasse Collin1-2/+11
Thanks to Denis Excoffier for the bug report.
2010-03-07Treat all integer multiplier suffixes as base-2.Lasse Collin1-26/+16
Originally both base-2 and base-10 were supported, but since there seems to be little need for base-10 in XZ Utils, treat everything as base-2 and also be more relaxed about the case of the first letter of the suffix. Now xz will accept e.g. KiB, Ki, k, K, kB, and KB, and interpret them all as 1024. The recommended spelling of the suffixes are still KiB, MiB, and GiB.
2010-03-07Consistently round up the memory usage limit in messages.Lasse Collin1-2/+5
It still feels a bit wrong to round 1 byte to 1 MiB but at least it is now done consistently so that the same byte value is always rounded the same way to MiB.
2010-03-07Increase the default memory usage limit on "low-memory" systems.Lasse Collin2-16/+34
Previously the default limit was always 40 % of RAM. The new limit is a little bit more complex: - If 40 % of RAM is at least 80 MiB, 40 % of RAM is used as the limit. - If 80 % of RAM is over 80 MiB, 80 MiB is used as the limit. - Otherwise 80 % of RAM is used as the limit. This should make it possible to decompress files created with "xz -9" on more systems. Swapping is generally more expected on systems with less RAM, so higher default limit on them shouldn't cause too bad surprises in terms of heavy swapping. Instead, the higher default limit should reduce the number of bad surprises when it used to prevent decompression of files created with "xz -9". The DoS prevention system shouldn't be a DoS itself. Note that even with the new default limit, a system with 64 MiB RAM cannot decompress files created with "xz -9" without user overriding the limit. This should be OK, because if xz is going to need more memory than the system has RAM, it will run very very slowly and thus it's good that user has to override the limit in that case.
2010-02-12Collection of language fixes to comments and docs.Lasse Collin2-2/+2
Thanks to Jonathan Nieder.
2010-01-27Use PACKAGE_URL instead of custom PACKAGE_HOMEPAGE.Lasse Collin1-1/+1
2009-11-15Add lzma_physmem().Lasse Collin2-6/+3
I had hoped to keep liblzma as purely a compression library as possible (e.g. file I/O will go into a different library), but it seems that applications linking agaisnt liblzma need some way to determine the memory usage limit, and knowing the amount of RAM is one reasonable way to help making such decisions. Thanks to Jonathan Nieder for the original patch.
2009-10-02Add support for --enable-assume-ram=SIZE.Lasse Collin1-2/+3
2009-09-19Various changes.Lasse Collin2-42/+26
Separate a few reusable components from XZ Utils specific code. The reusable code is now in "tuklib" modules. A few more could be separated still, e.g. bswap.h. Fix some bugs in lzmainfo. Fix physmem and cpucores code on OS/2. Thanks to Elbert Pol for help. Add OpenVMS support into physmem. Add a few #ifdefs to ease building XZ Utils on OpenVMS. Thanks to Jouk Jansen for the original patch.
2009-09-12A few grammar fixes.Lasse Collin1-1/+1
Thanks to Christian Weisgerber for pointing out some of these.
2009-08-13Sync some error messages from xz to xzdec.Lasse Collin1-3/+3
Make xz error message translation usable outside xz (at least in upcoming lzmainfo).
2009-07-18Added public domain notice into a few files.Lasse Collin1-0/+7
2009-07-08Remove --force from xzdec.Lasse Collin2-9/+1
It was ignored for compatibility with xz, but now that --decompress --stdout --force copies unrecognized files as is to stdout, simply ignoring --force in xzdec would be wrong. xzdec will not support copying unrecognized data as is to stdout, so it cannot support --force.
2009-07-06Use sed instead of $(SED) so that we don't need toLasse Collin1-3/+3
use AC_PROG_SED. We don't do anything fancy with sed, so this should work OK. libtool 2.2 sets SED but 1.5 doesn't, so $(SED) happened to work when using libtool 2.2.
2009-07-02Define PACKAGE_HOMEPAGE in configure.ac and use it inLasse Collin1-2/+2
xz and xzdec. Use also PACKAGE_NAME instead of hardcoding "XZ Utils".
2009-06-30Build system fixesLasse Collin1-1/+19
Don't use libtool convenience libraries to avoid recently discovered long-standing subtle but somewhat severe bugs in libtool (at least 1.5.22 and 2.2.6 are affected). It was found when porting XZ Utils to Windows <http://lists.gnu.org/archive/html/libtool/2009-06/msg00070.html> but the problem is significant also e.g. on GNU/Linux. Unless --disable-shared is passed to configure, static library built from a set of convenience libraries will contain PIC objects. That is, while libtool builds non-PIC objects too, only PIC objects will be used from the convenience libraries. On 32-bit x86 (tested on mobile XP2400+), using PIC instead of non-PIC makes the decompressor 10 % slower with the default CFLAGS. So while xz was linked against static liblzma by default, it got the slower PIC objects unless --disable-shared was used. I tend develop and benchmark with --disable-shared due to faster build time, so I hadn't noticed the problem in benchmarks earlier. This commit also adds support for building Windows resources into liblzma and executables.
2009-06-27Moved the Windows resource files outside the windows directoryLasse Collin2-0/+10
to prepare for building them with Autotools.
2009-06-27Create correct symlinks even whenLasse Collin1-3/+6
--program-{prefix,suffix,transform} is passed to configure.
2009-06-26Fix @variables@ to $(variables) in Makefile.am files.Lasse Collin1-9/+10
Fix the ordering of libgnu.a and LTLIBINTL on the linker command line and added missing LTLIBINTL to tests/Makefile.am.
2009-06-04Added xzdec man page.Lasse Collin2-0/+184
2009-06-04Harmonized xzdec --memory with xz --memory and madeLasse Collin1-21/+53
minor cleanups.
2009-05-22Added support for --quiet and --no-warn to xzdec.Lasse Collin1-27/+49
Cleaned up the --help message a little.
2009-05-22Use the 40 % of RAM memory usage limit in xzdec too.Lasse Collin1-5/+5
Update the memory usage info text in --help to match the text in xz --long-help.
2009-05-21Support special value "max" where xz and xzdec accept an integer.Lasse Collin1-1/+5
Don't round the memory usage limit in xzdec --help to avoid an integer overflow and to not give wrong impression that the limit is high enough when it may not actually be.
2009-04-13Put the interesting parts of XZ Utils into the public domain.Lasse Collin2-20/+6
Some minor documentation cleanups were made at the same time.
2009-02-13Changed how the version number is specified in various places.Lasse Collin1-1/+1
Now configure.ac will get the version number directly from src/liblzma/api/lzma/version.h. The intent is to reduce the number of places where the version number is duplicated. In future, support for displaying Git commit ID may be added too.
2009-02-13Improve support for DOS-like systems.Lasse Collin1-2/+3
Here DOS-like means DOS, Windows, and OS/2.
2009-02-07Make it easy to choose if command line tools should beLasse Collin1-2/+3
linked statically or dynamically against liblzma. The default is still to use static liblzma, but it can now be changed by passing --enable-dynamic to configure. Thanks to Mike Frysinger for the original patch. Fixed a few minor bugs in configure.ac.
2009-02-01Fix missing newlines in xzdec.c.Lasse Collin1-3/+3
2009-01-31Add LZMA_API to liblzma API headers. It's useful at leastLasse Collin1-0/+1
on Windows. sysdefs.h no longer #includes lzma.h, so lzma.h has to be #included separately where needed.
2009-01-31Use _WIN32 instead of WIN32 in xzdec.c to test if compiling on Windows.Lasse Collin1-2/+2
2008-12-31Remove lzma_init() and other init functions from liblzma API.Lasse Collin1-3/+0
Half of developers were already forgetting to use these functions, which could have caused total breakage in some future liblzma version or even now if --enable-small was used. Now liblzma uses pthread_once() to do the initializations unless it has been built with --disable-threads which make these initializations thread-unsafe. When --enable-small isn't used, liblzma currently gets needlessly linked against libpthread (on systems that have it). While it is stupid for now, liblzma will need threads in future anyway, so this stupidity will be temporary only. When --enable-small is used, different code CRC32 and CRC64 is now used than without --enable-small. This made the resulting binary slightly smaller, but the main reason was to clean it up and to handle the lack of lzma_init_check(). The pkg-config file lzma.pc was renamed to liblzma.pc. I'm not sure if it works correctly and portably for static linking (Libs.private includes -pthread or other operating system specific flags). Hopefully someone complains if it is bad. lzma_rc_prices[] is now included as a precomputed array even with --enable-small. It's just 128 bytes now that it uses uint8_t instead of uint32_t. Smaller array seemed to be at least as fast as the more bloated uint32_t array on x86; hopefully it's not bad on other architectures.
2008-11-20Build xzdec and lzmadec from xzdec.c. xzdec supports only .xzLasse Collin2-178/+140
files and lzmadec only .lzma files.
2008-11-20Minor cleanups to xzdec.Lasse Collin1-10/+10
2008-11-19Renamed lzma to xz and lzmadec to xzdec. We create symlinksLasse Collin2-0/+521
lzma, unlzma, and lzcat in "make install" for backwards compatibility with LZMA Utils 4.32.x; I'm not sure if this should be the default though.