[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#844217: live-boot: immediately detect medium from live-media parameter



Package: live-boot
Version: 1:20160511
Severity: normal

If a preferred medium (device or medium type) is given with the
live-media parameter then waiting for the timeout to expire before
scanning for these devices is not necessary. Just pick the device as soon
as it appears. If a criterion would match several devices the outcome is
undefined anyway. So choosing the first one is good enough.

The attached patch fixes this issue.

-- Package-specific info:

-- System Information:
Debian Release: stretch/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 4.7.0-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=de_CH.UTF-8, LC_CTYPE=de_CH.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages live-boot depends on:
ii  live-boot-initramfs-tools [live-boot-backend]  1:20160511

Versions of packages live-boot recommends:
ii  live-boot-doc  1:20160511
ii  live-tools     1:20151214+nmu1
ii  rsync          3.1.2-1
ii  uuid-runtime   2.28.2-1

Versions of packages live-boot suggests:
ii  cryptsetup  2:1.7.2-5
pn  curlftpfs   <none>
pn  httpfs2     <none>
ii  wget        1.18-4

-- no debconf information

From 2fcda59eb298d5e2009569f8e9410ccd4ab9b3d7 Mon Sep 17 00:00:00 2001
From: Ronny Standtke <ronny.standtke@gmx.net>
Date: Sun, 13 Nov 2016 15:17:11 +0100
Subject: [PATCH 1/1] Immediately detect medium from live-media parameter

If a preferred medium (device or medium type) is given with the
live-media parameter then waiting for the timeout to expire before
scanning for these devices is not necessary. Just pick the device as soon
as it appears. If a criterion would match several devices the outcome is
undefined anyway. So choosing the first one is good enough.
---
 components/9990-misc-helpers.sh | 27 ++++++++++++++-------------
 1 file changed, 14 insertions(+), 13 deletions(-)

diff --git a/components/9990-misc-helpers.sh b/components/9990-misc-helpers.sh
index 1a06ccf..fed9850 100755
--- a/components/9990-misc-helpers.sh
+++ b/components/9990-misc-helpers.sh
@@ -235,16 +235,10 @@ find_livefs ()
 {
 	timeout="${1}"
 
-	# don't start autodetection before timeout has expired
-	if [ -n "${LIVE_MEDIA_TIMEOUT}" ]
-	then
-		if [ "${timeout}" -lt "${LIVE_MEDIA_TIMEOUT}" ]
-		then
-			return 1
-		fi
-	fi
-
-	# first look at the one specified in the command line
+	# first look at the one specified in the command line This is OK
+	# before the timeout has expired, if more than one device matches the
+	# criteria the outcome is undefined anyway, so we can pick the first
+	# one that appears.
 	case "${LIVE_MEDIA}" in
 		removable-usb)
 			for sysblock in $(removable_usb_dev "sys")
@@ -257,7 +251,6 @@ find_livefs ()
 					fi
 				done
 			done
-			return 1
 			;;
 
 		removable)
@@ -271,7 +264,6 @@ find_livefs ()
 					fi
 				done
 			done
-			return 1
 			;;
 
 		*)
@@ -285,7 +277,16 @@ find_livefs ()
 			;;
 	esac
 
-	# or do the scan of block devices
+	# don't start autodetection before timeout has expired
+	if [ -n "${LIVE_MEDIA_TIMEOUT}" ]
+	then
+		if [ "${timeout}" -lt "${LIVE_MEDIA_TIMEOUT}" ]
+		then
+			return 1
+		fi
+	fi
+
+	# autodetection of live media
 	# prefer removable devices over non-removable devices, so scan them first
 	devices_to_scan="$(removable_dev 'sys') $(non_removable_dev 'sys')"
 
-- 
2.9.3


Reply to: