Do not use bash-specific features in scripts with '#!/bin/sh'
interpreter; it can be some other shell instead of bash.

Exit codes converted to non-negative values identical to those before
(to not break some scripts relying on old behavior).

Implementation of $RANDOM taken from Debian package apt script
(apt.cron.daily).

Fixes: https://bugs.debian.org/772410
Signed-off-by: Boris Egorov <ego...@linux.com>
---
 scilab/bin/scilab                                     | 4 ++--
 scilab/config/install-sh                              | 4 ++++
 scilab/modules/dynamic_link/src/scripts/install-sh    | 4 ++++
 scilab/modules/dynamic_link/src/scripts/scicompile.sh | 6 +++---
 scilab/modules/helptools/src/script/dispatchHelp.sh   | 2 +-
 5 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/scilab/bin/scilab b/scilab/bin/scilab
index 0b77b6c..cbfe5a8 100755
--- a/scilab/bin/scilab
+++ b/scilab/bin/scilab
@@ -50,7 +50,7 @@ if test -n "$SCI"; then
     if test ! -d "$SCI/modules"; then
         echo "Cannot find directory $SCI/modules/ !"
         echo "SCI should point to the root data directory of Scilab"
-        exit -1
+        exit 255
     fi
 fi
 
@@ -814,7 +814,7 @@ case $OS in
         # When started as an Application, the default path was "/"
         # It is not really useful. Changing to HOME.
         # See bugs 8339 and 10575 for rational
-        if test "$(pwd)" == "/"; then
+        if test "$(pwd)" = "/"; then
             cd $HOME
         fi
 
diff --git a/scilab/config/install-sh b/scilab/config/install-sh
index 377bb86..ba479c1 100755
--- a/scilab/config/install-sh
+++ b/scilab/config/install-sh
@@ -345,6 +345,10 @@ do
            # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
            ;;
          *)
+           if [ -z "$RANDOM" ] ; then
+             # A fix for shells that do not have this bash feature
+             RANDOM=$(( $(dd if=/dev/urandom bs=2 count=1 2> /dev/null | cksum 
| cut -d' ' -f1) % 32767 ))
+           fi
            tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
            trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
 
diff --git a/scilab/modules/dynamic_link/src/scripts/install-sh 
b/scilab/modules/dynamic_link/src/scripts/install-sh
index 377bb86..ba479c1 100755
--- a/scilab/modules/dynamic_link/src/scripts/install-sh
+++ b/scilab/modules/dynamic_link/src/scripts/install-sh
@@ -345,6 +345,10 @@ do
            # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
            ;;
          *)
+           if [ -z "$RANDOM" ] ; then
+             # A fix for shells that do not have this bash feature
+             RANDOM=$(( $(dd if=/dev/urandom bs=2 count=1 2> /dev/null | cksum 
| cut -d' ' -f1) % 32767 ))
+           fi
            tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
            trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
 
diff --git a/scilab/modules/dynamic_link/src/scripts/scicompile.sh 
b/scilab/modules/dynamic_link/src/scripts/scicompile.sh
index 9426218..694761f 100755
--- a/scilab/modules/dynamic_link/src/scripts/scicompile.sh
+++ b/scilab/modules/dynamic_link/src/scripts/scicompile.sh
@@ -18,13 +18,13 @@ ORIGINALLIBNAME=libsciexternal
 
 if test ! -s Makefile.orig; then 
        echo "The compiler detection has been performed. Please launch 
compilerDetection.sh before."
-       exit -1
+       exit 255
 fi
 
 # Check number of parameters
 if test $# -lt 2; then
        echo "Syntax : $0 libname sources"
-       exit -2
+       exit 254
 fi
 
 # retrieve parameters
@@ -38,7 +38,7 @@ for file in $SOURCES_TEMP; do
        FFILE=`echo $file|sed -e 's|\.o$|\.f|g'`
        if [ ! -s $file -a -s $CFILE -a -s $FFILE ]; then 
                echo "Error: Cannot find $file"
-               exit -3
+               exit 253
        fi
        # It is an include file, do not build it!
        if [ ! `echo $file|grep -i -E "(\.h$|\.hh$|\.hxx$|\.H$)"` ]; then
diff --git a/scilab/modules/helptools/src/script/dispatchHelp.sh 
b/scilab/modules/helptools/src/script/dispatchHelp.sh
index 987eb45..e8ee6e8 100644
--- a/scilab/modules/helptools/src/script/dispatchHelp.sh
+++ b/scilab/modules/helptools/src/script/dispatchHelp.sh
@@ -5,7 +5,7 @@
 
 if test -z "$SCI"; then
         echo "Please define the variable SCI"
-        exit -2
+        exit 254
 fi
 
 REFERENCE_LANG=en_US
-- 
2.1.3


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to