Package: sysv-rc
Version: 2.88dsf-13.12~nosplash
Severity: important
Tags: patch
User: [email protected]
Usertags: run-transition

Hi,

during an automated test, your package was flagged to reference files in
matching /dev/.initramfs [1]:

sysvinit-2.88dsf/debian/src/sysv-rc/etc/init.d/rc:      if [ -f 
/dev/.initramfs/progress_state ]; then
sysvinit-2.88dsf/debian/src/sysv-rc/etc/init.d/rc:              . 
/dev/.initramfs/progress_state

initramfs-tools was updated to no longer use (and create) this
directory [2] so its usage is now deprecated and /run should be uses for
such purposes. That said, the splash API isn't used anyway so the
attached patch simply removes it.


Cheers,
Michael

[1]
http://wiki.debian.org/ReleaseGoals/RunDirectory#Packages_using_.2BAC8-dev.2BAC8.initramfs
[2]
http://packages.debian.org/changelogs/pool/main/i/initramfs-tools/initramfs-tools_0.99/changelog#version0.99




-- System Information:
Debian Release: wheezy/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (200, 'experimental')
Architecture: i386 (i686)

Kernel: Linux 3.0.0-1-486
Locale: LANG=de_DE.utf8, LC_CTYPE=de_DE.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages sysv-rc depends on:
ii  debconf [debconf-2.0]  1.5.41                
ii  insserv                1.14.0-2.1            
ii  sysvinit-utils         2.88dsf-13.12~nosplash

Versions of packages sysv-rc recommends:
ii  lsb-base  3.2-28

Versions of packages sysv-rc suggests:
pn  bum           <none>
pn  sysv-rc-conf  <none>

-- debconf information excluded
>From 588bd71af26da2c906828f3ee7e03b02773379a0 Mon Sep 17 00:00:00 2001
From: Michael Biebl <[email protected]>
Date: Thu, 14 Jul 2011 08:46:26 +0200
Subject: [PATCH] Remove dead splash code

Neither splashy nor plymouth is using this API or is planning to do so.
So it only adds unnecessary complexity and slows down boot.
It also uses a deprecated /dev/.initramfs/ directory which has gone awol
with the switch to /run.
---
 debian/src/initscripts/etc/init.d/checkfs.sh       |    5 -
 debian/src/initscripts/etc/init.d/checkroot.sh     |    5 -
 .../src/initscripts/lib/init/splash-functions-base |   93 --------------------
 debian/src/sysv-rc/etc/init.d/rc                   |   82 -----------------
 4 files changed, 0 insertions(+), 185 deletions(-)
 delete mode 100644 debian/src/initscripts/lib/init/splash-functions-base

diff --git a/debian/src/initscripts/etc/init.d/checkfs.sh b/debian/src/initscripts/etc/init.d/checkfs.sh
index 1744db0..7129cc1 100755
--- a/debian/src/initscripts/etc/init.d/checkfs.sh
+++ b/debian/src/initscripts/etc/init.d/checkfs.sh
@@ -18,7 +18,6 @@ FSCK_LOGFILE=/var/log/fsck/checkfs
 . /lib/init/vars.sh
 
 . /lib/lsb/init-functions
