]> git.ipfire.org Git - thirdparty/xz.git/log
thirdparty/xz.git
5 years agosysdefs.h: Omit the conditionals around string.h and limits.h.
Lasse Collin [Sun, 16 Feb 2020 09:18:28 +0000 (11:18 +0200)] 
sysdefs.h: Omit the conditionals around string.h and limits.h.

string.h is used unconditionally elsewhere in the project and
configure has always stopped if limits.h is missing, so these
headers must have been always available even on the weirdest
systems.

5 years agoBuild: Bump Autoconf and Libtool version requirements.
Lasse Collin [Sat, 15 Feb 2020 13:07:11 +0000 (15:07 +0200)] 
Build: Bump Autoconf and Libtool version requirements.

There is no specific reason for this other than blocking
the most ancient versions. These are still old:

Autoconf 2.69 (2012)
Automake 1.12 (2012)
gettext 0.19.6 (2015)
Libtool 2.4 (2010)

5 years agoBuild: Use AM_GNU_GETTEXT_REQUIRE_VERSION and require 0.19.6.
Lasse Collin [Sat, 15 Feb 2020 01:08:32 +0000 (03:08 +0200)] 
Build: Use AM_GNU_GETTEXT_REQUIRE_VERSION and require 0.19.6.

This bumps the version requirement from 0.19 (from 2014) to
0.19.6 (2015).

Using only the old AM_GNU_GETTEXT_VERSION results in old
gettext infrastructure being placed in the package. By using
both macros we get the latest gettext files while the other
programs in the Autotools family can still see the old macro.

5 years agoTranslations: Add German translation of the man pages.
Lasse Collin [Fri, 14 Feb 2020 18:42:06 +0000 (20:42 +0200)] 
Translations: Add German translation of the man pages.

Thanks to Mario Blättermann.

5 years agoBuild: Add support for translated man pages using po4a.
Lasse Collin [Fri, 7 Feb 2020 13:32:21 +0000 (15:32 +0200)] 
Build: Add support for translated man pages using po4a.

The dependency on po4a is optional. It's never required to install
the translated man pages when xz is built from a release tarball.
If po4a is missing when building from xz.git, the translated man
pages won't be generated but otherwise the build will work normally.

The translations are only updated automatically by autogen.sh and
by "make mydist". This makes it easy to keep po4a as an optional
dependency and ensures that I won't forget to put updated
translations to a release tarball.

The translated man pages aren't installed if --disable-nls is used.

The installation of translated man pages abuses Automake internals
by calling "install-man" with redefined dist_man_MANS and man_MANS.
This makes the hairy script code slightly less hairy. If it breaks
some day, this code needs to be fixed; don't blame Automake developers.

Also, this adds more quotes to the existing shell script code in
the Makefile.am "-hook"s.

5 years agoUpdate THANKS.
Lasse Collin [Thu, 6 Feb 2020 15:31:38 +0000 (17:31 +0200)] 
Update THANKS.

5 years agoUpdate tests/.gitignore.
Lasse Collin [Wed, 5 Feb 2020 20:35:06 +0000 (22:35 +0200)] 
Update tests/.gitignore.

5 years agoUpdate m4/.gitignore.
Lasse Collin [Wed, 5 Feb 2020 20:28:51 +0000 (22:28 +0200)] 
Update m4/.gitignore.

5 years agoUpdate THANKS.
Lasse Collin [Wed, 5 Feb 2020 18:47:38 +0000 (20:47 +0200)] 
Update THANKS.

5 years agoxz: Make it a fatal error if enabling the sandbox fails.
Lasse Collin [Wed, 5 Feb 2020 18:40:14 +0000 (20:40 +0200)] 
xz: Make it a fatal error if enabling the sandbox fails.

Perhaps it's too drastic but on the other hand it will let me
learn about possible problems if people report the errors.
This won't be backported to the v5.2 branch.

5 years agoxz: Comment out annoying sandboxing messages.
Lasse Collin [Wed, 5 Feb 2020 18:33:50 +0000 (20:33 +0200)] 
xz: Comment out annoying sandboxing messages.

