[SCM] live-boot branch, debian-next, updated. debian/3.0_a25-1-7-ge98a242

Daniel Baumann daniel at debian.org
Fri Mar 30 08:07:19 UTC 2012


The following commit has been merged in the debian-next branch:
commit d98b500c721b2bd5319d84f1e38a2e54db043834
Author: Daniel Baumann <daniel at debian.org>
Date:   Fri Mar 30 09:59:59 2012 +0200

    Replacing live-boot initscript with a stub and moving the actual code to /lib/live/boot.sh to allow different initsystem support in future.

diff --git a/Makefile b/Makefile
index ec67501..ce0262b 100644
--- a/Makefile
+++ b/Makefile
@@ -42,6 +42,9 @@ build:
 
 install:
 	# Installing executables
+	mkdir -p $(DESTDIR)/lib/live
+	cp bin/boot.sh $(DESTDIR)/lib/live
+
 	mkdir -p $(DESTDIR)/sbin
 	cp bin/live-new-uuid bin/live-snapshot bin/live-swapfile $(DESTDIR)/sbin
 
@@ -77,6 +80,10 @@ install:
 
 uninstall:
 	# Uninstalling executables
+	rm -f $(DESTDIR)/lib/live/boot.sh
+	rmdir --ignore-fail-on-non-empty $(DESTDIR)/lib/live > /dev/null 2>&1 || true
+	rmdir --ignore-fail-on-non-empty $(DESTDIR)/lib > /dev/null 2>&1 || true
+
 	rm -f $(DESTDIR)/sbin/live-snapshot $(DESTDIR)/sbin/live-swapfile
 	rmdir --ignore-fail-on-non-empty $(DESTDIR)/sbin > /dev/null 2>&1 || true
 
diff --git a/debian/live-boot.init b/bin/boot.sh
similarity index 91%
copy from debian/live-boot.init
copy to bin/boot.sh
index fb6f662..64763d0 100644
--- a/debian/live-boot.init
+++ b/bin/boot.sh
@@ -1,22 +1,5 @@
 #!/bin/sh
 
-### BEGIN INIT INFO
-# Provides:		live-boot
-# Required-Start:	$syslog bootmisc
-# Required-Stop:
-# Should-Start:		$local_fs
-# Should-Stop:		halt reboot
-# X-Stop-After:		umountroot
-# Default-Start:	S
-# Default-Stop:		0 6
-# Short-Description:	live-boot init script
-# Description:		Resyncs snapshots, evantually caches files in order to
-#			let remove the media.
-### END INIT INFO
-
-# Authors: Tollef Fog Heen <tfheen at canonical.com>
-#	   Marco Amadori <marco.amadori at gmail.com>
-
 PATH=/usr/sbin:/usr/bin:/sbin:/bin
 NAME=live-boot
 SCRIPTNAME=/etc/init.d/${NAME}
diff --git a/debian/live-boot.init b/debian/live-boot.init
index fb6f662..373df1b 100644
--- a/debian/live-boot.init
+++ b/debian/live-boot.init
@@ -1,250 +1,36 @@
 #!/bin/sh
 
+## live-boot contains the scripts that configure a Debian Live system during
+## the boot process (early userspace).
+##
+## This is the sysvinit script for live-boot.
+
+
 ### BEGIN INIT INFO
 # Provides:		live-boot
 # Required-Start:	$syslog bootmisc
 # Required-Stop:
 # Should-Start:		$local_fs
 # Should-Stop:		halt reboot
-# X-Stop-After:		umountroot
 # Default-Start:	S
 # Default-Stop:		0 6
-# Short-Description:	live-boot init script
-# Description:		Resyncs snapshots, evantually caches files in order to
-#			let remove the media.
+# Short-Description:	Debian Live - System Configuration Scripts
+# Description:		live-boot contains the scripts that configure a Debian
+#			Live system during the boot process (early userspace).
+# X-Start-Before:
+# X-Stop-After:		umountroot
+# X-Interactive:	true
 ### END INIT INFO
 
