On Mon, Oct 06, 2025 at 10:31:28AM +0200, Stefano Brivio wrote:
On Wed, 1 Oct 2025 10:31:10 +1000 David Gibson
wrote: On Tue, Sep 30, 2025 at 02:29:52PM +0800, Yumei Huang wrote:
If /bin is in the PATH of host, /usr/bin may not exist in mbuto guest, which causes some binaries failing to move to /usr/bin. As a result, tests fail as binaries not found.
Fix it by adding /usr/bin to DIRS. Also create the same symlink for mbuto.mem.img.
Link: https://bugs.passt.top/show_bug.cgi?id=158 Fixes: f4729be7a56b("test: Update mbuto profile to fix the symlink of /bin") Suggested-by: David Gibson
Signed-off-by: Yumei Huang --- test/passt.mbuto | 2 +- test/passt.mem.mbuto | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/test/passt.mbuto b/test/passt.mbuto index 231b9c9..598c254 100755 --- a/test/passt.mbuto +++ b/test/passt.mbuto @@ -33,7 +33,7 @@ LINKS="${LINKS:- dhclient /usr/sbin/dhclient sysctl /usr/sbin/sysctl}"
-DIRS="${DIRS} /tmp /usr/sbin /usr/share /var/log /var/lib /etc/ssh /run/sshd /root/.ssh" +DIRS="${DIRS} /tmp /usr/sbin /usr/bin /usr/share /var/log /var/lib /etc/ssh /run/sshd /root/.ssh" COPIES="${COPIES} small.bin,/root/small.bin medium.bin,/root/medium.bin big.bin,/root/big.bin rampstream,/bin/rampstream rampstream-check.sh,/bin/rampstream-check.sh" diff --git a/test/passt.mem.mbuto b/test/passt.mem.mbuto index 532eae0..7554a43 100755 --- a/test/passt.mem.mbuto +++ b/test/passt.mem.mbuto @@ -12,7 +12,7 @@
PROGS="${PROGS:-ash,dash,bash chmod ip mount insmod mkdir ln cat chmod modprobe grep mknod sed chown sleep bc ls ps mount unshare chroot cp kill diff - head tail sort tr tee cut nm which switch_root}" + head tail sort tr tee cut nm which switch_root mv rm}"
KMODS="${KMODS:- dummy}"
@@ -22,12 +22,14 @@ LINKS="${LINKS:- ash,dash,bash /init ash,dash,bash /bin/sh}"
-DIRS="${DIRS} /tmp /sbin" +DIRS="${DIRS} /tmp /sbin /usr/bin"
While we're changing this, we should probably standardize on using /usr/sbin for passt.mem.mbuto as well. I don't think it needs it at the moment, but since it bit us for passt.mbuto, it's just a problem waiting to happen.
In fact, I wonder if it would make sense to have mbuto unify /bin, /usr/bin, /sbin and /usr/sbin as part of its core.
Maybe optionally, or with a different handling of "LINKS", or some "UNIFY" directive on its own?
I'm afraid it's not necessarily a generic approach as some use cases expect binaries to be in a specific place, and not be links.
The binaries themselves won't be links just the directories containing them. There might still be things that choke on that, but I expect there's rather less.
I never had time to commit a polished version of my local profile for nftables, but I'm not sure things would work if we start moving things around.
Maybe a -u / --unify switch would make things simple for the vast majority of users though.
By the way, I still hope to make mbuto mostly obsolete, eventually, in favour of muvm or similar (with changes to conveniently run arbitrary kernels, have SSH over vsock, and vhost-user networking), but mbuto still gives us a chance to use QEMU with (one day?) conveniently built images for foreign architectures, libkrun definitely can't.
Right. Yumei's trouble with this (plus those I encountered myself assisting with the debugging) have again reminded me of the fragility of mbuto's approach. I kind of want to get rid of it completely, except that it's so dang useful. -- David Gibson (he or they) | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you, not the other way | around. http://www.ozlabs.org/~dgibson