فهرست منبع

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>
Rafał Miłecki 3 سال پیش
والد
کامیت
4accbb4655
4فایلهای تغییر یافته به همراه51 افزوده شده و 0 حذف شده
  1. 1 0
      package/Config.in.host
  2. 18 0
      package/lzma-alone/Config.in.host
  3. 5 0
      package/lzma-alone/lzma-alone.hash
  4. 27 0
      package/lzma-alone/lzma-alone.mk

+ 1 - 0
package/Config.in.host

@@ -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"

+ 18 - 0
package/lzma-alone/Config.in.host

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

+ 5 - 0
package/lzma-alone/lzma-alone.hash

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

+ 27 - 0
package/lzma-alone/lzma-alone.mk

@@ -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))