aeb517522f
Import "0001-image-vfat-Add-label-option-to-set-volume-name.patch" from the upstream repository. The changes made to the README.rst file had to be removed from the patch so that the package can be compiled in buildroot. The patch has been accepted upstream, but no releases have been made yet which includes the feature. Signed-off-by: Dario Binacchi <dariobin@libero.it> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
70 lines
2.0 KiB
Diff
70 lines
2.0 KiB
Diff
From c1a165731298b96175b9b0dd80ad088dc8b33dc1 Mon Sep 17 00:00:00 2001
|
|
From: Florent Viard <fviard@cxignited.com>
|
|
Date: Sun, 27 Oct 2019 23:48:16 +0100
|
|
Subject: [PATCH] image-vfat: Add label option to set volume name.
|
|
|
|
Signed-off-by: Florent Viard <fviard@cxignited.com>
|
|
[dariobin@libero.it: remove README.rst changes]
|
|
Signed-off-by: Dario Binacchi <dariobin@libero.it>
|
|
---
|
|
image-vfat.c | 18 ++++++++++++++++--
|
|
1 file changed, 16 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/image-vfat.c b/image-vfat.c
|
|
index f16242c..3ea7288 100644
|
|
--- a/image-vfat.c
|
|
+++ b/image-vfat.c
|
|
@@ -27,14 +27,20 @@ static int vfat_generate(struct image *image)
|
|
int ret;
|
|
struct partition *part;
|
|
char *extraargs = cfg_getstr(image->imagesec, "extraargs");
|
|
+ char *label = cfg_getstr(image->imagesec, "label");
|
|
+
|
|
+ if (label && label[0] != '\0')
|
|
+ xasprintf(&label, "-n '%s'", label);
|
|
+ else
|
|
+ label = "";
|
|
|
|
ret = systemp(image, "%s if=/dev/zero of=\"%s\" seek=%lld count=0 bs=1 2>/dev/null",
|
|
get_opt("dd"), imageoutfile(image), image->size);
|
|
if (ret)
|
|
return ret;
|
|
|
|
- ret = systemp(image, "%s %s '%s'", get_opt("mkdosfs"),
|
|
- extraargs, imageoutfile(image));
|
|
+ ret = systemp(image, "%s %s %s '%s'", get_opt("mkdosfs"),
|
|
+ extraargs, label, imageoutfile(image));
|
|
if (ret)
|
|
return ret;
|
|
|
|
@@ -72,11 +78,18 @@ static int vfat_generate(struct image *image)
|
|
|
|
static int vfat_setup(struct image *image, cfg_t *cfg)
|
|
{
|
|
+ char *label = cfg_getstr(image->imagesec, "label");
|
|
+
|
|
if (!image->size) {
|
|
image_error(image, "no size given or must not be zero\n");
|
|
return -EINVAL;
|
|
}
|
|
|
|
+ if (label && strlen(label) > 11) {
|
|
+ image_error(image, "vfat volume name cannot be longer than 11 characters\n");
|
|
+ return -EINVAL;
|
|
+ }
|
|
+
|
|
return 0;
|
|
}
|
|
|
|
@@ -112,6 +125,7 @@ static cfg_opt_t file_opts[] = {
|
|
|
|
static cfg_opt_t vfat_opts[] = {
|
|
CFG_STR("extraargs", "", CFGF_NONE),
|
|
+ CFG_STR("label", "", CFGF_NONE),
|
|
CFG_STR_LIST("files", 0, CFGF_NONE),
|
|
CFG_SEC("file", file_opts, CFGF_MULTI | CFGF_TITLE),
|
|
CFG_END()
|
|
--
|
|
2.24.0
|
|
|