Lasse Collin [Sun, 23 Oct 2011 14:05:55 +0000 (17:05 +0300)]
liblzma: Fix a deadlock in the threaded encoder.
It was triggered when reinitializing the encoder,
e.g. when encoding two files.
Lasse Collin [Tue, 6 Sep 2011 09:03:41 +0000 (12:03 +0300)]
Build: Fix "make check" on Windows.
Lasse Collin [Tue, 9 Aug 2011 18:19:13 +0000 (21:19 +0300)]
Update THANKS.
Lasse Collin [Tue, 9 Aug 2011 18:16:44 +0000 (21:16 +0300)]
Workaround unusual SIZE_MAX on SCO OpenServer.
Lasse Collin [Sat, 6 Aug 2011 17:37:28 +0000 (20:37 +0300)]
Run the scripts with the correct shell in test_scripts.sh.
The scripts are now made executable in the build tree.
This way the scripts can be run like programs in
test_scripts.sh. Previously test_scripts.sh always
used sh but it's not correct if @POSIX_SHELL@ is set
to something else by configure.
Thanks to Jonathan Nieder for the patch.
Lasse Collin [Sun, 31 Jul 2011 08:01:47 +0000 (11:01 +0300)]
Fix exit status of "xzdiff foo.xz bar.xz".
xzdiff was clobbering the exit status from diff in a case
statement used to analyze the exit statuses from "xz" when
its operands were two compressed files. Save and restore
diff's exit status to fix this.
The bug is inherited from zdiff in GNU gzip and was fixed
there on 2009-10-09.
Thanks to Jonathan Nieder for the patch and
to Peter Pallinger for reporting the bug.
Lasse Collin [Thu, 16 Jun 2011 09:15:29 +0000 (12:15 +0300)]
liblzma: Remove unneeded semicolon.
Lasse Collin [Sat, 28 May 2011 16:24:56 +0000 (19:24 +0300)]
Build: Make configure print if symbol versioning is enabled or not.
Lasse Collin [Sat, 28 May 2011 13:43:26 +0000 (16:43 +0300)]
Don't call close(-1) in tuklib_open_stdxxx() on error.
Thanks to Jim Meyering.
Lasse Collin [Sat, 28 May 2011 12:55:39 +0000 (15:55 +0300)]
liblzma: Use symbol versioning.
Symbol versioning is enabled by default on GNU/Linux,
other GNU-based systems, and FreeBSD.
I'm not sure how stable this is, so it may need
backward-incompatible changes before the next release.
The idea is that alpha and beta symbols are considered
unstable and require recompiling the applications that
use those symbols. Once a symbol is stable, it may get
extended with new features in ways that don't break
compatibility with older ABI & API.
The mydist target runs validate_map.sh which should
catch some probable problems in liblzma.map. Otherwise
I would forget to update the map file for new releases.
Lasse Collin [Sat, 28 May 2011 06:46:46 +0000 (09:46 +0300)]
Translations: Update the Italian translation.
Thanks to Milo Casagrande.
Lasse Collin [Sat, 28 May 2011 05:46:04 +0000 (08:46 +0300)]
Tests: Add a test file for the bug in the previous commit.
Lasse Collin [Fri, 27 May 2011 19:25:44 +0000 (22:25 +0300)]
xz: Fix error handling in xz -lvv.
It could do an invalid free() and read past the end
of the uninitialized filters array.
Lasse Collin [Fri, 27 May 2011 19:09:49 +0000 (22:09 +0300)]
liblzma: Handle allocation failures correctly in lzma_index_init().
Thanks to Jim Meyering.
Lasse Collin [Mon, 23 May 2011 21:23:46 +0000 (00:23 +0300)]
Build: Fix checking for system-provided SHA-256.
Lasse Collin [Mon, 23 May 2011 15:30:30 +0000 (18:30 +0300)]
Build: Set GZIP_ENV=-9n in top-level Makefile.am.
Lasse Collin [Sun, 22 May 2011 13:42:11 +0000 (16:42 +0300)]
Update NEWS for 5.0.3.
Lasse Collin [Sat, 21 May 2011 13:28:44 +0000 (16:28 +0300)]
Add French translation.
It is known that the BCJ filter --help text is only
partially translated.
Lasse Collin [Sat, 21 May 2011 12:12:10 +0000 (15:12 +0300)]
xz: Translate also the string used to print the program name.
French needs a space before a colon, e.g. "xz : foo error".
Lasse Collin [Sat, 21 May 2011 12:08:44 +0000 (15:08 +0300)]
liblzma: Try to use SHA-256 from the operating system.
If the operating system libc or other base libraries
provide SHA-256, use that instead of our own copy.
Note that this doesn't use OpenSSL or libgcrypt or
such libraries to avoid creating dependencies to
other packages.
This supports at least FreeBSD, NetBSD, OpenBSD, Solaris,
MINIX, and Darwin. They all provide similar but not
identical SHA-256 APIs; everyone is a little different.
Thanks to Wim Lewis for the original patch, improvements,
and testing.
Lasse Collin [Tue, 17 May 2011 09:52:18 +0000 (12:52 +0300)]
Don't use clockid_t in mythread.h when clock_gettime() isn't available.
Thanks to Wim Lewis for the patch.
Lasse Collin [Tue, 17 May 2011 09:26:28 +0000 (12:26 +0300)]
Update THANKS.
Lasse Collin [Tue, 17 May 2011 09:21:33 +0000 (12:21 +0300)]
Update INSTALL with a note about linker problem on OpenSolaris x86.
Lasse Collin [Tue, 17 May 2011 09:01:37 +0000 (12:01 +0300)]
Build: Fix initialization of enable_check_* variables in configure.ac.
This doesn't matter much in practice since it is unlikely
that anyone would have such environment variable names.
Thanks to Wim Lewis.
Lasse Collin [Tue, 17 May 2011 08:54:38 +0000 (11:54 +0300)]
Add underscores to attributes (__attribute((__foo__))).
Lasse Collin [Sun, 1 May 2011 09:24:23 +0000 (12:24 +0300)]
xz: Fix input file position when --single-stream is used.
Now the following works as you would expect:
echo foo | xz > foo.xz
echo bar | xz >> foo.xz
( xz -dc --single-stream ; xz -dc --single-stream ) < foo.xz
Note that it doesn't work if the input is not seekable
or if there is Stream Padding between the concatenated
.xz Streams.
Lasse Collin [Sun, 1 May 2011 09:15:51 +0000 (12:15 +0300)]
xz: Print the maximum number of worker threads in xz -vv.
Lasse Collin [Tue, 19 Apr 2011 07:44:48 +0000 (10:44 +0300)]
Build: Warn if no supported method to detect the number of CPU cores.
Lasse Collin [Tue, 19 Apr 2011 06:55:06 +0000 (09:55 +0300)]
Update THANKS.
Lasse Collin [Tue, 19 Apr 2011 06:20:44 +0000 (09:20 +0300)]
Fix portability problems in mythread.h.
Use gettimeofday() if clock_gettime() isn't available
(e.g. Darwin).
The test for availability of pthread_condattr_setclock()
and CLOCK_MONOTONIC was incorrect. Instead of fixing the
#ifdefs, use an Autoconf test. That way if there exists a
system that supports them but doesn't specify the matching
POSIX #defines, the features will still get detected.
Don't try to use pthread_sigmask() on OpenVMS. It doesn't
have that function.
Guard mythread.h against being #included multiple times.
Lasse Collin [Mon, 18 Apr 2011 16:35:49 +0000 (19:35 +0300)]
Update THANKS.
Martin Väth [Fri, 15 Apr 2011 08:54:49 +0000 (04:54 -0400)]
xzgrep: fix typo in $0 parsing
Reported-by: Diego Elio Pettenò <flameeyes@gentoo.org>
Signed-off-by: Martin Väth <vaeth@mathematik.uni-wuerzburg.de>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Lasse Collin [Tue, 12 Apr 2011 09:48:31 +0000 (12:48 +0300)]
Bump the version number to 5.1.1alpha and liblzma soname to 5.0.99.
Lasse Collin [Tue, 12 Apr 2011 09:42:37 +0000 (12:42 +0300)]
Put the unstable APIs behind #ifdef LZMA_UNSTABLE.
This way people hopefully won't complain if these APIs
change and break code that used an older API.
Lasse Collin [Tue, 12 Apr 2011 08:59:49 +0000 (11:59 +0300)]
Remove doubled words from documentation and comments.
Spot candidates by running these commands:
git ls-files |xargs perl -0777 -n \
-e 'while (/\b(then?|[iao]n|i[fst]|but|f?or|at|and|[dt]o)\s+\1\b/gims)' \
-e '{$n=($` =~ tr/\n/\n/ + 1); ($v=$&)=~s/\n/\\n/g; print "$ARGV:$n:$v\n"}'
Thanks to Jim Meyering for the original patch.
Lasse Collin [Tue, 12 Apr 2011 08:46:01 +0000 (11:46 +0300)]
Update NEWS.
Lasse Collin [Tue, 12 Apr 2011 08:45:40 +0000 (11:45 +0300)]
Update TODO.
Lasse Collin [Tue, 12 Apr 2011 08:08:55 +0000 (11:08 +0300)]
xz: Update the man page about threading.
Lasse Collin [Mon, 11 Apr 2011 19:06:03 +0000 (22:06 +0300)]
xz: Add support for threaded compression.
Lasse Collin [Mon, 11 Apr 2011 19:03:30 +0000 (22:03 +0300)]
liblzma: Add lzma_stream_encoder_mt() for threaded compression.
This is the simplest method to do threading, which splits
the uncompressed data into blocks and compresses them
independently from each other. There's room for improvement
especially to reduce the memory usage, but nevertheless,
this is a good start.
Lasse Collin [Mon, 11 Apr 2011 18:15:07 +0000 (21:15 +0300)]
liblzma: Add the forgotten lzma_lzma2_block_size().
This should have been in
5eefc0086d24a65e136352f8c1d19cefb0cbac7a.
Lasse Collin [Mon, 11 Apr 2011 18:04:13 +0000 (21:04 +0300)]
liblzma: Document lzma_easy_(enc|dec)oder_memusage() better too.
Lasse Collin [Mon, 11 Apr 2011 17:59:07 +0000 (20:59 +0300)]
liblzma: Document lzma_raw_(enc|dec)oder_memusage() better.
It didn't mention the return value that is used if
an error occurs.
Lasse Collin [Mon, 11 Apr 2011 16:28:18 +0000 (19:28 +0300)]
liblzma: Use memzero() to initialize supported_actions[].
This is cleaner and makes it simpler to add new members
to lzma_action enumeration.
Lasse Collin [Mon, 11 Apr 2011 16:26:27 +0000 (19:26 +0300)]
liblzma: API comment about lzma_allocator with threaded coding.
Lasse Collin [Mon, 11 Apr 2011 16:16:30 +0000 (19:16 +0300)]
liblzma: Add an internal function lzma_mt_block_size().
This is based lzma_chunk_size() that was included in some
development version of liblzma.
Lasse Collin [Mon, 11 Apr 2011 10:59:50 +0000 (13:59 +0300)]
liblzma: Don't create an empty Block in lzma_stream_buffer_encode().
Empty Block was created if the input buffer was empty.
Empty Block wastes a few bytes of space, but more importantly
it triggers a bug in XZ Utils 5.0.1 and older when trying
to decompress such a file. 5.0.1 and older consider such
files to be corrupt. I thought that no encoder creates empty
Blocks when releasing 5.0.2 but I was wrong.
Lasse Collin [Mon, 11 Apr 2011 10:28:40 +0000 (13:28 +0300)]
liblzma: Fix API docs to mention LZMA_UNSUPPORTED_CHECK.
This return value was missing from the API comments of
four functions.
Lasse Collin [Mon, 11 Apr 2011 10:21:28 +0000 (13:21 +0300)]
liblzma: Validate encoder arguments better.
The biggest problem was that the integrity check type
wasn't validated, and e.g. lzma_easy_buffer_encode()
would create a corrupt .xz Stream if given an unsupported
Check ID. Luckily applications don't usually try to use
an unsupport Check ID, so this bug is unlikely to cause
many real-world problems.
Lasse Collin [Mon, 11 Apr 2011 06:57:30 +0000 (09:57 +0300)]
xz: Move the description of --block-size in --long-help.
Lasse Collin [Mon, 11 Apr 2011 06:55:35 +0000 (09:55 +0300)]
Docs: Document --single-stream and --block-size.
Lasse Collin [Mon, 11 Apr 2011 06:27:57 +0000 (09:27 +0300)]
liblzma: Make lzma_stream_encoder_init() static (second try).
It's an internal function and it's not needed by
anything outside stream_encoder.c.
Lasse Collin [Mon, 11 Apr 2011 05:31:42 +0000 (08:31 +0300)]
Revert "liblzma: Make lzma_stream_encoder_init() static."
This reverts commit
352ac82db5d3f64585c07b39e4759388dec0e4d7.
I don't know what I was thinking.
Lasse Collin [Sun, 10 Apr 2011 18:23:21 +0000 (21:23 +0300)]
Revise mythread.h.
This adds:
- mythread_sync() macro to create synchronized blocks
- mythread_cond structure and related functions
and macros for condition variables with timed
waiting using a relative timeout
- mythread_create() to create a thread with all
signals blocked
Some of these wouldn't need to be inline functions,
but I'll keep them this way for now for simplicity.
For timed waiting on a condition variable, librt is
now required on some systems to use clock_gettime().
configure.ac was updated to handle this.
Lasse Collin [Sun, 10 Apr 2011 17:37:36 +0000 (20:37 +0300)]
liblzma: Make lzma_stream_encoder_init() static.
It's an internal function and it's not needed by
anything outside stream_encoder.c.
Lasse Collin [Sun, 10 Apr 2011 11:58:10 +0000 (14:58 +0300)]
DOS: Update the docs and include notes about 8.3 filenames.
Lasse Collin [Sun, 10 Apr 2011 10:09:42 +0000 (13:09 +0300)]
xz/DOS: Add experimental 8.3 filename support.
This is incompatible with the 8.3 support patch made by
Juan Manuel Guerrero. I think this one is nicer, but
I need to get feedback from DOS users before saying
that this is the final version of 8.3 filename support.
Lasse Collin [Sun, 10 Apr 2011 09:47:47 +0000 (12:47 +0300)]
xz/DOS: Be more careful with the destination file.
Try to avoid overwriting the source file if --force is
used and the generated destination filename refers to
the source file. This can happen with 8.3 filenames where
extra characters are ignored.
If the generated output file refers to a special file
like "con" or "prn", refuse to write to it even if --force
is used.
Lasse Collin [Sat, 9 Apr 2011 15:29:30 +0000 (18:29 +0300)]
Update THANKS.
Lasse Collin [Sat, 9 Apr 2011 15:28:58 +0000 (18:28 +0300)]
liblzma: Add missing #ifdefs to filter_common.c.
Passing --disable-decoders to configure broke a few
encoders due to missing #ifdefs in filter_common.c.
Thanks to Jason Gorski for the patch.
Lasse Collin [Sat, 9 Apr 2011 12:24:59 +0000 (15:24 +0300)]
xz: Avoid unneeded fstat() on DOS-like systems.
Lasse Collin [Sat, 9 Apr 2011 12:11:13 +0000 (15:11 +0300)]
xz: Minor internal changes to handling of --threads.
Now it always defaults to one thread. Maybe this
will change again if a threading method is added
that doesn't affect memory usage.
Lasse Collin [Fri, 8 Apr 2011 14:53:05 +0000 (17:53 +0300)]
xz: Change size_t to uint32_t in a few places.
Lasse Collin [Fri, 8 Apr 2011 14:48:41 +0000 (17:48 +0300)]
xz: Fix a typo in a comment.
Lasse Collin [Tue, 5 Apr 2011 19:41:33 +0000 (22:41 +0300)]
liblzma: Use TUKLIB_GNUC_REQ to check GCC version in sha256.c.
Lasse Collin [Tue, 5 Apr 2011 14:12:20 +0000 (17:12 +0300)]
Build: Upgrade m4/acx_pthread.m4 to the latest version.
It was renamed to ax_pthread.m4 in Autoconf Archive.
Lasse Collin [Tue, 5 Apr 2011 12:27:26 +0000 (15:27 +0300)]
xz: Use posix_fadvise() if it is available.
Lasse Collin [Tue, 5 Apr 2011 12:13:29 +0000 (15:13 +0300)]
xz: Call lzma_end(&strm) before exiting if debugging is enabled.
Lasse Collin [Sat, 2 Apr 2011 11:49:56 +0000 (14:49 +0300)]
liblzma: Fix a memory leak in stream_encoder.c.
It leaks old filter options structures (hundred bytes or so)
every time the lzma_stream is reinitialized. With the xz tool,
this happens when compressing multiple files.
Lasse Collin [Fri, 1 Apr 2011 05:47:20 +0000 (08:47 +0300)]
Updated NEWS for 5.0.2.
Lasse Collin [Thu, 31 Mar 2011 12:06:58 +0000 (15:06 +0300)]
Update INSTALL with another note about IRIX.
Lasse Collin [Thu, 31 Mar 2011 09:22:55 +0000 (12:22 +0300)]
Tests: Add a new file to test empty LZMA2 streams.
Lasse Collin [Thu, 31 Mar 2011 08:54:48 +0000 (11:54 +0300)]
liblzma: Fix decoding of LZMA2 streams having no uncompressed data.
The decoder considered empty LZMA2 streams to be corrupt.
This shouldn't matter much with .xz files, because no encoder
creates empty LZMA2 streams in .xz. This bug is more likely
to cause problems in applications that use raw LZMA2 streams.
Lasse Collin [Wed, 23 Mar 2011 23:42:49 +0000 (01:42 +0200)]
Scripts: Better fix for xzgrep.
Now it uses "grep -q".
Thanks to Gregory Margo.
Lasse Collin [Wed, 23 Mar 2011 23:22:18 +0000 (01:22 +0200)]
Updated THANKS.
Lasse Collin [Wed, 23 Mar 2011 23:21:32 +0000 (01:21 +0200)]
Scripts: Fix xzgrep -l.
It didn't work at all. It tried to use the -q option
for grep, but it appended it after "--". This works
around it by redirecting to /dev/null. The downside
is that this can be slower with big files compared
to proper use of "grep -q".
Thanks to Gregory Margo.
Lasse Collin [Sat, 19 Mar 2011 11:08:22 +0000 (13:08 +0200)]
Scripts: Add lzop (.lzo) support to xzdiff and xzgrep.
Lasse Collin [Fri, 18 Mar 2011 17:10:30 +0000 (19:10 +0200)]
xz: Add --block-size=SIZE.
This uses LZMA_FULL_FLUSH every SIZE bytes of input.
Man page wasn't updated yet.
Lasse Collin [Fri, 18 Mar 2011 16:19:19 +0000 (18:19 +0200)]
xz: Add --single-stream.
This can be useful when there is garbage after the
compressed stream (.xz, .lzma, or raw stream).
Man page wasn't updated yet.
Lasse Collin [Fri, 4 Feb 2011 20:49:31 +0000 (22:49 +0200)]
xz: Clean up suffix.c.
struct suffix_pair isn't needed in compresed_name()
so get rid of it there.
Lasse Collin [Fri, 4 Feb 2011 09:29:47 +0000 (11:29 +0200)]
xz: Check if the file already has custom suffix when compressing.
Now "xz -S .test foo.test" refuses to compress the
file because it already has the suffix .test. The man
page had it documented this way already.
Lasse Collin [Wed, 2 Feb 2011 21:01:51 +0000 (23:01 +0200)]
Updated THANKS.
Lasse Collin [Wed, 2 Feb 2011 21:00:33 +0000 (23:00 +0200)]
Translations: Add Polish translation.
Thanks to Jakub Bogusz.
Lasse Collin [Wed, 2 Feb 2011 20:24:00 +0000 (22:24 +0200)]
Updated THANKS.
Lasse Collin [Sun, 6 Feb 2011 18:13:01 +0000 (20:13 +0200)]
Lasse Collin [Fri, 28 Jan 2011 18:16:57 +0000 (20:16 +0200)]
Update NEWS for 5.0.1.
Lasse Collin [Wed, 26 Jan 2011 10:19:08 +0000 (12:19 +0200)]
xz: Fix --force on setuid/setgid/sticky and multi-hardlink files.
xz didn't compress setuid/setgid/sticky files and files
with multiple hard links even with --force. This bug was
introduced in
23ac2c44c3ac76994825adb7f9a8f719f78b5ee4.
Thanks to Charles Wilson.
Lasse Collin [Wed, 19 Jan 2011 09:45:35 +0000 (11:45 +0200)]
Merge branch 'v5.0'
Lasse Collin [Tue, 18 Jan 2011 19:25:24 +0000 (21:25 +0200)]
Updated THANKS.
Lasse Collin [Tue, 18 Jan 2011 19:23:50 +0000 (21:23 +0200)]
Add alloc_size and malloc attributes to a few functions.
Thanks to Cristian Rodríguez for the original patch.
Lasse Collin [Mon, 13 Dec 2010 14:36:33 +0000 (16:36 +0200)]
Scripts: Fix gzip and bzip2 support in xzdiff.
Lasse Collin [Sun, 12 Dec 2010 21:13:22 +0000 (23:13 +0200)]
Merge branch 'v5.0'
Lasse Collin [Sun, 12 Dec 2010 19:23:55 +0000 (21:23 +0200)]
Build: Enable ASM on DJGPP by default.
Lasse Collin [Sun, 12 Dec 2010 14:09:42 +0000 (16:09 +0200)]
Updated THANKS.
Lasse Collin [Sun, 12 Dec 2010 14:07:11 +0000 (16:07 +0200)]
Add missing PRIx32 and PRIx64 compatibility definitions.
This fixes portability to systems that lack C99 inttypes.h.
Thanks to Juan Manuel Guerrero.
Lasse Collin [Sun, 12 Dec 2010 12:50:04 +0000 (14:50 +0200)]
DOS-like: Treat \ and : as directory separators in addition to /.
Juan Manuel Guerrero had fixed this in his XZ Utils port
to DOS/DJGPP. The bug affects also Windows and OS/2.
Lasse Collin [Tue, 7 Dec 2010 16:53:04 +0000 (18:53 +0200)]
Merge branch 'v5.0'
Lasse Collin [Tue, 7 Dec 2010 16:52:04 +0000 (18:52 +0200)]
Translations: Fix Czech translation of "sparse file".
Thanks to Petr Hubený and Marek Černocký.
Lasse Collin [Mon, 15 Nov 2010 12:33:01 +0000 (14:33 +0200)]
Merge branch 'v5.0'
Lasse Collin [Mon, 15 Nov 2010 12:28:26 +0000 (14:28 +0200)]
liblzma: Document the return value of lzma_lzma_preset().