5 years agoBuild: Workaround a POSIX shell detection problem on Solaris.
Lasse Collin [Wed, 5 Feb 2020 17:33:37 +0000 (19:33 +0200)] 
Build: Workaround a POSIX shell detection problem on Solaris.

I don't know if the problem is in gnulib's gl_POSIX_SHELL macro
or if xzgrep does something that isn't in POSIX. The workaround
adds a special case for Solaris: if /usr/xpg4/bin/sh exists and
gl_cv_posix_shell wasn't overriden on the configure command line,
use that shell for xzgrep and other scripts. That shell is known
to work and exists on most Solaris systems.

5 years agoBuild: Update m4/ax_pthread.m4 from Autoconf Archive.
Lasse Collin [Mon, 3 Feb 2020 20:03:50 +0000 (22:03 +0200)] 
Build: Update m4/ax_pthread.m4 from Autoconf Archive.

5 years agoxz: Limit --memlimit-compress to at most 4020 MiB for 32-bit xz.
Lasse Collin [Sat, 1 Feb 2020 17:56:18 +0000 (19:56 +0200)] 
xz: Limit --memlimit-compress to at most 4020 MiB for 32-bit xz.

See the code comment for reasoning. It's far from perfect but
hopefully good enough for certain cases while hopefully doing
nothing bad in other situations.

At presets -5 ... -9, 4020 MiB vs. 4096 MiB makes no difference
on how xz scales down the number of threads.

The limit has to be a few MiB below 4096 MiB because otherwise
things like "xz --lzma2=dict=500MiB" won't scale down the dict
size enough and xz cannot allocate enough memory. With
"ulimit -v $((4096 * 1024))" on x86-64, the limit in xz had
to be no more than 4085 MiB. Some safety margin is good though.

This is hack but it should be useful when running 32-bit xz on
a 64-bit kernel that gives full 4 GiB address space to xz.
Hopefully this is enough to solve this:

https://bugzilla.redhat.com/show_bug.cgi?id=1196786

FreeBSD has a patch that limits the result in tuklib_physmem()
to SIZE_MAX on 32-bit systems. While I think it's not the way
to do it, the results on --memlimit-compress have been good. This
commit should achieve practically identical results for compression
while leaving decompression and tuklib_physmem() and thus
lzma_physmem() unaffected.

5 years agoxz: Set the --flush-timeout deadline when the first input byte arrives.
Lasse Collin [Sun, 26 Jan 2020 18:53:25 +0000 (20:53 +0200)] 
xz: Set the --flush-timeout deadline when the first input byte arrives.

xz --flush-timeout=2000, old version:

  1. xz is started. The next flush will happen after two seconds.
  2. No input for one second.
  3. A burst of a few kilobytes of input.
  4. No input for one second.
  5. Two seconds have passed and flushing starts.

The first second counted towards the flush-timeout even though
there was no pending data. This can cause flushing to occur more
often than needed.

xz --flush-timeout=2000, after this commit:

  1. xz is started.
  2. No input for one second.
  3. A burst of a few kilobytes of input. The next flush will
     happen after two seconds counted from the time when the
     first bytes of the burst were read.
  4. No input for one second.
  5. No input for another second.
  6. Two seconds have passed and flushing starts.

5 years agoxz: Move flush_needed from mytime.h to file_pair struct in file_io.h.
Lasse Collin [Sun, 26 Jan 2020 18:19:19 +0000 (20:19 +0200)] 
xz: Move flush_needed from mytime.h to file_pair struct in file_io.h.

5 years agoxz: coder.c: Make writing output a separate function.
Lasse Collin [Sun, 26 Jan 2020 12:49:22 +0000 (14:49 +0200)] 
xz: coder.c: Make writing output a separate function.

The same code sequence repeats so it's nicer as a separate function.
Note that in one case there was no test for opt_mode != MODE_TEST,
but that was only because that condition would always be true, so
this commit doesn't change the behavior there.

5 years agoxz: Fix semi-busy-waiting in xz --flush-timeout.
Lasse Collin [Sun, 26 Jan 2020 12:13:42 +0000 (14:13 +0200)] 
xz: Fix semi-busy-waiting in xz --flush-timeout.

