]> git.ipfire.org Git - thirdparty/xz.git/log
thirdparty/xz.git
2 days agoliblzma: API doc cleanups master
Lasse Collin [Tue, 23 Apr 2024 22:20:26 +0000 (01:20 +0300)] 
liblzma: API doc cleanups

2 days agoTests: test_filter_str: Add a few assertions
Lasse Collin [Tue, 23 Apr 2024 13:35:33 +0000 (16:35 +0300)] 
Tests: test_filter_str: Add a few assertions

2 days agoTests: test_filter_str: Move one assertion and add a comment
Lasse Collin [Tue, 23 Apr 2024 13:35:08 +0000 (16:35 +0300)] 
Tests: test_filter_str: Move one assertion and add a comment

2 days agoTests: test_filter_str: Tweak comments and white space
Lasse Collin [Tue, 23 Apr 2024 13:26:06 +0000 (16:26 +0300)] 
Tests: test_filter_str: Tweak comments and white space

2 days agoTests: test_filter_str: Add missing RISC-V case
Lasse Collin [Tue, 23 Apr 2024 13:25:22 +0000 (16:25 +0300)] 
Tests: test_filter_str: Add missing RISC-V case

Fixes: 89ea1a22f4ed3685b053b7260bc5acf6c75d1664
3 days agoTests: test_filter_str: Test *error_pos more thoroughly
Lasse Collin [Mon, 22 Apr 2024 19:23:32 +0000 (22:23 +0300)] 
Tests: test_filter_str: Test *error_pos more thoroughly

3 days agoliblzma: lzma_str_to_filters: Set *error_pos on all errors
Lasse Collin [Mon, 22 Apr 2024 18:54:39 +0000 (21:54 +0300)] 
liblzma: lzma_str_to_filters: Set *error_pos on all errors

The API docs clearly say that if error_pos isn't NULL then *error
is always set on any error. However, it wasn't touched if str == NULL
or filters == NULL or unsupported flags were specified.

Fixes: cedeeca2ea6ada5b0411b2ae10d7a859e837f203
3 days agoliblzma: Clean up white space
Lasse Collin [Mon, 22 Apr 2024 17:31:25 +0000 (20:31 +0300)] 
liblzma: Clean up white space

3 days agoTests: test_filter_flags: Edit comments and style
Lasse Collin [Mon, 22 Apr 2024 15:35:19 +0000 (18:35 +0300)] 
Tests: test_filter_flags: Edit comments and style

3 days agoTests: Fix C99/C11 compatibility when features are disabled
Lasse Collin [Mon, 22 Apr 2024 13:39:44 +0000 (16:39 +0300)] 
Tests: Fix C99/C11 compatibility when features are disabled

The array could become empty and then the initializer would be
simply {} which is allowed only in GNU-C and C23.

4 days agoDOS: Omit useless defines from config.h
Lasse Collin [Sun, 21 Apr 2024 17:32:16 +0000 (20:32 +0300)] 
DOS: Omit useless defines from config.h

4 days agoBuild: Omit useless checks for fcntl.h, limits.h, and sys/time.h
Lasse Collin [Sun, 21 Apr 2024 17:27:50 +0000 (20:27 +0300)] 
Build: Omit useless checks for fcntl.h, limits.h, and sys/time.h

5 days agoliblzma: Silence a warning from Coverity static analysis
Lasse Collin [Fri, 19 Apr 2024 19:04:21 +0000 (22:04 +0300)] 
liblzma: Silence a warning from Coverity static analysis

It is logical why it cannot know for sure that the value has
to be at most 4 if it is less than 16.

The x86 filter is based on a very old LZMA SDK version. Newer
ones have quite a different implementation for the same filter.

Thanks to Sam James.

6 days agoUpdate .gitignore
Lasse Collin [Fri, 19 Apr 2024 20:18:19 +0000 (23:18 +0300)] 
Update .gitignore

6 days agoTests: test_lzip_decoder: Tweak coding style and comments
Lasse Collin [Fri, 19 Apr 2024 17:53:24 +0000 (20:53 +0300)] 
Tests: test_lzip_decoder: Tweak coding style and comments

