---
 cross/setcrossarch.sh |   41 +++++++++++++++++++++------------------
 examples/chroot.sh    |   51 +++++++++++++++++++++++++++++--------------------
 2 filer ändrade, 52 tillägg(+), 40 borttagningar(-)

diff --git a/cross/setcrossarch.sh b/cross/setcrossarch.sh
index 756c2e6c..f6afdd10 100755
--- a/cross/setcrossarch.sh
+++ b/cross/setcrossarch.sh
@@ -18,42 +18,45 @@ set -e
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # meant to be called from multistrap with directory arch variables.
-dir=$1
-hostarch=$2
 
-if [ -z "$dir" ]; then
+TARGET="$1"
+HOSTARCH="$2"
+
+if [ -z "${TARGET}" ]; then
        echo "No directory specified."
        exit 1
 fi
 
 #run chroot script to ensure no unwanted system interactions (e.g. startup 
scripts)
 if [ -x /usr/share/multistrap/chroot.sh ]; then
-   /usr/share/multistrap/chroot.sh $dir $hostarch
+   /usr/share/multistrap/chroot.sh "${TARGET}" "${HOSTARCH}"
 fi
 
-cfg="/etc/pdebuild-cross/pdebuild-cross.rc"
-if [ -f $cfg ]; then
-       . $cfg
+CFG="/etc/pdebuild-cross/pdebuild-cross.rc"
+if [ -f "${CFG}" ]; then
+       . "${CFG}"
 fi
 
-if [ -z "$CROSSARCH" ]; then
+if [ -z "${CROSSARCH}" ]; then
        # get crossarch from dpkg-cross - check if it is not None
        if [ -f /etc/dpkg-cross/cross-compile ]; then
-               DEFARCH=`grep "^default_arch" /etc/dpkg-cross/cross-compile|sed 
-e 's/default_arch *= *\(.*\)/\1/'`
-               if [ -n "$DEFARCH" -a "$DEFARCH" != "None" ]; then
-                       CROSSARCH="$DEFARCH"
+               DEFARCH="$(grep "^default_arch" /etc/dpkg-cross/cross-compile | 
sed -e 's/default_arch *= *\(.*\)/\1/')"
+               if [ -n "${DEFARCH}" -a "${DEFARCH}" != "None" ]; then
+                       CROSSARCH="${DEFARCH}"
                fi
        else
-               echo "No CROSSARCH set in '$cfg' and no dpkg-cross default: 
using armel."
+               echo "No CROSSARCH set in '${CFG}' and no dpkg-cross default: 
using armel."
                CROSSARCH="armel"
        fi
 fi
 
 # set the value inside the chroot
-echo "#!/bin/sh" > $dir/tmp/set.sh
-echo >> $dir/tmp/set.sh
-echo "export DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true 
LC_ALL=C LANGUAGE=C LANG=C" >> $dir/tmp/set.sh
-echo "echo debconf dpkg-cross/default-arch select 
$CROSSARCH|debconf-set-selections" >> $dir/tmp/set.sh
-echo "Setting debconf dpkg-cross/default-arch to $CROSSARCH"
-sudo chroot $dir sh /tmp/set.sh
-sudo rm $dir/tmp/set.sh
+echo "Setting debconf dpkg-cross/default-arch to ${CROSSARCH}"
+cat > "${TARGET}"/tmp/setcrossarch.sh << EOF
+#!/bin/sh
+export DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true 
LC_ALL=C LANGUAGE=C LANG=C
+echo debconf dpkg-cross/default-arch select "${CROSSARCH}" | 
debconf-set-selections
+EOF
+chmod 0755 "${TARGET}"/tmp/setcrossarch.sh
+sudo chroot "${TARGET}" /tmp/setcrossarch.sh
+rm "${TARGET}"/tmp/setcrossarch.sh
diff --git a/examples/chroot.sh b/examples/chroot.sh
index e8f84c72..006fe34d 100755
--- a/examples/chroot.sh
+++ b/examples/chroot.sh
@@ -2,40 +2,49 @@
 
 set -e
 
