summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBaruch Siach <baruch@tkos.co.il>2017-02-12 22:15:39 +0200
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>2017-02-15 22:11:11 +0100
commitf165032e4f01aa46b43cc8136bac1c5b47aa8545 (patch)
treed65765401ba090c900d52f7cd70770a4b3e2243f
parentdc7fcbe494ffddcaba630889fe1a2915569be3f1 (diff)
package: add generic support for lz archives
This commit teaches the generic package handling code how to extract .tar.lz archives. When lzip is not installed on the host, host-lzip gets built automatically. Signed-off-by: Baruch Siach <baruch@tkos.co.il> Reviewed-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-rw-r--r--Config.in7
-rw-r--r--Makefile1
-rw-r--r--package/pkg-utils.mk1
-rw-r--r--support/dependencies/check-host-lzip.mk5
-rwxr-xr-xsupport/dependencies/check-host-lzip.sh14
5 files changed, 28 insertions, 0 deletions
diff --git a/Config.in b/Config.in
index ccd777e8b..bd8f0d1a1 100644
--- a/Config.in
+++ b/Config.in
@@ -158,6 +158,13 @@ config BR2_XZCAT
Command to be used to extract a xz'ed file to stdout.
Default is "xzcat"
+config BR2_LZCAT
+ string "lzcat command"
+ default "lzip -d -c"
+ help
+ Command to be used to extract a lzip'ed file to stdout.
+ Default is "lzip -d -c"
+
config BR2_TAR_OPTIONS
string "Tar options"
default ""
diff --git a/Makefile b/Makefile
index 4db971b0c..9663d15ee 100644
--- a/Makefile
+++ b/Makefile
@@ -432,6 +432,7 @@ KERNEL_ARCH := $(shell echo "$(ARCH)" | sed -e "s/-.*//" \
ZCAT := $(call qstrip,$(BR2_ZCAT))
BZCAT := $(call qstrip,$(BR2_BZCAT))
XZCAT := $(call qstrip,$(BR2_XZCAT))
+LZCAT := $(call qstrip,$(BR2_LZCAT))
TAR_OPTIONS = $(call qstrip,$(BR2_TAR_OPTIONS)) -xf
# packages compiled for the host go here
diff --git a/package/pkg-utils.mk b/package/pkg-utils.mk
index 38d00dbbf..c95e77953 100644
--- a/package/pkg-utils.mk
+++ b/package/pkg-utils.mk
@@ -36,6 +36,7 @@ pkgname = $(lastword $(subst /, ,$(pkgdir)))
# Define extractors for different archive suffixes
INFLATE.bz2 = $(BZCAT)
INFLATE.gz = $(ZCAT)
+INFLATE.lz = $(LZCAT)
INFLATE.lzma = $(XZCAT)
INFLATE.tbz = $(BZCAT)
INFLATE.tbz2 = $(BZCAT)
diff --git a/support/dependencies/check-host-lzip.mk b/support/dependencies/check-host-lzip.mk
new file mode 100644
index 000000000..6acfdc6df
--- /dev/null
+++ b/support/dependencies/check-host-lzip.mk
@@ -0,0 +1,5 @@
+ifeq (,$(call suitable-host-package,lzip,$(LZCAT)))
+DEPENDENCIES_HOST_PREREQ += host-lzip
+EXTRACTOR_DEPENDENCY_PRECHECKED_EXTENSIONS += .lz
+LZCAT = $(HOST_DIR)/usr/bin/lzip -d -c
+endif
diff --git a/support/dependencies/check-host-lzip.sh b/support/dependencies/check-host-lzip.sh
new file mode 100755
index 000000000..4f8a2ba3d
--- /dev/null
+++ b/support/dependencies/check-host-lzip.sh
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+candidate="$1"
+
+lzip=`which $candidate 2>/dev/null`
+if [ ! -x "$lzip" ]; then
+ lzip=`which lzip 2>/dev/null`
+ if [ ! -x "$lzip" ]; then
+ # echo nothing: no suitable lzip found
+ exit 1
+ fi
+fi
+
+echo $lzip