6 days agoTests: test_lzip_decoder: Remove redundant initializations
Lasse Collin [Fri, 19 Apr 2024 17:51:36 +0000 (20:51 +0300)] 
Tests: test_lzip_decoder: Remove redundant initializations

6 days agoTests: test_lzip_decoder: Remove unneeded tuktest_malloc() calls
Lasse Collin [Fri, 19 Apr 2024 17:47:24 +0000 (20:47 +0300)] 
Tests: test_lzip_decoder: Remove unneeded tuktest_malloc() calls

10 days agoxz: Fix white space error.
Lasse Collin [Mon, 15 Apr 2024 17:35:07 +0000 (20:35 +0300)] 
xz: Fix white space error.

Thanks to xx on #tukaani.

11 days agoxz: add missing noreturn for message_filters_help
Sam James [Thu, 11 Apr 2024 22:01:44 +0000 (23:01 +0100)] 
xz: add missing noreturn for message_filters_help

Fixes: a165d7df1964121eb9df715e6f836a31c865beef
11 days agoxz: signals: suppress -Wsign-conversion on macOS
Sam James [Thu, 11 Apr 2024 18:34:04 +0000 (19:34 +0100)] 
xz: signals: suppress -Wsign-conversion on macOS

On macOS, we get:
```
signals.c: In function 'signals_init':
signals.c:76:17: error: conversion to 'sigset_t' {aka 'unsigned int'} from 'int' may change the sign of the result [-Werror=sign-conversion]
   76 |                 sigaddset(&hooked_signals, sigs[i]);
      |                 ^~~~~~~~~
signals.c:81:17: error: conversion to 'sigset_t' {aka 'unsigned int'} from 'int' may change the sign of the result [-Werror=sign-conversion]
   81 |                 sigaddset(&hooked_signals, message_progress_sigs[i]);
      |                 ^~~~~~~~~
signals.c:86:9: error: conversion to 'sigset_t' {aka 'unsigned int'} from 'int' may change the sign of the result [-Werror=sign-conversion]
   86 |         sigaddset(&hooked_signals, SIGTSTP);
      |         ^~~~~~~~~
```

We use `int` for `hooked_signals` but we can't just cast to whatever
`sigset_t` is because `sigset_t` is an opaque type. It's an unsigned int
on macOS. On macOS, `sigaddset` is implemented as a macro.

Just suppress -Wsign-conversion for `signals_init` for macOS given
there's no real nice way of fixing this.

12 days agoTests: test_microlzma: Add a "FIXME?" about LZMA_FINISH handling
Lasse Collin [Sat, 13 Apr 2024 19:19:40 +0000 (22:19 +0300)] 
Tests: test_microlzma: Add a "FIXME?" about LZMA_FINISH handling

12 days agoTests: test_microlzma: Tweak comments, coding style, and minor details
Lasse Collin [Sat, 13 Apr 2024 15:05:31 +0000 (18:05 +0300)] 
Tests: test_microlzma: Tweak comments, coding style, and minor details

A few lines were reordered, a few ARRAY_SIZE were changed to sizeof,
and a few uint32_t were changed to size_t. No real functional changes
were intended.

13 days agoCI: Use only the active CPUs on macOS
Ryan Carsten Schmidt [Sat, 13 Apr 2024 00:31:13 +0000 (19:31 -0500)] 
CI: Use only the active CPUs on macOS

hw.ncpu counts all CPUs including inactive ones. hw.activecpu counts
only the active CPUs.

2 weeks agoci: rename ci_build.sh -> ci_build.bash
Sam James [Wed, 10 Apr 2024 17:33:55 +0000 (18:33 +0100)] 
ci: rename ci_build.sh -> ci_build.bash

We discussed the name and it's less cognitive load to just call it '.bash'
so you don't have an immediate question about if bashisms are OK.

2 weeks agoci: build in parallel by default
Sam James [Wed, 10 Apr 2024 16:42:23 +0000 (17:42 +0100)] 
ci: build in parallel by default

2 weeks agoci: default to -O2
Sam James [Wed, 10 Apr 2024 14:41:08 +0000 (15:41 +0100)] 
ci: default to -O2

We need this for when we're passing sanitizer flags or -gdwarf-4 for Clang
with Valgrind. Just always start with -O2 if CFLAGS isn't set in the
environment and append what was passed on the command line.

