package/lzma-alone: new package

This new package provides "lzma_alone" host binary based on the original
LZMA SDK. It provides few extra options when compared to the LZMA Utils
/ XZ Utils project "lzma" binary (already packaged as the "lzma").

This packaging schema (LZMA SDK with lzma -> lzma_alone rename) follows
Debian's solution. Please note that Debian also uses LZMA SDK for the
base "lzma" tool which may be considered for Buildroot too - as an
independent change. Similar packaging is also used by Ubuntu & Arch.

lzma_alone is a requirement for preparing firmware images for some
Broadcom based home routers with a picky CFE bootloader. It has limited
LZMA support and building compatible images requires specifying
dictionary size and lc/lp/pb LZMA values manually.

Version 9.22 is used as it's the last release using .tar.bz2 format. The
same version is used by Debian.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
[yann.morin.1998@free.fr:
  - add the upstream sha1, add comments
  - fix license
  - add license file and its sha256
  - fix coding styles
]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
This commit is contained in:
Rafał Miłecki 2022-03-08 19:35:27 +01:00 committed by Yann E. MORIN
parent 2f4f57b62b
commit 4accbb4655
4 changed files with 51 additions and 0 deletions

View File

@ -50,6 +50,7 @@ menu "Host utilities"
source "package/lld/Config.in.host"
source "package/lpc3250loader/Config.in.host"
source "package/lttng-babeltrace/Config.in.host"
source "package/lzma-alone/Config.in.host"
source "package/mender-artifact/Config.in.host"
source "package/meson-tools/Config.in.host"
source "package/mfgtools/Config.in.host"

View File

@ -0,0 +1,18 @@
config BR2_PACKAGE_HOST_LZMA_ALONE
bool "host lzma-alone"
help
LZMA has two well-known command-line tools:
1. lzma from LZMA SDK
2. lzma from XZ Utils (previously LZMA Utils)
This package provides the former one which:
1. Gives more control over compression parameters
2. Gets named lzma_alone to allow coexistence
This tool may be used to prepare firmwares for bootloaders
with limited LZMA support.
E.g. Broadcom's CFE bootloader for MIPS BCM47xx devices is
known to fail to boot images using LZMA compression with
dictionary.
https://www.7-zip.org/sdk.html

View File

@ -0,0 +1,5 @@
# From https://sourceforge.net/projects/sevenzip/files/LZMA%20SDK/
sha1 fbe4d6c02202d65fae75c2db0e3cdc542ca41e6d lzma922.tar.bz2
# Locally computed
sha256 9aade84f229fb25f7aef39d8866b375fe6d35a9e18098d7cd86a99e294902944 lzma922.tar.bz2
sha256 65cd2f7b76266889cbdcec55ab8ce6e845beabb5f450d58287439b25666e3b6a lzma.txt

View File

@ -0,0 +1,27 @@
################################################################################
#
# lzma-alone
#
################################################################################
LZMA_ALONE_VERSION = 9.22
LZMA_ALONE_SITE = https://sourceforge.net/projects/sevenzip/files/LZMA%20SDK
LZMA_ALONE_SOURCE = lzma922.tar.bz2
LZMA_ALONE_STRIP_COMPONENTS = 0
LZMA_ALONE_LICENSE = Public Domain
LZMA_ALONE_LICENSE_FILES = lzma.txt
define HOST_LZMA_ALONE_BUILD_CMDS
$(HOST_MAKE_ENV) $(HOST_CONFIGURE_OPTS) $(MAKE) \
-C $(@D)/C/Util/Lzma -f makefile.gcc
$(HOST_MAKE_ENV) $(HOST_CONFIGURE_OPTS) $(MAKE) \
-C $(@D)/CPP/7zip/Bundles/LzmaCon -f makefile.gcc
endef
define HOST_LZMA_ALONE_INSTALL_CMDS
$(INSTALL) -D -m 0755 \
$(@D)/CPP/7zip/Bundles/LzmaCon/lzma \
$(HOST_DIR)/bin/lzma_alone
endef
$(eval $(host-generic-package))