diff mbox series

[v2] initramfs-framework: rdepend on mountpoint command

Message ID 4f922d17bac5aaadc452efb965b9d320daca8f1e.camel@iris-sensing.com
State New
Headers show
Series [v2] initramfs-framework: rdepend on mountpoint command | expand

Commit Message

Erik Schumacher Dec. 16, 2025, 4:18 p.m. UTC
The scripts of the framework base package and the rootfs module script,
both depend on the mountpoint command being available, which was
previously not the case. This led to boot failures when trying to boot
any rootfs with the core-image-initramfs-boot initrd:

/init: eval: line 16: mountpoint: not found

This change adds the correct RDEPENDS to the base-package and the
rootfs module.

Signed-off-by: Erik Schumacher <erik.schumacher@iris-sensing.com>
---
v2: Add SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS and add RDEPENDS to both
packages
---
 meta/conf/layer.conf                                       | 1 +
 meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb | 5 ++++-
 2 files changed, 5 insertions(+), 1 deletion(-)

-- 
2.52.0

Comments

AdrianF Dec. 18, 2025, 10:32 a.m. UTC | #1
On Tue, 2025-12-16 at 16:18 +0000, Erik Schumacher via
lists.openembedded.org wrote:
> [You don't often get email from
> erik.schumacher=iris-sensing.com@lists.openembedded.org. Learn why
> this is important at https://aka.ms/LearnAboutSenderIdentification ]
> 
> The scripts of the framework base package and the rootfs module
> script,
> both depend on the mountpoint command being available, which was
> previously not the case. This led to boot failures when trying to
> boot
> any rootfs with the core-image-initramfs-boot initrd:
> 
> /init: eval: line 16: mountpoint: not found
> 
> This change adds the correct RDEPENDS to the base-package and the
> rootfs module.

There are probably two ways to solve this issue:
- Configure busybox to provide the mountpoint utility
- Add the RDEPENDS on util-linux

Since the default configuration of busybox has mountpoint built-in, I'm
wondering what kind of setup leads to this issue.
Would it be possible or even better to just use the busybox
implementation also in your setup?

A patch which adds mountpoint unconditionally does not look right to
me.

Regards,
Adrian

> 
> Signed-off-by: Erik Schumacher <erik.schumacher@iris-sensing.com>
> ---
> v2: Add SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS and add RDEPENDS to both
> packages
> ---
>  meta/conf/layer.conf                                       | 1 +
>  meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb | 5 ++++-
>  2 files changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/meta/conf/layer.conf b/meta/conf/layer.conf
> index ba25ca3029..5477e9846f 100644
> --- a/meta/conf/layer.conf
> +++ b/meta/conf/layer.conf
> @@ -61,6 +61,7 @@ SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += " \
>    initramfs-framework->${VIRTUAL-RUNTIME_base-utils} \
>    initramfs-framework->eudev \
>    initramfs-framework->systemd \
> +  initramfs-framework->util-linux \
>    initramfs-module-install-efi->dosfstools \
>    initramfs-module-install-efi->e2fsprogs \
>    initramfs-module-install-efi->parted \
> diff --git a/meta/recipes-core/initrdscripts/initramfs-
> framework_1.0.bb b/meta/recipes-core/initrdscripts/initramfs-
> framework_1.0.bb
> index 2ec03bc34c..4df10035fa 100644
> --- a/meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb
> +++ b/meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb
> @@ -79,6 +79,9 @@ FILES:${PN}-base = "/init /init.d/99-finish /dev"
>  # and mounts the rootfs. Then 90-rootfs will proceed immediately.
>  RRECOMMENDS:${PN}-base += "initramfs-module-rootfs"
> 
> +# 99-finish needs the mountpoint utility
> +RDEPENDS:${PN}-base += "util-linux-mountpoint"
> +
>  SUMMARY:initramfs-module-exec = "initramfs support for easy
> execution of applications"
>  RDEPENDS:initramfs-module-exec = "${PN}-base"
>  FILES:initramfs-module-exec = "/init.d/89-exec"
> @@ -100,7 +103,7 @@ RDEPENDS:initramfs-module-nfsrootfs = "${PN}-
> base"
>  FILES:initramfs-module-nfsrootfs = "/init.d/85-nfsrootfs"
> 
>  SUMMARY:initramfs-module-rootfs = "initramfs support for locating
> and mounting the root partition"
> -RDEPENDS:initramfs-module-rootfs = "${PN}-base"
> +RDEPENDS:initramfs-module-rootfs = "${PN}-base util-linux-
> mountpoint"
>  FILES:initramfs-module-rootfs = "/init.d/90-rootfs"
> 
>  SUMMARY:initramfs-module-debug = "initramfs dynamic debug support"
> --
> 2.52.0
> 
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#227980):
> https://lists.openembedded.org/g/openembedded-core/message/227980
> Mute This Topic: https://lists.openembedded.org/mt/116811908/3616858
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe:
> https://lists.openembedded.org/g/openembedded-core/unsub [
> adrian.freihofer@siemens.com]
> -=-=-=-=-=-=-=-=-=-=-=-
Erik Schumacher Dec. 18, 2025, 2:29 p.m. UTC | #2
Am Donnerstag, dem 18.12.2025 um 10:32 +0000 schrieb Freihofer, Adrian:
> 
> On Tue, 2025-12-16 at 16:18 +0000, Erik Schumacher via
> lists.openembedded.org wrote:
> > [You don't often get email from
> > erik.schumacher=iris-sensing.com@lists.openembedded.org. Learn why
> > this is important at https://aka.ms/LearnAboutSenderIdentification ]
> > 
> > The scripts of the framework base package and the rootfs module
> > script,
> > both depend on the mountpoint command being available, which was
> > previously not the case. This led to boot failures when trying to
> > boot
> > any rootfs with the core-image-initramfs-boot initrd:
> > 
> > /init: eval: line 16: mountpoint: not found
> > 
> > This change adds the correct RDEPENDS to the base-package and the
> > rootfs module.
> 
> There are probably two ways to solve this issue:
> - Configure busybox to provide the mountpoint utility
> - Add the RDEPENDS on util-linux
> 
> Since the default configuration of busybox has mountpoint built-in, I'm
> wondering what kind of setup leads to this issue.
> Would it be possible or even better to just use the busybox
> implementation also in your setup?
> 

Hi Adrian,

thank you for pointing me towards busybox. That was the actual problem
with my setups:

The first setup was a scarthgap build with custom layers / custom
distro based on poky which uses a custom defconfig for busybox. The
CONFIG_MOUNTPOINT was missing there.

Then I tried to reproduce the behavior with a second setup which was a
clean pull of the poky repo. And to speed up building I used poky-tiny
as distro. And it turns out, poky-tiny also pulls in a custom busybox
config with CONFIG_MOUNTPOINT missing.

Right now I tested it again with a clean setup of openembedded-core +
bitbake. There, CONFIG_MOUNTPOINT was set and the initramfs included
the mountpoint command (linked to busybox)

Based on that, please ignore my patch!

But I have a follow-up question:
Is there any way to catch such a misconfiguration? Can we depend on a
virtual package like busybox-mountpoint that is only available if the
defconfig is set accordingly?

Regards,
Erik
diff mbox series

Patch

diff --git a/meta/conf/layer.conf b/meta/conf/layer.conf
index ba25ca3029..5477e9846f 100644
--- a/meta/conf/layer.conf
+++ b/meta/conf/layer.conf
@@ -61,6 +61,7 @@  SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += " \
   initramfs-framework->${VIRTUAL-RUNTIME_base-utils} \
   initramfs-framework->eudev \
   initramfs-framework->systemd \
+  initramfs-framework->util-linux \
   initramfs-module-install-efi->dosfstools \
   initramfs-module-install-efi->e2fsprogs \
   initramfs-module-install-efi->parted \
diff --git a/meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb b/meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb
index 2ec03bc34c..4df10035fa 100644
--- a/meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb
+++ b/meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb
@@ -79,6 +79,9 @@  FILES:${PN}-base = "/init /init.d/99-finish /dev"
 # and mounts the rootfs. Then 90-rootfs will proceed immediately.
 RRECOMMENDS:${PN}-base += "initramfs-module-rootfs"
 
+# 99-finish needs the mountpoint utility
+RDEPENDS:${PN}-base += "util-linux-mountpoint"
+
 SUMMARY:initramfs-module-exec = "initramfs support for easy execution of applications"
 RDEPENDS:initramfs-module-exec = "${PN}-base"
 FILES:initramfs-module-exec = "/init.d/89-exec"
@@ -100,7 +103,7 @@  RDEPENDS:initramfs-module-nfsrootfs = "${PN}-base"
 FILES:initramfs-module-nfsrootfs = "/init.d/85-nfsrootfs"
 
 SUMMARY:initramfs-module-rootfs = "initramfs support for locating and mounting the root partition"
-RDEPENDS:initramfs-module-rootfs = "${PN}-base"
+RDEPENDS:initramfs-module-rootfs = "${PN}-base util-linux-mountpoint"
 FILES:initramfs-module-rootfs = "/init.d/90-rootfs"
 
 SUMMARY:initramfs-module-debug = "initramfs dynamic debug support"