-# Authors: Tollef Fog Heen <tfheen at canonical.com>
-#	   Marco Amadori <marco.amadori at gmail.com>
-
-PATH=/usr/sbin:/usr/bin:/sbin:/bin
-NAME=live-boot
-SCRIPTNAME=/etc/init.d/${NAME}
-DO_SNAPSHOT=/sbin/live-snapshot
-SNAPSHOT_CONF="/etc/live/boot.d/snapshot.conf"
-
-# Exit if system was not booted by live-boot
-grep -qs boot=live /proc/cmdline || exit 0
-
-# Read snapshot configuration variables
-[ -r ${SNAPSHOT_CONF} ] && . ${SNAPSHOT_CONF}
-
-# Load the VERBOSE setting and other rcS variables
-[ -f /etc/default/rcS ] && . /etc/default/rcS
-
-# Define LSB log_* functions.
-# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
-. /lib/lsb/init-functions
-
-# Try to cache everything we're likely to need after ejecting.  This
-# is fragile and simple-minded, but our options are limited.
-cache_path()
-{
-	path="${1}"
-
-	if [ -d "${path}" ]
-	then
-		find "${path}" -type f | xargs cat > /dev/null 2>&1
-	elif [ -f "${path}" ]
-	then
-		if file -L "${path}" | grep -q 'dynamically linked'
-		then
-			# ldd output can be of three forms:
-			# 1. linux-vdso.so.1 =>  (0x00007fffe3fb4000)
-			#    This is a virtual, kernel shared library and we want to skip it
-			# 2. libc.so.6 => /lib/libc.so.6 (0x00007f5e9dc0c000)
-			#    We want to cache the third word.
-			# 3. /lib64/ld-linux-x86-64.so.2 (0x00007f5e9df8b000)
-			#    We want to cache the first word.
-			ldd "${path}" | while read line
-			do
-				if echo "$line" | grep -qs ' =>  '
-				then
-					continue
-				elif echo "$line" | grep -qs ' => '
-				then
-					lib=$(echo "${line}" | awk '{ print $3 }')
-				else
-					lib=$(echo "${line}" | awk '{ print $1 }')
-				fi
-				cache_path "${lib}"
-			done
-		fi
-
-		cat "${path}" >/dev/null 2>&1
-	fi
-}
-
-get_boot_device()
-{
-	# search in /proc/mounts for the device that is mounted at /live/image
-	while read DEVICE MOUNT REST
-	do
-		if [ "${MOUNT}" = "/live/image" ]
-		then
-			echo "${DEVICE}"
-			exit 0
-		fi
-	done < /proc/mounts
-}
-
-device_is_USB_flash_drive()
-{
-	# remove leading "/dev/" and all trailing numbers from input
-	DEVICE=$(expr substr ${1} 6 3)
-
-	# check that device starts with "sd"
-	[ "$(expr substr ${DEVICE} 1 2)" != "sd" ] && return 1
-
-	# check that the device is an USB device
-	if readlink /sys/block/${DEVICE} | grep -q usb
-	then
-		return 0
-	fi
-
-	return 1
-}
-
-do_stop ()
-{
-	if ! grep -qs nopersistent /proc/cmdline && grep -qs persistent /proc/cmdline
-	then
-		# ROOTSNAP and HOMESNAP are defined in ${SNAPSHOT_CONF} file
-		if [ ! -z "${ROOTSNAP}" ]
-		then
-			${DO_SNAPSHOT} --resync-string="${ROOTSNAP}"
-		fi
-
-		if [ ! -z "${HOMESNAP}" ]
-		then
-			${DO_SNAPSHOT} --resync-string="${HOMESNAP}"
-		fi
-	fi
-
-	# check for netboot
-	if [ ! -z "${NETBOOT}" ] || grep -qs netboot /proc/cmdline || grep -qsi root=/dev/nfs /proc/cmdline  || grep -qsi root=/dev/cifs /proc/cmdline
-	then
-		return 0
-	fi
-
-	# check for toram
-	if grep -qs toram /proc/cmdline
-	then
-		return 0
-	fi
-
-	# Don't prompt to eject the SD card on Babbage board, where we reuse it
-	# as a quasi-boot-floppy. Technically this uses a bit of ubiquity
-	# (archdetect), but since this is mostly only relevant for
-	# installations, who cares ...
-	if type archdetect >/dev/null 2>&1
-	then
-		subarch="$(archdetect)"
-
-		case $subarch in
-			arm*/imx51)
-				return 0
-				;;
-		esac
-	fi
-
-	prompt=1
-	if [ "${NOPROMPT}" = "Yes" ]
-	then
-		prompt=
-	fi
-
-	for path in $(which halt) $(which reboot) /etc/rc?.d /etc/default $(which stty) /bin/plymouth
-	do
-		cache_path "${path}"
-	done
-
-	for x in $(cat /proc/cmdline)
-	do
-		case ${x} in
-			quickreboot)
-				QUICKREBOOT="Yes"
-				;;
-		esac
-	done
-
-	mount -o remount,ro /live/cow
-
-	if [ -z ${QUICKREBOOT} ]
-	then
-
-		# Exit if the system was booted from an ISO image rather than a physical CD
-		grep -qs find_iso= /proc/cmdline && return 0
-		# TODO: i18n
-		BOOT_DEVICE="$(get_boot_device)"
-
-		if device_is_USB_flash_drive ${BOOT_DEVICE}
-		then
-			# do NOT eject USB flash drives!
-			# otherwise rebooting with most USB flash drives
-			# failes because they actually remember the
-			# "ejected" state even after reboot
-			MESSAGE="Please remove the USB flash drive"
-
-			if [ "${NOPROMPT}" = "usb" ]
-			then
-				prompt=
-			fi
-
-		else
-			# ejecting is a very good idea here
-			MESSAGE="Please remove the disc, close the tray (if any)"
-
-			if [ -x /usr/bin/eject ]
-			then
-				eject -p -m /live/image >/dev/null 2>&1
-			fi
-
-			if [ "${NOPROMPT}" = "cd" ]
-			then
-				prompt=
-			fi
-
-		fi
-
-		[ "$prompt" ] || return 0
-
-		if [ -x /bin/plymouth ] && plymouth --ping
+case "${1}" in
+	stop)
+		if [ -e /lib/live/boot.sh ]
 		then