2 weeks agoci: make automake's test runner verbose on failures
Sam James [Wed, 10 Apr 2024 14:17:47 +0000 (15:17 +0100)] 
ci: make automake's test runner verbose on failures

This is a lot easier to work with than the save-logs thing the action
tries to do...

2 weeks agoci: make UBSAN abort on errors
Sam James [Wed, 10 Apr 2024 11:38:51 +0000 (12:38 +0100)] 
ci: make UBSAN abort on errors

Unfortunately, UBSAN doesn't do this by default. See also the change
I made in Meson for this in October [0].

[0] https://github.com/mesonbuild/meson/commit/7b7d2e060b447de9c2642848847370a58711ac1c

2 weeks agoci: test Valgrind
Sam James [Wed, 10 Apr 2024 10:43:10 +0000 (11:43 +0100)] 
ci: test Valgrind

Using `--trace-children=yes` has a trade-off here, as it makes
`test_scripts.sh` pretty slow when calling various non-xz utilities.

But I also feel like it's not useless to have Valgrind used there and it's
not easy to exclude Valgrind just for that one test...

I did consider using AX_VALGRIND_CHECK [0][1] but I couldn't get it working
immediately with some conditionally-built tests and I wondered if it was
worth spending time on at least while we're debating xz's future build
system situation.

[0] https://www.gnu.org/software/autoconf-archive/ax_valgrind_check.html
[1] https://tecnocode.co.uk/2014/12/23/automatically-valgrinding-code-with-ax_valgrind_check/

2 weeks agoliblzma: CRC: Simplify table omission macros
Lasse Collin [Wed, 10 Apr 2024 20:20:02 +0000 (23:20 +0300)] 
liblzma: CRC: Simplify table omission macros

A macro is useful to prevent a single #if directive from
getting too ugly but only one macro is needed for all archs.

2 weeks agoliblzma: ARM64 CRC: Fix omission of CRC32 table
Lasse Collin [Wed, 10 Apr 2024 20:09:40 +0000 (23:09 +0300)] 
liblzma: ARM64 CRC: Fix omission of CRC32 table

The macro name had an odd typo so the table wasn't omitted
when it should have.

Fixes: 1940f0ec28f08c0ac72c1413d9706fb82eabe6ad
2 weeks agoBuild: If ARM64 feature detection func is found, stop looking for others
Lasse Collin [Wed, 10 Apr 2024 19:21:51 +0000 (22:21 +0300)] 
Build: If ARM64 feature detection func is found, stop looking for others

This can speed up configure a tiny bit.

Fixes: c5f6d79cc9515a7f22d7ea4860c6cc394b295732
2 weeks agoliblzma: ARM64 CRC32: Change style of the macOS code to match FreeBSD
Lasse Collin [Wed, 10 Apr 2024 19:04:27 +0000 (22:04 +0300)] 
liblzma: ARM64 CRC32: Change style of the macOS code to match FreeBSD

I didn't test this but it shouldn't change any functionality.

Fixes: 761f5b69a4c778c8bcb09279b845b07c28790575
2 weeks agoliblzma: ARM64 CRC32: Add error checking to FreeBSD-specific code
Lasse Collin [Wed, 10 Apr 2024 18:59:27 +0000 (21:59 +0300)] 
liblzma: ARM64 CRC32: Add error checking to FreeBSD-specific code

Also add parenthesis to the return statement.

I didn't test this.

Fixes: 761f5b69a4c778c8bcb09279b845b07c28790575
2 weeks agoliblzma: ARM64 CRC32: Use negation instead of subtracting from 8
Lasse Collin [Wed, 10 Apr 2024 18:56:33 +0000 (21:56 +0300)] 
liblzma: ARM64 CRC32: Use negation instead of subtracting from 8

Subtracting from 0 is negation, this just keeps warnings away.

Fixes: 761f5b69a4c778c8bcb09279b845b07c28790575
2 weeks agoliblzma: ARM64 CRC32: Tweak coding style and comments
Lasse Collin [Wed, 10 Apr 2024 18:55:10 +0000 (21:55 +0300)] 
liblzma: ARM64 CRC32: Tweak coding style and comments

