[PATCH v2 00/16] xz: Updates to license, filters, and compression options

Lasse Collin
2024-07-21T13:43:44Z

XZ Embedded, the upstream project, switched from public domain to the
BSD Zero Clause License (0BSD). Now matching SPDX license identifiers
can be added.

Documentation was revised. Fix syntax errors in kernel-doc comments in
<linux/xz.h>. The xz_dec API docs from <linux/xz.h> are now included in
Documentation/staging/xz.rst.

The new ARM64 and RISC-V filters can be used for kernel decompression
if CONFIG_EFI_ZBOOT=y. The filters can be used by Squashfs too.
(Userspace Squashfs-tools already had the ARM64 filter support committed
but it was reverted due to backdoor fears. I try to get ARM64 and RISC-V
filter support added to Squashfs-tools somewhat soon.)

Account for the default threading change made in the xz command line
tool version 5.6.0. Tweak kernel compression options for archs that
support XZ compressed kernel.

v2:
- Omit Jia Tan from MAINTAINERS and commit messages.
- Don't change home page URLs as the home pages were moved back
to their old locations.
- Add xz_dec (<linux/xz.h>) kernel-doc fixes and improvements.
- arm64: Add the make target Image.xz for CONFIG_EFI_ZBOOT=n.
- riscv: Add the make target Image.xz and set HAVE_KERNEL_XZ
in Kconfig like it is done with other compressors for
CONFIG_EFI_ZBOOT=n.

Lasse Collin (16):
MAINTAINERS: Add XZ Embedded maintainer
LICENSES: Add 0BSD license text
xz: Switch from public domain to BSD Zero Clause License (0BSD)
xz: Fix comments and coding style
xz: Fix kernel-doc formatting errors in xz.h
xz: Improve the MicroLZMA kernel-doc in xz.h
xz: Documentation/staging/xz.rst: Revise thoroughly
docs: Add XZ_EXTERN to c_id_attributes
xz: Cleanup CRC32 edits from 2018
xz: Optimize for-loop conditions in the BCJ decoders
xz: Add ARM64 BCJ filter
xz: Add RISC-V BCJ filter
xz: Use 128 MiB dictionary and force single-threaded mode
xz: Adjust arch-specific options for better kernel compression
arm64: boot: add Image.xz support
riscv: boot: add Image.xz support

Documentation/conf.py | 3 +
Documentation/staging/xz.rst | 160 ++++++++++++----------------
LICENSES/deprecated/0BSD | 23 ++++
MAINTAINERS | 13 +++
arch/arm64/boot/Makefile | 5 +-
arch/riscv/Kconfig | 1 +
arch/riscv/Makefile | 6 +-
arch/riscv/boot/Makefile | 3 +
include/linux/decompress/unxz.h | 5 +-
include/linux/xz.h | 48 ++++-----
init/Kconfig | 5 +-
lib/decompress_unxz.c | 39 ++++---
lib/xz/Kconfig | 13 ++-
lib/xz/xz_crc32.c | 7 +-
lib/xz/xz_dec_bcj.c | 182 ++++++++++++++++++++++++++++++--
lib/xz/xz_dec_lzma2.c | 5 +-
lib/xz/xz_dec_stream.c | 5 +-
lib/xz/xz_dec_syms.c | 14 +--
lib/xz/xz_dec_test.c | 12 +--
lib/xz/xz_lzma2.h | 5 +-
lib/xz/xz_private.h | 20 ++--
lib/xz/xz_stream.h | 5 +-
scripts/Makefile.lib | 13 ++-
scripts/xz_wrap.sh | 158 +++++++++++++++++++++++++--
24 files changed, 542 insertions(+), 208 deletions(-)
create mode 100644 LICENSES/deprecated/0BSD

--
2.45.2