aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2017-09-16Windows: Update VS2013 project files to include file info decoder.Lasse Collin2-0/+4
2017-09-16Windows: Move VS2013 files into windows/vs2013 directory.Lasse Collin4-279/+279
2017-08-14Fix or hide warnings from GCC 7's -Wimplicit-fallthrough.Lasse Collin2-0/+8
2017-05-23Docs: Fix a typo in a comment in doc/examples/02_decompress.c.Alexey Tourbin1-1/+1
2017-05-23xz: Fix "xz --list --robot missing_or_bad_file.xz".Lasse Collin1-2/+6
It ended up printing an uninitialized char-array when trying to print the check names (column 7) on the "totals" line. This also changes the column 12 (minimum xz version) to 50000002 (xz 5.0.0) instead of 0 when there are no valid input files. Thanks to kidmin for the bug report.
2017-04-24Docs: Add doc/examples/11_file_info.c.Lasse Collin2-1/+208
2017-04-24Build: Omit pre-5.0.0 entries from the generated ChangeLog.Lasse Collin1-1/+2
It makes ChangeLog significantly smaller.
2017-04-24xz: Use lzma_file_info_decoder() for --list.Lasse Collin1-210/+44
2017-04-24liblzma: Add lzma_file_info_decoder().Lasse Collin4-1/+928
2017-04-24Update the Git repository URL to HTTPS in ChangeLog.Lasse Collin1-1/+1
2017-04-21liblzma: Rename LZMA_SEEK to LZMA_SEEK_NEEDED and seek_in to seek_pos.Lasse Collin3-11/+11
2017-04-19Update the home page URLs to HTTPS.Lasse Collin10-14/+14
2017-04-05xz: Add io_seek_src().Lasse Collin2-3/+30
2017-03-30xz: Use POSIX_FADV_RANDOM for in "xz --list" mode.Lasse Collin1-2/+8
xz --list is random access so POSIX_FADV_SEQUENTIAL was clearly wrong.
2017-03-30liblzma: Make lzma_index_decoder_init() visible to other liblzma funcs.Lasse Collin3-5/+30
This is to allow other functions to use it without going via the public API (lzma_index_decoder()).
2017-03-30liblzma: Add generic support for input seeking (LZMA_SEEK).Lasse Collin3-2/+42
Also mention LZMA_SEEK in xz/message.c to silence a warning.
2017-03-30liblzma: Fix lzma_memlimit_set(strm, 0).Lasse Collin3-3/+13
The 0 got treated specially in a buggy way and as a result the function did nothing. The API doc said that 0 was supposed to return LZMA_PROG_ERROR but it didn't. Now 0 is treated as if 1 had been specified. This is done because 0 is already used to indicate an error from lzma_memlimit_get() and lzma_memusage(). In addition, lzma_memlimit_set() no longer checks that the new limit is at least LZMA_MEMUSAGE_BASE. It's counter-productive for the Index decoder and was actually needed only by the auto decoder. Auto decoder has now been modified to check for LZMA_MEMUSAGE_BASE.
2017-03-30liblzma: Similar memlimit fix for stream_, alone_, and auto_decoder.Lasse Collin4-16/+20
2017-03-30liblzma: Fix handling of memlimit == 0 in lzma_index_decoder().Lasse Collin2-9/+13
It returned LZMA_PROG_ERROR, which was done to avoid zero as the limit (because it's a special value elsewhere), but using LZMA_PROG_ERROR is simply inconvenient and can cause bugs. The fix/workaround is to treat 0 as if it were 1 byte. It's effectively the same thing. The only weird consequence is that then lzma_memlimit_get() will return 1 even when 0 was specified as the limit. This fixes a very rare corner case in xz --list where a specific memory usage limit and a multi-stream file could print the error message "Internal error (bug)" instead of saying that the memory usage limit is too low.
2016-12-30Update NEWS for 5.2.3.Lasse Collin1-0/+39
2016-12-26Document --enable-sandbox configure option in INSTALL.Lasse Collin1-0/+23
2016-11-21liblzma: Avoid multiple definitions of lzma_coder structures.Lasse Collin35-423/+532
Only one definition was visible in a translation unit. It avoided a few casts and temp variables but seems that this hack doesn't work with link-time optimizations in compilers as it's not C99/C11 compliant. Fixes: http://www.mail-archive.com/xz-devel@tukaani.org/msg00279.html
2016-10-24Update THANKS.Lasse Collin1-0/+1
2016-10-24tuklib_cpucores: Add support for sched_getaffinity().Lasse Collin2-1/+38
It's available in glibc (GNU/Linux, GNU/kFreeBSD). It's better than sysconf(_SC_NPROCESSORS_ONLN) because sched_getaffinity() gives the number of cores available to the process instead of the total number of cores online. As a side effect, this commit fixes a bug on GNU/kFreeBSD where configure would detect the FreeBSD-specific cpuset_getaffinity() but it wouldn't actually work because on GNU/kFreeBSD it requires using -lfreebsd-glue when linking. Now the glibc-specific function will be used instead. Thanks to Sebastian Andrzej Siewior for the original patch and testing.
2016-06-30xz: Fix copying of timestamps on Windows.Lasse Collin2-1/+19
xz used to call utime() on Windows, but its result gets lost on close(). Using _futime() seems to work. Thanks to Martok for reporting the bug: http://www.mail-archive.com/xz-devel@tukaani.org/msg00261.html
2016-06-16xz: Silence warnings from -Wlogical-op.Lasse Collin1-2/+10
Thanks to Evan Nemerson.
2016-04-10Build: Fix = to += for xz_SOURCES in src/xz/Makefile.am.Lasse Collin1-1/+1
Thanks to Christian Kujau.
2016-04-10Build: Bump GNU Gettext version requirement to 0.19.Lasse Collin1-1/+1
It silences a few warnings and most people probably have 0.19 even on stable distributions. Thanks to Christian Kujau.
2016-03-13liblzma: Disable external SHA-256 by default.Lasse Collin3-49/+79
This is the sane thing to do. The conflict with OpenSSL on some OSes and especially that the OS-provided versions can be significantly slower makes it clear that it was a mistake to have the external SHA-256 support enabled by default. Those who want it can now pass --enable-external-sha256 to configure. INSTALL was updated with notes about OSes where this can be a bad idea. The SHA-256 detection code in configure.ac had some bugs that could lead to a build failure in some situations. These were fixed, although it doesn't matter that much now that the external SHA-256 is disabled by default. MINIX >= 3.2.0 uses NetBSD's libc and thus has SHA256_Init in libc instead of libutil. Support for the libutil version was removed.
2016-03-10Update THANKS.Lasse Collin1-0/+1
2016-03-10Build: Avoid SHA256_Init on FreeBSD and MINIX 3.Lasse Collin1-6/+21
On FreeBSD 10 and older, SHA256_Init from libmd conflicts with libcrypto from OpenSSL. The OpenSSL version has different sizeof(SHA256_CTX) and it can cause weird problems if wrong SHA256_Init gets used. Looking at the source, MINIX 3 seems to have a similar issue but I'm not sure. To be safe, I disabled SHA256_Init on MINIX 3 too. NetBSD has SHA256_Init in libc and they had a similar problem, but they already fixed it in 2009. Thanks to Jim Wilcoxson for the bug report that helped in finding the problem.
2015-11-08tuklib_physmem: Hopefully silence a warning on Windows.Lasse Collin1-1/+2
2015-11-04Update THANKS.Lasse Collin1-0/+1
2015-11-04liblzma: Make Valgrind happier with optimized (gcc -O2) liblzma.Lasse Collin1-0/+4
When optimizing, GCC can reorder code so that an uninitialized value gets used in a comparison, which makes Valgrind unhappy. It doesn't happen when compiled with -O0, which I tend to use when running Valgrind. Thanks to Rich Prohaska. I remember this being mentioned long ago by someone else but nothing was done back then.
2015-11-03liblzma: Rename lzma_presets.c back to lzma_encoder_presets.c.Lasse Collin2-2/+2
It would be too annoying to update other build systems just because of this.
2015-11-03Build: Disable xzdec, lzmadec, and lzmainfo when they cannot be built.Lasse Collin1-0/+3
They all need decoder support and if that isn't available, there's no point trying to build them.
2015-11-03Build: Simplify $enable_{encoders,decoders} usage a bit.Lasse Collin1-2/+4
2015-11-03Windows/MSVC: Update config.h.Lasse Collin1-0/+6
2015-11-03DOS: Update config.h.Lasse Collin1-0/+6
2015-11-03xz: Make xz buildable even when encoders or decoders are disabled.Lasse Collin6-13/+62
The patch is quite long but it's mostly about adding new #ifdefs to omit code when encoders or decoders have been disabled. This adds two new #defines to config.h: HAVE_ENCODERS and HAVE_DECODERS.
2015-11-03Build: Build LZMA1/2 presets also when only decoder is wanted.Lasse Collin2-2/+7
People shouldn't rely on the presets when decoding raw streams, but xz uses the presets as the starting point for raw decoder options anyway. lzma_encocder_presets.c was renamed to lzma_presets.c to make it clear it's not used solely by the encoder code.
2015-11-03Build: Fix configure to handle LZMA1 dependency with LZMA2.Lasse Collin1-5/+0
Now it gives an error if LZMA1 encoder/decoder is missing when LZMA2 encoder/decoder was requested. Even better would be LZMA2 implicitly enabling LZMA1 but it would need more code.
2015-11-03Build: Don't omit lzma_cputhreads() unless using --disable-threads.Lasse Collin1-1/+4
Previously it was omitted if encoders were disabled with --disable-encoders. It didn't make sense and it also broke the build.
2015-11-02liblzma: Fix a build failure related to external SHA-256 support.Lasse Collin1-9/+23
If an appropriate header and structure were found by configure, but a library with a usable SHA-256 functions wasn't, the build failed.
2015-11-02xz: Always close the file before trying to delete it.Lasse Collin1-13/+12
unlink() can return EBUSY in errno for open files on some operating systems and file systems.
2015-10-12Update THANKS.Lasse Collin1-0/+1
2015-10-12Tests: Add tests for the two bugs fixed in index.c.Lasse Collin1-0/+30
2015-10-12liblzma: Fix lzma_index_dup() for empty Streams.Lasse Collin1-5/+6
Stream Flags and Stream Padding weren't copied from empty Streams.
2015-10-12liblzma: Add a note to index.c for those using static analyzers.Lasse Collin1-0/+3
2015-10-12liblzma: Fix a memory leak in error path of lzma_index_dup().Lasse Collin1-9/+9
lzma_index_dup() calls index_dup_stream() which, in case of an error, calls index_stream_end() to free memory allocated by index_stream_init(). However, it illogically didn't actually free the memory. To make it logical, the tree handling code was modified a bit in addition to changing index_stream_end(). Thanks to Evan Nemerson for the bug report.
2015-09-29Update NEWS for 5.2.2.Lasse Collin1-0/+18
2015-08-27Update German translation, mostly wrt orthographyHauke Henningsen1-187/+196
Provide an update of the German translation. * A lot of compound words were previously written with spaces, while German orthography is relatively clear in that the components should not be separated. * When referring to the actual process of (de)compression rather than the concept, replace “(De-)Kompression” with “(De-)Komprimierung”. Previously, both forms were used in this context and are now used in a manner consistent with “Komprimierung” being more likely to refer to a process. * Consistently translate “standard input”/“output” * Use “Zeichen” instead of false friend “Charakter” for “character” * Insert commas around relative clauses (as required in German) * Some other minor corrections * Capitalize “ß” as “ẞ” * Consistently start option descriptions in --help with capital letters Acked-By: Andre Noll <maan@tuebingen.mpg.de> * Update after msgmerge
2015-08-11Build: Minor Cygwin cleanup.Lasse Collin1-3/+3
Some tests used "cygwin*" and some used "cygwin". I changed them all to use "cygwin". Shouldn't affect anything in practice.
2015-08-11Build: Support building of MSYS2 binaries.Lasse Collin1-5/+11
2015-08-09Windows: Define DLL_EXPORT when building liblzma.dll with MSVC.Lasse Collin1-6/+6
src/liblzma/common/common.h uses it to set __declspec(dllexport) for the API symbols. Thanks to Adam Walling.
2015-08-09Windows: Omit unneeded header files from MSVC project files.Lasse Collin2-10/+0
2015-07-12liblzma: A MSVC-specific hack isn't needed with MSVC 2013 and newer.Lasse Collin1-5/+13
2015-06-19Update THANKS.Lasse Collin1-0/+2
2015-06-19Windows: Update the docs.Lasse Collin3-11/+67
2015-06-19Windows: Add MSVC project files for building liblzma.Lasse Collin3-0/+795
Thanks to Adam Walling for creating these files.
2015-06-10Fix typo in German translation.Andre Noll1-1/+1
As pointed out by Robert Pollak, there's a typo in the German translation of the compression preset option (-0 ... -9) help text. "The compressor" translates to "der Komprimierer", and the genitive form is "des Komprimierers". The old word makes no sense at all.
2015-05-13Tests: Fix a memory leak in test_bcj_exact_size.Lasse Collin1-0/+1
Thanks to Cristian Rodríguez.
2015-05-12Fix NEWS about threading in 5.2.0.Lasse Collin1-1/+2
Thanks to Andy Hochhaus.
2015-05-11xz: Document that threaded decompression hasn't been implemented yet.Lasse Collin1-1/+9
2015-04-20Update THANKS.Lasse Collin1-0/+1
2015-04-20Revert "xz: Use pipe2() if available."Lasse Collin2-10/+3
This reverts commit 7a11c4a8e5e15f13d5fa59233b3172e65428efdd. It is a problem when libc has pipe2() but the kernel is too old to have pipe2() and thus pipe2() fails. In xz it's pointless to have a fallback for non-functioning pipe2(); it's better to avoid pipe2() completely. Thanks to Michael Fox for the bug report.
2015-04-01xz: Fix the Capsicum rights on user_abort_pipe.Lasse Collin1-1/+5
2015-03-31Update THANKS.Lasse Collin1-0/+1
2015-03-31xz: Add support for sandboxing with Capsicum.Lasse Collin6-1/+151
The sandboxing is used conditionally as described in main.c. This isn't optimal but it was much easier to implement than a full sandboxing solution and it still covers the most common use cases where xz is writing to standard output. This should have practically no effect on performance even with small files as fork() isn't needed. C and locale libraries can open files as needed. This has been fine in the past, but it's a problem with things like Capsicum. io_sandbox_enter() tries to ensure that various locale-related files have been loaded before cap_enter() is called, but it's possible that there are other similar problems which haven't been seen yet. Currently Capsicum is available on FreeBSD 10 and later and there is a port to Linux too. Thanks to Loganaden Velvindron for help.
2015-03-31Fix bugs and otherwise improve ax_check_capsicum.m4.Lasse Collin1-52/+51
AU_ALIAS was removed because the new version is incompatible with the old version. It no longer checks for <sys/capability.h> separately. It's enough to test for it as part of AC_CHECK_DECL. The defines HAVE_CAPSICUM_SYS_CAPSICUM_H and HAVE_CAPSICUM_SYS_CAPABILITY_H were removed as unneeded. HAVE_SYS_CAPSICUM_H from AC_CHECK_HEADERS is enough. It no longer does a useless search for the Capsicum library if the header wasn't found. Fixed a bug in ACTION-IF-FOUND (the first argument). Specifying the argument omitted the default action but the given action wasn't used instead. AC_DEFINE([HAVE_CAPSICUM]) is now always called when Capsicum support is found. Previously it was part of the default ACTION-IF-FOUND which a custom action would override. Now the default action only prepends ${CAPSICUM_LIB} to LIBS. The documentation was updated. Since there as no serial number, "#serial 2" was added.
2015-03-31Add m4/ax_check_capsicum.m4 for detecting Capsicum support.Lasse Collin1-0/+86
The file was loaded from this web page: https://github.com/google/capsicum-test/blob/dev/autoconf/m4/ax_check_capsicum.m4 Thanks to Loganaden Velvindron for pointing it out for me.
2015-03-30Bump version to 5.3.0alpha and soname to 5.3.99.Lasse Collin2-4/+4
The idea of 99 is that it looks a bit weird in this context. For new features there's no API/ABI stability in devel versions.
2015-03-29Update THANKS.Lasse Collin1-0/+1
2015-03-29Fix the detection of installed RAM on QNX.Lasse Collin2-4/+16
The earlier version compiled but didn't actually work since sysconf(_SC_PHYS_PAGES) always fails (or so I was told). Thanks to Ole André Vadla Ravnås for the patch and testing.
2015-03-27Fix CPU core count detection on QNX.Lasse Collin1-4/+11
It tried to use sysctl() on QNX but - it broke the build because sysctl() needs -lsocket on QNX; - sysctl() doesn't work for detecting the core count on QNX even if it compiled. sysconf() works. An alternative would have been to use QNX-specific SYSPAGE_ENTRY(num_cpu) from <sys/syspage.h>. Thanks to Ole André Vadla Ravnås.
2015-03-07xz: size_t/uint32_t cleanup in options.c.Lasse Collin1-6/+6
2015-03-07xz: Fix a comment and silence a warning in message.c.Lasse Collin1-2/+3
2015-03-07liblzma: Silence more uint32_t vs. size_t warnings.Lasse Collin2-2/+2
2015-03-07xz: Make arg_count an unsigned int to silence a warning.Lasse Collin2-2/+2
Actually the value of arg_count cannot exceed INT_MAX but it's nicer as an unsigned int.
2015-03-07liblzma: Fix a warning in index.c.Lasse Collin1-1/+3
2015-02-26Build: Fix a CR+LF problem when running autoreconf -fi on OS/2.Lasse Collin1-1/+1
2015-02-26Bump version and soname for 5.2.1.larhzu/v5.2.1Lasse Collin2-2/+2
2015-02-26Update NEWS for 5.2.1.Lasse Collin1-0/+14
2015-02-22xz: Use pipe2() if available.Lasse Collin2-3/+10
2015-02-21liblzma: Fix a compression-ratio regression in LZMA1/2 in fast mode.Lasse Collin1-1/+1
The bug was added in the commit f48fce093b07aeda95c18850f5e086d9f2383380 and thus affected 5.1.4beta and 5.2.0. Luckily the bug cannot cause data corruption or other nasty things.
2015-02-21xz: Fix the fcntl() usage when creating a pipe for the self-pipe trick.Lasse Collin1-5/+11
Now it reads the old flags instead of blindly setting O_NONBLOCK. The old code may have worked correctly, but this is better.
2015-02-10Update THANKS.Lasse Collin1-0/+1
2015-02-10tuklib_cpucores: Use cpuset_getaffinity() on FreeBSD if available.Lasse Collin2-1/+40
In FreeBSD, cpuset_getaffinity() is the preferred way to get the number of available cores. Thanks to Rui Paulo for the patch. I edited it slightly, but hopefully I didn't break anything.
2015-02-09xzdiff: Make the mktemp usage compatible with FreeBSD's mktemp.Lasse Collin1-1/+6
Thanks to Rui Paulo for the fix.
2015-02-03Add a few casts to tuklib_integer.h to silence possible warnings.Lasse Collin1-12/+12
I heard that Visual Studio 2013 gave warnings without the casts. Thanks to Gabi Davar.
2015-01-26liblzma: Set LZMA_MEMCMPLEN_EXTRA depending on the compare method.Lasse Collin1-5/+10
2015-01-26Update THANKS.Lasse Collin1-0/+1
2015-01-26liblzma: Silence harmless Valgrind errors.Lasse Collin1-0/+6
Thanks to Torsten Rupp for reporting this. I had forgotten to run Valgrind before the 5.2.0 release.
2015-01-09xz: Fix comments.Lasse Collin1-4/+8
2015-01-09Update THANKS.Lasse Collin1-0/+1
2015-01-09xz: Don't fail if stdout doesn't support O_NONBLOCK.Lasse Collin1-21/+15
This is similar to the case with stdin. Thanks to Brad Smith for the bug report and testing on OpenBSD.
2015-01-07xz: Fix a memory leak in DOS-specific code.Lasse Collin1-0/+2
2015-01-07xz: Don't fail if stdin doesn't support O_NONBLOCK.Lasse Collin1-11/+7
It's a problem at least on OpenBSD which doesn't support O_NONBLOCK on e.g. /dev/null. I'm not surprised if it's a problem on other OSes too since this behavior is allowed in POSIX-1.2008. The code relying on this behavior was committed in June 2013 and included in 5.1.3alpha released on 2013-10-26. Clearly the development releases only get limited testing.
2015-01-06Tests: Don't hide unexpected error messages in test_files.sh.Lasse Collin1-2/+2
Hiding them makes no sense since normally there's no error when testing the "good" files. With "bad" files errors are expected and then it makes sense to keep the messages hidden.
2014-12-30Update Solaris notes in INSTALL.Lasse Collin1-0/+4
Mention the possible "make check" failure on Solaris in the Solaris-specific section of INSTALL. It was already in section 4.5 but it is better mention it in the OS-specific section too.
2014-12-26Build: POSIX shell isn't required if scripts are disabled.Lasse Collin2-2/+3
2014-12-21DOS: Update Makefile.larhzu/v5.2.0Lasse Collin1-0/+1
2014-12-21Windows: Fix bin_i486 to bin_i686 in build.bash.Lasse Collin1-1/+1
2014-12-21Docs: Use lzma_cputhreads() in 04_compress_easy_mt.c.Lasse Collin1-4/+26
2014-12-21Docs: Update docs/examples/00_README.txt.Lasse Collin1-0/+4
2014-12-21Bump version and soname for 5.2.0.Lasse Collin3-5/+5
I know that soname != app version, but I skip AGE=1 in -version-info to make the soname match the liblzma version anyway. It doesn't hurt anything as long as it doesn't conflict with library versioning rules.
2014-12-21Avoid variable-length arrays in the debug programs.Lasse Collin2-2/+4
2014-12-21Build: Include 04_compress_easy_mt.c in the tarball.Lasse Collin1-0/+1
2014-12-21Fix build when --disable-threads is used.Lasse Collin1-0/+2
2014-12-21po/fr: improve wording for help for --lzma1/--lzma2.Adrien Nader1-1/+1
2014-12-21po/fr: missing line in translation of --extreme.Adrien Nader1-0/+1
2014-12-21Update NEWS for 5.2.0.Lasse Collin1-0/+65
2014-12-21Update NEWS for 5.0.8.Lasse Collin1-0/+12
2014-12-21xz: Fix a comment.Lasse Collin1-2/+2
2014-12-20Update INSTALL about the dependencies of the scripts.Lasse Collin1-5/+10
2014-12-20Windows: Update build instructions.Lasse Collin2-29/+30
2014-12-20Windows: Update the build script and README-Windows.txt.Lasse Collin2-23/+30
The 32-bit build is now for i686 or newer because the prebuilt MinGW-w64 toolchains include i686 code in the executables even if one uses -march=i486. The build script builds 32-bit SSE2 enabled version too. Run-time detection of SSE2 support would be nice (on any OS) but it's not implemented in XZ Utils yet.
2014-12-19Windows: Define TUKLIB_SYMBOL_PREFIX in config.h.Lasse Collin1-0/+3
It is to keep all symbols in the lzma_ namespace.
2014-12-16xz: Update the man page about --threads.Lasse Collin1-5/+0
2014-12-16xz: Update the man page about --block-size.Lasse Collin1-8/+33
2014-12-12po/fr: several more translation updates: reword and handle --ignore-check.Adrien Nader1-24/+26
2014-12-12po/fr: yet another place where my email address had to be updated.Adrien Nader1-1/+1
2014-12-12po/fr: fix several typos that have been around since the beginning.Adrien Nader1-11/+11
2014-12-12po/fr: last batch of new translations for now.Adrien Nader1-8/+8
Four new error messages.
2014-12-12po/fr: translations for --threads, --block-size and --block-list.Adrien Nader1-4/+8
2014-12-12po/fr: remove fuzzy marker for error messages that will be kept in English.Adrien Nader1-6/+16
The following is a copy of a comment inside fr.po: Note from translator on "file status flags". The following entry is kept un-translated on purpose. It is difficult to translate and should only happen in exceptional circumstances which means that translating would: - lose some of the meaning - make it more difficult to look up in search engines; it might happen one in a million times, if we dilute the error message in 20 languages, it will be almost impossible to find an explanation and support for the error.
2014-12-12po/fr: several minor updates and better wording.Adrien Nader1-7/+7
Meaning doesn't change at all: it's only for better wording and/or formatting of a few strings.
2014-12-12po/fr: update my email address and copyright years.Adrien Nader1-2/+2
2014-12-12fr.po: commit file after only "update-po" so actual is readable.Adrien Nader1-112/+199
2014-12-02liblzma: Document how lzma_mt.block_size affects memory usage.Lasse Collin1-0/+4
2014-11-28Update INSTALL about a "make check" failure in test_scripts.sh.Lasse Collin1-7/+17
2014-11-26Remove LZMA_UNSTABLE macro.Lasse Collin3-7/+0
2014-11-26liblzma: Update lzma_stream_encoder_mt() API docs.Lasse Collin1-2/+3
2014-11-25liblzma: Verify the filter chain in threaded encoder initialization.Lasse Collin1-3/+6
This way an invalid filter chain is detected at the Stream encoder initialization instead of delaying it to the first call to lzma_code() which triggers the initialization of the actual filter encoder(s).
2014-11-17Build: Update m4/ax_pthread.m4 from Autoconf Archive.Lasse Collin1-24/+47
2014-11-17Build: Replace obsolete AC_HELP_STRING with AS_HELP_STRING.Lasse Collin2-19/+19
2014-11-17Build: Fix Autoconf warnings about escaped backquotes.Lasse Collin1-4/+3
Thanks to Daniel Richard G. for pointing out that it's good to sometimes run autoreconf -fi with -Wall.
2014-11-10xzdiff: Use mkdir if mktemp isn't available.Lasse Collin1-1/+16
2014-11-10xzdiff: Create a temporary directory to hold a temporary file.Lasse Collin1-5/+5
This avoids the possibility of "File name too long" when creating a temp file when the input file name is very long. This also means that other users on the system can no longer see the input file names in /tmp (or whatever $TMPDIR is) since the temporary directory will have a generic name. This usually doesn't matter since on many systems one can see the arguments given to all processes anyway. The number X chars to mktemp where increased from 6 to 10. Note that with some shells temp files or dirs won't be used at all.
2014-11-10liblzma: Fix lzma_mt.preset in lzma_stream_encoder_mt_memusage().Lasse Collin1-2/+1
It read the filter chain from a wrong variable. This is a similar bug that was fixed in 9494fb6d0ff41c585326f00aa8f7fe58f8106a5e.
2014-11-10Update THANKS.Lasse Collin1-0/+1
2014-10-29Update .gitignore files.Lasse Collin2-0/+5
2014-10-29Build: Prepare to support Automake's subdir-objects.Lasse Collin6-15/+40
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-10-24Translations: Update the Italian translation.Lasse Collin1-177/+275
Thanks to Milo Casagrande.
2014-10-18Translations: Update the Polish translation.Lasse Collin1-118/+214
Thanks to Jakub Bogusz.
2014-10-14l10n: de.po: Change translator email address.Andre Noll1-3/+3
Although the old address is still working, the new one should be preferred. So this commit changes all three places in de.po accordingly. Signed-off-by: Andre Noll <maan@tuebingen.mpg.de>
2014-10-14l10n: de.po: Update German translationAndre Noll1-250/+281
Signed-off-by: Andre Noll <maan@systemlinux.org>
2014-10-14l10n: de.po: Fix typo: Schießen -> Schließen.Andre Noll1-1/+1
That's a funny one since "schießen" means to shoot :) Signed-off-by: Andre Noll <maan@systemlinux.org>
2014-10-09Update THANKS.Lasse Collin1-0/+1
2014-10-09Add support for AmigaOS/AROS to tuklib_physmem().Lasse Collin2-1/+9
Thanks to Fredrik Wikstrom.
2014-10-09xzgrep: Avoid passing both -q and -l to grep.Lasse Collin1-2/+4
The behavior of grep -ql varies: - GNU grep behaves like grep -q. - OpenBSD grep behaves like grep -l. POSIX doesn't make it 100 % clear what behavior is expected. Anyway, using both -q and -l at the same time makes no sense so both options simply should never be used at the same time. Thanks to Christian Weisgerber.
2014-10-04l10n: vi.po: Update Vietnamese translationTrần Ngọc Quân1-52/+84
Signed-off-by: Trần Ngọc Quân <vnwildman@gmail.com>
2014-09-25Build: Detect supported compiler warning flags better.Lasse Collin1-2/+3
Clang and nowadays also GCC accept any -Wfoobar option but then may give a warning that an unknown warning option was specified. To avoid adding unsupported warning options, the options are now tested with -Werror. Thanks to Charles Diza.
2014-09-20Update NEWS for 5.0.7.Lasse Collin1-0/+11
2014-09-20liblzma: Fix a portability problem in Makefile.am.Lasse Collin1-1/+1
POSIX supports $< only in inference rules (suffix rules). Using it elsewhere is a GNU make extension and doesn't work e.g. with OpenBSD make. Thanks to Christian Weisgerber for the patch.
2014-09-14Bump the version number to 5.1.4beta.larhzu/v5.1.4betaLasse Collin2-3/+3
2014-09-14Update NEWS for 5.0.6 and 5.1.4beta.Lasse Collin1-0/+50
2014-09-14Update TODO.Lasse Collin1-4/+34
2014-08-05xz: Add --ignore-check.Lasse Collin5-1/+38
2014-08-05liblzma: Add support for LZMA_IGNORE_CHECK.Lasse Collin3-2/+37
2014-08-05liblzma: Add support for lzma_block.ignore_check.Lasse Collin7-20/+68
Note that this slightly changes how lzma_block_header_decode() has been documented. Earlier it said that the .version is set to the lowest required value, but now it says that the .version field is kept unchanged if possible. In practice this doesn't affect any old code, because before this commit the only possible .version was 0.
2014-08-04liblzma: Use lzma_memcmplen() in the BT3 match finder.Lasse Collin1-3/+2
I had missed this when writing the commit 5db75054e900fa06ef5ade5f2c21dffdd5d16141. Thanks to Jun I Jin.
2014-08-04Update THANKS.Lasse Collin1-0/+1
2014-08-03liblzma: SHA-256: Optimize the Maj macro slightly.Lasse Collin1-1/+1
The Maj macro is used where multiple things are added together, so making Maj a sum of two expressions allows some extra freedom for the compiler to schedule the instructions. I learned this trick from <http://www.hackersdelight.org/corres.txt>.
2014-08-03liblzma: SHA-256: Optimize the way rotations are done.Lasse Collin1-6/+11
This looks weird because the rotations become sequential, but it helps quite a bit on both 32-bit and 64-bit x86: - It requires fewer instructions on two-operand instruction sets like x86. - It requires one register less which matters especially on 32-bit x86. I hope this doesn't hurt other archs. I didn't invent this idea myself, but I don't remember where I saw it first.
2014-08-03liblzma: SHA-256: Remove the GCC #pragma that became unneeded.Lasse Collin1-5/+0
The unrolling in the previous commit should avoid the situation where a compiler may think that an uninitialized variable might be accessed.
2014-08-03liblzma: SHA-256: Unroll a little more.Lasse Collin1-9/+16
This way a branch isn't needed for each operation to choose between blk0 and blk2, and still the code doesn't grow as much as it would with full unrolling.
2014-08-03liblzma: SHA-256: Do the byteswapping without a temporary buffer.Lasse Collin1-12/+1
2014-07-25liblzma: Use lzma_memcmplen() in normal mode of LZMA.Lasse Collin1-15/+5
Two locations were not changed yet because the simplest change assumes that the initial "len" may be greater than "limit".
2014-07-25liblzma: Simplify LZMA fast mode code by using memcmp().Lasse Collin1-10/+1
2014-07-25liblzma: Use lzma_memcmplen() in fast mode of LZMA.Lasse Collin1-3/+3
2014-07-25Update THANKS.Lasse Collin1-0/+1
2014-07-25liblzma: Use lzma_memcmplen() in the match finders.Lasse Collin2-23/+23
This doesn't change the match finder output.
2014-07-25liblzma: Add lzma_memcmplen() for fast memory comparison.Lasse Collin3-0/+184
This commit just adds the function. Its uses will be in separate commits. This hasn't been tested much yet and it's perhaps a bit early to commit it but if there are bugs they should get found quite quickly. Thanks to Jun I Jin from Intel for help and for pointing out that string comparison needs to be optimized in liblzma.
2014-07-12Update THANKS.Lasse Collin1-0/+1
2014-07-12Translations: Add Vietnamese translation.Lasse Collin2-0/+1008
Thanks to Trần Ngọc Quân.
2014-06-29xz: Update the help message of a few options.Lasse Collin1-7/+11
Updated: --threads, --block-size, and --block-list Added: --flush-timeout
2014-06-18xz: Use lzma_cputhreads() instead of own copy of tuklib_cpucores().Lasse Collin2-4/+9
2014-06-18liblzma: Add lzma_cputhreads().Lasse Collin5-1/+45
2014-06-18xz: Check for filter chain compatibility for --flush-timeout.Lasse Collin1-9/+21
This avoids LZMA_PROG_ERROR from lzma_code() with filter chains that don't support LZMA_SYNC_FLUSH.
2014-06-13xzgrep: List xzgrep_expected_output in tests/Makefile.am.Lasse Collin1-1/+2
2014-06-13xzgrep: Improve the test script.Lasse Collin3-11/+55
Now it should be close to the functionality of the original version by Pavel Raiskup.
2014-06-11xzgrep: Add a test for the previous fix.Lasse Collin1-4/+22
This is a simplified version of Pavel Raiskup's original patch.
2014-06-11xzgrep: exit 0 when at least one file matches.Lasse Collin1-2/+13
Mimic the original grep behavior and return exit_success when at least one xz compressed file matches given pattern. Original bugreport: https://bugzilla.redhat.com/show_bug.cgi?id=1108085 Thanks to Pavel Raiskup for the patch.
2014-06-09xz: Force single-threaded mode when --flush-timeout is used.Lasse Collin1-0/+11
2014-05-25Update THANKS.Lasse Collin1-0/+1
2014-05-25liblzma: Use lzma_alloc_zero() in LZ encoder initialization.Lasse Collin3-55/+62
This avoids a memzero() call for a newly-allocated memory, which can be expensive when encoding small streams with an over-sized dictionary. To avoid using lzma_alloc_zero() for memory that doesn't need to be zeroed, lzma_mf.son is now allocated separately, which requires handling it separately in normalize() too. Thanks to Vincenzo Innocente for reporting the problem.
2014-05-25liblzma: Add the internal function lzma_alloc_zero().Lasse Collin2-0/+27
2014-05-08xz: Fix uint64_t vs. size_t which broke 32-bit build.Lasse Collin1-1/+1
Thanks to Christian Hesse.
2014-05-04Docs: Update comments to refer to lzma/lzma12.h in example programs.Lasse Collin1-3/+3
2014-05-04liblzma: Rename the private API header lzma/lzma.h to lzma/lzma12.h.Lasse Collin3-3/+3
It can be confusing that two header files have the same name. The public API file is still lzma.h.
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.
2014-04-25Build: Add --disable-doc to configure.Lasse Collin3-0/+14
2014-04-24Update INSTALL.Lasse Collin1-0/+25
Add a note about failing "make check". The source of the problem should be fixed in libtool (if it really is a libtool bug and not mine) but I'm unable to spend time on that for now. Thanks to Nelson H. F. Beebe for reporting the issue. Add a note about a possible need to run "ldconfig" after "make install".
2014-04-09xz: Rename a variable to avoid a namespace collision on Solaris.Lasse Collin1-5/+7
I don't know the details but I have an impression that there's no problem in practice if using GCC since people have built xz with GCC (without patching xz), but renaming the variable cannot hurt either. Thanks to Mark Ashley.
2014-01-29Docs: Add example program for threaded encoding.Lasse Collin2-1/+186
I didn't add -DLZMA_UNSTABLE to Makefile so one has to specify it manually as long as LZMA_UNSTABLE is needed.
2014-01-29liblzma: Fix lzma_mt.preset not working with lzma_stream_encoder_mt().Lasse Collin1-2/+2
It read the filter chain from a wrong variable.
2014-01-20liblzma: Fix typo in a comment.Lasse Collin1-1/+1
2014-01-12Windows: Add config.h for building liblzma with MSVC 2013.Lasse Collin1-0/+139
This is for building liblzma. Building xz tool too requires a little more work. Maybe it will be supported, but for most MSVC users it's enough to be able to build liblzma. C99 support in MSVC 2013 is almost usable which is a big improvement over earlier versions. It's "almost" because there's a dumb bug that breaks mixed declarations after an "if" statements unless the "if" statement uses braces: https://connect.microsoft.com/VisualStudio/feedback/details/808650/visual-studio-2013-c99-compiler-bug https://connect.microsoft.com/VisualStudio/feedback/details/808472/c99-support-of-mixed-declarations-and-statements-fails-with-certain-types-and-constructs Hopefully it will get fixed. Then liblzma should be compilable with MSVC 2013 without patching.
2014-01-12xz: Fix a comment.Lasse Collin1-2/+2