aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2022-07-15 07:33:21 +0200
committerNatanael Copa <ncopa@alpinelinux.org>2022-07-18 17:29:22 +0200
commit0ce8430810dd7ae8917b4e17cb67d8ed6b4cd41d (patch)
tree9271c12219ec7c24a76e769e34845d2b17d65ef1
parent5df3afdec03f10e706c10fd2653a51aa39eae601 (diff)
main/busybox-initscripts: backwards compat for /dev/usbdisk
fixes https://gitlab.alpinelinux.org/alpine/aports/-/issues/13854 (cherry picked from commit 505aa3870f347e7710aa848ea2ce20ef94d3f93f)
-rw-r--r--main/busybox-initscripts/APKBUILD8
-rw-r--r--main/busybox-initscripts/persistent-storage13
-rwxr-xr-xmain/busybox-initscripts/persistent-storage_test44
3 files changed, 57 insertions, 8 deletions
diff --git a/main/busybox-initscripts/APKBUILD b/main/busybox-initscripts/APKBUILD
index 78be22fad6a..bafe9c46a9d 100644
--- a/main/busybox-initscripts/APKBUILD
+++ b/main/busybox-initscripts/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=busybox-initscripts
-pkgver=4.1
-pkgrel=1
+pkgver=4.2
+pkgrel=0
pkgdesc="Init scripts for busybox daemons"
url="https://git.alpinelinux.org/aports/tree/main/busybox-initscripts"
arch="noarch"
@@ -84,10 +84,10 @@ acbba3385fb2c416362eb9176f24146b617a2e394ee0e00b9eff89350f82468a5ab8396f4f52b0aa
b5c299d5dcd854eb23717aab6938e2e1c9572d10ed667595b4a98f9cddca9f81c3f8f7ae508b62db5fe203c45c696d3c2a9ce62761aa329b2bcfcc5e5a3a9224 mdev.conf
ebd82f935da2ca89097234dd8a8f47e179a423652c151123a1f3343f3e1e7bfaba2b8800380e988d4e8f4294545d3a9ab6708ae2e77c5b108b5f091bbce8f94a dvbdev
b2dcf0ded9264334d79fbbb05dd12d649dc3119a060db5893f0e8aeca2141323961c3ba4c822a0ffb00dba848742d5cb374dc77e776b57cecde352a3e8e30f8a usbdev
-1e5efd37081ed513912dece5ca9e82bf2f8b192e432d872f1758962469e0548223ddf1f43049973e853373b5c08494f1787e41e3b9d2d2fe15ab835e9a09e6ea persistent-storage
+2873ec2ba41fe96b010b14fe3fc87d347b71eb6079c12e05ac72eac6c7f146e25096c0b29b2b9d69cbe6840e16dbf4a93ee81132de9fac497e41ab5e8bce2243 persistent-storage
46b9379a5def08ce0afffae546693c19be158ca4fa4ce3c619ec81e0adbaa087ea5dd6df10abbfcd59bfdaf351d7170a7d24c2b403eceeb80f4f04f090630227 ptpdev
0a23323849ba531ac9b56bb7f60a8cdd2b94a0e366e87120c20a53fe6e79b6da3a3fb4320c6cd14fb89ac933a98c2d9d84512713c42042fa2a9a2a80e0d467a9 test_env.sh
fd6bb18753f6367f75cd03febe76280d041a24880ec4dc315fe644d838d10098ecb9d7cfaf154e465bda1c90df14d613700c9910960ee78f0941c5442db93624 ptpdev_test
-9af204b2a1daee60b9be409340a5a4f05e41102939831418a0dd36efaa4c9fdd62cb0ebb1f6a7bc7fccb350be5da307dcf0e236b760c3c737f7257476b8c0b24 persistent-storage_test
+ae60c95ca817944558b28f67bfb25dbf0d2387eee1f24296f6d8833fda12bc454733a7d5e81d3e0a6d99ff7e1e5d31b8eed4f4f232306bdb9a1fe27f7ea0b949 persistent-storage_test
ea40b39c2cfe96d81fbc91fb9b38f503024127737c7d7bdefc79b5e1eb387214258b3d849b0e35b27e2897847150e2cc09edfaa246d9f30d7cec6655a887a81e Kyuafile
"
diff --git a/main/busybox-initscripts/persistent-storage b/main/busybox-initscripts/persistent-storage
index d9b41f1141d..4b821bc752b 100644
--- a/main/busybox-initscripts/persistent-storage
+++ b/main/busybox-initscripts/persistent-storage
@@ -68,3 +68,16 @@ if [ -n "$PARTUUID" ]; then
symlink_action ../../$MDEV disk/by-partuuid/$PARTUUID
fi
+# backwards compatibility with /dev/usbdisk for /dev/sd*
+if [ "${MDEV#sd}" != "$MDEV" ]; then
+ sysdev=$(readlink $SYSFS/class/block/$MDEV)
+ case "$sysdev" in
+ *usb[0-9]*)
+ # require vfat for devices without partition
+ if ! [ -e $SYSFS/block/$MDEV ] || [ TYPE="vfat" ]; then
+ symlink_action $MDEV usbdisk
+ fi
+ ;;
+ esac
+fi
+
diff --git a/main/busybox-initscripts/persistent-storage_test b/main/busybox-initscripts/persistent-storage_test
index a50dffd5dee..e408e3e04d3 100755
--- a/main/busybox-initscripts/persistent-storage_test
+++ b/main/busybox-initscripts/persistent-storage_test
@@ -8,7 +8,9 @@ init_tests \
persistent_storage_nvme_model_serial \
persistent_storage_virtio_serial \
persistent_storage_by_uuid \
- persistent_storage_by_partuuid
+ persistent_storage_by_partuuid \
+ persistent_storage_usbdisk_symlink \
+ persistent_storage_usbdisk_partition_symlink
mdevscript=$(atf_get_srcdir)/persistent-storage
export SYSFS=sys
@@ -104,8 +106,9 @@ persistent_storage_by_uuid_body() {
persistent_storage_by_partuuid_body() {
local partuuid="f6daa453-3150-46a2-b6f9-863e38fcd2aa"
+ mkdir bin
- cat <<-EOF > blkid
+ cat <<-EOF > bin/blkid
#!/bin/sh
# blkid mock
case \$1 in
@@ -114,11 +117,44 @@ persistent_storage_by_partuuid_body() {
;;
esac
EOF
- chmod +x blkid
- export PATH="$PWD:$PATH"
+ chmod +x bin/blkid
+ export PATH="$PWD/bin:$PATH"
MDEV=vda1 ACTION=add atf_check \
sh $mdevscript
atf_check -o match:"vda1" \
readlink disk/by-partuuid/"$partuuid"
}
+
+persistent_storage_usbdisk_symlink_body() {
+ mkdir -p sys/class/block sys/block bin
+ ln -s ../../devices/pci0000:00/0000:00:14.0/usb2/2-10/2-10:1.0/host4/target4:0:0/4:0:0:0 sys/class/block/sdc
+ ln -s ../devices/pci0000:00/0000:00:14.0/usb2/2-10/2-10:1.0/host4/target4:0:0/4:0:0:0 sys/block/sdc
+
+ cat <<-EOF > bin/blkid
+ #!/bin/sh
+ # blkid mock
+ case \$1 in
+ /dev/sdc)
+ echo '/dev/sdc: UUID="436D-F3F4" BLOCK_SIZE="512" TYPE="vfat"'
+ ;;
+ esac
+ EOF
+ chmod +x bin/blkid
+ export PATH="$PWD/bin:$PATH"
+
+ MDEV=sdc ACTION=add atf_check \
+ sh $mdevscript
+ atf_check -o match:"sdc" \
+ readlink usbdisk
+}
+
+persistent_storage_usbdisk_partition_symlink_body() {
+ mkdir -p sys/class/block
+ ln -s ../../devices/pci0000:00/0000:00:14.0/usb2/2-10/2-10:1.0/host4/target4:0:0/4:0:0:0 sys/class/block/sdc1
+
+ MDEV=sdc1 ACTION=add atf_check \
+ sh $mdevscript
+ atf_check -o match:"sdc1" \
+ readlink usbdisk
+}