xref: /OK3568_Linux_fs/buildroot/package/usbmount/0002-use-udev-environment-instead-of-blkid.patch (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyunudev can provide all the values that usbmount determined using the
2*4882a593Smuzhiyunblkid binary. This patch drops use of blkid in favor of using the
3*4882a593Smuzhiyunenvironment variables set by udev. Thus it removes the dependency
4*4882a593Smuzhiyunon blkid from usbmount.
5*4882a593Smuzhiyun
6*4882a593SmuzhiyunSigned-off-by: Sven Neumann <s.neumann@raumfeld.com>
7*4882a593Smuzhiyun--- usbmount-0.0.22/usbmount.orig	2013-06-18 14:44:40.143096147 +0200
8*4882a593Smuzhiyun+++ usbmount-0.0.22/usbmount	2013-06-19 16:13:09.882434896 +0200
9*4882a593Smuzhiyun@@ -59,11 +59,6 @@
10*4882a593Smuzhiyun     exit 0
11*4882a593Smuzhiyun fi
12*4882a593Smuzhiyun
13*4882a593Smuzhiyun-if [ ! -x /sbin/blkid ]; then
14*4882a593Smuzhiyun-    log err "cannot execute /sbin/blkid"
15*4882a593Smuzhiyun-    exit 1
16*4882a593Smuzhiyun-fi
17*4882a593Smuzhiyun-
18*4882a593Smuzhiyun # Per Policy 9.3.2, directories under /var/run have to be created
19*4882a593Smuzhiyun # after every reboot.
20*4882a593Smuzhiyun if [ ! -e /var/run/usbmount ]; then
21*4882a593Smuzhiyun@@ -83,15 +78,7 @@
22*4882a593Smuzhiyun     trap '( lockfile-remove /var/run/usbmount/.mount )' 0
23*4882a593Smuzhiyun     log debug "acquired lock /var/run/usbmount/.mount.lock"
24*4882a593Smuzhiyun
25*4882a593Smuzhiyun-    # Grab device information from device and "divide it"
26*4882a593Smuzhiyun-    #   FIXME: improvement: implement mounting by label (notice that labels
27*4882a593Smuzhiyun-    #   can contain spaces, which makes things a little bit less comfortable).
28*4882a593Smuzhiyun-    DEVINFO=$(/sbin/blkid -p $DEVNAME)
29*4882a593Smuzhiyun-    FSTYPE=$(echo "$DEVINFO" | sed 's/.*[[:blank:]]TYPE="\([^"]*\)".*/\1/g; s/[[:blank:]]*//g;')
30*4882a593Smuzhiyun-    UUID=$(echo "$DEVINFO"   | sed 's/.*[[:blank:]]UUID="\([^"]*\)".*/\1/g; s/[[:blank:]]*//g;')
31*4882a593Smuzhiyun-    USAGE=$(echo "$DEVINFO"  | sed 's/.*[[:blank:]]USAGE="\([^"]*\)".*/\1/g; s/[[:blank:]]*//g;')
32*4882a593Smuzhiyun-
33*4882a593Smuzhiyun-    if ! echo $USAGE | egrep -q "(filesystem|disklabel)"; then
34*4882a593Smuzhiyun+    if ! echo $ID_FS_USAGE | egrep -q "(filesystem|disklabel)"; then
35*4882a593Smuzhiyun 	log info "$DEVNAME does not contain a filesystem or disklabel"
36*4882a593Smuzhiyun 	exit 1
37*4882a593Smuzhiyun     fi
38*4882a593Smuzhiyun@@ -101,14 +88,14 @@
39*4882a593Smuzhiyun 	log info "executing command: mount $DEVNAME"
40*4882a593Smuzhiyun 	mount $DEVNAME || log err "mount by DEVNAME with $DEVNAME wasn't successful; return code $?"
41*4882a593Smuzhiyun
42*4882a593Smuzhiyun-    elif grep -q "^[[:blank:]]*UUID=$UUID" /etc/fstab; then
43*4882a593Smuzhiyun-        log info "executing command: mount -U $UUID"
44*4882a593Smuzhiyun-	mount -U $UUID || log err "mount by UUID with $UUID wasn't successful; return code $?"
45*4882a593Smuzhiyun+    elif grep -q "^[[:blank:]]*UUID=$ID_FS_UUID" /etc/fstab; then
46*4882a593Smuzhiyun+        log info "executing command: mount -U $ID_FS_UUID"
47*4882a593Smuzhiyun+	mount -U $ID_FS_UUID || log err "mount by UUID with $ID_FS_UUID wasn't successful; return code $?"
48*4882a593Smuzhiyun
49*4882a593Smuzhiyun     else
50*4882a593Smuzhiyun-	log debug "$DEVNAME contains filesystem type $FSTYPE"
51*4882a593Smuzhiyun+	log debug "$DEVNAME contains filesystem type $ID_FS_TYPE"
52*4882a593Smuzhiyun
53*4882a593Smuzhiyun-	fstype=$FSTYPE
54*4882a593Smuzhiyun+	fstype=$ID_FS_TYPE
55*4882a593Smuzhiyun 	# Test if the filesystem type is in the list of filesystem
56*4882a593Smuzhiyun 	# types to mount.
57*4882a593Smuzhiyun 	if in_list "$fstype" "$FILESYSTEMS"; then
58*4882a593Smuzhiyun@@ -176,11 +163,13 @@
59*4882a593Smuzhiyun
60*4882a593Smuzhiyun 		# Run hook scripts; ignore errors.
61*4882a593Smuzhiyun 		export UM_DEVICE="$DEVNAME"
62*4882a593Smuzhiyun+		export UM_UUID="$ID_FS_UUID"
63*4882a593Smuzhiyun 		export UM_MOUNTPOINT="$mountpoint"
64*4882a593Smuzhiyun 		export UM_FILESYSTEM="$fstype"
65*4882a593Smuzhiyun 		export UM_MOUNTOPTIONS="$options"
66*4882a593Smuzhiyun 		export UM_VENDOR="$vendor"
67*4882a593Smuzhiyun 		export UM_MODEL="$model"
68*4882a593Smuzhiyun+		export UM_LABEL="$ID_FS_LABEL"
69*4882a593Smuzhiyun 		log info "executing command: run-parts /etc/usbmount/mount.d"
70*4882a593Smuzhiyun 		run-parts /etc/usbmount/mount.d || :
71*4882a593Smuzhiyun 	    else
72