Use KConfig for /cfg filesystem size

Because clearfog and Epia have vastly differing flash sizes, we will
have to specify the desired size of the /cfg filesystem template that we
are making. Let's convert this to a "package" so that we have easy
access to the Kconfig tools -- even though it really isn't about any
"package" per se. On a flip side, this should allow for proper
parallelization of image building, yay!

Change-Id: Ic95a201ab7874711514bdc8b2e60b711db97ddc0
diff --git a/Config.in b/Config.in
index 3565239..4de0d4a 100644
--- a/Config.in
+++ b/Config.in
@@ -1,4 +1,4 @@
-source "$BR2_EXTERNAL_CZECHLIGHT_PATH/package/cla-sysrepo/Config.in"
+source "$BR2_EXTERNAL_CZECHLIGHT_PATH/package/Config.in"
 
 config CZECHLIGHT_NETCONF
 	bool "Complete NETCONF server and HW drivers"
diff --git a/board/czechlight/common/mk-empty-cfg-fs.sh b/board/czechlight/common/mk-empty-cfg-fs.sh
deleted file mode 100755
index f4cbe1a..0000000
--- a/board/czechlight/common/mk-empty-cfg-fs.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-CFG_FS=${BINARIES_DIR}/cfg.ext4
-rm -f ${CFG_FS}
-${HOST_DIR}/sbin/mkfs.ext4 -L cfg ${CFG_FS} 256M
diff --git a/configs/czechlight_clearfog_defconfig b/configs/czechlight_clearfog_defconfig
index eeb4687..bbe9ae7 100644
--- a/configs/czechlight_clearfog_defconfig
+++ b/configs/czechlight_clearfog_defconfig
@@ -12,7 +12,7 @@
 BR2_TARGET_GENERIC_GETTY_BAUDRATE_115200=y
 # BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW is not set
 BR2_ROOTFS_OVERLAY="$(BR2_EXTERNAL_CZECHLIGHT_PATH)/board/czechlight/common/overlay/ $(BR2_EXTERNAL_CZECHLIGHT_PATH)/board/czechlight/clearfog/overlay/"
-BR2_ROOTFS_POST_BUILD_SCRIPT="$(BR2_EXTERNAL_CZECHLIGHT_PATH)/board/czechlight/common/mk-empty-cfg-fs.sh $(BR2_EXTERNAL_CZECHLIGHT_PATH)/board/czechlight/common/install-rauc-cert.sh $(BR2_EXTERNAL_CZECHLIGHT_PATH)/board/czechlight/clearfog/copy-boot-scr.sh"
+BR2_ROOTFS_POST_BUILD_SCRIPT="$(BR2_EXTERNAL_CZECHLIGHT_PATH)/board/czechlight/common/install-rauc-cert.sh $(BR2_EXTERNAL_CZECHLIGHT_PATH)/board/czechlight/clearfog/copy-boot-scr.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh $(BR2_EXTERNAL_CZECHLIGHT_PATH)/board/czechlight/clearfog/mk-rauc-bundle.sh ${BR2_EXTERNAL_CZECHLIGHT_PATH}/board/czechlight/clearfog/usb-flash-genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c $(BR2_EXTERNAL_CZECHLIGHT_PATH)/board/czechlight/clearfog/genimage.cfg"
 BR2_LINUX_KERNEL=y
@@ -68,4 +68,6 @@
 BR2_PACKAGE_HOST_GENIMAGE=y
 BR2_PACKAGE_HOST_MTOOLS=y
 BR2_PACKAGE_HOST_RAUC=y
+BR2_PACKAGE_CZECHLIGHT_CFG_FS=y
+CZECHLIGHT_CFG_FS_SIZE="256M"
 CZECHLIGHT_NETCONF=y
diff --git a/package/Config.in b/package/Config.in
new file mode 100644
index 0000000..24c14d9
--- /dev/null
+++ b/package/Config.in
@@ -0,0 +1,2 @@
+source "$BR2_EXTERNAL_CZECHLIGHT_PATH/package/cla-sysrepo/Config.in"
+source "$BR2_EXTERNAL_CZECHLIGHT_PATH/package/czechlight-cfg-fs/Config.in"
diff --git a/package/czechlight-cfg-fs/Config.in b/package/czechlight-cfg-fs/Config.in
new file mode 100644
index 0000000..c3c5a46
--- /dev/null
+++ b/package/czechlight-cfg-fs/Config.in
@@ -0,0 +1,16 @@
+config BR2_PACKAGE_CZECHLIGHT_CFG_FS
+	bool "Prepare the /cfg partition"
+	help
+	  This is required for RAUC to work properly.
+
+if BR2_PACKAGE_CZECHLIGHT_CFG_FS
+
+config CZECHLIGHT_CFG_FS_SIZE
+	string "exact size"
+	default "128M"
+	help
+	  Size of the /cfg filesystem image.  This must be big enough to
+	  accommodate all configuration, but small enough to fit within the
+	  corresponding partition.
+
+endif # BR2_PACKAGE_CZECHLIGHT_CFG_FS
diff --git a/package/czechlight-cfg-fs/czechlight-cfg-fs.mk b/package/czechlight-cfg-fs/czechlight-cfg-fs.mk
new file mode 100644
index 0000000..a1a5bef
--- /dev/null
+++ b/package/czechlight-cfg-fs/czechlight-cfg-fs.mk
@@ -0,0 +1,12 @@
+CZECHLIGHT_CFG_FS_INSTALL_TARGET = NO
+CZECHLIGHT_CFG_FS_INSTALL_IMAGES = YES
+CZECHLIGHT_CFG_FS_DEPENDENCIES = host-e2fsprogs
+
+CZECHLIGHT_CFG_FS_LOCATION = $(BINARIES_DIR)/cfg.ext4
+
+define CZECHLIGHT_CFG_FS_INSTALL_IMAGES_CMDS
+	rm -f $(CZECHLIGHT_CFG_FS_LOCATION)
+	$(HOST_DIR)/sbin/mkfs.ext4 -L cfg $(CZECHLIGHT_CFG_FS_LOCATION) $(call qstrip,$(CZECHLIGHT_CFG_FS_SIZE))
+endef
+
+$(eval $(generic-package))