When input blocked, xz --flush-timeout=1 would wake up every
millisecond and initiate flushing which would have nothing to
flush and thus would just waste CPU time. The fix disables the
timeout when no input has been seen since the previous flush.

5 years agoxz: Refactor io_read() a bit.
Lasse Collin [Sun, 26 Jan 2020 11:47:31 +0000 (13:47 +0200)] 
xz: Refactor io_read() a bit.

5 years agoxz: Update a comment in file_io.h.
Lasse Collin [Sun, 26 Jan 2020 11:37:08 +0000 (13:37 +0200)] 
xz: Update a comment in file_io.h.

5 years agoxz: Move the setting of flush_needed in file_io.c to a nicer location.
Lasse Collin [Sun, 26 Jan 2020 11:27:51 +0000 (13:27 +0200)] 
xz: Move the setting of flush_needed in file_io.c to a nicer location.

5 years agoUse $(LIB_FUZZING_ENGINE) in tests/ossfuzz/Makefile.
Lasse Collin [Sun, 19 Jan 2020 19:54:33 +0000 (21:54 +0200)] 
Use $(LIB_FUZZING_ENGINE) in tests/ossfuzz/Makefile.

https://github.com/google/oss-fuzz/pull/3219#issuecomment-573751048

Thanks to Bhargava Shastry for sending the patch.

5 years agoRename unaligned_read32ne to read32ne, and similarly for the others.
Lasse Collin [Mon, 30 Dec 2019 22:41:28 +0000 (00:41 +0200)] 
Rename unaligned_read32ne to read32ne, and similarly for the others.

5 years agoRename read32ne to aligned_read32ne, and similarly for the others.
Lasse Collin [Mon, 30 Dec 2019 22:29:48 +0000 (00:29 +0200)] 
Rename read32ne to aligned_read32ne, and similarly for the others.

Using the aligned methods requires more care to ensure that
the address really is aligned, so it's nicer if the aligned
methods are prefixed. The next commit will remove the unaligned_
prefix from the unaligned methods which in liblzma are used in
more places than the aligned ones.

5 years agoRevise tuklib_integer.h and .m4.
Lasse Collin [Mon, 30 Dec 2019 22:18:24 +0000 (00:18 +0200)] 
Revise tuklib_integer.h and .m4.

Add a configure option --enable-unsafe-type-punning to get the
old non-conforming memory access methods. It can be useful with
old compilers or in some other less typical situations but
shouldn't normally be used.

Omit the packed struct trick for unaligned access. While it's
best in some cases, this is simpler. If the memcpy trick doesn't
work, one can request unsafe type punning from configure.

Because CRC32/CRC64 code needs fast aligned reads, if no very
safe way to do it is found, type punning is used as a fallback.
This sucks but since it currently works in practice, it seems to
be the least bad option. It's never needed with GCC >= 4.7 or
Clang >= 3.6 since these support __builtin_assume_aligned and
thus fast aligned access can be done with the memcpy trick.

Other things:
  - Support GCC/Clang __builtin_bswapXX
  - Cleaner bswap fallback macros
  - Minor cleanups

5 years agoTests: Hopefully fix test_check.c to work on EBCDIC systems.
Lasse Collin [Sun, 29 Dec 2019 20:51:58 +0000 (22:51 +0200)] 
Tests: Hopefully fix test_check.c to work on EBCDIC systems.

Thanks to Daniel Richard G.

6 years agoScripts: Put /usr/xpg4/bin to the beginning of PATH on Solaris.
Lasse Collin [Tue, 24 Sep 2019 20:02:40 +0000 (23:02 +0300)] 
Scripts: Put /usr/xpg4/bin to the beginning of PATH on Solaris.

This adds a configure option --enable-path-for-scripts=PREFIX
which defaults to empty except on Solaris it is /usr/xpg4/bin
to make POSIX grep and others available. The Solaris case had
been documented in INSTALL with a manual fix but it's better
to do this automatically since it is needed on most Solaris
systems anyway.

Thanks to Daniel Richard G.

6 years agoFix comment typos in tuklib_mbstr* files.
Lasse Collin [Fri, 12 Jul 2019 15:57:43 +0000 (18:57 +0300)] 
Fix comment typos in tuklib_mbstr* files.

