]> granicus.if.org Git - xz/log
xz
5 years agoliblzma: Fix one more unaligned read to use unaligned_read16ne().
Lasse Collin [Sat, 1 Jun 2019 21:50:59 +0000 (00:50 +0300)]
liblzma: Fix one more unaligned read to use unaligned_read16ne().

5 years agoUpdate THANKS.
Lasse Collin [Sat, 1 Jun 2019 18:41:55 +0000 (21:41 +0300)]
Update THANKS.

5 years agoliblzma: memcmplen: Use ctz32() from tuklib_integer.h.
Lasse Collin [Sat, 1 Jun 2019 18:36:13 +0000 (21:36 +0300)]
liblzma: memcmplen: Use ctz32() from tuklib_integer.h.

The same compiler-specific #ifdefs are already in tuklib_integer.h

5 years agotuklib_integer: Cleanup MSVC-specific code.
Lasse Collin [Sat, 1 Jun 2019 18:30:03 +0000 (21:30 +0300)]
tuklib_integer: Cleanup MSVC-specific code.

5 years agoliblzma: Use unaligned_readXXne functions instead of type punning.
Lasse Collin [Sat, 1 Jun 2019 16:01:21 +0000 (19:01 +0300)]
liblzma: Use unaligned_readXXne functions instead of type punning.

Now gcc -fsanitize=undefined should be clean.

Thanks to Jeffrey Walton.

5 years agotuklib_integer: Autodetect support for unaligned access on ARM.
Lasse Collin [Sat, 1 Jun 2019 15:46:54 +0000 (18:46 +0300)]
tuklib_integer: Autodetect support for unaligned access on ARM.

The result is used as the default for --enable-unaligned-access.
The test should work with GCC and Clang.

5 years agotuklib_integer: Improve unaligned memory access.
Lasse Collin [Sat, 1 Jun 2019 15:41:16 +0000 (18:41 +0300)]
tuklib_integer: Improve unaligned memory access.

Now memcpy() or GNU C packed structs for unaligned access instead
of type punning. See the comment in this commit for details.

Avoiding type punning with unaligned access is needed to
silence gcc -fsanitize=undefined.

New functions: unaliged_readXXne and unaligned_writeXXne where
XX is 16, 32, or 64.

5 years agoliblzma: Avoid memcpy(NULL, foo, 0) because it is undefined behavior.
Lasse Collin [Mon, 13 May 2019 17:05:17 +0000 (20:05 +0300)]
liblzma: Avoid memcpy(NULL, foo, 0) because it is undefined behavior.

I should have always known this but I didn't. Here is an example
as a reminder to myself:

    int mycopy(void *dest, void *src, size_t n)
    {
        memcpy(dest, src, n);
        return dest == NULL;
    }

In the example, a compiler may assume that dest != NULL because
passing NULL to memcpy() would be undefined behavior. Testing
with GCC 8.2.1, mycopy(NULL, NULL, 0) returns 1 with -O0 and -O1.
With -O2 the return value is 0 because the compiler infers that
dest cannot be NULL because it was already used with memcpy()
and thus the test for NULL gets optimized out.

In liblzma, if a null-pointer was passed to memcpy(), there were
no checks for NULL *after* the memcpy() call, so I cautiously
suspect that it shouldn't have caused bad behavior in practice,
but it's hard to be sure, and the problematic cases had to be
fixed anyway.

Thanks to Jeffrey Walton.

5 years agoUpdate THANKS.
Lasse Collin [Sat, 11 May 2019 17:56:08 +0000 (20:56 +0300)]
Update THANKS.

5 years agoxz: Update xz man page date.
Lasse Collin [Sat, 11 May 2019 17:54:12 +0000 (20:54 +0300)]
xz: Update xz man page date.

5 years agospelling
Antoine Cœur [Wed, 8 May 2019 05:30:57 +0000 (13:30 +0800)]
spelling