2 weeks agoUpdate SECURITY.md.
Lasse Collin [Tue, 9 Apr 2024 18:55:01 +0000 (21:55 +0300)] 
Update SECURITY.md.

2 weeks agoCI: Remove ifunc support.
Lasse Collin [Tue, 9 Apr 2024 14:47:01 +0000 (17:47 +0300)] 
CI: Remove ifunc support.

2 weeks agoliblzma: Remove ifunc support.
Lasse Collin [Tue, 9 Apr 2024 14:43:16 +0000 (17:43 +0300)] 
liblzma: Remove ifunc support.

This is *NOT* done for security reasons even though the backdoor
relied on the ifunc code. Instead, the reason is that in this
project ifunc provides little benefits but it's quite a bit of
extra code to support it. The only case where ifunc *might* matter
for performance is if the CRC functions are used directly by an
application. In normal compression use it's completely irrelevant.

2 weeks agotests/files/README: Update the main heading.
Lasse Collin [Mon, 8 Apr 2024 19:04:41 +0000 (22:04 +0300)] 
tests/files/README: Update the main heading.

2 weeks agotests/files/README: Explain how to recreate the ARM64 test files.
Lasse Collin [Mon, 8 Apr 2024 19:02:45 +0000 (22:02 +0300)] 
tests/files/README: Explain how to recreate the ARM64 test files.

2 weeks agodebug: Add generator for the ARM64 test file data.
Lasse Collin [Mon, 8 Apr 2024 18:51:55 +0000 (21:51 +0300)] 
debug: Add generator for the ARM64 test file data.

2 weeks agoxz man page: Use .ft CR instead of CW to silence warnings from groff.
Lasse Collin [Mon, 8 Apr 2024 18:19:38 +0000 (21:19 +0300)] 
xz man page: Use .ft CR instead of CW to silence warnings from groff.

2 weeks agoFix NEWS for 5.6.0 and 5.6.1.
Lasse Collin [Mon, 8 Apr 2024 16:28:35 +0000 (19:28 +0300)] 
Fix NEWS for 5.6.0 and 5.6.1.

2 weeks agoRemove the XZ logo.
Lasse Collin [Mon, 8 Apr 2024 16:22:26 +0000 (19:22 +0300)] 
Remove the XZ logo.

2 weeks agoUpdate maintainer and author info.
Lasse Collin [Mon, 8 Apr 2024 15:27:39 +0000 (18:27 +0300)] 
Update maintainer and author info.

The other maintainer suddenly disappeared.

2 weeks agoDocs: Update .xz file format specification to 1.2.1.
Lasse Collin [Mon, 8 Apr 2024 15:05:32 +0000 (18:05 +0300)] 
Docs: Update .xz file format specification to 1.2.1.

This only reverts the XZ URL changes.

2 weeks agoUpdate website URLs back to tukaani.org.
Lasse Collin [Mon, 8 Apr 2024 14:33:56 +0000 (17:33 +0300)] 
Update website URLs back to tukaani.org.

The XZ projects were moved back to their original URLs.

2 weeks agoxzdec: Tweak coding style and comments.
Lasse Collin [Mon, 8 Apr 2024 14:07:08 +0000 (17:07 +0300)] 
xzdec: Tweak coding style and comments.

2 weeks agotests/ossfuzz: Tiny fix to a comment.
Lasse Collin [Mon, 8 Apr 2024 12:53:46 +0000 (15:53 +0300)] 
tests/ossfuzz: Tiny fix to a comment.

2 weeks agoUpdate THANKS.
Lasse Collin [Tue, 9 Apr 2024 15:22:16 +0000 (18:22 +0300)] 
Update THANKS.

2 weeks agoRemove the backdoor found in 5.6.0 and 5.6.1 (CVE-2024-3094).
Lasse Collin [Mon, 8 Apr 2024 12:32:58 +0000 (15:32 +0300)] 
Remove the backdoor found in 5.6.0 and 5.6.1 (CVE-2024-3094).

While the backdoor was inactive (and thus harmless) without inserting
a small trigger code into the build system when the source package was
created, it's good to remove this anyway:

  - The executable payloads were embedded as binary blobs in
    the test files. This was a blatant violation of the
    Debian Free Software Guidelines.

  - On machines that see lots bots poking at the SSH port, the backdoor
    noticeably increased CPU load, resulting in degraded user experience
    and thus overwhelmingly negative user feedback.

  - The maintainer who added the backdoor has disappeared.

  - Backdoors are bad for security.

