summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJon Ringle <jringle@gridpoint.com>2018-07-11 09:17:39 -0400
committerMichael Olbrich <m.olbrich@pengutronix.de>2018-07-13 15:12:37 +0200
commitf3b0acd261ed42ee4484c8b9f7098543ff2b663d (patch)
treecb51f34fba7e559f112b89ef1cdd36f2e1e1b5a0
parent509c5450f268f69ba45ed3cf293915ad8bbde374 (diff)
downloadptxdist-f3b0acd261ed42ee4484c8b9f7098543ff2b663d.tar.gz
ptxdist-f3b0acd261ed42ee4484c8b9f7098543ff2b663d.tar.xz
image-root-tgz: Add IMAGE_ROOT_TGZ_LABEL option
Signed-off-by: Jon Ringle <jringle@gridpoint.com> Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
-rw-r--r--doc/ref_manual.rst4
-rw-r--r--platforms/image-root-tgz.in19
-rw-r--r--rules/image-root-tgz.make1
-rw-r--r--rules/post/ptxd_make_image_common.make3
-rw-r--r--scripts/lib/ptxd_make_image_archive.sh8
-rw-r--r--scripts/lib/ptxd_make_image_common.sh6
6 files changed, 36 insertions, 5 deletions
diff --git a/doc/ref_manual.rst b/doc/ref_manual.rst
index 63b0a9ccf..a23a657c7 100644
--- a/doc/ref_manual.rst
+++ b/doc/ref_manual.rst
@@ -399,6 +399,10 @@ different.
conflicting files from multiple images. The created nfsroot directory is
``<platform-dir>/nfsroot/<image-name>``.
+``<PKG>_LABEL``
+ This is a tar label to put on an image. This is supported by
+ ``image-root-tgz`` and images created with the ``image-tgz`` template.
+
.. _reference_macros:
Rule File Macro Reference
diff --git a/platforms/image-root-tgz.in b/platforms/image-root-tgz.in
index fce1516e7..c325209de 100644
--- a/platforms/image-root-tgz.in
+++ b/platforms/image-root-tgz.in
@@ -1,7 +1,22 @@
## SECTION=image
-config IMAGE_ROOT_TGZ
+menuconfig IMAGE_ROOT_TGZ
tristate
- prompt "Generate images/root.tgz"
+ prompt "Generate images/root.tgz "
help
FIXME
+
+if IMAGE_ROOT_TGZ
+
+config IMAGE_ROOT_TGZ_LABEL
+ string
+ prompt "label"
+ help
+ This string gets expanded to form the label. An empty string produces no label.
+ For example, this could be set to:
+ ${PTXCONF_PROJECT_VENDOR}-${PTXCONF_PROJECT}${PTXCONF_PROJECT_VERSION}
+
+ The label on the generate image can be checked with the command:
+ $ tar --test-label -f images/root.tgz
+endif
+
diff --git a/rules/image-root-tgz.make b/rules/image-root-tgz.make
index c93e8c9c0..07a8370cc 100644
--- a/rules/image-root-tgz.make
+++ b/rules/image-root-tgz.make
@@ -20,6 +20,7 @@ IMAGE_ROOT_TGZ := image-root-tgz
IMAGE_ROOT_TGZ_DIR := $(BUILDDIR)/$(IMAGE_ROOT_TGZ)
IMAGE_ROOT_TGZ_IMAGE := $(IMAGEDIR)/root.tgz
IMAGE_ROOT_TGZ_PKGS = $(PTX_PACKAGES_INSTALL)
+IMAGE_ROOT_TGZ_LABEL := $(call remove_quotes, $(PTXCONF_IMAGE_ROOT_TGZ_LABEL))
# ----------------------------------------------------------------------------
# Image
diff --git a/rules/post/ptxd_make_image_common.make b/rules/post/ptxd_make_image_common.make
index a1a5e7846..8aa8c0afb 100644
--- a/rules/post/ptxd_make_image_common.make
+++ b/rules/post/ptxd_make_image_common.make
@@ -21,7 +21,8 @@ world/image/env/impl = \
image_env="$(call ptx/escape,$($(1)_ENV))" \
image_pkgs="$(call ptx/escape,$($(1)_PKGS))" \
image_files="$(call ptx/escape,$($(1)_FILES))" \
- image_image="$(call ptx/escape,$($(1)_IMAGE))"
+ image_image="$(call ptx/escape,$($(1)_IMAGE))" \
+ image_label="$(call ptx/escape,$($(1)_LABEL))"
world/image/env = \
$(call world/image/env/impl,$(strip $(1)))
diff --git a/scripts/lib/ptxd_make_image_archive.sh b/scripts/lib/ptxd_make_image_archive.sh
index 650679a2e..e21da5c74 100644
--- a/scripts/lib/ptxd_make_image_archive.sh
+++ b/scripts/lib/ptxd_make_image_archive.sh
@@ -16,8 +16,12 @@ ptxd_make_image_archive_impl() {
ptxd_get_ipkg_files ${image_pkgs} &&
ptxd_make_image_extract_xpkg_files "${pkg_dir}" &&
cd "${pkg_dir}" &&
- echo -e "\nCreating $(ptxd_print_path "${image_image}") ...\n" &&
- tar -zcf "${image_image}" . &&
+ echo -ne "\nCreating $(ptxd_print_path "${image_image}") "
+ if [ -n "${image_label}" ]; then
+ echo -n "with label \"${image_label}\" "
+ fi
+ echo -ne "...\n" &&
+ tar ${image_label_args} -zcf "${image_image}" . &&
rm -r "${pkg_dir}"
}
export -f ptxd_make_image_archive_impl
diff --git a/scripts/lib/ptxd_make_image_common.sh b/scripts/lib/ptxd_make_image_common.sh
index 402ff532b..a92544615 100644
--- a/scripts/lib/ptxd_make_image_common.sh
+++ b/scripts/lib/ptxd_make_image_common.sh
@@ -66,6 +66,12 @@ ptxd_make_image_init() {
image_ipkg_repo_dirs=( "${image_repo_dist_dir}" )
fi
+ if [ -n "${image_label}" ]; then
+ image_label_args="--label \"${image_label}\""
+ else
+ image_label_args=""
+ fi
+
exec 2>&${PTXDIST_FD_LOGERR}
}
export -f ptxd_make_image_init