6 years agoAdd missing include to tuklib_mbstr_width.c.
Lasse Collin [Fri, 12 Jul 2019 15:30:46 +0000 (18:30 +0300)] 
Add missing include to tuklib_mbstr_width.c.

It didn't matter in XZ Utils because sysdefs.h
includes string.h anyway.

6 years agoUpdate tuklib base headers to include stdbool.h.
Lasse Collin [Fri, 12 Jul 2019 15:10:57 +0000 (18:10 +0300)] 
Update tuklib base headers to include stdbool.h.

6 years agoxz: Automatically align the strings in --info-memory.
Lasse Collin [Thu, 27 Jun 2019 21:54:31 +0000 (00:54 +0300)] 
xz: Automatically align the strings in --info-memory.

This makes it easier to translate the strings.

Also, the string for amount of RAM was shortened.

6 years agoliblzma: Fix a buggy comment.
Lasse Collin [Tue, 25 Jun 2019 20:15:21 +0000 (23:15 +0300)] 
liblzma: Fix a buggy comment.

6 years agoconfigure.ac: Fix a typo in a comment.
Lasse Collin [Mon, 24 Jun 2019 21:16:06 +0000 (00:16 +0300)] 
configure.ac: Fix a typo in a comment.

6 years agoTests: Silence warnings from clang -Wassign-enum.
Lasse Collin [Mon, 24 Jun 2019 21:08:13 +0000 (00:08 +0300)] 
Tests: Silence warnings from clang -Wassign-enum.

Also changed 999 to 99 so it fits even if lzma_check happened
to be 8 bits wide.

6 years agoliblzma: Add a comment.
Lasse Collin [Mon, 24 Jun 2019 20:52:17 +0000 (23:52 +0300)] 
liblzma: Add a comment.

6 years agoliblzma: Silence clang -Wmissing-variable-declarations.
Lasse Collin [Mon, 24 Jun 2019 20:45:21 +0000 (23:45 +0300)] 
liblzma: Silence clang -Wmissing-variable-declarations.

6 years agoAdd LZMA_RET_INTERNAL1..8 to lzma_ret and use one for LZMA_TIMED_OUT.
Lasse Collin [Mon, 24 Jun 2019 20:25:41 +0000 (23:25 +0300)] 
Add LZMA_RET_INTERNAL1..8 to lzma_ret and use one for LZMA_TIMED_OUT.

LZMA_TIMED_OUT is *internally* used as a value for lzma_ret
enumeration. Previously it was #defined to 32 and cast to lzma_ret.
That way it wasn't visible in the public API, but this was hackish.

Now the public API has eight LZMA_RET_INTERNALx members and
LZMA_TIMED_OUT is #defined to LZMA_RET_INTERNAL1. This way
the code is cleaner overall although the public API has a few
extra mysterious enum members.

6 years agoxz: Silence a warning from clang -Wsign-conversion in main.c.
Lasse Collin [Mon, 24 Jun 2019 19:57:43 +0000 (22:57 +0300)] 
xz: Silence a warning from clang -Wsign-conversion in main.c.

6 years agoxz: Make "headings" static in list.c.
Lasse Collin [Mon, 24 Jun 2019 19:52:20 +0000 (22:52 +0300)] 
xz: Make "headings" static in list.c.

Caught by clang -Wmissing-variable-declarations.

6 years agoliblzma: Remove incorrect uses of lzma_attribute((__unused__)).
Lasse Collin [Mon, 24 Jun 2019 19:47:39 +0000 (22:47 +0300)] 
liblzma: Remove incorrect uses of lzma_attribute((__unused__)).

Caught by clang -Wused-but-marked-unused.

6 years agoTests: Silence a warning from -Wsign-conversion.
Lasse Collin [Mon, 24 Jun 2019 17:53:55 +0000 (20:53 +0300)] 
Tests: Silence a warning from -Wsign-conversion.

6 years agoxz: Fix an integer overflow with 32-bit off_t.
Lasse Collin [Mon, 24 Jun 2019 17:45:49 +0000 (20:45 +0300)] 
xz: Fix an integer overflow with 32-bit off_t.