This reverts the following without making any other changes:

6e636819 Tests: Update two test files.
a3a29bbd Tests: Test --single-stream can decompress bad-3-corrupt_lzma2.xz.
0b4ccc91 Tests: Update RISC-V test files.
8c9b8b20 liblzma: Fix typos in crc32_fast.c and crc64_fast.c.
82ecc538 liblzma: Fix false Valgrind error report with GCC.
cf44e4b7 Tests: Add a few test files.
3060e107 Tests: Use smaller dictionary size in RISC-V test files.
e2870db5 Tests: Add two RISC-V Filter test files.

The RISC-V test files also have real content that tests the filter
but the real content would fit into much smaller files. A generator
program would need to be available as well.

Thanks to Andres Freund for finding and reporting it and making
it public quickly so others could act without a delay.
See: https://www.openwall.com/lists/oss-security/2024/03/29/4

3 weeks agoCMake: Fix sabotaged Landlock sandbox check.
Lasse Collin [Sat, 30 Mar 2024 12:36:28 +0000 (14:36 +0200)] 
CMake: Fix sabotaged Landlock sandbox check.

It never enabled it.

4 weeks agoDocs: Simplify SECURITY.md.
Jia Tan [Mon, 25 Mar 2024 17:50:02 +0000 (01:50 +0800)] 
Docs: Simplify SECURITY.md.

4 weeks agoliblzma: memcmplen.h: Add a comment why subtraction is used.
Lasse Collin [Fri, 22 Mar 2024 15:46:30 +0000 (17:46 +0200)] 
liblzma: memcmplen.h: Add a comment why subtraction is used.

5 weeks agoINSTALL: Document arguments of --enable-symbol-versions.
Lasse Collin [Fri, 15 Mar 2024 15:43:39 +0000 (17:43 +0200)] 
INSTALL: Document arguments of --enable-symbol-versions.

5 weeks agoBuild: Use only the generic symbol versioning with NVIDIA HPC Compiler.
Lasse Collin [Fri, 15 Mar 2024 15:15:50 +0000 (17:15 +0200)] 
Build: Use only the generic symbol versioning with NVIDIA HPC Compiler.

This does the previous commit with CMake.

AC_EGREP_CPP uses AC_REQUIRE so the outermost if-commands must
be changed to AS_IF to ensure that things wont break some day.
See 5a5bd7f871818029d5ccbe189f087f591258c294.

5 weeks agoCMake: Use only the generic symbol versioning with NVIDIA HPC Compiler.
Lasse Collin [Fri, 15 Mar 2024 14:36:35 +0000 (16:36 +0200)] 
CMake: Use only the generic symbol versioning with NVIDIA HPC Compiler.

It doesn't support the __symver__ attribute or __asm__(".symver ...").
The generic symbol versioning can still be used since it only needs
linker support.

5 weeks agoUpdate THANKS.
Lasse Collin [Wed, 13 Mar 2024 19:38:24 +0000 (21:38 +0200)] 
Update THANKS.

5 weeks agoliblzma: Minor comment edits.
Lasse Collin [Wed, 13 Mar 2024 19:30:18 +0000 (21:30 +0200)] 
liblzma: Minor comment edits.

5 weeks agoliblzma: Fix building with NVHPC (NVIDIA HPC SDK).
Sergey Kosukhin [Wed, 13 Mar 2024 12:07:13 +0000 (13:07 +0100)] 
liblzma: Fix building with NVHPC (NVIDIA HPC SDK).

NVHPC compiler has several issues that make it impossible to
build liblzma:
  - the compiler cannot handle unions that contain pointers that
    are not the first members;
  - the compiler cannot handle the assembler code in range_decoder.h
    (LZMA_RANGE_DECODER_CONFIG has to be set to zero);
  - the compiler fails to produce valid code for delta_decode if the
    vectorization is enabled, which results in failed tests.

This introduces NVHPC-specific workarounds that address the issues.

5 weeks agoCMake: Disable symbol versioning on non-glibc Linux.
Lasse Collin [Wed, 13 Mar 2024 19:17:10 +0000 (21:17 +0200)] 
CMake: Disable symbol versioning on non-glibc Linux.

