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