5 years agoxz: In xz -lvv look at the widths of the check names too.
Lasse Collin [Wed, 1 May 2019 15:43:10 +0000 (18:43 +0300)]
xz: In xz -lvv look at the widths of the check names too.

Now the widths of the check names is used to adjust the width
of the Check column. This way there no longer is a need to restrict
the widths of the check names to be at most ten terminal-columns.

5 years agoxz: Fix xz -lvv column alignment to look at the translated strings.
Lasse Collin [Wed, 1 May 2019 15:33:25 +0000 (18:33 +0300)]
xz: Fix xz -lvv column alignment to look at the translated strings.

5 years agoUpdate THANKS.
Lasse Collin [Wed, 1 May 2019 13:52:36 +0000 (16:52 +0300)]
Update THANKS.

5 years agoWindows: Update VS version in windows/vs2019/config.h.
Lasse Collin [Wed, 1 May 2019 13:43:16 +0000 (16:43 +0300)]
Windows: Update VS version in windows/vs2019/config.h.

5 years agoWindows: Upgrade solution itself
Julien Marrec [Thu, 25 Apr 2019 15:44:06 +0000 (17:44 +0200)]
Windows: Upgrade solution itself

5 years agoWindows: Upgrade solution with VS2019
Julien Marrec [Thu, 25 Apr 2019 15:40:24 +0000 (17:40 +0200)]
Windows: Upgrade solution with VS2019

5 years agoWindows: Duplicate windows/vs2017 before upgrading
Julien Marrec [Thu, 25 Apr 2019 15:39:32 +0000 (17:39 +0200)]
Windows: Duplicate windows/vs2017 before upgrading

5 years agoREADME: Update translation instructions.
Lasse Collin [Mon, 4 Mar 2019 20:49:04 +0000 (22:49 +0200)]
README: Update translation instructions.

XZ Utils is now part of the Translation Project
<https://translationproject.org/>.

5 years agoxz: Automatically align column headings in xz -lvv.
Lasse Collin [Mon, 4 Mar 2019 19:20:39 +0000 (21:20 +0200)]
xz: Automatically align column headings in xz -lvv.

5 years agoxz: Automatically align strings ending in a colon in --list output.
Lasse Collin [Sun, 3 Mar 2019 23:07:59 +0000 (01:07 +0200)]
xz: Automatically align strings ending in a colon in --list output.

This should avoid alignment errors in translations with these
strings.

5 years agoWindows/VS2017: Omit WindowsTargetPlatformVersion from project files.
Lasse Collin [Sun, 13 Jan 2019 15:29:23 +0000 (17:29 +0200)]
Windows/VS2017: Omit WindowsTargetPlatformVersion from project files.

I understood that if a WTPV is specified, it's often wrong
because different VS installations have different SDK version
installed. Omitting the WTPV tag makes VS2017 default to
Windows SDK 8.1 which often is also missing, so in any case
people may need to specify the WTPV before building. But some
day in the future a missing WTPV tag will start to default to
the latest installed SDK which sounds reasonable:

https://developercommunity.visualstudio.com/content/problem/140294/windowstargetplatformversion-makes-it-impossible-t.html

Thanks to "dom".

6 years agoUpdate THANKS.
Lasse Collin [Thu, 20 Dec 2018 18:42:29 +0000 (20:42 +0200)]
Update THANKS.

6 years agoxz: Fix a crash in progress indicator when in passthru mode.
Lasse Collin [Fri, 14 Dec 2018 18:34:30 +0000 (20:34 +0200)]
xz: Fix a crash in progress indicator when in passthru mode.

"xz -dcfv not_an_xz_file" crashed (all four options are
required to trigger it). It caused xz to call
lzma_get_progress(&strm, ...) when no coder was initialized
in strm. In this situation strm.internal is NULL which leads
to a crash in lzma_get_progress().

The bug was introduced when xz started using lzma_get_progress()
to get progress info for multi-threaded compression, so the
bug is present in versions 5.1.3alpha and higher.

Thanks to Filip Palian <Filip.Palian@pjwstk.edu.pl> for
the bug report.