This better matches what configure.ac does. For example, musl has
only basic symbol versioning support:

https://wiki.musl-libc.org/functional-differences-from-glibc.html#Symbol_versioning

configure.ac tries to enable symbol versioning only with glibc
so now CMake does the same.

5 weeks agoCMake: Make symbol versioning configurable.
Lasse Collin [Wed, 13 Mar 2024 18:32:46 +0000 (20:32 +0200)] 
CMake: Make symbol versioning configurable.

6 weeks agoBuild: Style tweaks to configure.ac.
Lasse Collin [Wed, 13 Mar 2024 17:47:36 +0000 (19:47 +0200)] 
Build: Style tweaks to configure.ac.

The AC_MSG_ERROR line is overlong anyway as are a few other
AC_MSG_ERROR lines already.

6 weeks agoBuild: Let the users override the symbol versioning variant.
Sergey Kosukhin [Tue, 12 Mar 2024 19:03:49 +0000 (20:03 +0100)] 
Build: Let the users override the symbol versioning variant.

There are cases when the users want to decide themselves whether
they want to have the generic (even on GNU/Linux) or the linux
(even if we do not recommend that) symbol versioning variant.
The former might be needed to circumvent compiler issues (i.e.
the compiler does not support all features that are required
for the linux versioning), the latter might help in overriding
the assumptions made in the configure script.

6 weeks agoAdd NEWS for 5.6.1
Jia Tan [Sat, 9 Mar 2024 03:27:27 +0000 (11:27 +0800)] 
Add NEWS for 5.6.1

6 weeks agoTranslations: Add missing --riscv option to man page translations.
Jia Tan [Sat, 9 Mar 2024 02:43:20 +0000 (10:43 +0800)] 
Translations: Add missing --riscv option to man page translations.

6 weeks agoTests: Update two test files.
Jia Tan [Sat, 9 Mar 2024 02:18:29 +0000 (10:18 +0800)] 
Tests: Update two test files.

The original files were generated with random local to my machine.
To better reproduce these files in the future, a constant seed was used
to recreate these files.

6 weeks agoTests: Test --single-stream can decompress bad-3-corrupt_lzma2.xz.
Jia Tan [Sat, 9 Mar 2024 02:08:32 +0000 (10:08 +0800)] 
Tests: Test --single-stream can decompress bad-3-corrupt_lzma2.xz.

The first stream in this file is valid, so this tests that xz properly
stops after decompressing it.

6 weeks agoTests: Update RISC-V test files.
Jia Tan [Sat, 9 Mar 2024 02:05:32 +0000 (10:05 +0800)] 
Tests: Update RISC-V test files.

This increases code coverage and tests for possible shifting bugs.

6 weeks agoliblzma: Fix typos in crc32_fast.c and crc64_fast.c.
Jia Tan [Sat, 9 Mar 2024 01:52:32 +0000 (09:52 +0800)] 
liblzma: Fix typos in crc32_fast.c and crc64_fast.c.

6 weeks agoTests: Replace HAVE_MICROLZMA usage in CMake and Autotools builds.
Jia Tan [Sat, 9 Mar 2024 01:49:55 +0000 (09:49 +0800)] 
Tests: Replace HAVE_MICROLZMA usage in CMake and Autotools builds.

This reverts commit adaacafde6661496ca2814b1e94a3ba5186428cb.

6 weeks agoliblzma: Fix false Valgrind error report with GCC.
Jia Tan [Sat, 9 Mar 2024 01:20:57 +0000 (09:20 +0800)] 
liblzma: Fix false Valgrind error report with GCC.

With GCC and a certain combination of flags, Valgrind will falsely
trigger an invalid write. This appears to be due to the omission of
instructions to properly save, set up, and restore the frame pointer.

The IFUNC resolver is a leaf function since it only calls a function
that is inlined. So sometimes GCC omits the frame pointer instructions
in the resolver unless this optimization is explictly disabled.

This fixes https://bugzilla.redhat.com/show_bug.cgi?id=2267598.