-. /lib/init/splash-functions-base
 . /lib/init/swap-functions.sh
 
 do_start () {
@@ -97,10 +96,8 @@ Continuing with system boot in 5 seconds."
 		if [ "$VERBOSE" = no ]
 		then
 			log_action_begin_msg "Checking file systems"
-			splash_start_indefinite
 			logsave -s $FSCK_LOGFILE fsck $spinner -R -A $fix $force $FSCKTYPES_OPT
 			FSCKCODE=$?
-			splash_stop_indefinite
 
 			if [ "$FSCKCODE" -eq 32 ]
 			then
@@ -120,10 +117,8 @@ Continuing with system boot in 5 seconds."
 			else
 				log_action_msg "Will now check all file systems"
 			fi
-			splash_start_indefinite
 			logsave -s $FSCK_LOGFILE fsck $spinner -V -R -A $fix $force $FSCKTYPES_OPT
 			FSCKCODE=$?
-			splash_stop_indefinite
 			if [ "$FSCKCODE" -eq 32 ]
 			then
 				log_warning_msg "File system check was interrupted by user"
diff --git a/debian/src/initscripts/etc/init.d/checkroot.sh b/debian/src/initscripts/etc/init.d/checkroot.sh
index c5bd3c5..7d3ccc3 100755
--- a/debian/src/initscripts/etc/init.d/checkroot.sh
+++ b/debian/src/initscripts/etc/init.d/checkroot.sh
@@ -21,7 +21,6 @@ FSCK_LOGFILE=/var/log/fsck/checkroot
 
 . /lib/lsb/init-functions
 . /lib/init/mount-functions.sh
-. /lib/init/splash-functions-base
 
 do_start () {
 	# Trap SIGINT so that we can handle user interrupt of fsck.
@@ -213,10 +212,8 @@ Will restart in 5 seconds."
 		if [ "$VERBOSE" = no ]
 		then
 			log_action_begin_msg "Checking root file system"
-			splash_start_indefinite
 			logsave -s $FSCK_LOGFILE fsck $spinner $force $fix -t $roottype $rootdev
 			FSCKCODE=$?
-			splash_stop_indefinite
 			if [ "$FSCKCODE" = 0 ]
 			then
 				log_action_end_msg 0
@@ -224,12 +221,10 @@ Will restart in 5 seconds."
 				log_action_end_msg 1 "code $FSCKCODE"
 			fi
 		else
-			splash_start_indefinite
 			log_daemon_msg "Will now check root file system"
 			logsave -s $FSCK_LOGFILE fsck $spinner $force $fix -V -t $roottype $rootdev
 			FSCKCODE=$?
 			log_end_msg $FSCKCODE
-			splash_stop_indefinite
 		fi
 	fi
 
diff --git a/debian/src/initscripts/lib/init/splash-functions-base b/debian/src/initscripts/lib/init/splash-functions-base
deleted file mode 100644
index 8319dab..0000000
--- a/debian/src/initscripts/lib/init/splash-functions-base
+++ /dev/null
@@ -1,93 +0,0 @@
-# This script contains hooks to allow init scripts to control
-# a splash program during boot and shutdown.
-#
-# To override these, provide a /lib/init/splash-functions scripts
-# with new functions (it is sourced at the end of this file)
-#
-# Note that scripts have a number of constraints:
-#  1) Should avoid using any binaries not found in the initramfs so that 
-#     the same hooks can be used there.
-#  2) This also means that bashisms can't be used.
-#  3) Scripts must work when running under "set -e".
-#  4) "local" should be used to avoid overwriting global variables.
-
-
-# Detects whether a splash is running
-splash_running() { return 1; }
-
-# Tells the splash to quit
-splash_stop() { return 0; }
-
-# Tells the splash to start if not already running
-splash_start() { return 1; }
-
-# Tells the splash the current boot/shutdown progress
-# $1 contains the progress as a percentage value between -100 and 100
-# Positive values indicate boot progress
-# Negative values indicate shutdown progress
-splash_progress()
-{
-	local progress tmp
-	progress="$1"
-
-	splash_running || return 0
-
-	# Sanity check step 1 - must match ^-[0-9]*$
-	tmp="$progress"
-
-	# Strip trailing numbers
-	while [ "${tmp%[0-9]}" != "$tmp" ]; do
-		tmp="${tmp%[0-9]}"
-	done
-
-	# Now "-" or no characters should remain
-	if [ -n "$tmp" ] && [ "$tmp" != "-" ]; then
-		return 1
-	fi
-
-	#  Sanity check step 2 - check for values >= -100 and <= 100
-	if [ "$progress" != "${progress#-}" ]; then
-		# Negative value
-		if [ "$progress" -lt -100 ]; then
-			return 1
-		fi
-	else
-		# Positive value
-		if [ "$progress" -gt 100 ]; then
-			return 1
-		fi
-	fi
-
-	# Sanity checks passed
-	custom_splash_progress "$progress" || return 1
-	return 0
-}
-
-# Customizations should replace this function instead of splash_progress above
-custom_splash_progress() { return 0; }
-
-
-# Tells the splash that a task which may take an unknown amount of
-# time has started (such as a fsck). This is useful to make sure the
-# splash doesn't time out and to give visual feedback to the user.
-splash_start_indefinite() { return 0; }
-
-# Tells the splash that an indefinite task is done
-splash_stop_indefinite() { return 0; }
-
-# Gets user input from a splash
-# $1 contains the text for the user prompt
-# $2 describes the type of input:
-#     regular  = regular input, e.g. a user name
-#     password = input which should not be echoed to screen, e.g. a password
-#     enter    = A "press enter to continue" type of prompt
-#
-# Returns 1 if no user input is possible
-# Should be called with an alternative non-splash input fallback:
-#   INPUT="$(splash_user_input "Enter password:" password)" || \
-#   INPUT="$(manual_method)"
-splash_user_input() { return 1; }
-
-# Allow these functions to be overridden with custom scripts.  This is
-# the official API hook.
-if [ -e /lib/init/splash-functions ] ; then . /lib/init/splash-functions ; fi
diff --git a/debian/src/sysv-rc/etc/init.d/rc b/debian/src/sysv-rc/etc/init.d/rc
index fdb8ac7..0d1a17a 100644
--- a/debian/src/sysv-rc/etc/init.d/rc
+++ b/debian/src/sysv-rc/etc/init.d/rc
@@ -46,15 +46,6 @@ trap ":" INT QUIT TSTP
 # Set onlcr to avoid staircase effect.
 stty onlcr 0>&1
 
-# Functions for splash progress bars
-if [ -e /lib/init/splash-functions-base ] ; then
-	. /lib/init/splash-functions-base
-else
-	# Quiet down script if old initscripts version without /lib/init/splash-functions-base is used.
-	splash_progress() { return 1; }
-	splash_stop() { return 1; }
-fi
-
 # Now find out what the current and what the previous runlevel are.
 
 runlevel=$RUNLEVEL
@@ -84,18 +75,6 @@ else
 fi
 
 #
-# Stub to do progress bar ticks (for splash programs) on startup
-#
-startup_progress() {
-	# Avoid divide by zero if anyone moved xdm/kdm/gdm first in a runlevel.
-	if [ 0 -eq "$num_steps" ] ; then return; fi
-
-	step=$(($step + $step_change))
-	progress=$(($step * $progress_size / $num_steps + $first_step))
-	$debug splash_progress "$progress" || true
-}
-
-#
 # Check if we are able to use make like booting.  It require the
 # insserv package to be enabled. Boot concurrency also requires
 # startpar to be installed.
@@ -117,15 +96,7 @@ case "$CONCURRENCY" in
 	makefile|startpar|shell) # startpar and shell are obsolete
 		CONCURRENCY=makefile
 		log_action_msg "Using makefile-style concurrent boot in runlevel $runlevel"
-		# The splash API is not handled with this CONCURRENCY mode.
-		# It need to be implented in startpar.  Until that is done
-		# stop the splash screen before starting services, to avoid
-		# usplash and X to confuse each other during boot.
 		startup() {
-			if [ start = "$1" ] || [ boot = "$1" ]
-			then
-				$debug splash_stop || true
-			fi
 			eval "$(startpar -p 4 -t 20 -T 3 -M $1 -P $previous -R $runlevel)"
 
 			if [ -n "$failed_service" ]
@@ -148,73 +119,26 @@ case "$CONCURRENCY" in
 			scripts="$@"
 			for script in $scripts ; do
 				$debug "$script" $action
-				startup_progress
 			done
 		}
 		;;
 esac
 
-# Check if the splash screen should be stopped before the given
-# script.
-is_splash_stop_scripts() {
-	scriptname=$1
-	case "$scriptname" in
-		# killprocs is used in runlevel 1
-		gdm|xdm|kdm|ltsp-client|ltsp-client-core|reboot|halt|killprocs)
-			return 0
-			;;
-	esac
-	return 1
-}
-
 # Is there an rc directory for this new runlevel?
 if [ -d /etc/rc$runlevel.d ]
 then