6 years agoxz: Update man page timestamp.
Lasse Collin [Thu, 22 Nov 2018 15:20:31 +0000 (17:20 +0200)]
xz: Update man page timestamp.

6 years ago'have have' typos
Pavel Raiskup [Thu, 22 Nov 2018 14:14:34 +0000 (15:14 +0100)]
'have have' typos

6 years agoUpdate THANKS.
Lasse Collin [Fri, 2 Nov 2018 18:40:48 +0000 (20:40 +0200)]
Update THANKS.

6 years agoTests: Add a fuzz test program and a config file for OSS-Fuzz.
Lasse Collin [Fri, 2 Nov 2018 18:18:45 +0000 (20:18 +0200)]
Tests: Add a fuzz test program and a config file for OSS-Fuzz.

Thanks to Bhargava Shastry and Github user pdknsk.

6 years agoliblzma: Don't verify header CRC32s if building for fuzz testing.
Lasse Collin [Fri, 26 Oct 2018 19:49:10 +0000 (22:49 +0300)]
liblzma: Don't verify header CRC32s if building for fuzz testing.

FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION is #defined when liblzma
is being built for fuzz testing.

Most fuzzed inputs would normally get rejected because of incorrect
CRC32 and the actual header decoding code wouldn't get fuzzed.
Disabling CRC32 checks avoids this problem. The fuzzer program
must still use LZMA_IGNORE_CHECK flag to disable verification of
integrity checks of uncompressed data.

6 years agoxzless: Rename unused variables to silence static analysers.
Lasse Collin [Fri, 27 Jul 2018 15:10:44 +0000 (18:10 +0300)]
xzless: Rename unused variables to silence static analysers.

In this particular case I don't see this affecting readability
of the code.

Thanks to Pavel Raiskup.

6 years agoliblzma: Remove an always-true condition from lzma_index_cat().
Lasse Collin [Fri, 27 Jul 2018 13:02:58 +0000 (16:02 +0300)]
liblzma: Remove an always-true condition from lzma_index_cat().

This should help static analysis tools to see that newg
isn't leaked.

Thanks to Pavel Raiskup.

6 years agoliblzma: Improve lzma_properties_decode() API documentation.
Lasse Collin [Sat, 19 May 2018 18:23:25 +0000 (21:23 +0300)]
liblzma: Improve lzma_properties_decode() API documentation.

6 years agoBump the version number to 5.3.1alpha. v5.3.1alpha
Lasse Collin [Sun, 29 Apr 2018 15:58:19 +0000 (18:58 +0300)]
Bump the version number to 5.3.1alpha.

6 years agoextra/scanlzma: Fix compiler warnings.
Lasse Collin [Sun, 29 Apr 2018 15:48:00 +0000 (18:48 +0300)]
extra/scanlzma: Fix compiler warnings.

6 years agoDOS: Add file_info.c to the list of files to build.
Lasse Collin [Sun, 29 Apr 2018 15:44:47 +0000 (18:44 +0300)]
DOS: Add file_info.c to the list of files to build.

6 years agoUpdate NEWS for 5.3.1alpha.
Lasse Collin [Sun, 29 Apr 2018 15:33:10 +0000 (18:33 +0300)]
Update NEWS for 5.3.1alpha.

6 years agoAdd NEWS for 5.2.4.
Lasse Collin [Sun, 29 Apr 2018 15:15:37 +0000 (18:15 +0300)]
Add NEWS for 5.2.4.

6 years agoUpdate THANKS.
Lasse Collin [Tue, 6 Feb 2018 17:36:30 +0000 (19:36 +0200)]
Update THANKS.

6 years agonothrow: use noexcept for C++11 and newer
Ben Boeckel [Mon, 29 Jan 2018 18:58:18 +0000 (13:58 -0500)]
nothrow: use noexcept for C++11 and newer

In C++11, the `throw()` specifier is deprecated and `noexcept` is
preffered instead.