7 weeks agoliblzma: Fix a typo in a comment in the RISC-V filter.
Lasse Collin [Tue, 5 Mar 2024 21:21:26 +0000 (23:21 +0200)] 
liblzma: Fix a typo in a comment in the RISC-V filter.

7 weeks agoliblzma: Use attribute no_profile_instrument_function with ifunc.
Jia Tan [Mon, 4 Mar 2024 16:34:46 +0000 (00:34 +0800)] 
liblzma: Use attribute no_profile_instrument_function with ifunc.

Thanks to Sam James for determining this was the attribute needed to
workaround the GCC bug and for his version of the patch in Gentoo.

7 weeks agoBuild: Require attribute no_profile_instrument_function for ifunc usage.
Jia Tan [Mon, 4 Mar 2024 16:27:31 +0000 (00:27 +0800)] 
Build: Require attribute no_profile_instrument_function for ifunc usage.

Using __attribute__((__no_profile_instrument_function__)) on the ifunc
resolver works around a bug in GCC -fprofile-generate:
it adds profiling code even to ifunc resolvers which can make
the ifunc resolver crash at program startup. This attribute
was not introduced until GCC 7 and Clang 13, so ifunc won't
be used with prior versions of these compilers.

This bug was brought to our attention by:

    https://bugs.gentoo.org/925415

And was reported to upstream GCC by:

    https://gcc.gnu.org/bugzilla/show_bug.cgi?id=11411

7 weeks agoliblzma: Fix a comment in the RISC-V filter.
Lasse Collin [Mon, 4 Mar 2024 17:23:18 +0000 (19:23 +0200)] 
liblzma: Fix a comment in the RISC-V filter.

8 weeks agoCMake: Warn if translated man pages are missing.
Lasse Collin [Thu, 29 Feb 2024 14:35:52 +0000 (16:35 +0200)] 
CMake: Warn if translated man pages are missing.

8 weeks agoCMake: Warn if gettext tools and pre-created .gmo files are missing.
Lasse Collin [Thu, 29 Feb 2024 14:35:52 +0000 (16:35 +0200)] 
CMake: Warn if gettext tools and pre-created .gmo files are missing.

It's only done with CMake >= 3.20 and if library support
for translation was already found.

Sort of fixes: https://github.com/tukaani-project/xz/issues/82

8 weeks agoxz: Add comments.
Lasse Collin [Wed, 28 Feb 2024 16:26:25 +0000 (18:26 +0200)] 
xz: Add comments.

8 weeks agoxz: Change logging level for thread reduction to highest verbosity only.
Jia Tan [Tue, 27 Feb 2024 15:42:41 +0000 (23:42 +0800)] 
xz: Change logging level for thread reduction to highest verbosity only.

Now that multi threaded encoding is the default, users do not need to
see a warning message everytime the number of threads is reduced. On
some machines, this could happen very often. It is not unreasonable for
users to need to set double verbose mode to see this kind of
information.

To see these warning messages -vv or --verbose --verbose must be passed
to set xz into the highest possible verbosity mode.

These warnings had caused automated testing frameworks to fail when they
expected no output to stderr.

Thanks to Sebastian Andrzej Siewior for reporting this and for the
initial version of the patch.

8 weeks agoFix sorting in THANKS.
Lasse Collin [Mon, 26 Feb 2024 21:06:13 +0000 (23:06 +0200)] 
Fix sorting in THANKS.

8 weeks agoUpdate THANKS.
Jia Tan [Mon, 26 Feb 2024 15:39:29 +0000 (23:39 +0800)] 
Update THANKS.

8 weeks agoxz: Add missing RISC-V on the filter list in the man page
Chien Wong [Sun, 25 Feb 2024 13:38:13 +0000 (21:38 +0800)] 
xz: Add missing RISC-V on the filter list in the man page

Signed-off-by: Chien Wong <m@xv97.com>
8 weeks agoBuild: Fix Linux Landlock feature test in Autotools and CMake builds.
Jia Tan [Mon, 26 Feb 2024 15:02:06 +0000 (23:02 +0800)] 
Build: Fix Linux Landlock feature test in Autotools and CMake builds.

The previous Linux Landlock feature test assumed that having the
linux/landlock.h header file was enough. The new feature tests also
requires that prctl() and the required Landlock system calls are
supported.