Or any off_t which isn't very big (like signed 64 bit integer
that most system have). A small off_t could overflow if the
file being decompressed had long enough run of zero bytes,
which would result in corrupt output.

6 years agoxz: Cleanup io_seek_src() a bit.
Lasse Collin [Sun, 23 Jun 2019 22:24:17 +0000 (01:24 +0300)] 
xz: Cleanup io_seek_src() a bit.

lseek() returns -1 on error and checking for -1 is nicer.

6 years agoTests: Remove a duplicate branch from tests/tests.h.
Lasse Collin [Sun, 23 Jun 2019 21:57:23 +0000 (00:57 +0300)] 
Tests: Remove a duplicate branch from tests/tests.h.

The duplication was introduced about eleven years ago and
should have been cleaned up back then already.

This was caught by -Wduplicated-branches.

6 years agoxz: Change io_seek_src and io_pread arguments from off_t to uint64_t.
Lasse Collin [Sun, 23 Jun 2019 21:40:45 +0000 (00:40 +0300)] 
xz: Change io_seek_src and io_pread arguments from off_t to uint64_t.

This helps fixing warnings from -Wsign-conversion and makes the
code look better too.

6 years agoxz: list.c: Fix some warnings from -Wsign-conversion.
Lasse Collin [Sun, 23 Jun 2019 21:12:38 +0000 (00:12 +0300)] 
xz: list.c: Fix some warnings from -Wsign-conversion.

6 years agotuklib_mbstr_width: Fix a warning from -Wsign-conversion.
Lasse Collin [Sun, 23 Jun 2019 20:22:45 +0000 (23:22 +0300)] 
tuklib_mbstr_width: Fix a warning from -Wsign-conversion.

6 years agoxz: Fix some of the warnings from -Wsign-conversion.
Lasse Collin [Sun, 23 Jun 2019 20:19:34 +0000 (23:19 +0300)] 
xz: Fix some of the warnings from -Wsign-conversion.

6 years agotuklib_cpucores: Silence warnings from -Wsign-conversion.
Lasse Collin [Sun, 23 Jun 2019 19:27:45 +0000 (22:27 +0300)] 
tuklib_cpucores: Silence warnings from -Wsign-conversion.

6 years agoxzdec: Fix warnings from -Wsign-conversion.
Lasse Collin [Sun, 23 Jun 2019 18:40:47 +0000 (21:40 +0300)] 
xzdec: Fix warnings from -Wsign-conversion.

6 years agoliblzma: Fix warnings from -Wsign-conversion.
Lasse Collin [Sun, 23 Jun 2019 18:38:56 +0000 (21:38 +0300)] 
liblzma: Fix warnings from -Wsign-conversion.

Also, more parentheses were added to the literal_subcoder
macro in lzma_comon.h (better style but no functional change
in the current usage).

6 years agotuklib_integer: Silence warnings from -Wsign-conversion.
Lasse Collin [Sun, 23 Jun 2019 16:33:55 +0000 (19:33 +0300)] 
tuklib_integer: Silence warnings from -Wsign-conversion.

6 years agotuklib_integer: Fix usage of conv macros.
Lasse Collin [Thu, 20 Jun 2019 16:40:30 +0000 (19:40 +0300)] 
tuklib_integer: Fix usage of conv macros.

Use a temporary variable instead of e.g.
conv32le(unaligned_read32ne(buf)) because the macro can
evaluate its argument multiple times.

6 years agoUpdate THANKS.
Lasse Collin [Mon, 3 Jun 2019 17:44:19 +0000 (20:44 +0300)] 
Update THANKS.

6 years agoliblzma: Fix comments.
Lasse Collin [Mon, 3 Jun 2019 17:41:54 +0000 (20:41 +0300)] 
liblzma: Fix comments.

Thanks to Bruce Stark.

6 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().

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

6 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

6 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.

6 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.

6 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.

6 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.

6 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.

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

6 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.

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

6 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.

6 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.

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

6 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.

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

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

6 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

6 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/>.

6 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.

6 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.

6 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.

7 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.

7 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.

7 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.

7 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.

7 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.

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

7 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.

7 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.

7 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.

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

7 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.

7 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.

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

7 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.

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

8 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).

8 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.