-			plymouth message --text="${MESSAGE} and press ENTER to continue:"
-			plymouth watch-keystroke > /dev/null
-		else
-			stty sane < /dev/console
-
-			printf "\n\n${MESSAGE} and press ENTER to continue:" > /dev/console
-
-			read x < /dev/console
+			/lib/live/boot.sh
 		fi
-	fi
-}
-
-case "${1}" in
-	start|restart|reload|force-reload|status)
-		[ "${VERBOSE}" != no ] && log_end_msg 0 || exit 0
 		;;
 
-	stop)
-		log_begin_msg "${NAME} is resyncing snapshots and caching reboot files..."
-		do_stop
-
-		case "${?}" in
-			0|1)
-				[ "${VERBOSE}" != no ] && log_end_msg 0 || exit 0
-				;;
-
-			2)
-				[ "${VERBOSE}" != no ] && log_end_msg 1 || exit 1
-				;;
-		esac
-		;;
+	start|force-reload|restart)
 
-	*)
-		log_success_msg "Usage: ${SCRIPTNAME} {start|stop|restart|force-reload}" >&2
-		exit 3
 		;;
 esac
diff --git a/debian/live-boot.install b/debian/live-boot.install
index 79474ce..85134eb 100644
--- a/debian/live-boot.install
+++ b/debian/live-boot.install
@@ -1,2 +1,3 @@
+lib
 sbin
 usr/share/live-boot

-- 
live-boot



More information about the debian-live-changes mailing list