I just saw the same problem upgrading to sarge.  I had a look around and
it looks like the script simply wasn't written to be run under set -e.

When a script uses $? liberally to explicitly test success/failure of
commands, you can't just enable -e and expect it to work.  You have
to carefully inspect it to make sure that all failure cases are handled
so that they don't cause the script to bomb out when it shouldn't.

I made an attempt to do this here.  No guarantees that this catches
all the problems but it does let me finish configuring the package.
-- 
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <[EMAIL PROTECTED]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
--- autofs.old  2005-03-25 14:09:01.000000000 +1100
+++ autofs      2005-03-25 14:18:43.000000000 +1100
@@ -448,11 +448,11 @@
                echo ""
                echo -n $"Unmounting loopback filesystem $match:  "
                loopdev=`LC_ALL=C grep $l /proc/mounts | awk '{print $1}'`
-               umount -d $match
-               if [ $? -eq 0 ]; then
+               if umount -d $match; then
                    echo "done"
                else
                    echo "failed ($?)"
+                   exit 1
                fi
            fi
        done
@@ -470,11 +470,11 @@
            if [ -n "$match" ]; then
                echo ""
                echo -n $"Unmounting loopback filesystem $match:  "
-               umount -d $match
-               if [ $? -eq 0 ]; then
+               if umount -d $match; then
                    echo "done"
                else
                    echo "failed ($?)"
+                   exit 1
                fi
            fi
        done
@@ -629,13 +629,12 @@
                mnt=`echo $rest | sed 's/^.* \(\/[^ ]*\) [A-Za-z].*$/\1/'`
                pidfile=/var/run/autofs/`echo $mnt | sed 's,/,_,g'`.pid
 
-               start-stop-daemon --start --pidfile $pidfile --quiet \
+               if ! start-stop-daemon --start --pidfile $pidfile --quiet \
                        --exec $DAEMON -- --pid-file=$pidfile $rest
-
-               if [ $? -ne 0 ]
                then
                        echo
                        echo " failed to start automount point $mnt"
+                       exit 1
                fi
        done
 
@@ -658,8 +657,8 @@
 
                        start-stop-daemon --stop --quiet \
                                        --retry USR2/$DAEMON_EXIT_WAIT \
-                                       --pidfile $file --exec $DAEMON
-                       ret=$?
+                                       --pidfile $file --exec $DAEMON ||
+                               ret=$?
 
                        case $ret in
                        0)
@@ -675,7 +674,7 @@
                                ;;
                        *)
                                echo -n -e \
-                               "\n Strange start-stop-daemon exit status: $?"
+                               "\n Strange start-stop-daemon exit status: $ret"
                                ;;
                        esac
                fi
@@ -718,12 +717,12 @@
                        mnt=`echo $rest | sed 's/^.* \(\/[^ ]*\) 
[A-Za-z].*$/\1/'`
                        pidfile=/var/run/autofs/`echo $mnt | sed 's,/,_,g'`.pid
 
-                       start-stop-daemon --start --pidfile $pidfile --quiet \
+                       if ! start-stop-daemon --start --pidfile $pidfile 
--quiet \
                                --exec $DAEMON -- --pid-file=$pidfile $rest
-                       
-                       if [ $? -ne 0 ]; then
+                       then
                                echo
                                echo " failed to start automount point $mnt"
+                               exit 1
                        else
                                echo "Started automounter: $mnt"
                        fi

Reply via email to