aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Yann E. MORIN <yann.morin.1998@free.fr>2020-03-16 22:55:36 +0100
committerGravatar Peter Korsgaard <peter@korsgaard.com>2020-03-27 23:13:33 +0100
commit05e87df0bbde8665767f4fe0c9959540cd84b13d (patch)
tree70f51fd9bbafd01a7cc0cdab488960ccf78d8899
parent8535e7dece905dd09008f44e93acab2c4eab23b9 (diff)
downloadbuildroot-05e87df0bbde8665767f4fe0c9959540cd84b13d.tar.gz
buildroot-05e87df0bbde8665767f4fe0c9959540cd84b13d.tar.bz2
fs/initramfs: fix show-info
The initramfs is not a reall filesystem, so it does not use the $(rootfs) infrastructure. As a consequence, the usual rootfs-related variables are not set, especially the name, type, and dependencies of the (non-)filesystem. Yet, it is present in the list of rootfs to build, and thus we end up including it in the output of show-info. But the missing variables yield an incorrect json: "": { "type": "", "virtual": false, "version": "", "licenses": "", "dl_dir": "", "install_target": , "install_staging": , "install_images": , "downloads": [ ], "dependencies": [ ], "reverse_dependencies": [ ] }, First, the object key is empty; second, the install_target, install_staging, and install_images values are empty, which is not valid (if they were null, that be OK though). Third, this is clearly the layout of a 'package' entry, not that of a 'rootfs' entry. An option to fix that would be to actually make use of the rootfs infra. However, that would mean doing a lot of work for nothing (there is actually nothing to do, yet the infra would still do a lot of preparatory and clean up work). The alternative is pretty simple: declare and set the variables as if it were a real filesystem, so that show-info can filter it to the proper layout and can spit out appropriate content (even if fake). The third option would be to teach show-info (and its internal implementation, the macro json-info) to ignore specific cases, like no-name items, or replace empty values with null, or whatnots. This again would be quite a lot of work for a single occurence. So we go for the simple faked variables. We add linux as a dependency, so that the graph-depends also properly represent the dependency chain, which ends up with something liKe: ALL | v rootfs-initramfs | | v v linux rootfs-cpio which is pretty fitting in the end. Reported-by: Thomas De Schampheleire <patrickdepinguin@gmail.com> Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> Tested-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> (cherry picked from commit b42db7db9f2be3f37217898022e097dfc7509756) Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
-rw-r--r--fs/initramfs/initramfs.mk5
1 files changed, 5 insertions, 0 deletions
diff --git a/fs/initramfs/initramfs.mk b/fs/initramfs/initramfs.mk
index c751093214..3b3d4ed8b9 100644
--- a/fs/initramfs/initramfs.mk
+++ b/fs/initramfs/initramfs.mk
@@ -29,3 +29,8 @@ rootfs-initramfs-show-depends:
ifeq ($(BR2_TARGET_ROOTFS_INITRAMFS),y)
TARGETS_ROOTFS += rootfs-initramfs
endif
+
+# Not using the rootfs infra, so fake the variables
+ROOTFS_INITRAMFS_NAME = rootfs-initramfs
+ROOTFS_INITRAMFS_TYPE = rootfs
+ROOTFS_INITRAMFS_DEPENDENCIES = rootfs-cpio linux