Bug 15116

Summary: applet blkid stops working on linux kernel 6.0.7 and 6.0.8
Product: Busybox Reporter: Jordi Pujol <jordipujolp>
Component: OtherAssignee: unassigned
Status: RESOLVED INVALID    
Severity: critical CC: busybox-cvs
Priority: P5    
Version: 1.35.x   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Host: Target:
Build:

Description Jordi Pujol 2022-11-11 09:58:50 UTC
Hello,

Working in linux kernel version 6.0.8
I am testing two blkid flavours, one from
util-linux:
  Installed: 2.38.1-1.1+b1
and the applet of
busybox:
  Installed: 1:1.35.0-4
The busybox applet can't relate any properties to their devices.

# blkid
/dev/sda4: LABEL="data" UUID="81a3d487-d18f-4ab4-8f2b-ae5f2d722c95"
BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="192d6b1e-04"
/dev/sda2: LABEL="boot" UUID="cd47a624-a8b0-4a09-bbd2-2b7d46d2ff38"
BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="192d6b1e-02"
/dev/sda3: LABEL="cow" UUID="67a2b94f-8bf9-4907-915e-859d83acfe65"
BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="192d6b1e-03"

# busybox blkid
/dev/sda4: LABEL="data" UUID="81a3d487-d18f-4ab4-8f2b-ae5f2d722c95" TYPE="ext4"
/dev/sda3: LABEL="cow" UUID="67a2b94f-8bf9-4907-915e-859d83acfe65" TYPE="ext4"
/dev/sda2: LABEL="boot" UUID="cd47a624-a8b0-4a09-bbd2-2b7d46d2ff38" TYPE="ext4"

# blkid -l -t 'PARTUUID="192d6b1e-02"' -o device
/dev/sda2

# busybox blkid -l -t 'PARTUUID=192d6b1e-02' -o device; echo $?
0

# blkid -l -t 'LABEL=cow' -o device
/dev/sda3

# busybox blkid -l -t 'LABEL=cow' -o device; echo $?
0

Regards,

Jordi Pujol
Comment 1 Jordi Pujol 2022-11-14 07:43:46 UTC
busybox (1:1.35.0-4) unstable; urgency=medium

  * static build: disable blkid applet (CONFIG_BLKID, #1023501)

    Since static build has CONFIG_FEATURE_PREFER_APPLETS=y, enabling
    any utility which is also provided by the system in other ways
    can be risky, since busybox shell will choose its applet version
    instead of running the actual utility, even if that utility file
    exists in $PATH. After enabling blkid, we effectively overwrote
    blkid from libblkid as used in initramfs. The result was non-
    working udev rules for block devices (not creating /dev/disk/by-*/),
    and the system's unbootable.

    Disable it for now at least on static build.
    Closes: 1023501

  * d/rules: recognize "terse" in $DEB_BUILD_OPTIONS to disable verbose build

 -- Michael Tokarev <mjt@tls.msk.ru>  Sun, 06 Nov 2022 11:27:04 +0300