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().
Jonathan Nieder [Fri, 12 Nov 2010 21:22:13 +0000 (15:22 -0600)]
Simplify paths in generated API docs
Currently the file list generated by Doxygen has src/ at the
beginning of each path. Paths like common/sysdefs.h and
liblzma/api/lzma.h are easier to read without such a prefix.
Builds from a separate build directory with
mkdir build
cd build
../configure
doxygen Doxyfile
include an even longer prefix /home/someone/src/xz/src; this
patch has the nice side-effect of eliminating that prefix, too.
Fixes: http://bugs.debian.org/572273
Anders F Bjorklund [Fri, 5 Nov 2010 11:56:11 +0000 (12:56 +0100)]
add build script for macosx universal
Lasse Collin [Thu, 4 Nov 2010 16:31:40 +0000 (18:31 +0200)]
Update the copies of GPLv2 and LGPLv2.1 from gnu.org.
There are only a few white space changes.
Lasse Collin [Tue, 26 Oct 2010 12:53:06 +0000 (15:53 +0300)]
Merge branch 'v5.0'
Lasse Collin [Tue, 26 Oct 2010 12:48:48 +0000 (15:48 +0300)]
Build: Copy the example programs to $docdir/examples.
The example programs by Daniel Mealha Cabrita were included
in the git repository, but I had forgot to add them to
Makefile.am. Thus, they didn't get included in the source
package at all by "make dist".
Lasse Collin [Tue, 26 Oct 2010 07:36:41 +0000 (10:36 +0300)]
liblzma: Rename a few variables and constants.
This has no semantic changes. I find the new names slightly
more logical and they match the names that are already used
in XZ Embedded.
The name fastpos wasn't changed (not worth the hassle).
Lasse Collin [Mon, 25 Oct 2010 09:59:25 +0000 (12:59 +0300)]
Bump version 5.1.0alpha.
Lasse Collin [Sat, 23 Oct 2010 14:25:52 +0000 (17:25 +0300)]
Build: Fix mydist rule when .git doesn't exist.
Lasse Collin [Sat, 23 Oct 2010 11:15:35 +0000 (14:15 +0300)]
Add NEWS for 5.0.0.
Lasse Collin [Sat, 23 Oct 2010 11:02:53 +0000 (14:02 +0300)]
Bump version to 5.0.0 and liblzma version-info to 5:0:0.
Lasse Collin [Sat, 23 Oct 2010 09:30:54 +0000 (12:30 +0300)]
liblzma: Make lzma_code() check the reserved members in lzma_stream.
If any of the reserved members in lzma_stream are non-zero
or non-NULL, LZMA_OPTIONS_ERROR is returned. It is possible
that a new feature in the future is indicated by just setting
a reserved member to some other value, so the old liblzma
version need to catch it as an unsupported feature.
Lasse Collin [Sat, 23 Oct 2010 09:26:33 +0000 (12:26 +0300)]
Windows: Use MinGW's stdio functions.
The non-standard ones from msvcrt.dll appear to work
most of the time with XZ Utils, but there are some
corner cases where things may go very wrong. So it's
good to use the better replacements provided by
MinGW(-w64) runtime.
Lasse Collin [Sat, 23 Oct 2010 09:21:32 +0000 (12:21 +0300)]
liblzma: Use 512 as INDEX_GROUP_SIZE.
This lets compiler use shifting instead of 64-bit division.
Lasse Collin [Sat, 23 Oct 2010 09:20:11 +0000 (12:20 +0300)]
liblzma: A few ABI tweaks to reserve space in structures.
Lasse Collin [Thu, 21 Oct 2010 20:16:11 +0000 (23:16 +0300)]
xz: Make sure that message_strm() can never return NULL.
Lasse Collin [Thu, 21 Oct 2010 20:06:31 +0000 (23:06 +0300)]
liblzma: Update the comments in the API headers.
Adding support for LZMA_FINISH for Index encoding and
decoding needed tiny additions to the relevant .c files too.
Lasse Collin [Tue, 19 Oct 2010 09:08:30 +0000 (12:08 +0300)]
Update INSTALL.generic.
Lasse Collin [Tue, 19 Oct 2010 08:44:37 +0000 (11:44 +0300)]
Clean up a few FIXMEs and TODOs.
lzma_chunk_size() was commented out because it is
currently useless.
Lasse Collin [Tue, 19 Oct 2010 07:21:08 +0000 (10:21 +0300)]
Update docs.
Lasse Collin [Tue, 12 Oct 2010 12:13:30 +0000 (15:13 +0300)]
xz: Avoid raise() also on OpenVMS.
This is similar to DOS/DJGPP that killing the program
with a signal will print a backtrace or a similar message.
Lasse Collin [Mon, 11 Oct 2010 18:26:19 +0000 (21:26 +0300)]
xz: Avoid SA_RESTART for portability reasons.
SA_RESTART is not as portable as I had hoped. It's missing
at least from OpenVMS, QNX, and DJGPP). Luckily we can do
fine without SA_RESTART.
Lasse Collin [Sun, 10 Oct 2010 14:58:58 +0000 (17:58 +0300)]
xz: Use "%"PRIu32 instead of "%d" in a format string.
Lasse Collin [Sun, 10 Oct 2010 14:43:26 +0000 (17:43 +0300)]
test_files.sh: Fix the first line.
For some reason this prevented running the test only
on OS/2 and even on that it broke only recently.
Thanks to Elbert Pol.
Lasse Collin [Sun, 10 Oct 2010 13:49:01 +0000 (16:49 +0300)]
lzmainfo: Use "%"PRIu32 instead of "%u" for uint32_t.
Lasse Collin [Sun, 10 Oct 2010 13:47:01 +0000 (16:47 +0300)]
lzmainfo: Use fileno(stdin) instead of STDIN_FILENO.
Lasse Collin [Sat, 9 Oct 2010 20:20:51 +0000 (23:20 +0300)]
lzmainfo: Use setmode() on DOS-like systems.
Lasse Collin [Sat, 9 Oct 2010 18:51:03 +0000 (21:51 +0300)]
OS/2 and DOS: Be less verbose on signals.
Calling raise() to kill xz when user has pressed C-c
is a bit verbose on OS/2 and DOS/DJGPP. Instead of
calling raise(), set only the exit status to 1.
Lasse Collin [Sat, 9 Oct 2010 16:28:49 +0000 (19:28 +0300)]
DOS: Update the Makefile, config.h and README.
This is now simpler and builds only xz.exe.
Lasse Collin [Sat, 9 Oct 2010 15:57:55 +0000 (18:57 +0300)]
Windows: Put some license info into README-Windows.txt.
Lasse Collin [Sat, 9 Oct 2010 15:57:04 +0000 (18:57 +0300)]
Windows: Fix a diagnostics bug in build.bash.
Lasse Collin [Sat, 9 Oct 2010 10:02:15 +0000 (13:02 +0300)]
lzmainfo: Add Windows resource file.
Lasse Collin [Sat, 9 Oct 2010 09:57:25 +0000 (12:57 +0300)]
Add missing public domain notice to lzmadec_w32res.rc.
Lasse Collin [Sat, 9 Oct 2010 09:52:12 +0000 (12:52 +0300)]
Windows: Update common_w32res.rc.
Lasse Collin [Sat, 9 Oct 2010 09:27:08 +0000 (12:27 +0300)]
Windows: Make build.bash prefer MinGW-w32 over MinGW.
This is simply for licensing reasons. The 64-bit version
will be built with MinGW-w64 anyway (at least for now),
so using it also for 32-bit build allows using the same
copyright notice about the MinGW-w64/w32 runtime.
Note that using MinGW would require a copyright notice too,
because its runtime is not in the public domain either even
though MinGW's home page claims that it is public domain.
See <http://marc.info/?l=mingw-users&m=
126489506214078>.
Lasse Collin [Sat, 9 Oct 2010 08:33:21 +0000 (11:33 +0300)]
Windows: Copy COPYING-Windows.txt (if it exists) to the package.
Also, put README-Windows.txt to the doc directory like
the other documentation files.
Lasse Collin [Fri, 8 Oct 2010 18:42:37 +0000 (21:42 +0300)]
Windows: Fix build.bash again.
630a8beda34af0ac153c8051b1bf01230558e422 wasn't good.
Lasse Collin [Fri, 8 Oct 2010 13:53:20 +0000 (16:53 +0300)]
Use LZMA_VERSION_STRING instead of PACKAGE_VERSION.
Those are the same thing, and the former makes it a bit
easier to build the code with other build systems, because
one doesn't need to update the version number into custom
config.h.
This change affects only lzmainfo. Other tools were already
using LZMA_VERSION_STRING.