Package: live-config
Version: 2.0.15-1
Severity: minor

*** Please type your report below this line *** When using 
live-config.sysv-rc= boot option to disable a service at boot like 
"live-config.sysv-rc=cron" the following error happens on boot:

startpar: service(s) returned failure: live-config ... failed!

Using debug in boot options we can see:


+ update-rc.d -f cron remove
+ grep -v update-rc.d: using dependency based boot sequencing
+ Trap
+ _RETURN=1
+ echo :ERROR
:ERROR
+ return 1

After boot, the service is indeed removed and is not running.

The code in /lib/live/config/scripts/config/015-sysv-rc is:


        if [ -n "${LIVE_SYSV_RC}" ]
        then
                for SERVICE in $(echo ${LIVE_SYSV_RC} | sed -e 's|,| |g')
                do
                        update-rc.d -f ${SERVICE} remove | \
                        grep -v "update-rc.d: using dependency based boot 
sequencing"
                done
        fi

After some google research I read that "grep -v" always returns 1 when 
it has an "inverted match" (grep -v).

Because of the pipe, update-rc.d error can't be extracted without some 
bashism or digging into some output redirections as described in [1]. 
In my testings I've found that update-rc.d always returns 0:

        sudo /usr/sbin/update-rc.d bogus_service_name remove
        update-rc.d: using dependency based boot sequencing
        echo $?
        0

Even if all /etc/rc?.d/ directories are removed from the system 
update-rc.d always returns 0. Great. So it's useless to get update-rc.d 
exit status.

Because of that I would suggest to append a "|| true" in the end of the 
line, as a workaround for the grep -v exit status.

                        update-rc.d -f ${SERVICE} remove | \
                        grep -v "update-rc.d: using dependency based boot 
sequencing" || true

I think this is better than using a "> /dev/null 2>&1" because any 
future changes in update-rc.d will still be shown in debug output.

Using the following live-build hook stops the original starpar error.

cat config/chroot_local-hooks/99-fix-grep-v-live-config-sysv-rc 

#!/bin/sh

# fix bug in live-config
sed  -i '/grep/ s|$| \|\| true|' /lib/live/config/01?-sysv-rc

A patch to live-config that applies this solution:

>From 47539ee6fe5cbb916f2446d7c5846302ffabeab9 Mon Sep 17 00:00:00 2001
From: Rui Miguel P. Bernardo <rui.bernardo...@gmail.com>
Date: Sun, 12 Jun 2011 22:55:47 +0100
Subject: [PATCH] Fix non 0 exit status of grep -v ini sysv-rc.

---
 scripts/config/015-sysv-rc |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/scripts/config/015-sysv-rc b/scripts/config/015-sysv-rc
index 83e96cf..8191782 100755
--- a/scripts/config/015-sysv-rc
+++ b/scripts/config/015-sysv-rc
@@ -38,7 +38,7 @@ Configure_sysv_rc ()
                for SERVICE in $(echo ${LIVE_SYSV_RC} | sed -e 's|,| |g')
                do
                        update-rc.d -f ${SERVICE} remove | \
-                       grep -v "update-rc.d: using dependency based boot 
sequencing"
+                       grep -v "update-rc.d: using dependency based boot 
sequencing" || true
                done
        fi
 
-- 
1.7.2.5

Thank you


Rui Miguel P. Bernardo

[1]: http://tldp.org/LDP/abs/html/io-redirection.html   tldp.org documentation


-- System Information:
Debian Release: 6.0.1
  APT prefers stable
  APT policy: (990, 'stable')
Architecture: i386 (i686)

Kernel: Linux 2.6.32-5-686 (SMP w/2 CPU cores)
Locale: LANG=pt_PT.UTF-8, LC_CTYPE=pt_PT.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages live-config depends on:
ii  live-config-sysvinit [live-co 2.0.15-1   Debian Live - System Configuration

Versions of packages live-config recommends:
ii  sudo                 1.7.4p4-2.squeeze.2 Provide limited super user privile
ii  user-setup           1.38                Set up initial user and password

Versions of packages live-config suggests:
ii  wget                          1.12-2.1   retrieves files from the web

-- no debconf information



-- 
To UNSUBSCRIBE, email to debian-live-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20110612232135.22719.71345.reportbug@localhost

Reply via email to