6 years agoliblzma: Remove incorrect #ifdef from range_common.h.
Lasse Collin [Tue, 6 Feb 2018 16:02:48 +0000 (18:02 +0200)]
liblzma: Remove incorrect #ifdef from range_common.h.

In most cases it was harmless but it could affect some
custom build systems.

Thanks to Pippijn van Steenhoven.

6 years agoUpdate THANKS.
Lasse Collin [Wed, 10 Jan 2018 20:10:39 +0000 (22:10 +0200)]
Update THANKS.

6 years agotuklib_integer: New Intel C compiler needs immintrin.h.
Lasse Collin [Wed, 10 Jan 2018 19:54:27 +0000 (21:54 +0200)]
tuklib_integer: New Intel C compiler needs immintrin.h.

Thanks to Melanie Blower (Intel) for the patch.

7 years agoUpdate THANKS.
Lasse Collin [Sun, 24 Sep 2017 17:04:24 +0000 (20:04 +0300)]
Update THANKS.

7 years agoWindows: Fix paths in VS project files.
Lasse Collin [Sat, 16 Sep 2017 17:36:20 +0000 (20:36 +0300)]
Windows: Fix paths in VS project files.

Some paths use slashes instead of backslashes as directory
separators... now it should work (I tested VS2013 version).

7 years agoWindows: Update VS2017 project files to include file info decoder.
Lasse Collin [Sat, 16 Sep 2017 09:56:20 +0000 (12:56 +0300)]
Windows: Update VS2017 project files to include file info decoder.

7 years agoWindows: Add project files for VS2017.
Lasse Collin [Sat, 16 Sep 2017 09:54:23 +0000 (12:54 +0300)]
Windows: Add project files for VS2017.

These files match the v5.2 branch (no file info decoder).

7 years agoWindows: Update VS2013 project files to include file info decoder.
Lasse Collin [Sat, 16 Sep 2017 09:45:50 +0000 (12:45 +0300)]
Windows: Update VS2013 project files to include file info decoder.

7 years agoWindows: Move VS2013 files into windows/vs2013 directory.
Lasse Collin [Sat, 16 Sep 2017 09:39:43 +0000 (12:39 +0300)]
Windows: Move VS2013 files into windows/vs2013 directory.

7 years agoFix or hide warnings from GCC 7's -Wimplicit-fallthrough.
Lasse Collin [Mon, 14 Aug 2017 17:08:33 +0000 (20:08 +0300)]
Fix or hide warnings from GCC 7's -Wimplicit-fallthrough.

7 years agoDocs: Fix a typo in a comment in doc/examples/02_decompress.c.
Alexey Tourbin [Tue, 16 May 2017 20:56:35 +0000 (23:56 +0300)]
Docs: Fix a typo in a comment in doc/examples/02_decompress.c.

7 years agoxz: Fix "xz --list --robot missing_or_bad_file.xz".
Lasse Collin [Tue, 23 May 2017 15:34:43 +0000 (18:34 +0300)]
xz: Fix "xz --list --robot missing_or_bad_file.xz".

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.

7 years agoDocs: Add doc/examples/11_file_info.c.
Lasse Collin [Mon, 24 Apr 2017 17:20:11 +0000 (20:20 +0300)]
Docs: Add doc/examples/11_file_info.c.

7 years agoBuild: Omit pre-5.0.0 entries from the generated ChangeLog.
Lasse Collin [Mon, 24 Apr 2017 16:48:47 +0000 (19:48 +0300)]
Build: Omit pre-5.0.0 entries from the generated ChangeLog.

It makes ChangeLog significantly smaller.

7 years agoxz: Use lzma_file_info_decoder() for --list.
Lasse Collin [Mon, 24 Apr 2017 16:48:23 +0000 (19:48 +0300)]
xz: Use lzma_file_info_decoder() for --list.

7 years agoliblzma: Add lzma_file_info_decoder().
Lasse Collin [Mon, 24 Apr 2017 16:35:50 +0000 (19:35 +0300)]
liblzma: Add lzma_file_info_decoder().