+# This setup script is an alternative method of adjusting the tarball
+# contents immediately after multistrap has unpacked the packages.
+
+# At this stage, any operations inside the rootfs must not try to
+# execute any binaries within the rootfs.
+
 # The script is called with the following arguments:
+
 # $1 = $DIR  - the top directory of the bootstrapped system
 # $2 = $ARCH - the specified architecture, already checked with 
dpkg-architecture.
+
 # setup.sh needs to be executable.
 
 TARGET=$1
+
 # upstart support
-if [ -x "$TARGET/sbin/initctl" ]; then
-       echo "initctl: Trying to prevent daemons from starting in $TARGET"
-       mv "$TARGET/sbin/start-stop-daemon" 
"$TARGET/sbin/start-stop-daemon.REAL"
-       echo \
-"#!/bin/sh
-echo
-echo echo \"Warning: Fake start-stop-daemon called, doing nothing\"" > 
"$TARGET/sbin/start-stop-daemon"
-       chmod 755 "$TARGET/sbin/start-stop-daemon"
+if [ -x "${TARGET}"/sbin/initctl ]; then
+       echo "initctl: Trying to prevent daemons from starting in ${TARGET}"
+       mv "${TARGET}"/sbin/initctl "${TARGET}"/sbin/initctl.REAL
+       cat > "${TARGET}"/sbin/initctl << EOF
+#!/bin/sh
+echo "Warning: Fake initctl called, doing nothing"
+EOF
+       chmod 0755 "${TARGET}"/sbin/initctl
 fi
-if [ -x "$TARGET/sbin/initctl" ]; then
-       echo "initctl: Trying to prevent daemons from starting in $TARGET"
-       mv "$TARGET/sbin/initctl" "$TARGET/sbin/initctl.REAL"
-       echo \
-"#!/bin/sh
-echo
-echo \"Warning: Fake initctl called, doing nothing\"" > "$TARGET/sbin/initctl"
-       chmod 755 "$TARGET/sbin/initctl"
+if [ -x "${TARGET}"/sbin/initctl -a -x "${TARGET}"/sbin/start-stop-daemon ]; 
then
+       echo "start-stop-daemon: Trying to prevent daemons from starting in 
${TARGET}"
+       mv "${TARGET}"/sbin/start-stop-daemon 
"${TARGET}"/sbin/start-stop-daemon.REAL
+    cat > "${TARGET}"/sbin/start-stop-daemon << EOF
+#!/bin/sh
+echo "Warning: Fake start-stop-daemon called, doing nothing"
+EOF
+       chmod 0755 "${TARGET}"/sbin/start-stop-daemon
 fi
 
 # sysvinit support - exit value of 101 is essential.
-if [ -x "$TARGET/sbin/init" -a ! -f "$TARGET/usr/sbin/policy-rc.d" ]; then
-       echo "sysvinit: Using policy-rc.d to prevent daemons from starting in 
$TARGET"
-       mkdir -p $TARGET/usr/sbin/
-       cat > $TARGET/usr/sbin/policy-rc.d << EOF
+if [ -x "${TARGET}"/sbin/init -a ! -f "${TARGET}"/usr/sbin/policy-rc.d ]; then
+       echo "sysvinit: Using policy-rc.d to prevent daemons from starting in 
${TARGET}"
+       mkdir -p "${TARGET}"/usr/sbin/
+       cat > "${TARGET}"/usr/sbin/policy-rc.d << EOF
 #!/bin/sh
 echo "sysvinit: All runlevel operations denied by policy" >&2
 exit 101
 EOF
-       chmod a+x $TARGET/usr/sbin/policy-rc.d
+       chmod 0755 "${TARGET}"/usr/sbin/policy-rc.d
 fi
-- 
1.7.10.4


-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]
Archive: 
http://lists.debian.org/[email protected]

Reply via email to