-	# Find out where in the progress bar the initramfs got to.
-	PROGRESS_STATE=0
-	if [ -f /dev/.initramfs/progress_state ]; then
-		. /dev/.initramfs/progress_state
-	fi
-
-	# Split the remaining portion of the progress bar into thirds
-	progress_size=$(((100 - $PROGRESS_STATE) / 3))
-
 	case "$runlevel" in
 		0|6)
 			ACTION=stop
-			# Count down from 0 to -100 and use the entire bar
-			first_step=0
-			progress_size=100
-			step_change=-1
 			;;
 		S)
 			ACTION=start
-			# Begin where the initramfs left off and use 2/3
-			# of the remaining space
-			first_step=$PROGRESS_STATE
-			progress_size=$(($progress_size * 2))
-			step_change=1
 			;;
 		*)
 			ACTION=start
-			# Begin where rcS left off and use the final 1/3 of
-			# the space (by leaving progress_size unchanged)
-			first_step=$(($progress_size * 2 + $PROGRESS_STATE))
-			step_change=1
 			;;
 	esac
 
-	# Count the number of scripts we need to run
-	# (for progress bars)
-	num_steps=0
-	for s in /etc/rc$runlevel.d/[SK]*; do
-		if is_splash_stop_scripts "${s##/etc/rc$runlevel.d/S??}" ; then
-			break
-		fi
-		num_steps=$(($num_steps + 1))
-	done
-	step=0
-
 	# First, run the KILL scripts.
 	if [ makefile = "$CONCURRENCY" ]
 	then
@@ -258,9 +182,6 @@ then
 
 				# Stop the service.
 				SCRIPTS="$SCRIPTS $i"
-				if is_splash_stop_scripts "$suffix" ; then
-					$debug splash_stop || true
-				fi
 			done
 			startup stop $SCRIPTS
 		done
@@ -323,9 +244,6 @@ then
 
 				fi
 				SCRIPTS="$SCRIPTS $i"
-				if is_splash_stop_scripts "$suffix" ; then
-					$debug splash_stop || true
-				fi
 			done
 			startup $ACTION $SCRIPTS
 		done
-- 
1.7.6.3

_______________________________________________
Pkg-sysvinit-devel mailing list
[email protected]
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-sysvinit-devel

Reply via email to