7 years agoUpdate the Git repository URL to HTTPS in ChangeLog.
Lasse Collin [Mon, 24 Apr 2017 16:30:22 +0000 (19:30 +0300)]
Update the Git repository URL to HTTPS in ChangeLog.

7 years agoliblzma: Rename LZMA_SEEK to LZMA_SEEK_NEEDED and seek_in to seek_pos.
Lasse Collin [Fri, 21 Apr 2017 12:05:16 +0000 (15:05 +0300)]
liblzma: Rename LZMA_SEEK to LZMA_SEEK_NEEDED and seek_in to seek_pos.

7 years agoUpdate the home page URLs to HTTPS.
Lasse Collin [Wed, 19 Apr 2017 19:17:35 +0000 (22:17 +0300)]
Update the home page URLs to HTTPS.

7 years agoxz: Add io_seek_src().
Lasse Collin [Wed, 5 Apr 2017 15:47:22 +0000 (18:47 +0300)]
xz: Add io_seek_src().

7 years agoxz: Use POSIX_FADV_RANDOM for in "xz --list" mode.
Lasse Collin [Thu, 30 Mar 2017 19:01:54 +0000 (22:01 +0300)]
xz: Use POSIX_FADV_RANDOM for in "xz --list" mode.

xz --list is random access so POSIX_FADV_SEQUENTIAL was clearly
wrong.

7 years agoliblzma: Make lzma_index_decoder_init() visible to other liblzma funcs.
Lasse Collin [Thu, 30 Mar 2017 17:03:05 +0000 (20:03 +0300)]
liblzma: Make lzma_index_decoder_init() visible to other liblzma funcs.

This is to allow other functions to use it without going
via the public API (lzma_index_decoder()).

7 years agoliblzma: Add generic support for input seeking (LZMA_SEEK).
Lasse Collin [Thu, 30 Mar 2017 17:00:09 +0000 (20:00 +0300)]
liblzma: Add generic support for input seeking (LZMA_SEEK).

Also mention LZMA_SEEK in xz/message.c to silence a warning.

7 years agoliblzma: Fix lzma_memlimit_set(strm, 0).
Lasse Collin [Thu, 30 Mar 2017 16:47:45 +0000 (19:47 +0300)]
liblzma: Fix lzma_memlimit_set(strm, 0).

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.

7 years agoliblzma: Similar memlimit fix for stream_, alone_, and auto_decoder.
Lasse Collin [Thu, 30 Mar 2017 16:16:55 +0000 (19:16 +0300)]
liblzma: Similar memlimit fix for stream_, alone_, and auto_decoder.

7 years agoliblzma: Fix handling of memlimit == 0 in lzma_index_decoder().
Lasse Collin [Thu, 30 Mar 2017 15:58:18 +0000 (18:58 +0300)]
liblzma: Fix handling of memlimit == 0 in lzma_index_decoder().

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.

7 years agoUpdate NEWS for 5.2.3.
Lasse Collin [Fri, 30 Dec 2016 11:25:10 +0000 (13:25 +0200)]
Update NEWS for 5.2.3.

7 years agoDocument --enable-sandbox configure option in INSTALL.
Lasse Collin [Mon, 26 Dec 2016 18:55:52 +0000 (20:55 +0200)]
Document --enable-sandbox configure option in INSTALL.

8 years agoliblzma: Avoid multiple definitions of lzma_coder structures.
Lasse Collin [Mon, 21 Nov 2016 18:24:50 +0000 (20:24 +0200)]
liblzma: Avoid multiple definitions of lzma_coder structures.

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

8 years agoUpdate THANKS.
Lasse Collin [Mon, 24 Oct 2016 15:53:25 +0000 (18:53 +0300)]
Update THANKS.

8 years agotuklib_cpucores: Add support for sched_getaffinity().
Lasse Collin [Mon, 24 Oct 2016 15:51:36 +0000 (18:51 +0300)]
tuklib_cpucores: Add support for sched_getaffinity().

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.

