Hello community, here is the log from the commit of package insserv-compat for openSUSE:Factory checked in at 2019-04-23 14:41:31 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/insserv-compat (Old) and /work/SRC/openSUSE:Factory/.insserv-compat.new.5536 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "insserv-compat" Tue Apr 23 14:41:31 2019 rev:18 rq:697107 version:0.1 Changes: -------- --- /work/SRC/openSUSE:Factory/insserv-compat/insserv-compat.changes 2018-02-14 09:16:58.351335660 +0100 +++ /work/SRC/openSUSE:Factory/.insserv-compat.new.5536/insserv-compat.changes 2019-04-23 14:41:33.421658217 +0200 @@ -1,0 +2,10 @@ +Thu Apr 18 09:49:08 CEST 2019 - ku...@suse.de + +- Add rc.status and rc.splash from aaa_base [bsc#1132738] + +------------------------------------------------------------------- +Tue Dec 4 16:11:11 UTC 2018 - lnus...@suse.de + +- drop insserv.conf, it's no longer useful (boo#1052837) + +------------------------------------------------------------------- Old: ---- insserv.conf New: ---- rc.splash rc.status ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ insserv-compat.spec ++++++ --- /var/tmp/diff_new_pack.T69djO/_old 2019-04-23 14:41:34.897658980 +0200 +++ /var/tmp/diff_new_pack.T69djO/_new 2019-04-23 14:41:34.901658982 +0200 @@ -1,7 +1,7 @@ # # spec file for package insserv-compat # -# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -12,7 +12,7 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # # icecream 0 @@ -26,7 +26,8 @@ Url: https://build.opensuse.org/package/show?package=%name&project=openSUSE%3AFactory Source: insserv.pl Source1: init-functions -Source2: insserv.conf +Source2: rc.splash +Source3: rc.status BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildArch: noarch Obsoletes: insserv <= 1.16.0 @@ -48,7 +49,8 @@ done install -m755 %{SOURCE0} %{buildroot}%{_sbindir}/insserv install -m755 %{SOURCE1} %{buildroot}/lib/lsb/init-functions -install -m644 %{SOURCE2} %{buildroot}%{_sysconfdir}/insserv.conf +install -m755 %{SOURCE2} %{buildroot}%{_sysconfdir}/ +install -m755 %{SOURCE3} %{buildroot}%{_sysconfdir}/ install -m644 insserv.8 %{buildroot}%{_mandir}/man8 ln -s ../usr/sbin/insserv %{buildroot}/sbin/insserv ln -s ../../sbin/insserv %{buildroot}/usr/lib/lsb/install_initd @@ -61,7 +63,6 @@ %files %defattr(-,root,root) -%config %{_sysconfdir}/insserv.conf %dir %attr(0755,root,root) /etc/init.d %dir %attr(0755,root,root) /etc/init.d/boot.d %dir %attr(0755,root,root) /etc/init.d/rc0.d @@ -72,6 +73,8 @@ %dir %attr(0755,root,root) /etc/init.d/rc5.d %dir %attr(0755,root,root) /etc/init.d/rc6.d %dir %attr(0755,root,root) /etc/init.d/rcS.d +%config /etc/rc.splash +%config /etc/rc.status /etc/rc.d %{_sbindir}/insserv /sbin/insserv ++++++ rc.splash ++++++ # /etc/rc.splash # vim: syntax=sh # # Initialize bootsplash progressbar variables and # define the bootsplash boot script functions. # SPLASHCFG= SPLASH=yes SPLASHNUM=0 THEME= export SPLASHCFG SPLASH test -s /etc/sysconfig/bootsplash && . /etc/sysconfig/bootsplash test -x /sbin/splash -a -w /proc/splash || SPLASH=no test -n "$THEME" -a -d "/etc/bootsplash/themes/$THEME" || SPLASH=no case "$PREVLEVEL-$RUNLEVEL" in [2-5]-[2-5]) SPLASH=no esac if test "$SPLASH" = yes -a -r /proc/splash ; then read -t 1 splashstatus < /proc/splash splashstatus="${splashstatus#*:}" splashstatus="${splashstatus## }" test "$splashstatus" = on || SPLASH=no unset splashstatus else SPLASH=no fi if test "$SPLASH" = yes -a -x /sbin/fbresolution ; then fbresolution="$(/sbin/fbresolution 2> /dev/null)" SPLASHCFG="/etc/bootsplash/themes/$THEME/config/bootsplash-${fbresolution}.cfg" unset fbresolution test -f "$SPLASHCFG" || SPLASH=no fi if test "$SPLASH" = "yes" ; then if test "$1" = "B" ; then SPLASHSTART=100 SPLASHEND=20000 for i in /etc/init.d/boot.d/S[0-9][0-9]*; do test -x "$i" || continue : $((SPLASHNUM++)) done unset i else SPLASHSTART=0 SPLASHEND=65535 case "$PREVLEVEL-$RUNLEVEL" in N-[3-5]) SPLASHSTART=20000 ;; esac for i in /etc/init.d/rc${RUNLEVEL}.d/S[0-9][0-9]*; do test -x "$i" || continue : $((SPLASHNUM++)) done for i in /etc/init.d/rc${PREVLEVEL}.d/K[0-9][0-9]*; do test -x "$i" || continue : $((SPLASHNUM++)) done unset i fi splashtrigger () { case "$1" in rlreached*) SPLASHSTART=$SPLASHEND esac case "$RUNLEVEL" in [06]) /sbin/splash -S -p $SPLASHSTART -t "$1" "$SPLASHCFG" ;; *) /sbin/splash -p $SPLASHSTART -t "$1" "$SPLASHCFG" esac } splashprogress () { local SPLASHDIFF test "$SPLASHNUM" -ge 1 || SPLASHNUM=1 SPLASHDIFF=$(((SPLASHEND - SPLASHSTART)/SPLASHNUM)) /sbin/splash -p "$SPLASHSTART:$SPLASHDIFF" -t "$1" "$SPLASHCFG" SPLASHSTART=$((SPLASHSTART+SPLASHDIFF)) : $((SPLASHNUM--)) } splashparallel () { local SPLASHDIFF local SPLASHOLDSTART=$SPLASHSTART for i; do test "$SPLASHNUM" -ge 1 || SPLASHNUM=1 SPLASHDIFF=$(((SPLASHEND-SPLASHSTART)/SPLASHNUM)) SPLASHSTART=$((SPLASHSTART+SPLASHDIFF)) : $((SPLASHNUM--)) done SPLASHDIFF=$((SPLASHSTART-SPLASHOLDSTART)) echo "-S $SPLASHOLDSTART:$SPLASHDIFF" } splashmake () { local SPLASHDIFF=$((SPLASHEND-SPLASHSTART)) echo "-S $SPLASHSTART:$SPLASHDIFF" SPLASHSTART=$SPLASHEND SPLASHNUM=0 } else splashtrigger () { :; } splashprogress () { :; } splashparallel () { echo ""; } splashmake () { echo ""; } fi ++++++ rc.status ++++++ # /etc/rc.status # vim: syntax=sh # Definition of boot script return messages # # The bootscripts should use the variables rc_done and rc_failed to # report whether they failed or succeeded. See /etc/init.d/skeleton for # an example how the shell functions rc_status and rc_reset are used. # # These functions make use of the variables rc_done and rc_failed; # rc_done_up and rc_failed_up are the same as rc_done and rc_failed # but contain a terminal code to move up one line before the output # of the actual string. (This is particularly useful when the script # starts a daemon which produces user output with a newline character) # # The variable rc_reset is used by the master resource control script # /etc/init.d/rc to turn off all attributes and switch to the standard # character set. # # \033 ascii ESCape # \033[<NUM>G move to column <NUM> (linux console, xterm, not vt100) # \033[<NUM>C move <NUM> columns forward but only upto last column # \033[<NUM>D move <NUM> columns backward but only upto first column # \033[<NUM>A move <NUM> rows up # \033[<NUM>B move <NUM> rows down # \033[1m switch on bold # \033[31m switch on red # \033[32m switch on green # \033[33m switch on yellow # \033[m switch off color/bold # \017 exit alternate mode (xterm, vt100, linux console) # \033[10m exit alternate mode (linux console) # \015 carriage return (without newline) # # Check if the service is used under systemd but not started with if test -z "$SYSTEMD_NO_WRAP" && /usr/bin/mountpoint -q /sys/fs/cgroup/systemd; then if test $PPID -ne 1 -a $# -eq 1 ; then _rc_base= _sd_opts= case "$0" in /etc/init.d/boot.*) _rc_base=${0##*/boot.} ;; /etc/init.d/*|/etc/rc.d/*) _rc_base=${0##*/} ;; */rc*) if test -L "$0"; then _rc_base=`readlink "$0"` _rc_base=${_rc_base##*/} case "$_rc_base" in boot.*) _rc_base=${_rc_base#boot.} esac else _rc_base=${0##*/rc} fi ;; esac _rc_system=$(/usr/bin/systemctl show --system --no-pager -p NeedDaemonReload \ -p UnitFileState -p LoadState "${_rc_base}.service" 2>/dev/null) case "$_rc_system" in *LoadState=masked*) echo "Error: ${_rc_base} is masked out and forbidden by systemd" 1>&2 exit 2 ;; *UnitFileState=static*) echo "Skipped: ${_rc_base} is overwritten by a native systemd unit" 1>&2 exit 2 ;; *NeedDaemonReload=yes*) /usr/bin/systemctl --system --no-pager daemon-reload esac unset _rc_system case "$1" in status) SYSTEMD_NO_WRAP=1 "$0" "$1" _sd_opts='--lines=0 --full --output=cat' ;; start|stop|reload|restart|try-restart|force-reload) echo "redirecting to systemctl $1 ${_rc_base}.service" 1>&2 _sd_opts='--ignore-dependencies' ;; *) unset _rc_base esac if test -n "$_rc_base" -a -x /usr/bin/systemctl ; then exec /usr/bin/systemctl $_sd_opts $1 "${_rc_base}.service" fi unset _rc_base _sd_opts fi if test -z "$REDIRECT" -a -x /sbin/showconsole ; then REDIRECT="$(/sbin/showconsole 2>/dev/null)" test -z "$CONSOLE" && CONSOLE=/dev/console export REDIRECT CONSOLE fi fi # Do _not_ be fooled by non POSIX locale LC_ALL=POSIX export LC_ALL # Seek for terminal size and, if needed, set default size rc_lc () { if test -n "$REDIRECT" ; then set -- $(stty size < "$REDIRECT" 2> /dev/null || echo 0 0) else set -- $(stty size 2> /dev/null || echo 0 0) fi LINES=$1 COLUMNS=$2 if test $LINES -eq 0 -o $COLUMNS -eq 0; then LINES=24 COLUMNS=80 TERM=dumb fi } trap 'rc_lc' SIGWINCH test -n "$COLUMNS" -a -n "$LINES" || rc_lc export LINES COLUMNS # Make sure we have /sbin and /usr/sbin in PATH case ":$PATH:" in *:/sbin:*) ;; *) PATH=/sbin:/usr/sbin:/usr/local/sbin:$PATH export PATH ;; esac if test -t 1 -a "$TERM" != "raw" -a "$TERM" != "dumb"; then esc=`echo -en "\033"` extd="${esc}[1m" warn="${esc}[1;31m" done="${esc}[1;32m" attn="${esc}[1;33m" norm=`echo -en "${esc}[m\017"` stat=`echo -en "\015${esc}[${COLUMNS}C${esc}[10D"` rc_done="${stat}${done}done${norm}" rc_running="${stat}${done}running${norm}" rc_failed="${stat}${warn}failed${norm}" rc_missed="${stat}${warn}missing${norm}" rc_skipped="${stat}${attn}skipped${norm}" rc_dead="${stat}${warn}dead${norm}" rc_unused="${stat}${extd}unused${norm}" rc_unknown="${stat}${attn}unknown${norm}" rc_done_up="${esc}[1A${rc_done}" rc_failed_up="${esc}[1A${rc_failed}" rc_reset="${norm}${esc}[?25h" rc_save="${esc}7${esc}[?25l" rc_restore="${esc}8${esc}[?25h" rc_cuu () { test $1 -eq 0 && return; echo -en "\033[${1}A"; } rc_cud () { test $1 -eq 0 && return; echo -en "\033[${1}B"; } rc_timer_on () { # Draw seconds of running timout to column. # Two arguments: timeout in seconds and offset local n=$1 local c=$2 (trap "exit 0" SIGTERM while test $((n--)) -gt 0; do sleep 1; if test $n -gt 9 ; then echo -en "\015${esc}[${c}C(${n}s) " else echo -en "\015${esc}[${c}C( ${n}s) " fi done) & _rc_timer_pid=$! } rc_timer_off () { if test -n "$_rc_timer_pid" ; then kill -TERM $_rc_timer_pid > /dev/null 2>&1 fi unset _rc_timer_pid } else esc="" extd="" warn="" done="" attn="" norm="" stat="" rc_done="..done" rc_running="..running" rc_failed="..failed" rc_missed="..missing" rc_skipped="..skipped" rc_dead="..dead" rc_unused="..unused" rc_unknown="..unknown" rc_done_up="${rc_done}" rc_failed_up="${rc_failed}" rc_reset="" rc_save="" rc_restore="" rc_cuu () { return; } rc_cud () { return; } rc_timer_on () { return; } rc_timer_off () { return; } fi _rc_service=${0##*/[SK][0-9][0-9]} _rc_status=0 _rc_status_all=0 _rc_todo=$1 rc_check () { _rc_status_ret=$? test $_rc_status_ret -eq 0 || _rc_status=$_rc_status_ret test $_rc_status -eq 0 || _rc_status_all=$_rc_status return $_rc_status_ret } rc_reset () { _rc_status=0 _rc_status_all=0 rc_check return 0 } if test "$_rc_todo" = "status" ; then rc_status () { rc_check _rc_status_ret=$_rc_status local i for i ; do case "$i" in -v|-v[1-9]|-v[1-9][0-9]) local vrt="" local out=1 local opt="en" test -n "${i#-v}" && vrt=${esc:+"${esc}[${i#-v}A"} || opt="e" case "$_rc_status" in 0) vrt="$vrt$rc_running"; ;; # service running 1) vrt="$vrt$rc_dead" ; out=2 ;; # service dead (but has pid file) 2) vrt="$vrt$rc_dead" ; out=2 ;; # service dead (but has lock file) 3) vrt="$vrt$rc_unused" ; ;; # service not running 4) vrt="$vrt$rc_unknown"; ;; # status is unknown esac echo -$opt "$rc_save$vrt$rc_restore" 1>&$out # reset _rc_status to 0 after verbose case _rc_status=0 ;; -r) rc_reset ;; -s) echo -e "$rc_skipped" ; rc_failed 3 ;; -u) echo -e "$rc_unused" ; rc_failed 3 ;; *) echo "rc_status: Usage: [-v[<num>] [-r]|-s|-u]" 1>&2 ; return 0 ;; esac done return $_rc_status_ret } elif test -n "$_rc_todo" ; then rc_status () { rc_check test "$_rc_status" -gt 7 && rc_failed 1 _rc_status_ret=$_rc_status case "$_rc_todo" in stop) # program is not running which # is success if we stop service test "$_rc_status" -eq 7 && rc_failed 0 ;; esac local i for i ; do case "$i" in -v|-v[1-9]|-v[1-9][0-9]) local vrt="" local out=1 local opt="en" test -n "${i#-v}" && vrt=${esc:+"${esc}[${i#-v}A"} || opt="e" case "$_rc_status" in 0) vrt="$vrt$rc_done" ; ;; # success 1) vrt="$vrt$rc_failed" ; out=2 ;; # generic or unspecified error 2) vrt="$vrt$rc_failed" ; out=2 ;; # invalid or excess args 3) vrt="$vrt$rc_missed" ; out=2 ;; # unimplemented feature 4) vrt="$vrt$rc_failed" ; out=2 ;; # insufficient privilege 5) vrt="$vrt$rc_skipped"; out=2 ;; # program is not installed 6) vrt="$vrt$rc_unused" ; out=2 ;; # program is not configured 7) vrt="$vrt$rc_failed" ; out=2 ;; # program is not running *) vrt="$vrt$rc_failed" ; out=2 ;; # unknown (maybe used in future) esac echo -$opt "$rc_save$vrt$rc_restore" 1>&$out # reset _rc_status to 0 after verbose case _rc_status=0 ;; -r) rc_reset ;; -s) echo -e "$rc_skipped" 1>&2 ; rc_failed 5 ;; -u) echo -e "$rc_unused" 1>&2 ; rc_failed 6 ;; *) echo "rc_status: Usage: [-v[<num>] [-r]|-s|-u]" 1>&2 ; return 0 ;; esac done return $_rc_status_ret } else rc_status () { rc_check _rc_status_ret=$_rc_status local i for i ; do case "$i" in -v|-v[1-9]|-v[1-9][0-9]) local vrt="" local out=1 local opt="en" test -n "${i#-v}" && vrt=${esc:+"${esc}[${i#-v}A"} || opt="e" case "$_rc_status" in 0) vrt="$vrt$rc_done" ; ;; # success *) vrt="$vrt$rc_failed"; out=2 ;; # failed esac echo -$opt "$rc_save$vrt$rc_restore" 1>&$out # reset _rc_status to 0 after verbose case _rc_status=0 ;; -r) rc_reset ;; -s) echo -e "$rc_skipped" ; return 0 ;; -u) echo -e "$rc_unused" ; return 0 ;; *) echo "rc_status: Usage: [-v[<num>] [-r]|-s|-u]" 1>&2 ; return 0 ;; esac done return $_rc_status_ret } fi rc_failed () { rc_reset case "$1" in [0-7]) _rc_status=$1 ;; "") _rc_status=1 esac rc_check return $_rc_status } rc_exit () { exit $_rc_status_all } rc_confirm() { local timeout="30" local answer="" local ret=0 case "$1" in -t) timeout=$2; shift 2 ;; esac local message="$@, (Y)es/(N)o/(C)ontinue? [y] " : ${REDIRECT:=/dev/tty} while true ; do read -t ${timeout} -n 1 -p "${message}" answer < $REDIRECT > $REDIRECT 2>&1 case "$answer" in [yY]|"") ret=0; break ;; [nN]) ret=1; break ;; [cC]) ret=2; break ;; *) echo; continue esac done echo return $ret } rc_active () { local link for link in /etc/init.d/*.d/S[0-9][0-9]${1} ; do test -e $link || break return 0 done return 1 } rc_splash() { return 0 } # Wait between last SIGTERM and the next SIGKILL # any argument specify a *path* of a process which # process identity should *not* be checked. rc_wait() { local -i etime=$SECONDS if test -f /fastboot ; then let etime+=2 else let etime+=6 fi local -i pid local -i ppid=$$ local comm state rest local parent_processes="$ppid" while test $ppid -gt 1; do read -t 1 pid comm state ppid rest < /proc/$ppid/stat parent_processes="${parent_processes:+$parent_processes:}${ppid}" done for comm ; do test -s $comm || continue ppid="$(/sbin/pidofproc $comm 2> /dev/null)" || continue parent_processes="${parent_processes:+$parent_processes:}${ppid}" done unset comm state ppid rest local -i busy while test $SECONDS -lt $etime; do let busy=0 for proc in /proc/[0-9]* ; do test -e $proc/exe || continue let pid=${proc##*/} case ":${parent_processes}:" in *:${pid}:*) continue esac let busy=pid break done test $busy -ne 0 || return 0 usleep 500000 done } rc_runlevel() { test -z "$RUNLEVEL" || return set -- $(/sbin/runlevel) PREVLEVEL=$1 RUNLEVEL=$2 export PREVLEVEL RUNLEVEL } cmdline="" rc_cmdline() { local arg cmd key val test -e /proc/cmdline || mount -nt proc proc /proc test -n "$cmdline" || read -t 2 cmdline < /proc/cmdline for arg; do for cmd in $cmdline ; do key="${cmd%%=*}" key="${key//-/_}" case "${key}" in $arg) case "$cmd" in *=*) val="${cmd#*=}" ;; *) val=yes esac echo $key=$val return 0 esac done done return 1 }