8 weeks agoTests: Add test_microlzma to .gitignore and CMakeLists.txt.
Jia Tan [Mon, 26 Feb 2024 12:06:10 +0000 (20:06 +0800)] 
Tests: Add test_microlzma to .gitignore and CMakeLists.txt.

8 weeks agoTests: Correct license header in test_microlzma.c.
Jia Tan [Mon, 26 Feb 2024 11:56:25 +0000 (19:56 +0800)] 
Tests: Correct license header in test_microlzma.c.

8 weeks agoFix typos in NEWS and CMakeLists.
Jia Tan [Sun, 25 Feb 2024 13:41:55 +0000 (21:41 +0800)] 
Fix typos in NEWS and CMakeLists.

2 months agoBump version and soname for 5.7.0alpha.
Jia Tan [Sat, 24 Feb 2024 08:30:06 +0000 (16:30 +0800)] 
Bump version and soname for 5.7.0alpha.

Like 5.5.0alpha, 5.7.0alpha won't be released, it's just to mark that
the branch is not stable.

Once again there is no API/ABI stability for new features in devel
versions. The major soname won't be bumped even if API/ABI of new
features breaks between devel releases.

2 months agoAdd NEWS for 5.6.0.
Jia Tan [Sat, 24 Feb 2024 07:50:36 +0000 (15:50 +0800)] 
Add NEWS for 5.6.0.

2 months agoTranslations: Remove obsolete and fuzzy matches from some translations.
Jia Tan [Thu, 22 Feb 2024 14:27:01 +0000 (22:27 +0800)] 
Translations: Remove obsolete and fuzzy matches from some translations.

The French and Brazilian Portuguese man page translations have not been
updated since the switch from public domain to 0BSD. The old GPLv2
strings have now been removed from these files.

2 months agoTranslations: Patch man pages to avoid fuzzy matches.
Jia Tan [Tue, 20 Feb 2024 16:31:54 +0000 (00:31 +0800)] 
Translations: Patch man pages to avoid fuzzy matches.

This will be fixed in the next round of translations, but this avoids
having a fuzzy match or not fixing the English version.

2 months agoxzmore: Fix typo in xzmore.1.
Jia Tan [Tue, 20 Feb 2024 16:30:43 +0000 (00:30 +0800)] 
xzmore: Fix typo in xzmore.1.

Thanks to Yuri Chornoivan.

2 months agoTranslations: Update the Vietnamese translation.
Jia Tan [Sat, 24 Feb 2024 04:12:16 +0000 (12:12 +0800)] 
Translations: Update the Vietnamese translation.

2 months agoTranslations: Update the Esperanto translation.
Jia Tan [Sat, 24 Feb 2024 04:06:40 +0000 (12:06 +0800)] 
Translations: Update the Esperanto translation.

2 months agoTests: Add a few test files.
Jia Tan [Fri, 23 Feb 2024 15:09:59 +0000 (23:09 +0800)] 
Tests: Add a few test files.

2 months agoTests: Add MicroLZMA test.
Jia Tan [Fri, 23 Feb 2024 12:58:36 +0000 (20:58 +0800)] 
Tests: Add MicroLZMA test.

2 months agoBuild: Define HAVE_MICROLZMA when it is configured.
Jia Tan [Fri, 23 Feb 2024 12:57:59 +0000 (20:57 +0800)] 
Build: Define HAVE_MICROLZMA when it is configured.

2 months agoxz: Fix Capsicum sandbox compile error.
Jia Tan [Fri, 23 Feb 2024 12:27:15 +0000 (20:27 +0800)] 
xz: Fix Capsicum sandbox compile error.

user_abort_pipe[] was still being used instead of the parameters.

2 months agoBuild: Fix ARM64 CRC32 instruction feature test.
Jia Tan [Fri, 23 Feb 2024 08:12:32 +0000 (16:12 +0800)] 
Build: Fix ARM64 CRC32 instruction feature test.

Old versions of Clang reported the unsupported function attribute and
__crc32d() function as warnings instead of errors, so the feature test
passed when it shouldn't have, causing a compile error at build time.
-Werror was added to this feature test to fix this. The change is not
needed for CMake because check_c_source_compiles() also performs
linking and the error is caught then.

Thanks to Sebastian Andrzej Siewior for reporting this.