8 years agoxz: Fix copying of timestamps on Windows.
Lasse Collin [Thu, 30 Jun 2016 17:27:36 +0000 (20:27 +0300)]
xz: Fix copying of timestamps on Windows.

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

8 years agoxz: Silence warnings from -Wlogical-op.
Lasse Collin [Thu, 16 Jun 2016 19:46:02 +0000 (22:46 +0300)]
xz: Silence warnings from -Wlogical-op.

Thanks to Evan Nemerson.

8 years agoBuild: Fix = to += for xz_SOURCES in src/xz/Makefile.am.
Lasse Collin [Sun, 10 Apr 2016 17:55:49 +0000 (20:55 +0300)]
Build: Fix = to += for xz_SOURCES in src/xz/Makefile.am.

Thanks to Christian Kujau.

8 years agoBuild: Bump GNU Gettext version requirement to 0.19.
Lasse Collin [Sun, 10 Apr 2016 17:54:17 +0000 (20:54 +0300)]
Build: Bump GNU Gettext version requirement to 0.19.

It silences a few warnings and most people probably have
0.19 even on stable distributions.

Thanks to Christian Kujau.

8 years agoliblzma: Disable external SHA-256 by default.
Lasse Collin [Sun, 13 Mar 2016 18:21:49 +0000 (20:21 +0200)]
liblzma: Disable external SHA-256 by default.

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.

8 years agoUpdate THANKS.
Lasse Collin [Thu, 10 Mar 2016 18:27:05 +0000 (20:27 +0200)]
Update THANKS.

8 years agoBuild: Avoid SHA256_Init on FreeBSD and MINIX 3.
Lasse Collin [Thu, 10 Mar 2016 18:26:49 +0000 (20:26 +0200)]
Build: Avoid SHA256_Init on FreeBSD and MINIX 3.

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.

9 years agotuklib_physmem: Hopefully silence a warning on Windows.
Lasse Collin [Sun, 8 Nov 2015 18:16:10 +0000 (20:16 +0200)]
tuklib_physmem: Hopefully silence a warning on Windows.

9 years agoUpdate THANKS.
Lasse Collin [Wed, 4 Nov 2015 21:17:43 +0000 (23:17 +0200)]
Update THANKS.

9 years agoliblzma: Make Valgrind happier with optimized (gcc -O2) liblzma.
Lasse Collin [Wed, 4 Nov 2015 21:14:00 +0000 (23:14 +0200)]
liblzma: Make Valgrind happier with optimized (gcc -O2) liblzma.

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.

9 years agoliblzma: Rename lzma_presets.c back to lzma_encoder_presets.c.
Lasse Collin [Tue, 3 Nov 2015 18:55:45 +0000 (20:55 +0200)]
liblzma: Rename lzma_presets.c back to lzma_encoder_presets.c.

It would be too annoying to update other build systems
just because of this.

9 years agoBuild: Disable xzdec, lzmadec, and lzmainfo when they cannot be built.
Lasse Collin [Tue, 3 Nov 2015 18:47:07 +0000 (20:47 +0200)]
Build: Disable xzdec, lzmadec, and lzmainfo when they cannot be built.

They all need decoder support and if that isn't available,
there's no point trying to build them.

9 years agoBuild: Simplify $enable_{encoders,decoders} usage a bit.
Lasse Collin [Tue, 3 Nov 2015 18:35:19 +0000 (20:35 +0200)]
Build: Simplify $enable_{encoders,decoders} usage a bit.

9 years agoWindows/MSVC: Update config.h.
Lasse Collin [Tue, 3 Nov 2015 18:31:31 +0000 (20:31 +0200)]
Windows/MSVC: Update config.h.

9 years agoDOS: Update config.h.
Lasse Collin [Tue, 3 Nov 2015 18:29:58 +0000 (20:29 +0200)]
DOS: Update config.h.

9 years agoxz: Make xz buildable even when encoders or decoders are disabled.
Lasse Collin [Tue, 3 Nov 2015 18:29:33 +0000 (20:29 +0200)]
xz: Make xz buildable even when encoders or decoders are disabled.

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.

9 years agoBuild: Build LZMA1/2 presets also when only decoder is wanted.
Lasse Collin [Tue, 3 Nov 2015 16:06:40 +0000 (18:06 +0200)]
Build: Build LZMA1/2 presets also when only decoder is wanted.

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.

9 years agoBuild: Fix configure to handle LZMA1 dependency with LZMA2.
Lasse Collin [Tue, 3 Nov 2015 15:54:48 +0000 (17:54 +0200)]
Build: Fix configure to handle LZMA1 dependency with LZMA2.

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.

9 years agoBuild: Don't omit lzma_cputhreads() unless using --disable-threads.
Lasse Collin [Tue, 3 Nov 2015 15:41:54 +0000 (17:41 +0200)]
Build: Don't omit lzma_cputhreads() unless using --disable-threads.

Previously it was omitted if encoders were disabled
with --disable-encoders. It didn't make sense and
it also broke the build.

9 years agoliblzma: Fix a build failure related to external SHA-256 support.
Lasse Collin [Mon, 2 Nov 2015 16:16:51 +0000 (18:16 +0200)]
liblzma: Fix a build failure related to external SHA-256 support.

If an appropriate header and structure were found by configure,
but a library with a usable SHA-256 functions wasn't, the build
failed.

9 years agoxz: Always close the file before trying to delete it.
Lasse Collin [Mon, 2 Nov 2015 13:19:10 +0000 (15:19 +0200)]
xz: Always close the file before trying to delete it.

unlink() can return EBUSY in errno for open files on some
operating systems and file systems.

9 years agoUpdate THANKS.
Lasse Collin [Mon, 12 Oct 2015 18:08:42 +0000 (21:08 +0300)]
Update THANKS.

9 years agoTests: Add tests for the two bugs fixed in index.c.
Lasse Collin [Mon, 12 Oct 2015 18:07:41 +0000 (21:07 +0300)]
Tests: Add tests for the two bugs fixed in index.c.

9 years agoliblzma: Fix lzma_index_dup() for empty Streams.
Lasse Collin [Mon, 12 Oct 2015 17:45:15 +0000 (20:45 +0300)]
liblzma: Fix lzma_index_dup() for empty Streams.

Stream Flags and Stream Padding weren't copied from
empty Streams.

9 years agoliblzma: Add a note to index.c for those using static analyzers.
Lasse Collin [Mon, 12 Oct 2015 17:31:44 +0000 (20:31 +0300)]
liblzma: Add a note to index.c for those using static analyzers.

9 years agoliblzma: Fix a memory leak in error path of lzma_index_dup().
Lasse Collin [Mon, 12 Oct 2015 17:29:09 +0000 (20:29 +0300)]
liblzma: Fix a memory leak in error path of lzma_index_dup().

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.

9 years agoUpdate NEWS for 5.2.2.
Lasse Collin [Tue, 29 Sep 2015 10:57:28 +0000 (13:57 +0300)]
Update NEWS for 5.2.2.

9 years agoUpdate German translation, mostly wrt orthography
Hauke Henningsen [Mon, 17 Aug 2015 02:59:54 +0000 (04:59 +0200)]
Update German translation, mostly wrt orthography

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

9 years agoBuild: Minor Cygwin cleanup.
Lasse Collin [Tue, 11 Aug 2015 10:23:04 +0000 (13:23 +0300)]
Build: Minor Cygwin cleanup.

Some tests used "cygwin*" and some used "cygwin". I changed
them all to use "cygwin". Shouldn't affect anything in practice.

9 years agoBuild: Support building of MSYS2 binaries.
Lasse Collin [Tue, 11 Aug 2015 10:21:52 +0000 (13:21 +0300)]
Build: Support building of MSYS2 binaries.